当前位置:文档之家› 【WinCC】使用VBS读取报警记录数据到EXCEL

【WinCC】使用VBS读取报警记录数据到EXCEL

【WinCC】使用VBS读取报警记录数据到EXCEL
【WinCC】使用VBS读取报警记录数据到EXCEL

【WinCC】使用VBS读取报警记录数据到EXCEL

1概述

介绍如何在WinCC项目中使用VBS脚本读取报警记录归档数据,并把获取的数据保存成新的Excel文件。

2软件环境

Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2007

3访问原理

WinCC报警记录数据是以压缩的形式存储在数据库中,需要通过 WinCC连通性软件包提供的OLE-DB接口才能够解压并读取这些数据。

当使用 OLE-DB方式访问数据库时关键需要注意连接字符串的写法和查询语句的格式。连接字符串格式为“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;”,其中:Catalog为WinCC运行数据库的名称,当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。建议使用WinCC内部变量“@DatasourceNameRT”获得当前项目的Catalog。Data Source 为服务器名称,格式为“<计算机名称>\WinCC”。

3.1 查询语句格式

查询语句的格式要求如下:

AlARMVIEW:SELECT * FROM [ WHERE……optional ]

其中参数信息如下所示:

ViewName:数据库表名。必须用需要的语言指定该表。

比如:中文字符表名为:ALGVIEWCHT,英文字符表明为:ALGVIEWENU等。

Condition:为过滤标准。

详细说明请参见下表:

表1查询参数表

3.2查询结果

查询结果作为记录集返回。可以根据需要有选择的返回特定的数据集。例如:oRs.Fields(0).Value 返回的是消息的编号;oRs.Fields(2).Value 返回的是消息的时间戳;oRs.Fields(37).Value返回的是消息文本的内容。记录集的结构如下表所示:

表2记录集结构

表3记录集结构 (续表)

注意:WinCC的归档数据是使用UTC(协调世界时)时间保存的。本例中所采用的时间均为UTC时间,如果需要实现在本地时间和UTC时间之间的转换,请参考下列连接:

如何计算本地时间和 UTC 时间的时间差,如何转换 UTC 时间成 SQL 语句格式?22115636

如何将本地计算机时间的时间戳(日期时间)转换成协调世界时 (UTC)?

24201113

4组态介绍

4.1准备工作

1)创建变量

其中AlmTagA、AlmTagB和AlmTagC用于组态报警,MySqlStr用于动态化查询条件。如下图所示:

图1变量

2)组态报警

在报警记录中组态如下报警:

图2报警信息

图3单个消息组态界面

3)创建Excel模板

在特定的路径下预先创建一个Excel文件作为模板,这样可以很好的控制输出格式。本例中在D:\WinCCWriteExcel下创建一个名称为abc.xlsx的Excel文件。如下图所示:

图4EXCEL模板

4.2组态查询界面

画面上新建五个按钮,上面的四个按钮分别用于设置不同的查询条件。按钮下方的静态文本用于显示查询条件。最下方的按钮用于执行查询报警记录的VBS脚本。其中查询条件的设定是通过按钮的直接连接方式实现。

图5 查询界面

在按钮属性对话框的鼠标动作中选择直接连接打开如下界面,配置查询条件。其中来源部分为查询字符串,目标部分为存储查询条件的变量。

图6按钮直接连接配置

4.3详细脚本介绍

1)打开Excel模板

以后台方式打开之前创建好的Excel模板。其中sheetname作为变量可以定义Excel中Sheet 的名字。需要注意模板文件的存储路径。

Set objExcelApp = CreateObject("Excel.Application")

objExcelApp.Visible = False

objExcelApp.Workbooks.Open "D:\WinCCWriteExcel\abc.xlsx"

objExcelApp.Worksheets(sheetname).Activate

2)准备查询条件

主要是确定和格式化Catalog和查询条件。关键脚本如下:

'准备查询条件 Catalog

Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")

tagDSNName.Read

‘拼接查询条件

MySqlStr.Read

sSql = "ALARMVIEW:Select * FROM AlgViewCHT "&MySqlStr.Value

其中MySqlStr为定义的内部字符串类型的变量,当点击查询条件中的按钮时,就会把相应的查询条件字符串传给该变量(需要根据项目的实际情况调整查询条件)。本例中的四条查询条件的完整语句如下图所示:

图7查询条件

3)完整的代码

'变量定义和初始化

Dim sPro,sDsn,sSer,sCon,conn,sSql,oRs,oCom

Dim tagDSNName

Dim m,i

Dim objExcelApp,objExcelBook,objExcelSheet,sheetname

Dim MySqlStr

Set MySqlStr = HMIRuntime.Tags("MySqlStr")

item.Enabled = False

'On Error Resume Next

sheetname="Sheet1"

'打开Excel模板

Set objExcelApp = CreateObject("Excel.Application") objExcelApp.Visible = False

objExcelApp.Workbooks.Open "D:\WinCCWriteExcel\abc.xlsx" objExcelApp.Worksheets(sheetname).Activate

'准备查询条件 Catalog

Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT") tagDSNName.Read

'创建数据库联接

sPro = "Provider=WinCCOLEDBProvider.1;"

sDsn = "Catalog=" &tagDSNName.Value& ";"

sSer = "Data Source=.\WinCC"

sCon = sPro + sDsn + sSer

Set conn = CreateObject("ADODB.Connection")

conn.ConnectionString = sCon

conn.CursorLocation = 3

conn.Open

'定义查询的命令文本 SQL

MySqlStr.Read

sSql = "ALARMVIEW:Select * FROM AlgViewCHT "&MySqlStr.Value HMIRuntime.Trace "Sql is: " & sSql & vbCrLf

Set oRs = CreateObject("ADODB.Recordset")

Set oCom = CreateObject("https://www.doczj.com/doc/f78280244.html,mand")

https://www.doczj.com/doc/f78280244.html,mandType = 1

Set oCom.ActiveConnection = conn

https://www.doczj.com/doc/f78280244.html,mandText = sSql

