




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WinCC 是西门子公司在自动化领域采用最先进的技术与微软公司在共同开发中心)。WinCC 是一个功能强大的全面开放的监控系统,既可以用来完成小规模 的简单的过程监控应用,也可以用来完成复杂的应用。在任何情况下 WinCC 都可 以生成漂亮而便捷的人机对话接口,使操作员能够清晰地管理和优化生产过程。它集成的 OPC(OLE for process control) 服务器使得过程数据可由其它应用程序(OPC 客户机)访问。WinCC 在安装时提供了 OPC 的客户端控件:Siemens OPC DAAutomation2.0( SOPCDAAuto.dll),在 WINCC 勺帮助中,有 Si
2、emens OPCDAAutomation 2.0 使用的简略帮助,但说得不很详细,我在使用 VB6.0 开发 WinCC 勺 OPC 客户机中 碰到不少问题,现一并写出来,与大家共享。希望起到抛砖引玉,举一反三的作 用。一、开发实例背景:我厂包装机 BE 电气改造后,由原来了单片机、直流调试板、 温度控制板等控制改为带有通讯端口 PLC 变频器、温控仪等控制,上位机监控 软件为WinCC 在控制系统中,变频器、温控仪的控制信号通过串口、OPC 客户的居于世界领先地位的工控软件WinCC 即 WINDOW CSO NTROCENTEFR 视窗控希 9机接入上位机 WinCC 报警信号接入 PL
3、C 其硬件组态结构如图一图一VinCC中硬件组亦OPCSS构OPC 开发要求:通过WinCC 建立内部变量 Tag,Tag(2),Tag(3),Tag;在视图窗口建立相应了 I/O 输入输出域。通过更改 WinCC 中 I/O域的值,来设定或更改变频器、温控仪等的参数。通过 VB 开发了串口 驱动程序,读取变频器、温控仪等的参数,通过 OPC 控件把值传递给 WinCC 中的;CP6lH|辔沁址!I/O 域。、VB6 开发 WinCC 勺 OPC 客户机具体步骤:1、打开 VB6 建立如图二窗体:图二、0PC窗体其中,文本框组 Text4.text 为写入 WinCC 内部变量名称;文本框组T
4、ext5.text 为显示相应了 WinCC 内部变量值;文本框组 Text8.text 为写入期望了 WinCC 内部变量值。单选框为 OPC 连接成功标志。3 个命令按钮分别为“连接”,“断开”,“退出”2、OPC 勺连接先在工具栏中“工程 引用”将近 Siemens OPCDAAutomation 2.0 加入, 然后开始定义全局变量。在本程序中,我使用了一个 OPC 组进行 OPC 访问,所以 定义了全局变量。我们要首先定义 OPC 服艮务类型与计算机结点名。定义 OPC&与 OPC标签组。并定义 OPC 勺标签数组与值数,注意,值数组一定要设为 Variant。Opti on
5、 ExplicitOption Base 1这数组必须由 1 开始,不能由 0 开始Const ServerName = OPCServer.WinCC OPC 的类型Dim NodeName As String 结点名,即计算机名ItemIDs(ii) = Text4(ii).Text指明 WinCC 内部变量名称Dim WithEve nts MyOPCServer As OPCServer OPC 服务Dim WithEve nts MyOPCGroup As OPCGroup OPCIDim MyOPCGroupColl As OPCGroupsDim MyOPCItemColl As
6、 OPCItems OPC 标签组Dim MyOPCItems As OPCItemsDim MyOPCItem As OPCItemDim ClientHandles(1) As Long 句柄Dim ServerHandles() As LongDim Errors() As LongDim ItemIDsAs String记录 OPC 的标签Dim ItemIDsValueAs Variant 存放 OPC 的值Dim GroupName As Variant在定义所有变量后,我们就要进行 OPC 连接了,要进行 OPC 连接之前,先要 配置要访问的 OPC 标签名(即 WinCC 内部
7、变量名),我们 ItemIDs 中加入相应的 标签名,注意:这数组必须由 1 开始,不能由 0 开始。配置好标签后就要进行 OPC 连接了。如下面子程序: ClientHandles1 先 配置名柄索引,这将在读取 OPC 标签的值时可要用到。生成 OPC 对象,进 行 OPC标签连接此,OPC 连接就成功了,我们可以对 OPC4行读与写的操作了。Private Sub Command1_Click()Dim ii As IntegerDim ClientHandles1(4) As LongFor ii = 1 To 4ClientHandles1(ii) = iiNext iiOn Err
8、or GoTo ErrorHandlerGroupName = MyGroupNodeName = Text1.Text 结点名,即计算机名Set MyOPCServer = New OPCServerMyOPCServer.Connect ServerName, NodeNameSet MyOPCGroupColl = MyOPCServer.OPCGroupsMyOPCGroupColl.DefaultGroupIsActive = TrueSet MyOPCGroup = MyOPCGroupColl.Add(GroupName)Set MyOPCItemColl = MyOPCGrou
9、p.OPCItemsFor ii = 1 To 4ClientHandles1(ii) = iiItemIDs(ii) = Text4(ii).TextMyOPCItemColl.AddItems 4, ItemIDs, ClientHandles1, ServerHandles,Errors 初始化 OCF 连接Next iiMyOPCGroup.IsSubscribed = TrueOption1.Value = True 连接成功标志Exit SubErrorHandler:MsgBox Error: & Err.Description, vbCritical, ERROR连接发
10、生错误End Sub 3、OPC 勺标签读写对 OPC 标签的读可以通过 ltemlDsValue(4)组的 DataChange 事件来读取。该事件有多个参数:其中 Numitems 是指标签改变值的个数,Clie ntHa ndles 是 改变值的标签索引, ItemValues 为改变值的数据, 具体的意思是 ClientHandles(ii )的值是其对应的标签数组的索引,其所指的 OPC 标签的值在 ItemValues(ii) 中。一般来说,刚连接上时,该事件会把全部所要求访问的 OPC 标签值全部读取 过来(顺序不一,要通过 ClientHandles 索引),此后只有数据发生变
11、化时才会 触发该事件。也只会传输发生了变化的数据, 没有变化的数据不会出现在本事件 的 ItemValues 中。读取Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByValNumItems As Long, ClientHandles() As Long, ItemValues() As Variant,Qualities() As Long, TimeStamps() As Date)Dim ii As LongFor ii = 1 To 4ItemIDsValue(ClientHandles(ii) = It
12、emValues(ii)对改变的值读入本数组Text5(ClientHandles(ii).Text = ItemIDsValue(ClientHandles(ii)Next iiEnd Sub写入Private Sub Text8_Change(Index As Integer)Dim valuess(4) As VariantDim ii As LongFor ii = 1 To 4valuess(ii) = Text8(ii).TextMyOPCGroup.SyncWrite 4, ServerHandles, valuess, ErrorsNextEnd Sub对 OPCl 勺写可以有
13、同步与异步之分, 对于大量的数据传输, 异步是更佳的选 择,但对少量的数据传输,同步表现得更好。4、OPC 连接断开。OPC 客户端连接后要占用服务器资源,所以如果不需要使用OPCC 寸, 必须进行 OPC 连接断开。断开的程序相当简单,释放资源即可。如下:Private Sub Command2_Click()On Error Resume NextMyOPCGroupColl.RemoveAll - 释放组和服务器对象MyOPCServer.Disconnect- 与服务器断开连接并且清除Set MyOPCItemColl = NothingSet MyOPCGroup = Nothing
14、Set MyOPCGroupColl = NothingSet MyOPCServer = NothingOption1.Value = False 连接成功标志End Sub至此,用 VB 6.0 开发 WinCC 的 OPC 客户机开发完毕。三、测试运行 在使用中,通过串口读取过来了值(例如温控器的实际温度)可以赋给 VB的变量(例如 Text8(0).text )。通过 Private Sub Text8_Change(Index AsInteger)函数,当串口读取了值有变化时,在 WinCC 组态界面中实际值 I/O 域中,就可以看到其实际值了( Tag(1)。也可通过 WinCC 勺组态界面对设定值 I/O域中进行参数设定,通过上述程序的Private Sub MyOPCGroup_DataCha nge(ByVai TransactionID As Long, ByVai NumItems As Long, ClientHandles()As
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地综合整治投标方案
- 沉井施工期质量检验与评定合同
- 婚姻解除后财产分割与经济补偿协议范本
- 防汛围栏井安装方案
- 拦污栅项目规划方案
- 乡村网络面试题及答案
- 内外踝骨折护理常规
- 天花玻璃安装方案
- 金融创新:厂房股权转让与融资租赁一体化合同
- 2026版《全品高考》选考复习方案生物0420 课时作业(十九) 细胞的分化、衰老、死亡 含答案
- 生物必修1教师用书
- 工程合同平移协议
- 园艺植物育种学知到课后答案智慧树章节测试答案2025年春浙江大学
- 《电力机车制动系统检修与维护》课件 项目二任务四检修中继阀
- GB/T 15683-2025粮油检验大米直链淀粉含量的测定
- 2025吉林省安全员C证考试(专职安全员)题库及答案
- 电钻清洗消毒流程
- 装修贷款申请书
- 造林安全文明施工方案
- 员工作风培训
- 施工现场防扬尘、防噪音、防光污染措施
评论
0/150
提交评论