0

购物车

客服

收藏

公众号

公众号

反馈

︿

顶部

首页 > 工控资讯 > 品牌新闻 >西门子>资讯详情

西门子WinAC Computing和NET OPC

2018-11-22 浏览量:235

点击分享到微信

WinAC提供了一套组件:WinAC ComputingWinAC Computing提供了访问WinAC控制器的接口,它包含如下的部分:

• 一组ActiveX控件。它提供了对WinAC控制引擎中数据的访问。

• 一个OPC 服务器。它允许OPC客户端程序与WinAC控制器进行数据交换。即WinAC支持两种OPC服务器:WinAC Computing OPC服务器和SIMATIC NET OPC 服务器。

• 一个变量表编辑器TagFile Configurator。借助TagFile,访问WinAC控制器数据时可以使用符号名。

• 一个设置程序。它用于对远程访问数据进行设置。

• 一个OLE 容器 Computing SoftContainer

尽管WinAC Computing使用更简单,但由于WinAC新版本支持SIMATIC NET OPC,而且NET OPC具有更好的性能和更强的功能,我们推荐使用NET OPC来访问WinAC控制器的数据。安装WinAC Basis 4.1WinAC Slot 3.4时,并不会自动安装WinAC Computing,如果需要安装WinAC Computing,可打开WinAC安装盘上的“WinCP”文件夹,运行此文件夹下的“Setup.exe”进行安装。

3.1 WinAC Computing设置

1. 设置Computing的访问接口

使用WinAC Computing前,应对Computing的访问点进行设置。启动SIMATIC NET下的设置程序“Configuration Console”,选择“Access points”,双击右边数据窗口的“Computing”行,从打开的对话框中选择“PC internal(local)”,单击“OK”关闭对话框,结果如图3.1所示。

WinAC控制器和WinAC Computing可以安装在不同的PC机上,以支持远程访问WinAC 控制器的数据。不论WinAC控制器与WinAC Computing是否安装在同一PC机上,都要将Computing的访问接口设成“PC internal(local)”。

2. Computing Configuration

使用WinAC Computing OPC Server前应设置OPC服务器。

点击start->Simatic->PC Based Control->Computing Configuration

打开Computing的设置程序,在“OPC”选项卡上有一连接选择项,选择是通过变量文件连接还是直接连接,如图3.2所示。如果通过标签文件连接,在这之前还应使用“Computing TagFile Configurator”创建标签文件。选择直接连接有两项内容要求输入:

Computer name: 此处输入的是被访问的WinAC控制器的计算机名,也可以是计算机的IP地址,如果访问本机WinAC控制器的数据,“Computer name”的值也可以是“<Local>”。

Control Engine: WinAC控制器的类型。

WinAC Basis: 输入 “WinLC”。

WinAC RTX: 输入“wcS7=2”。

WinAC Slot: 输入“wcS7=3”。

3.1 设置WinAC Computing的访问接口

3.2设置OPC 的连接选项

3.2的设置值表示:通过Computing OPC方式访问WinAC数据时,它访问的是本机上的WinAC Basis控制器中的数据。

Computing Configuration”程序的选项卡“Computing”在新的版本中已不使用。

3.2 组态标签文件

使用标签文件不但可以采用符号的方式访问WinAC控制器中的数据,还可以使用OPC客户端程序访问多个WinAC控制器中的数据。我们举一个例子,首先在Step7中定义了如图3.3所示的符号表。

3.3 Step7 的符号表

然后,在WinAC中建立组态标签。单击“PC Based Control”下的“Computing TagFile Configurator”,打开WinAC的符号表编辑器,程序自动新建一个标签文件。右键单击此标签文件视图窗口的左边,从弹出菜单中选择“Insert Program”,打开选择step7源程序的对话框,从中选择要进行WinAC符号标定的程序,单击按钮将文件选入右边窗口。结果如图3.4的底层窗口所示,从中可以看到Step7符号表中的变量已包含其中。右键单击窗口左边的文件“COC-SLOT34_WinLC,从菜单中选择“Edit,打开“control Engine Configuration”对话框,按照3.1节描述的方法设置计算机名和控制器,如图3.4中的顶层窗口所示的。