'填充数据到Excel中

Set oRs = oCom.Execute

m = oRs.RecordCount

If (m > 0) Then

oRs.MoveFirst

i=3

Do While Not oRs.EOF '是否到记录末尾,循环填写表格

objExcelApp.Worksheets(sheetname).cells(i,1).value= CStr(oRs.Fields(0).Value) objExcelApp.Worksheets(sheetname).cells(i,2).value= CStr(oRs.Fields(1).Value) objExcelApp.Worksheets(sheetname).cells(i,3).value= CStr(oRs.Fields(2).Value) objExcelApp.Worksheets(sheetname).cells(i,4).value= CStr(oRs.Fields(37).Value) oRs.MoveNext

i=i+1

Loop

oRs.Close

Else

MsgBox "没有所需数据……"

item.Enabled = True

Set oRs = Nothing

conn.Close

Set conn = Nothing

objExcelApp.Workbooks.Close

objExcelApp.Quit

Set objExcelApp= Nothing

Exit Sub

End If

'释放资源

Set oRs = Nothing

conn.Close

Set conn = Nothing

'生成新的文件,关闭Excel

Dim patch,filename

filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(Now))+CStr(M inute(Now))&CStr(Second(Now))

patch= "d:\"&filename&"demo.xlsx"

objExcelApp.ActiveWorkbook.SaveAs patch

objExcelApp.Workbooks.Close

objExcelApp.Quit

Set objExcelApp= Nothing

MsgBox "成功生成数据文件!"

item.Enabled = True

5结果和建议

下图为程序执行的结果。仅供参考:

图8输出结果

建议:为了改善本地访问期间的性能,请输入“<计算机名称>\WinCC”作为数据源,而不是“.\WinCC”。为了提高系统的执行效率,建议仅读取少量的数据。为了避免可能造成的数据损失,建议在执行操作之前先退出Excel应用程序。

声明:

本文所述的方法为WinCC的高级用法,提供的代码程序仅供用户参考,西门子公司不提供任何调试和热线支持。敬请谅解!

关键词

WinCC、Excel、VBS、脚本、连通性软件包

S7-400H和WinCC之间基于Simatic Net OPC 的通讯

S7-400H和WinCC之间基于Simatic Net OPC 的通讯 1.示例系统的体系结构图0 本示例为H系统与双CP1613的OS 站通过双以太网网段进行通讯的例子。 H系统与双CP1613的OS站通过单以太网网段或H系统与单CP1613的OS站进行互连互通可参考此例。图0为示例系统的配置图。图 ... 1.示例系统的体系结构 图 0 本示例为H系统与双CP1613的OS 站通过双以太网网段进行通讯的例子。H系统与双CP1613的OS站通过单以太网网段或H系统与单CP1613的OS站进行互连互通可参考此例。 H-CPU Order Number CPU 417-4H6ES7 417-4HL00-0AB0 CP 443-16ES7 443-1EX11-0XE0 2. 软件版本描述 软件版本 · SIMATIC NET V6.0+ServicePack4.0 · WinCC V5.1 · STEP7 V5.1+ServicePack6 · S7 H Systems V5.2+ServicePack2 3. 组态 3.1 运行SIMATIC MANAGER 并创建一个新的项目, 示例中为417H-NET6-FIRST。插入一个新的H站。示例中将其命名为SIMATIC 417-4H,如图1所示。

图 1 3.2 通过双击硬件或使用右键弹出菜单, 打开SIMATIC 417-4H的硬件组态(HWConfig)。本例中的硬件组态仅供参考,用户以实际硬件组态情况为准。对于冗余系统,应使用UR2-H机架,如图2所示。

图 2 3.3 组态以太子网;分配MAC地址,通常为获得更高的稳定性,建议取消TCP/IP 协议。 图3

WINCC OPC服务器配置

两台WinCC之间OPC通讯方法(WinXP) OPC客户端 1、登陆计算机名及密码要与服务器端(OPCServer)一致。 a) 如:用户名:administrator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 a) 如:OPCServer IP:192.168.0.100 b) 如:OPClient IP:192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 或 4、运行DCOMCNFG.EXE a) 在弹出的组件服务右击我的电脑->选择属性->选择COM安全 b)

c) 在访问权限中选择编辑限制

d) ANONMOUS LOGON组中选中远程访问。 5、剩下的就是在WinCC创建客户端项目。效果如图: 6、

OPC服务器端 1、登陆计算机名及密码要与服务器端(OPCClient)一致。 a) 如:用户名:administrator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 b) 如:OPCServer IP:192.168.0.100 c) 如:OPClient IP:192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 或 4、运行DCOMCNFG.EXE d) 在弹出的组件服务右击我的电脑->选择属性->选择COM安全 e)

f) 在访问权限中选择编辑限制

g) ANONMOUS LOGON组中选中远程访问。 5、打开DCOM配置。如图: a) b)选择OPCEnum和OPCServer.WinCC项。c)

Wincc变量记录及报警记录优化

Wincc变量记录及报警记录优化(图) 2010-04-12 18:01 Wincc变量归档(图) 最近在一个项目上,发现Wincc项目运行一段时间后,界面的操作响应变慢了。Wincc运行Runtime 时,发现进度在55%等待时间很长,界面提示为:变量记录管理启动中。怀疑系统运行效率下降和Wincc变量记录有关。 检查变量记录,文件大小为12~20G。咨询西门子工程师,他给出的解决方案是,减小每一个变量归档的大小,减小最长变量归档。具体作法如下: 1.打开Wincc变量记录设定:

2.右击快速归档,打开归档属性:

3.设定单个分段最大大小为:100~200M,单个分段包含的时间段为:1天。这两个参数,以最先达到的为有效; 4.设定所以分段最大尺寸为:10G,最长时间为3个月。这两个参数,以最先达到的为有效; 5.设定归档备份保存位置:选择“备份组态”选项卡,选择“激活备份”,设定目标路径。

