OPC技术在HMI中的应用 您所在的位置:网站首页 mox系统作为opc服务器 OPC技术在HMI中的应用

OPC技术在HMI中的应用

2023-08-07 13:57| 来源: 网络整理| 查看: 265

OPC技术在HMI中的应用

时间:2015-08-04 15:31:52来源:马磊 吕多勇 孙莉

导语:​本文介绍OPC技术的基本原理,重点论述了以VB6.0为基础开发OPC客户端,通过OPC Server访问三菱FX1N PLC内部多种软元件的方法。

摘要:本文介绍OPC技术的基本原理,重点论述了以VB6.0为基础开发OPC客户端,通过OPCServer访问三菱FX1NPLC内部多种软元件的方法。

关键词:OPC;FX1N;通讯

一引言

随着工业生产中自动化程度的不断加深,DCS、PLC和其他智能仪器仪表的应用越来越多。但是,通常来自不同的厂商的工控产品采用的通讯协议和通讯方式不同,造成了它们相互之间的通讯非常复杂。因此我们在用高级编程语言做HMI(HumanMachineInteface)的时候不得不把很多的精力放到驱动程序的选择和通讯协议的编程中去。如果底层的硬件结构发生变化,这样使得HMI的升级和维护极其不便。因此,如何方便、有效、可靠、实时和高速地从各种自动化设备上取得所需要的各种实时数据成为我们面前的一大难题。

计算机技术的发展为解决这个难题提供了技术基础。1996年,一些世界上占领先地位的自动化系统和硬件、软件公司(包括Rockwell,Siemens等)与微软(Microsoft)紧密合作,成立了OPC基金会,推出了OPC数据访问标准版1.0。

二OPC简介

OPC是ObjectLinkingandEmbedding(OLE)forProcessControl的缩写,由OPC基金会负责OPC规范的制定和发布。OPC提出了一套统一的标准,采用CLIENT/SERVER模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口的SERVER程序,软件厂商按照OPC标准访问SERVER程序,即可实现与硬件设备的通信。

OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。

应用程序与OPC服务器之间必须有OPC接口,OPC规范提供了两套标准接口:Custom标准接口和OLE自动化标准接口,如图2.1所示。通常在系统设计中采用OLE自动化标准接口。

图2.1OPC接口

OPC标准规定了基本OPC对象有三个:OPCServer、OPCGroup和OPCItem。

图2.2OPCServer的对象模型

OPC的数据采集方式有三种方式:订阅,同步和异步。

订阅方式是OPCServer周期性地扫描缓冲区的数据,如果发现数据变化超过一定的幅度时,则更新数据缓冲器,并自动通知OPCClient。这样OPCClient就可以自动接到OPCServer送来的变化通知的订阅方式数据采集(Subscription)。订阅式数据采集方式实际上也属于异步读取方式的一种。

同步方式是OPCServer把按照OPCClient的要求得到的数据访问结果作为方法的参数返回给OPCClient,OPCClient在结果被返回之前必须处于等待状态。

异步方式是OPCClient向OPCServer的发出要求后,立即返回,OPCClient随后可以进行其他处理。当OPCServer完成数据访问时,OPCServer主动触发OPCClient的异步访问完成事件,将数据访问结果传送给OPCClient。

通过以上的介绍可以看出在开发OPCClient程序时,实现异步方式和订阅式方式比同步通信复杂,但OPCClient的请求数大大减少,有效降低了对服务器的重复访问次数,对于数据量很大时,异步或者订阅式数据采集方式是最适宜的。同步方式适合OPCClient与OPCServer之间的数据交换比较少的场合。

本文采用订阅方式访问OPCServer。

三OPCServer的配置

我们选择Kepware公司的KepwareEXOPCServer作为OPC服务器。KepwareEXOPCServer内置了三菱的FX系列PLC的驱动,我们要首先配置OPC服务器。

1、运行KepwareEXOPCServerOPC,新建一个“Channl1”。然后再配置“Channel”,接下来的画面中选择“DeviceDriver”为“MitsubishiFX”,然后再设置通讯,如图3.1所示。

图3.1设备的选择和通讯端口的设置

2、增加一个Device,命名为“Device1”,“DeviceModel”选择“FX”。

至此,我们的OPCServer配置完成。为保证我们的设置正确,请用KepwareExOPCServer自带的OPCclient(“请单击工具栏的”)测试我们的配置是否正确。

四、用VB6.0实现OPCClient

1、建立新工程,在“工程”菜单下选择“引用”,如图4.1所示。选择“OPCDAAutomationWrapper2.02”。

图4.1

当我们安装好KepwareEx后,它会在“引用”中添加一个“KepwareOPCAutomation2.0”的项,它是Kepware公司根据OPC基金会发布的规范自己开发的自动化程序接口。“KepwareOPCAutomation2.0”不仅具有“OPCDAAutomationWrapper2.02”的全部功能,而且由于Kepware公司对硬件特征比较了解,从而能够最大限度地挖掘硬件的潜力,全面支持硬件特性,提高驱动程序的性能。但在本例中我们选择“OPCDAAutomationWrapper2.02”。