3.4 组态标签文件

如有需要可以添加新的文件(在同一标签文件下)并进行设置,完成后存盘退出。标签文件的扩展名为.tsd。标签文件创建后便可与图3.2中的标签源文件连接,之后可以通过符号的方式访问WinAC控制器中的数据。

为了说明本章后面部分的内容,我们举一个例子,其中系统组态同第二章。在Step7中编写一段代码,其完成的功能是:当I0.01(true)时,每一秒钟将mw10的值加1。当mw10=10000时,将mw100清零。

OB1循环中的代码:

3.3 Computing SoftContainer

Computing SoftContainer为一OLE容器,在它的窗体上只能放置WinAC Computing提供的ActiveX控件。使用Computing SoftContainer可以生成简单实用的HMI界面窗口。

运行程序组PC Based Control”下的程序Computing SoftContainer。在Computing SoftContainer的工具栏上除了常规的按钮以外还有WinAC Computing所带的ActiveX控件图标,这些ActiveX控件还可用在可作为OLE容器的程序上,如Visual BasicWinCC等。

S7WCPanel: WinAC操作面板控件。

S7Data: WinAC控制器数据访问控件。

Dbuffer: 诊断缓冲区。

此外还有用于显示和操作数据的控件。下面的步骤描述如何在窗体上显示上节的i0.0

mw10两个数据。

(1) 在窗体上添加一个S7Data,一个Button和一个Edit

(2) 双击窗体上的S7Data1对象,从弹出的窗口中选择“Engine”选项卡。

(3) 选中通过标签文件进行连接,并选择上节保存的文件名作为标签文件。如图3.5

示。