5.这里需要注意,当达到记录文件达到10G,或者达到3个月,则Wincc开始了备份。例如达到了3个月,3个月后的第一天,系统将把3个月前的第一天的记录放置到备份数据路径下,并不再连接到数据库上。而新的数据将被保存在ArchiveManager文件夹下,并被连接到数据库上。 6.如果要查询3个月前的数据,则需要在Runtime运行的情况下,打开“变量记录”窗口-》“归档组态”-》右击“快速归档”。快捷菜单中,选择“连接归档”。从备份归档文件夹下,选择要连接的归档文件。 另外,对于报警记录无法自动连接归档的情况,也可以使用6所示方法。 对于报警在报警控件中显示只有1000条的问题。报警控件限制最大报警显示条数为1000条。如果要查询之前的报警,可以使用日期方式,选择要查询的起始和结束日期,进行查询。

WINCC报警变量记录数据查询方法

按时间查询报警记录 用到控件为listView,textbox,progctrl,ImageComboCtrl Sub X6309X94AE1X0000X59CB_X6309X94AE1X0000X0000_X6309X94AE1X0000X005 8_X6309X94AE1X00009_OnClick(ByVal Item) Dim sPro Dim sDsn Dim sSer Dim sCon Dim sSql Dim oRs Dim conn Dim oCom Dim oItem Dim comItem Dim m, n, s Dim oList Dim T1,T2,T3,T4,T5,T6,record1,record2 Dim a,b Set oList = ScreenItems("ListView1") Set T1=ScreenItems("T1") Set T2=ScreenItems("T2") Set T6=ScreenItems("2") Set T3=ScreenItems("3")

Set T4=ScreenItems("4") Set T5=ScreenItems("pro") Set record1=ScreenItems("5") Set record2=ScreenItems("6") oList.View =3 oList.ListItems.Clear https://www.doczj.com/doc/f78280244.html,boItems.Clear https://www.doczj.com/doc/f78280244.html,boItems.Clear sPro = "Provider=WinCCOLEDBProvider.1;" sDsn = "Catalog=CC_HJ_07_08_19_17_28_13R;" sSer = "Data Source=.\WINCC" sCon = sPro + sDsn + sSer sSql = "ALARMVIEW:Select * FROM AlgViewCHT WHERE DateTime>'"+Trim(T1.Text)+"' AND DateTime<'"+Trim(T2.Text)+"'" Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = sCon conn.CursorLocation = 3 conn.Open Set oRs = CreateObject("ADODB.Recordset") Set oCom = CreateObject("https://www.doczj.com/doc/f78280244.html,mand")

如何通过OPC UA实现两台WinCC SCADA电脑间的客户端服务器通讯

如何通过OPC UA实现两台WinCC SCADA 电脑间的客户端/服务器通讯? OPC UA(“开放平台通讯--统一架构”)是用于交换两台不同品牌设备或应用间数据的标准软件平台。本常见问题详细描述了如何在两台运行WinCC SCADA的PC间配置OPC UA通讯以实现客户端服务器的应用。 运行WinCC组态软件的PC可以通过OPC UA服务器和OPC UA客户端实现通讯。在通讯时,服务器和客户端需要交换安全认证证书,详细配置步骤如下: 步骤 1.在服务器的PC上启动WinCC Runtime。 2.在客户端的PC上打开WinCC工程的“变量管理”。 3.在工程向导中右键单击“变量管理”选项,在弹出菜单中选择“添加新的驱动”选择 “OPC”。 图. 01

OPC通道创建完成。 4.在工程向导中右键选择“OPC Groups...” 然后再弹出菜单中选择并打开“系统参 数”。 图. 02 打开“OPC条目管理器”界面。 5.点击“OPC UA服务器”按钮。

图. 03 打开“添加OPC UA服务器”界面。 6.在“服务器信息”对话框中输入服务器的URL地址,格式为:"opc.tcp://[服务 器]:[端口号]"。其中,“[服务器]”中输入作为服务器的PC的IP地址;“[端口号]”中输入OPC UA服务器使用的端口号,默认端口是“4862”。(如下图中所示) 图. 04 7.在“安全性”对话框中,“安全策略”选择“Basic128Rsa15”,“消息安全模式”选择 “签名和加密”。(如上图所示,需要注意的是,设置为“无安全”也可以达到通讯的效果,但从安全角度考虑不推荐使用) 点击“确定”关闭对话框。 8.在“OPC条目管理器”中选择新创建的OPC UA服务器选项。点击“浏览服务器”按 钮。

WINCC的OPC 通讯配置设置

OPC 通讯配置设置,非常好,申请加精 需要注意的是如果你的系统是XP(server端和客户端上一样的) 需要将我的电脑的桌面属性设置成默认属性,负责找不到下文中的“DCOM的总体默认属性页面",DCOM配置时我的电脑上会有个红色小箭头 1 客户端安装OPC Data Access 2.0 Components 2 客户端的用户名和密码一致 3客户端的DCOM配置 a."开始"--"运行",输入"dcomcnfg",然后回车,启动dcom配置 b.常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。 c.将常规页面中的身份验证级别改为"无"。 d.身份标识页面中,选择"交互式用户"。 e.位置页面中,选择"在这台计算机上运行应用程序",进入DCOM的总体默认属性页面,将" 在这台计算机上启用分布式COM"打上勾,将默认身份级别改为"无"); 4 服务器安装OPC Data Access 2.0 Components 5 服务器的DCOM配置 a.在运行OPC服务器上的计算机中运行dcomcnfg程序,进行DCOM配置。 b.进入DCOM的总体默认属性页面,将"在这台计算机上启用分布式COM"打上勾,将默认身 份级别改为"无"。 c.进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无 EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。 d.在常规页面中,双击你的OPC应用服务器,打开你的OPC应用服务器DCOM属性设置。 e.将常规页面中的身份验证级别改为"无"。 f.位置页面中选上"在这台计算机上运行应用程序"。 g.将安全性页面设置中,均选择"使用自定义访问权限",编辑每一个权限,将EveryOne加 入用户列表中。 h.身份标识页面中,选择"交互式用户"。) I.nt的GUEST用户不能禁用