2、由于OPC自动化接口的数组的索引要求必须从1开始,而系统默认是从0开始,为了避免错误要在代码的最初加上“OptionBase1”语句。为了使对象可以处理事件,必须将objTestGrp和objServer的声明中加上“WithEvents”语句,表示声明的对象可以响应事件。如下

OptionExplicit

OptionBase1

DimWithEventsConnectedOPCserverAsOPCServer’定义OPCServer

DimConnectGroupsAsOPCGroups’定义OPCGroups

DimWithEventsConnectGroupAsOPCGroup’定义OPCGroup

DimOPCItemsAsOPCItems’定义OPCItems

初始化各种OPC对象

IfConnectedOPCserverIsNothingThen

SetConnectedOPCserver=NewOPCServer‘实例化OPCServer对象

ConnectedOPCserver.Connect"KEPware.KEPServerEx.V4"’通过connection方法连接到

ElseKepwareExOPCServer

ExitSub

EndIf

IfConnectGroupsIsNothingThen

SetConnectGroups=ConnectedOPCserver.OPCGroups‘增加组集合对象

'ConnectGroups.DefaultGroupIsActive=True

ConnectGroups.DefaultGroupDeadband=0

Else

ExitSub

EndIf

IfConnectGroupIsNothingThen

SetConnectGroup=ConnectGroups.Add("Group1")’增加组对象

ConnectGroup.UpdateRate=100‘设置更新周期为100ms

ConnectGroup.DeadBand=0’设置组的死区

ConnectGroup.IsActive=True’设置组为活动的

ConnectGroup.IsSubscribed=True‘启用订阅方式。它决定DataChange事件是否发生

Else

ExitSub

EndIf

IfOPCItemsIsNothingThen

SetOPCItems=ConnectGroup.OPCItems‘为组增加标签集合

Else

ExitSub

EndIf

DimiAsInteger

DimDataType(10)AsInteger

Fori=0To9

OPCItemIDs(i+1)="Channel1.Device1.D0"

ClentHangles(i+1)=i

DataType(i+1)=11

Nexti

OPCItemIDs(8)="Channel1.Device1.D8124"‘此名称要与OPCServer中定义的名称相同

DataType(8)=2

OPCItemIDs(9)="Channel1.Device1.T0"

DataType(9)=2

OPCItemIDs(10)="Channel1.Device1.D2"

DataType(10)=3

OPCItems.AddItems10,OPCItemIDs,ClentHangles,ItemServerHandles,ItemServerErrors,DataType’增加

标签

组的DataChange事件的处理

SubConnectGroup_DataChange(ByValTransactionIDAsLong,ByValNumItemsAsLong,ClientHandles()As

Long,ItemValues()AsVariant,Qualities()AsLong,TimeStamps()AsDate)

DimiAsInteger

List1.Clear

Fori=1ToNumItems

List1.AddItemItemValues(i)

Nexti

EndSub

经过简单的设置后,我们可以在图4.2中看到结果。

图4.2

五结论

OPC技术的使用,使得工控软件的设计人员从繁琐的通讯协议和硬件驱动中解放出来,仅需要一个OPC接口就可以访问硬件设备而不需要考虑硬件设备的提供厂商,可以使他们更专心的进行HMI的设计;同时降低了硬件厂商的驱动开发成本,是硬件厂商仅提供一个OPCServer就可以满足用户的各种需求。OPC技术促进了工控领域内信息的共享和控制系统的开放,为HMI软件的编写提供了一种新的解决方案和技术思路。

参考文献

[1]王栋,VisualBasic6.0程序设计实用教程[M],清华大学出版社,2003

[2]DataAccessAutomationInterfaceStandardVersion2.02,OPC基金会

[3]三菱FX系列可编程控制器编程手册

[4]詹根基,OPC技术在列车上水控制系统中的应用研究

作者简介:

马磊(1981.10),女(汉族),山东省滨州市邹平县,研究生,讲师,从事自动化专业的教学工作。

标签:

点赞

分享到:

上一篇:2×1600KN尾水门机安全监控系...

下一篇:基于神经网络的开关磁阻电机...

中国传动网版权与免责声明:凡本网注明[来源:中国传动网]的所有文字、图片、音视和视频文件,版权均为中国传动网(www.chuandong.com)独家所有。如需转载请与0755-82949061联系。任何媒体、网站或个人转载使用时须注明来源“中国传动网”,违反者本网将追究其法律责任。

本网转载并注明其他来源的稿件,均来自互联网或业内投稿人士,版权属于原版权人。转载请保留稿件来源及作者,禁止擅自篡改,违者自负版权法律责任。

相关资讯

TopCon光伏电池的碱性抛光和酸性抛光的区别什么是TOPCon电池?TOPCon光伏电池有哪些优势?MQTT和OPCUA有什么区别?工业通讯新视野-PROFINET + OPC UA=奥迪的预测性维护开放的标准驱动工业物联网的发展——OPC UA+TSN、M...DCS统一规定07-AMS&OPC


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有