4.选中Connections选项卡,分别设置对象Button1Edit1value属性值。这里我们将Button1value设成“COC-SLOT34_WinLC.inc_button(即I0.0,Edit1value值设成“COC-SLOT34_WinLC.one_sec_inc(MW10)。结果如图3.6所示。单击“OK”退出设置窗口。

3.5 选择连接方式为标签连接

3.6 设置对象的value属性值

(5) 鼠标单击工具栏上的按钮,运行程序,结果如图3.7所示。

Edit1对象中显示MW10的计数值,Button1对象表示I0.0的状态,还可以用鼠标操作改变I0.0的状态,用键盘输入更改MW10的值。

其它控件的使用方法可参考WinAC Computing手册。

3.7 Computing SoftContainer的运行效果

3.4通过OPC方式访问WinAC中的数据

OPC即基于过程控制的OLE。从2.0版本开始,OLE基于微软的COM(组件对象模型)技术,所以OPC也基于COM技术。WinAC支持WinAC Computing OPC SIMATIC NET OPC。编写同一功能不同OPC服务器的OPC客户端程序大体相同。SIMATIC NET OPC提供DA(数据访问)A & E(报警和事件)服务;Computing OPC提供DA服务。SIMATIC的这两个OPC服务器都支持定制接口和自动化接口,定制接口只支持用C/C++编写的客户应用程序,自动化接口则支持更上层的应用,如Visual Basic以及Excel等支持VBA的所有应用程序。两种接口的数据访问服务都支持用同步和异步的方法读取数据。

在下面的三节中,我们将分别介绍如何使用WinAC Computing控件,WinAC Net OPC控件,以及通过编写WinAC ComputingWinAC Net OPC客户端程序代码(不调用控件)访问WinAC的数据。

3.5Visual Basic中使用WinAC Computing的控件

WinAC ComputingActiveX有许多方法和属性,在高级语言中可很容易的使用这些控件。

本节描述如何在Visual Basic 6.0中使用WinAC的数据访问控件。

打开Visual Basic 6.0,右键单击控件工具栏的空白处,从弹出菜单中选择“Component”,打开“Components”对话框,选择如图3.8所示的Computing控件。

3.8VB中安装ActiveX控件

单击OK”关闭对话框后在控件栏上将添加刚才所选的控件。在窗体上添加一个S7Data对象,以及一些按钮、文本框,和一个列表框来实现下列例子程序,设计窗体见图3.9。在编写代码前,还必须设置S7Data1对象的属性,在图3.5所示的“Engine”选项卡上,我们这一次选择直接连接。PC Name设为“<Local>”,Control Engine设为“WinLC”。

3.9 VB的设计窗体

1. 读变量的操作

Private Sub btnRead_Click()

Dim r1, state1 As Long

'下面的语句为读变量,第一参数为变量的地址,第二个参数存放结果

r1 = S7Data1.ReadVariable("mw10:int", v1, state1, 0)

'txtReadTextBox的对象

txtRead.Text = v1

End Sub

2. 写变量的操作

Private Sub btnWrite_Click()

Dim r1 As Long

v1 = txtWrite.Text

'第一参数为变量的地址,第二个参数存放结果

r1 = S7Data1.WriteVariable("mw10:int", v1, 0)

End Sub

3. 读取多个在step7中有连续存储位置的操作

Private Sub btnArrayRead_Click()

Dim r1, state1 As Long

'3个实数

r1 = S7Data1.ReadVariable("md100:real[3]", v1, state1, 0)

List1.Clear

For i = 0 To 2

List1.AddItem ("md" & 100 + i * 4 & "= " & v1(i))

Next i

End Sub

4. 读取多个在step7中有连续存储位置的操作

Private Sub btnArrayWrite_Click()

Dim r1 As Long

Dim v1(3) As Variant

For i = 0 To 2

v1(i) = txtArrayWrite.Text

Next i

'3个实数

r1 = S7Data1.WriteVariable("md100:real[3]", v1, 0)

End Sub

5. 一次读多个不连续的变量

Private Sub btnReadMul_Click()

Dim name1(3) As String

name1(0) = "m0.0:bool"

name1(1) = "mw10:int"

name1(2) = "md100:real"

'一次读多个变量函数

r1 = S7Data1.ReadMultiVariables(name1, v1, state1)

List1.Clear

For i = 0 To 2

List1.AddItem (name1(i) & "=" & v1(i))

Next I

6. 一次写多个不连续的变量

Private Sub btnWriteMul_Click()

Dim r1 As Long

Dim v1(3) As Variant

Dim name1(3) As String

name1(0) = "i0.0:bool"

name1(1) = "mw10:int"

name1(2) = "md100:real"

v1(0) = False

v1(1) = 100

v1(2) = 9.999

r1 = S7Data1.WriteMultiVariables(name1, v1, state1)

End Sub

7. 变量有变化时作出反映

步骤1. 右键单击窗体上的S7Data1对象,从弹出菜单中选择“Properties”。打开S7Data1对象的属性设置对话框,选择“Event”选项卡上的“S7Data1,单击按钮“Add,添加一变量的别名,回到“Event”选项卡,选择刚创建的变量别名,在窗口右边的“Assigned Variable”编辑框中输入要监控变量的地址,如“mw12”,如有需要可修改刷新时间和死区。按同样的方法添加另一监控的变量,结果如图3.10所示。单击“OK”关闭对话框。

3.10 监控变量值变化事件

步骤2. 在代码窗口的对象组合框中选择“S7Data1”,事件组合框中选择“ValueChanged”,添加事件处理程序代码如下。

Private Sub S7Data1_ValueChanged(ByVal Property As String, ByVal VarName As String,

ByVal Value As Variant, ByVal Quality As Integer)

If VarName = "mw12" Then

MsgBox "mw12 changed"

ElseIf VarName = "mw14" Then

MsgBox "mw14 changed"

End If

End Sub

3.6 SIMATIC NET OPC控件

可以使用相同的接口来访问S7-300/400WinAC控制器,即SIMATIC NET OPC。通过NET OPC来访问WinAC的数据不需要另外的授权和硬件。NET OPC除了提供定制和自动化接口来访问控制器的数据外,还提供一个ActiveX控件方便使用。

SIMATIC NET提供一个工具OPC Scout,它是一个简单的SIMATIC OPC客户端工具软件,可浏览存在的SIMATIC OPC服务器名称、添加OPC组、添加项、监控项值等功能。

在图3.8所示的添加控件窗口中添加名称为“SMIATIC NET OPC DATA”控件。

在窗体上添加一个DatCon对象DatCon1以及若干按钮、文本编辑框对象、列表框。打开DatCon1的属性设置窗口,选择“OPC Server”选项卡,Server编辑框中输入OPC服务器名称“OPC.SimaticNet”(“OPC.SimaticNet”是SIMATIC NET作为OPC SERVER的服务器主件的名称), Node编辑框中输入计算名“COC-SLOT34”,如图3.11所示。

3.11 设置NET OPC DATA控件的服务器和计算机名

1. 读数据

Private Sub btnRead_Click()

Dim r1, q1 As Long

Dim strname(2) As String

Dim time1 As Date

‘读单个变量

r1 = DatCon1.ReadVariable("S7:[S7 connection_1]MINT10,1", v1, q1, time1)

Text1.Text = v1

‘读多个变量

strname(0) = "S7:[S7 connection_1]MINT10,3"

strname(1) = "S7:[S7 connection_1]db1,REAL0,3"

r1 = DatCon1.ReadMultiVariables(strname, v2, e2, q2, time1)

for i=0 to 2

for j=0 to 2

list1.AddItem(v2(i)(j))

Next j

Next i

End Sub

读取变量的格式为S7:[连接名]数据区 数据类型 起始地址,数量”

连接名在网络组态时已确定,在图2.18中的连接名为“S7 connection_1”。

"S7:[S7 connection_1]MINT10,3" 表示读取mw10开始的3个整数值。

"S7:[S7 connection_1]db1,REAL0,3" 表示读取db1.dbd0 开始的3个浮点数值。

2.写数据

Private Sub Command2_Click()

Dim r1 As Long

Dim e2, q2 As Variant

Dim strname(2) As String

Dim v2(2) As Variant

strname(0) = "S7:[S7 connection_1]MINT10,1"

strname(1) = "S7:[S7 connection_1]DB1,REAL0,1"

v2(0) = 100

v2(1) = 2.2

r1 = DatCon1.WriteMultiVariables(strname, v2, e2)

End Sub

3.7 编写WinAC Computing OPCSIMATIC NET OPC客户端程序

要编写OPC客户端程序,先引用OPCDLL文件。单击Visual Basic 6.0菜单“Project->Reference”,打开引用对话框,将“Siemens OPC DAAutomation 2.0”选中。如图3.12所示。如果这个组件没有在列表框出现,可能的原因是组件没有注册,可以使用Windows附带的程序regsvr32.exe进行注册,SIMENS OPC自动化组件包含在SOPCDAAuto.DLL库中。

编写这两种OPC的客户端程序只有两项不同,一个是服务器名称,另一个是项名称(可以认为是变量名”)

Computing OPC的服务器名称为“OPCServer.WinAC”。

Simatic NET OPC的服务器名称为“OPC.SimaticNET”。

Simatic NET OPC的项名称和在3.6节中描述的类似,形如:

Set ItemObj1 = GroupObj.OPCItems.AddItem("S7:[S7 connection_1]MINT10", 1)

Set ItemObj2 = GroupObj.OPCItems.AddItem("S7:[S7 connection_1]DB1,REAL0", 2)

Computing OPC的项名称在3.5节有介绍,形如:

Set ItemObj1 = GroupObj.OPCItems.AddItem("MW10:INT", 1)

Set ItemObj2 = GroupObj.OPCItems.AddItem("DB1.DBD0:REAL", 2)

3.12 引用SIEMENS OPC 数据访问自动化组件

在安装Simatic NET的目录下(c:\programfiles\siemens\simatic.net\opc2\samples)下有如何编写OPC客户端程序的例子程序。

文章图片来源于网络
免责声明: 凡注明来源“易卖工控网”的所有作品,均为本站合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本站作品均来自互联网,转载目的仅作为互联网信息传播之用,并不代表本网赞同其观点和对其真实性、完整性、及时性不作任何保证或负责。

热门品牌新闻
最新品牌新闻
相关资讯
产品推广
为您推荐“西门子”相关产品