6VB6.0开发WinCC的OPC客户机实例

VB6.0开发WinCC的OPC客户机实例 [ 来源:机电论文| 类别:技术| 时间:2009-4-8 9:42:34 ] [字体:大中小] 关键词:OPC VB6.0 WinCC上位机 WinCC是西门子公司在自动化领域采用最先进的技术与微软公司在共同开发的居于世界领先地位的工控软件。WinCC即WINDOWS CONTROL CENTER (视窗控制中心)。WinCC是一个功能强大的全面开放的监控系统,既可以用来完成小规模的简单的过程监控应用,也可以用来完成复杂的应用。在任何情况下WinCC都可以生成漂亮而便捷的人机对话接口,使操作员能够清晰地管理和优化生产过程。它集成的OPC(OLE for process control)服务器使得过程数据可由其它应用程序(OPC客户机)访问。 WinCC在安装时提供了OPC的客户端控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll), 在WINCC的帮助中,有Siemens OPC DAAutomation 2.0使用的简略帮助,但说得不很详细,我在使用VB6.0开发WinCC的OPC客户机中碰到不少问题,现一并写出来,与大家共享。希望起到抛砖引玉,举一反三的作用。 一、开发实例背景:我厂包装机BE电气改造后,由原来了单片机、直流调试板、温度控制板等控制改为带有通讯端口PLC、变频器、温控仪等控制,上位机监控软件为WinCC。在控制系统中,变频器、温控仪的控制信号通过串口、OPC客户机接入上位机WinCC,报警信号接入PLC。其硬件组态结构如图一

OPC开发要求:①通过WinCC建立内部变量Tag(1),Tag(2),Tag(3),Tag(4)……;在视图窗口建立相应了I/O输入输出域。通过更改WinCC中I/O域的值,来设定或更改变频器、温控仪等的参数。②通过VB开发了串口驱动程序,读取变频器、温控仪等的参数,通过OPC控件把值传递给WinCC中的I/O域。 二、VB6开发WinCC的OPC客户机具体步骤: 1、打开VB6,建立如图二窗体: 其中,文本框组Text4.text为写入WinCC内部变量名称;文本框组Text5.text 为显示相应了WinCC内部变量值;文本框组Text8.text为写入期望了WinCC内部变量值。单选框为OPC连接成功标志。3个命令按钮分别为“连接”,“断开”,“退出”。 2、OPC的连接 先在工具栏中“工程\引用”将近Siemens OPC DAAutomation 2.0加入,然后开始定义全局变量。在本程序中,我使用了一个OPC组进行OPC访问,所以定义了全局变量。我们要首先定义OPC服务类型与计算机结点名。定义OPC组与OPC标签组。并定义OPC的标签数组与值数,注意,值数组一定要设为Variant。 Option Explicit Option Base 1 ‘这数组必须由1开始,不能由0开始 Const ServerName = "OPCServer.WinCC" OPC的类型 Dim NodeName As String 结点名,即计算机名 Dim WithEvents MyOPCServer As OPCServer OPC服务 Dim WithEvents MyOPCGroup As OPCGroup OPC组 Dim MyOPCGroupColl As OPCGroups Dim MyOPCItemColl As OPCItems OPC标签组 Dim MyOPCItems As OPCItems Dim MyOPCItem As OPCItem

WinCC实现声音报警的方法

#include "apdefap.h" int gscAction( void ) { #pragma code("Winmm.dll") VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag); #pragma code( ) if (GetTagByte("TI101")>100) {PlaySoundA("C:\\\\Program Files\\\\Windows NT\\\\Pinball\\\\SOUND36.WAV",NULL,1);} return 0; } 报警可以用以下两种实现方法: 1、建一个全局脚本,时基为2S #include "apdefap.h" int gscAction( void ) { #pragma code("Winmm.dll") VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag); #pragma code( ) if (GetTagByte("TAG")==1) 或if (GetTagByte("TAG")>500) {PlaySoundA("d:\\ringout.wav",NULL,1);} return 0; } 用以上程序就可以实现单个变量报警,开关量为1或模似量大于500都可以报警,

用户可以根据自己的情况改变以上数值,如果有多个变量可以增加多个if . 2、通过报警记录,先在报警记录中组态好报警记录 建一个全局脚本,时基为2S #include "apdefap.h" int gscAction( void ) { MSG_RTDATA_STRUCT mRT; int i; char* pszToken; //Now is my code #pragma code("Winmm.dll") BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag); #pragma code() DWORD SND_ASYNC=0x0001; DWORD SND_LOOP=0x0008; DWORD alarmsum,alarmunack; LPCMN_ERROR errorunack,errorsum; #pragma code("msrtcli.dll") #pragma code() LPDWORD lpdwServiceID; MSG_SERVICE_NOTIFY_PROC lpfnNotifyProc;

OPC软件与WINCC通讯

OPC软件与WINCC通讯 一、OPC软件设置 打开KEPServerEx软件,到Tool->Options进入OPC DX选项卡下面。将Enable OPC Date Exchange打勾,详细功能请参照下面帮助,点击确定。 二、OPC软件下添加通讯变量。 这里新建一个三菱的驱动,通过485串口通讯(非编程口),选择驱动名称为Mitsubishi FX Net,点击下一步。 设置通讯接口,将Flow设置成始终。点击下一步。

三菱的协议数据位为7位,这个要注意。 下面为默认。再点击完成。 然后点击新建驱动。 选择PLC型号为FX3U,点击下一步。

设置PLC地址。关于三菱里面的PLC地址与通讯参数设置请参照三菱PLC 帮助,与KEPServerEx帮助。 以下是KEPServerEx软件帮助。KEPServerEx软件支持的PLC型号与通讯协议。 需要在三菱PLC中选择格式一,和校验。 下面全部选择默认参数。点击完成。 在PLC1上点右键新建变量或者变量组。如果变量很多推荐使用变量组功能,这里就不再演示,这里直接新建变量了。

填写变量名,变量地址,注释,变量类型,还有读写权限。点击确定。

此时新建变量已完成。 三、OPC软件与PLC通讯测试 点击工具栏中的OPC进行测试。 到FX3U.PLC1下监控变量的值。后面有质量是Bad,还是Good,说明是已建立通讯还是通讯失败。 另外软件下面也有相关信息 这个报警说明我的COM1已被使用。 如果WINCC需要监控OPC软件与PLC是否连接成功,可以监控FX3U.PLC1._System中的Error变量的值,如果是TRUE说明通讯失败。 四、WINCC建立连接

WinCCV7中如何能生成操作员地操作记录簿

WinCC V7中如何生成操作员的操作记录 1.操作员输入消息的分类 对于某些重要的对象和数据进行操作,根据需要可以在操作过程中触发操作员输入消息,操作员输入消息根据操作的对象和操作类型的不同,分为以下三类: a. “图形编辑器”中相应对象的属性中有“操作员输入消息”选项,例如:在 I/O 域中输入数值,文本列表中选择文本等。 对象属性功能支持的对象类型 操作员输入消息定义操作后是否输 出消息 I/O 域、文本列表、组合框、列表框、复选框、 单选框、滚动条 操作员激活报表定义是否记录操作 的原因 I/O 域、文本列表、组合框、列表框、滚动条 b. 对于操作可选图形 WinCC 对象,其属性中没有“操作员输入消息”选项,例如:对于按钮的操作等。 c. 在报警控件中对于消息的操作,例如确认锁定/释放消息等。 1.1如何限制用户对画面对象的操作 如上图中,通过按钮PIC1切换画面。如果需要限定某些操作员不能切换画面,就可以在按钮属性“其他”的“授权”中指定操作此对象所需要的权限。然后,在“用户管理器”中创建新用户,并分配相应权限即可。这样,如果没有用户登陆,或登陆用户没有按钮预先定义的授权,则无法操作按钮。

需要注意的是,在“用户管理器”中列出的1--17号权限的名称,仅是权限编号的别名而已,没有任何实际的功能。例如,画面中按钮1需要1号权限,按钮2需要2号权限…….按钮17需要17号权限;这样,只要用户管理器中的用户分配了相应的权限编号,如1、3、13号权限,那么这个用户只能操作1、3、13号按钮,其他按钮则无法操作。 在按钮的“事件”中插入以下脚本可以弹出用户登陆的对话框。 #pragma code("useadmin.dll") #include "pwrt_api.h" #pragma code() PWRTLogin('1'); //登陆C脚本 在按钮的“事件”中插入以下脚本可以注销当前登陆的用户。 #pragma code("useadmin.dll") #include "pwrt_api.h" #pragma code() PWRTLogout(); //注销C脚本 也可以在项目属性中,为用户登陆的对话框分配热键。 1.2 记录操作员登陆/注销的消息

WinCC中OPC配置步骤

OPC服务器配置 (1). copy all these files to your windows system directory. For example: copy opcproxy.dll c:\winnt\system32 copy opccomn_ps.dll c:\winnt\system32 copy opc_aeps.dll c:\winnt\system32 copy opchda_ps.dll c:\winnt\system32 copy aprxdist.exe c:\winnt\system32 copy opcenum.exe c:\winnt\system32 (2). install the proxy dlls REGSVR32 opcproxy.dll REGSVR32 opccomn_ps.dll REGSVR32 opc_aeps.dll REGSVR32 opchda_ps.dll Windows XP下OPC服务器DCOM的配置: (1).在局域网中创建工作组 (2).服务器的配置 运行对话框中输入dcomcnfg 控制台根目录->组建服务->计算机->我的电脑->右键属性配置。常规->选中在此计算机上启用分布式COM,默认身份验证级别为 连接。 默认协议->DCOM协议->面向连接的TCP/IP

COM安全->访问权限->编辑限制->访问权限->编辑限制->增加Everyone用户,并选中所有的“允许”。 COM安全->访问权限->编辑限制->访问权限->编辑默认值->增加Everyone用户,并选中所有的“允许”。 COM安全->启动和激活权限->编辑限制->启动权限->安全限制->增加Everyone用户,并选中所有的“允许”。 COM安全->访问权限->编辑限制->启动权限-默认安全性 ->增加Everyone用户,并选中所有的“允许”。 (3).OPC服务器配置 控制台根目录->组建服务->计算机->我的电脑->DCOM配置->可以看到opcEnum和OPCServer1,分别进行配置。这两个DCOM组件配置完全一样,都选择“在此计算机运行应用程序”。以下仅介绍其中一个的配置过程。选中OPCServer1,右键点击”属性”。 常规->选择身份验证级别为默认。 位置->在此计算机上运行应用程序。 安全->启动和激活权限->使用默认值 安全->访问权限->使用默认值 安全->配置权限->自定义->编辑->在配置权限里的自定义中,把所有的用户权限都设置成允许。 终结点->DCOM协议和终结点->面向接连的TCP/IP 标识->交互式用户 (4).系统配置

【WinCC】使用VBS读取报警记录数据到EXCEL

【WinCC】使用VBS读取报警记录数据到EXCEL 1概述 介绍如何在WinCC项目中使用VBS脚本读取报警记录归档数据,并把获取的数据保存成新的Excel文件。 2软件环境 Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2007 3访问原理 WinCC报警记录数据是以压缩的形式存储在数据库中,需要通过WinCC连通性软件包提供的OLE-DB接口才能够解压并读取这些数据。 当使用OLE-DB方式访问数据库时关键需要注意连接字符串的写法和查询语句的格式。连接字符串格式为“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;”,其中:Catalog为WinCC运行数据库的名称,当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。建议使用WinCC内部变量“@DatasourceNameRT”获得当前项目的Catalog。Data Source 为服务器名称,格式为“<计算机名称>\WinCC”。 3.1 查询语句格式 查询语句的格式要求如下: AlARMVIEW:SELECT * FROM [ WHERE……optional ] 其中参数信息如下所示: ViewName:数据库表名。必须用需要的语言指定该表。 比如:中文字符表名为:ALGVIEWCHT,英文字符表明为:ALGVIEWENU等。 Condition:为过滤标准。 详细说明请参见下表:

表1查询参数表 3.2查询结果 查询结果作为记录集返回。可以根据需要有选择的返回特定的数据集。例如:oRs.Fields(0).Value 返回的是消息的编号;oRs.Fields(2).Value 返回的是消息的时间戳;oRs.Fields(37).Value返回的是消息文本的内容。记录集的结构如下表所示:

利用OPC实现WINCC与监控系统的动态数据交换_高德欣

利用OPC 实现WINCC 与监控系统的动态数据交换 高德欣 1,2 ,张文武1,杨 清 1 (中国海洋大学信息科学与工程学院,山东青岛266071;2.青岛科技大学自动化与电子工程学院,山东青岛266042) 摘 要: 利用OP C (OL E for pro cess contro l )接口实现了SI EM ENS WinCC 与上位机开发软件组态王、力控、V B 之间动态数据的交换,解决了不同监控系统之间实时数据交换难题,实现不同监控系统开发软件间的即插即用以及控制系统的集成和数据共享,为企业生产管理信息化打下基础,最后给出了具体的实现步骤及成功应用案例。关键词: OPC 接口;西门子WinCC ;组态王;力控;动态数据交换 中图法分类号: T P273 文献标识码: A 文章编号: 1672-5174(2006)04-677-05 随着组态软件在生产过程监控系统中的广泛应用,以及企业信息管理系统建设的不断发展,再也不能希望完全由同一套组态软件或ERP 软件构成整个企 业的信息管理系统,组态软件的开放和协同以及与各种ERP 、M IS 系统的连接正在逐步成为企业生产管理信息化进程中不得不考虑的1个重要内容。由于过程级的现场控制系统比较复杂,多种组态软件(如WinCC ,IFIX ,组态王,力控等),多种总线(如CC -LINK ,PROFIBUS ,422/485总线等)并存,要与这些系统交换数据编写接口程序比较复杂,而且一般来说各组态软件的数据库均经过加密封装,用户无法从外部直接访问其中数据,即使像WinCC 软件虽然其数据库未加密,但是数据库中表名,表的结构、表的字段定义等等都是保密的,所以这给系统集成、数据共享带来很大困难。 目前比较好的解决方案是:(1)利用DDE (Dynam -ic Data Exchange )技术实现开放式数据交互;(2)利用OPC 技术实现开放式数据交互。二者都可使出自不同公司的系统能组成1个有机的整体。但是DDE 技术只适用于小数据量的交互,目前在工控行业基本被淘汰。而OPC 技术由于通讯稳定,传输速度快,适于大批量数据交换,现在已经成为新的工业通讯标准。OPC 技术允许客户程序从不同的OPC 服务器甚至运行在不同节点上的OPC 服务器存取数据。现在有实力的远端SCADA ,DCS ,PLC ,远端I /O 模块供应商等等都提供OPC 服务器,如:Intellution 公司的iFIX ,德国西门子公司的WinCC ,北京亚控公司的组态王(Kingview )和大庆三维集团的力控(ForceControl )等。利用OPC 技术,可将ERP 系统、HM I 系统、PLC 和现场设备系统集成一体化。 1 OPC 规范 OPC 规范包括OPC 服务器和OPC 客户端2个部分,其实质是在硬件供应商和软件开发商之间建立了1 套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的。OPC 服务器由3类对象组成:服务 器(Server )、组(Group )和数据项(Item )[1],相当于3种 层次上的接口。(1)服务器(Server )拥有服务器对象的所有信息,同时也是组对象(Group )的容器,1个服务器对应于1个OPC -Server ,在1个OPCServer 中,可以有若干个组对象。(2)组(Group )拥有本组对象的所有信息,同时包容并逻辑组织OPC 数据项(Item )。(3)数据项(Item )是读写数据的最小逻辑单位,1个项与1个具体的位号相连,通常指向设备的1个寄存器单元。 OPC 体系结构如图1所示。 OPC 技术扩展了设备的概念,只要符合OPC 服务器的规范,OPC 客户便可与之方便地实现数据交互。OPC 客户和OPC 服务器有2种不同方式进行数据交互[2-5],即同步方式和异步方式。同步方式实现较为简单,当客户数目较少而且同服务器交互的数据量不大的时候可以采用这种方式;异步方式实现较为复杂,需要在客户程序中实现服务器回调函数,然而当有大量客户和大量数据交互时,异步方式能提供高效的性能,尽量避免阻塞客户数据请求,并最大可能地节省CPU 和网络资源。 基金项目:山东省自然科学基金项目(Y2000G02)资助 收稿日期:2005-03-21;修订日期:2005-04-27 作者简介:高德欣(1978-),男,博士,讲师。E -mail :gaodexin @ouc .edu .cn   第36卷 第4期 2006年7月  中国海洋大学学报 PE RIODICAL OF OCEAN UNIVERSIT Y OF CHINA 36(4):677~680Jul y ,2006

通过Simatic net组态WINCC与S7-1200的OPC通讯

硬件的连接 SIMATICS7站、PC站分别通过以太网接口及网络交换机等设备连接到工业以太网,如图1所示。 图1、S7站同PC站的以太网连接 软硬件的需求 PC软件: 1.STEP7ProfessionalV13SP1Update6 2.SIMATICNetV12 硬件: 1.S7-1215C(6ES7 215-1AG40-0XB0) 2.以太网连接电缆 3.一台装有以太网卡 本例是将STEP7ProfessionalV13和SIMATICNet V8.2安装在同一台Windows7的计算机上。当然 STEP7ProfessionalV13和SIMATICNet V8.2也可以分别安装在不同的计算机上。 S7-1200站组态: 双击桌面TIAPortal图标,工作平台在缺省的情况下进入到Portal视图,这里直接点击左下角的”项目视图”连接,切换到项目视图的界面中。在项目视图的界面下点击菜单“Project”“New”,打开了创建新项目的窗口。在创建新项目的窗口中输入项目名为“OPCCommunication”;项目路径、作者及项目描述都采用缺省值,如图2所示。

图2、创建新项目 S7-1200站硬件配置: 在上面的窗口中点击“Create”按钮,这样就完成了项目的创建。在OPC的项目下双击“Addnewdevice”,在弹出的添加新设备的窗口中选择设备名为“S7-1200”;选择设备类型为“PLC”;在PLC的硬件目录中选择“SIMATICS7-1200”“CPU”“CPU 1215C DC/DC/DC”“6ES7215-1AG40-0XB0”,如图3所示,选择后点击“OK”按钮,到此完成了S7-1200站的硬件配置。 图3、S7-1200站的硬件配置 DB块创建 在OPC的项目点击“PLC_1”>程序块 > 添加新块,选择数据块DB,名称为“Data_1”,(名称尽量采用英文或者阿拉伯数字,否则在OPC Scout上显示不出名称)可以选择手动,手动输入DB编号。

Wincc报警文本记录

报警记录 在Wincc中可以组态事件的报警,组态事件报警基本上可以分为两个步骤。 1.在报警编辑器中设置报警的各种类别,包括上限下限值触发的模拟量报警,还有通过消 息变量触发的报警例如:开关量的报警。 2.通过对报警控件的设置实现报警显示。在画面编辑器中插入报警记录控件,报警控件具 有很多的功能。包括报警显示,对报警的确认,报警的自动归档,报警的查询等等。 首先组态一个模拟量报警,并通过此实例来说明状态变量,确认变量的定义及用法。在下一个实例中说明消息变量的使用。 模拟量报警 新建个项目命名为alarmtext点击创建按扭 打开报警记录编辑器,我们可以看到报警记录的主画面,包括消息块,消息类别,组消息,

和归档组态。 首先组态报警。组态报警就是设置报警消息的一些内容,包括时间,日期。报警地点,报警消息,产生报警的当前值以及报警的类别!报警消息的时间,日期对应消息块中的系统块。报警地点,报警消息对应消息块的用户文本块。当前值对应过程值块。故障报警对应消息类别。所以我们开始建立组态。 一.添加系统快。在消息块的系统快点击右击添加/删除

添加系统快我们可以看到系统已将编号,日期,时间选中。我们还可以添加左侧的系统快。但我们只使用编号,日期,时间选项。点击确定按钮。 我们看到所选的系统快已经显示出来

二.添加用户文本块。用户文本块采用同样的方法添加所需的块。我们采取默认选择的错误点和消息文本. 点击确定订按钮。 为了能使报警信息显示更多内容修改消息文本和错误点的字符长度改为30.双击消息文本,错误点修改。

。 三.添加过程值块 将过程值块中的过程值1,过程值2,过程值3添加到右侧如图。

wincc如何插入OPC变量

wincc中如何插入OPC连接变量 3楼2010-05-22 00:53:01 手动建立连接: 1 在[OPC Groups(OPCHN unit #1)]项上单击右键,选"新驱动程序的连接"; 2 连接属性窗口中,名字随便输入,好记就行。比如[OPCpoint]; 3 单击名字右边的"属性"按钮; 4 在打开的OPC组设置窗口中的[OPC服务器名称]中输入当前OPC服务器的名称,如"KEPServer"; 5 点击右边的"测试服务器"按钮测试是否能连接到KEPServer服务器。 如果连接不上,说明KEPServer服务器名称不对。也可以用向导直接生成KEPServer服务器的连接。 向导方式: 1 在[OPC Groups(OPCHN unit #1)]项上单击右键,选"系统参数"; 2 在弹出的[OPC条目管理器]中选择"\\"并等待本机上的OPC服务列表展开; 3 选中展开OPC服务器列表中的KEPServerOPC服务器对应的OPC服务器名称; 4 单击右下角的[列表服务器]按钮,打开"过滤标准"窗口,直接点击[下一步]; 5 在弹出的KEPServerOPC服务列表中,选择右边框中的任一个变量; 6 点击窗口右下方的[添加条目]按钮,把选中的变量添加到WinCC的OPC变量列表中;"OPCtags"窗口 选择[是];"新建连接"窗口中选择[确定];"添加变量"窗口中直接选择[完成]; 7 关闭窗口,返回到WinCC的OPC变量通道,就看到了刚刚添加的OPC通道和OPC变量了,单击通 道可以看到刚刚添加的OPC通道服务器名称,单击变量可以看到OPC变量的寻址名称。 楼主2014-11-06 15:48:21 WINNCC7.0.3通过PC Access SP6连接S7-200 PLC,试图参照读取过来的PC Access 变量基础上,新建OPC结构变量。 例如: 新建V 结构变量元素分别是bit : OPEN_BN CLOSE_BN OPEN_PN CLOSE_PN FAULT AUTO,地址偏移量均为1位。 从OPC读取过来的PQV 变量首地址是Microwin.test_1.11.PQV_OPEN_BN,在新建结构变量PQV后生成了新的地址Microwin.test_1.11.PQV_OPEN_BN._OPEN_BN。。。。。。 测试结果发现几个新建结构变量均无法使用,请问各位大侠,这是什么原因?是我的方法不对吗?应该怎么操作呢? 好像不能发图,先看文字吧。 1楼2014-11-07 10:20:14 pc access读取200的数据后,保存在pc access的数据库中,然后wincc中直接访问pc access的数据库呀!不需要你自己单独量的,直接查看pc access的数据库中的变量然后添加到wincc中就行了。

WinCC V7.5 SP1报警消息的状态变量

WinCC V7.5 SP1报警消息的状态变量 在WinCC的报警消息中,一般情况下,在报警控件中的“确认状态”列中显示报警消息的状态。除此之外,还可以为报警的单个消息、报警组、报警类型和报警等级组态相关的状态变量和状态位。这样,就可以在不使用报警控件的情况下,而在其它动态或脚本等逻辑中通过状态变量来获取相关报警消息的状态信息。 状态变量包括两个状态信息,状态位和确认位。状态位表示报警消息是到达/离开,确认位表示报警消息是否需要确认。 ? 注意:状态变量的数据类型必须为无符号8/16/32位值,分别可以对应4/8/16个消息对象。 在组态状态变量时需要定义状态位的位置,而确认位的位置取决于状态位的位置。 状态变量的数据类型为“无符号8位值”时,状态位为0~3位,分别对应的确认位为4~7位。状态位与确认位的位间隔为4位。如果状态变量的状态位为位号2,则位号2表示相应消息的到达/离开状态,而位号6表示该消息是否需要确认。 状态变量的数据类型为“无符号16位值”时,状态位为0~7位,分别对应的确认位为8~15位。状态位与确认位的位间隔为8位。如果状态变量的状态位为位号6,则位号6表示相应消息的到达/离开状态,而位号14表示该消息是否需要确认。 状态变量的数据类型为“无符号32位值”时,状态位为0~15位,分别对应的确认位为16~31位。状态位与确认位的位间隔为16位。如果状态变量的状态位为位号9,则位号9表示相应消息的到达/离开状态,而位号25表示该消息是否需要确认。 在报警编辑器中选择相应的消息,在“属性”-“消息”-“常规”中选择相应的“消息等级”、“消息类型”和消息组“后,在“变量”中选择相应的状态变量和状态位。

WINCC-OPC服务器配置

两台WinCC 之间OPC通讯方法(WinXP ) OPC客户端 1登陆计算机名及密码要与服务器端(OPCServer)一致。 a)女口:用户名:admi ni strator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 a)女口:OPCServer IP: 192.168.0.100 b)女口:OPClient IP: 192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 4、运行DCOMCNFG .EXE a)在弹出的组件服务右击我的电脑->选择属性->选择COM安全 b) 或

一 r 访问权隈 塔可昼编辑默认僭谊下允许访问应用程序的用P.您也可以 在应甬程序上设置限制以决定蔑权限. 翳输眼制(!)….| 歸默认値斬鸟 启动和激活权限 您可以编辑默认焙呪下允许启动应用程厚或激活对彖的用 P.您也越以在应用程序上设置限制以决足茸权限. ■辑限制?…I 編辑款认值?) ■…I 确定] 取稱 | _ c) 在访问权限中选择编辑限制 *三|;沖一 遐或用 P 宕称⑤ gjABijmiUS llXkiN Everyone 新)om ) | ttf^r R ANOFTMO^ LO (?3U 的和艰 Igi 允许 拒绘 本地访何 回 □ □ 确定 I 常规1 选项 1默认愿i 谿人协议 COM 安宝 我的电店扉牲 MSDTC

d) ANONMOUS LOGON 组中选中远程访问。 5、剩下的就是在WinCC创建客户端项冃。效杲如图: < V.wIT-FfT tei OPC: 1 50 1J 6 、 D * ■卜■ ■ ■,?.t? LriXbtl*ru -「匕?M1AI 1TLQ订nUKBUlcmiCLTmjECrsWrrTHQ -□! M| jtPrtFf 義聲I

S与WinCC以太网的OPC通讯

S-与WinCC以太网的OPC通讯

————————————————————————————————作者:————————————————————————————————日期:

S7-200与WinCC之间通过以太网的OPC通讯 时间:2005-10-14 来源:internet 页面功能【字体:大中小】【评论】【查看对此文的评论】 为了实现S7-200和WinCC之间的以太网通讯,您应该选择OPC方式。因此,在与WinCC连接之前,您应该先完成S7-200和OPC Server之间的通讯。 1. 用鼠标右键点击Tag Management 。 2. 在快捷菜单中点击Add New Driver 。

1. 在文件目录中选择Opc.chn 。 2. 点击Open按钮。 1. 用鼠标右键点击OPC Groups 。 2. 在快捷菜单中点击System Parameter 。

1. 点击OPC.SimaticNET 。 2. 点击Browse Server按钮。 1. 在变量列表中选择所需要的变量。 2. 点击Add Items按钮。 现在您已经可以在CPU和WinCC之间交换数据了。

PLC的通信,可以采用PPI和Profibus两种通信协议之一进行。 1、WinCC与S7-200系列PLC通过Profibus协议进行通信的实现 (1)软硬件要求: * PC机,Windows 98操作系统; * S7-200系列PLC; * CP5412板卡或者其他同类板卡,例如:CP5611,CP5613; * EM277 Profibus DP模块; * Profibus 电缆及接头; * 安装CP5412板卡的驱动; * 安装WinCC 4.0或以上版本; * 安装COM Profibus软件。 (2)组态 打开SIMATIC NET\COM Profibus,新加一个组态,主站为SOFTNET-DP,从站是EM277 Profibus-DP。主站的地址选择从1到126。从站的地址选择从3到99,与EM277的地址一致。然后用该软件对从站进行配置:打开从站属性,在Configure选项中,选择8bytes in/8bytes out(可根据实际需要选定)。在Parameterize中可以选择偏移地址,地址对应于S7-200系列PLC的数据区(即V区),默认为0,即从VB0开始。组态完成后,导出(Export)NCM文件,生成*.txt和*.ldb文件。 (3)设置PG/PC interface。 在Access Point of the Application中选择CP_L2_1,在Interface Parameter Assignment 选择CP5412A2(Profibus)。在属性里的激活DP协议,并在DP-Database参数中输入*.ldb文件的完全路径。设置完成后可以诊断硬件配置是否正确、通信是否成功。 (4)WinCC的设置。 在WinCC变量管理器中添加一个新的驱动程序,新的驱动程序选择PROFIBUS DP.CHN,

相关主题
文本预览
相关文档 最新文档