您好,欢迎访问三七文档
工业以太网数据交换简介北京科技大学自动化系企业信息化网络架构数据交换问题工业现场不同的控制系统间数据如何进行通讯?常用的解决方案DDE(DynamicDataExchange)设备或软件提供方专有的通信接口OPC(OLEforProcessControl)OPC的目的企业信息化网络系统中,从处理设备数据的现场总线层,到进行过程处理的监控层,以至生产管理层,建立一个有效的数据交换工业标准。利用驱动程序的数据利用OPC的数据通讯系统OPC的历史OPC标准是由提供工业制造软件的5家公司所组成的OPC工作小组1995年开发的。Fisher-RosementIntellutionRockwellSoftWareIntuitiveTechnologyOpto22微软作为技术顾问给予支持。OPC的历史1996年9月OPC基金会在美国达拉斯举行第一次理事会,同年10月在美国的芝加哥举行第一次全体大会上正式宣告成立。1996年8月完成OPC数据访问标准版本1.0。OPC的历史目前OPC基金会的理事由如下公司组成:Fisher-RosementHoneywellIntellutionRockwellSoftWareNationalInstrumentSiements(欧洲代表)东芝(远东代表)OPC的历史1996年10月成立日本OPC协会。几乎同时OPC欧洲协会成立。中国在2001年12月成立了中国OPC促进会,由5家公司组成:Intellution公司NI(中国)公司西门子(中国)有限公司爱默生过程管理(中国)公司北京华富惠通技术有限公司OPC的历史300家加入OPC标准组织。600种以上的OPC服务器产品和OPC应用程序产品。目前大部分HMI软件都带有OPC服务器,和OPC客户程序。如WinCC、iFix、KingVIEW等。OPC标准标准版本内容DataAccess1.0A、2.0正在开发3.0数据访问标准AlarmEvents1.0正在开发2.0报警和事件的标准HistoricalDataAccess1.0历史数据访问标准Batch1.0批处理的标准Security1.0安全性标准Compliance1.0数据访问标准的测试工具OPCXML正在开发过程数据的XML标准OPCDataeXchage正在开发服务期间数据交换标准OPC简介微软公司的组件对象模型(ComponentObjectModelCOM)技术。其特点是:COM是两个软件组件间数据交换的一种机制,而不管这两个软件使用什么语言开发的;COM服务器:提供数据的数据源,根据COM客户的要求提供COM服务;COM客户程序:数据的使用者。OPC简介DCOM(DistributedComponentObjectModel)分布式才COM技术。OPC简介COM技术的出现为控制设备与设备之间、控制设备与控制管理系统之间的数据交换提供了一种简单的实现方式。但如果没有一个工业标准化的COM接口,各设备厂家开发的COM组件间的连接依然困难。OPC是作为工业标准定义的特殊的COM接口。OPC好处设备开发者:可以使设备驱动程序单一化。应用软件开发者:可以使用通用的开发工具,不必特别开发接口,使设备接口的开发简单易行。用户:可以使用各种商业软件包,降低系统构成的成本。同时可以方便的使用不同设备厂商的设备。OPC好处在OPC技术出现前,DDE在控制系统中使用最多的数据交换技术。DDE是基于Windows的消息传递建立的技术,所以DDE技术存在以下问题。数据的传送速度较慢;没有安全机制;开发困难;功能缺乏柔软性;可靠性难令人满意。OPC好处与DDE相比OPC有如下的优越性:高速的数据传送性能;基于分布式COM的安全管理机制;开发成本降低;可以实现高度柔软性的系统;高可靠性。OPC好处OPC问题?COM程序设计的难度较大,是否给OPC的应用带来困难?OPC服务器的设计确实需要深入理解和掌握COM技术,但目前有许多开发工具包,可以不需要多少COM知识的情况下开发OPC服务器。客户端的程序开发同样不需要太多的COM知识。大多数应用软件都带有OPC接口。OPC应用的场合OPC同步数据访问处理OPC异步数据访问处理OPC订阅方式数据采集VB的对象VB是一个”伪OOP”开发工具;一般VB的对象是由系统提供或其他软件开发商提供的;可以将对象看成作为一个单位处理的代码和数据集合;对象一般可以通过属性来规定自己的形状、色彩等外貌特征;通过方法来进行交互操作;通过事件来触发处理程序;VB的对象属性设定的一般格式:《对象名称》.《属性名》=属性值方法的使用类似VB的一般过程:《对象名称》.《方法名》(参数)事件是一段处理程序的入口:PrivateSubbtnAddItem_Click()CallAddItemEndSubVB的对象集合集合对象:VB提供的一种特殊的对象,其为一个对象的容器。一般都有:Count属性Add方法Remove方法Item方法使用VB开发OPC应用程序OPC应用程序首先生成OPC服务器支持的OPC对象,然后可以使用OPC对象支持的属性和方法对其进行操作。一个OPC程序可以和多个OPC服务器连接。OPC对象的层次结构开发OPC应用程序的步骤建立一个VB工程;在工程中注册OPC的DLL选择菜单Project/References;得到References窗口;在AvailableReferences列表中选中OPCAutomation2.0;单击OK按钮。开发OPC应用程序的步骤建立OPC对象-声明变量DimWithEventsobjServerAsOPCServerDimobjGroupsAsOPCGroupsDimWithEventsobjTestGrpAsOPCGroupDimobjItemsAsOPCItemsDimlServerHandles()AsLong开发OPC应用程序的步骤定义变量DimlTransID_RdAsLongDimlCancelID_RdAsLongDimlTransID_WtAsLongDimlCancelID_WtAsLong开发OPC应用程序的步骤连接OPC服务器:SubConnect(strProgIDAsString,OptionalstrNodeAsString)IfobjServerIsNothingThen'建立一个OPC服务器对象SetobjServer=NewOPCServerEndIfIfobjServer.ServerState=OPCDisconnectedThen'连接OPC服务器objServer.ConnectstrProgID,strNodeEndIf开发OPC应用程序的步骤IfobjGroupsIsNothingThen'建立一个OPC组集合SetobjGroups=objServer.OPCGroupsEndIfIfobjTestGrpIsNothingThen'添加一个OPC组SetobjTestGrp=objGroups.Add(TestGrp)EndIfEndSub开发OPC应用程序的步骤添加OPC标签:SubAddItem()DimstrItemIDs(8)AsStringDimlClientHandles(8)AsLongDimlErrors()AsLongDimIAsIntegerIfobjTestGrpIsNothingThenExitSubEndIf开发OPC应用程序的步骤IfNotobjItemsIsNothingThenIfobjItems.Count0ThenExitSubEndIfEndIf'设置组活动状态IfDataChgChk.Value=vbCheckedThenobjTestGrp.IsActive=TrueElseobjTestGrp.IsActive=FalseEndIf开发OPC应用程序的步骤'启动组非同期通知objTestGrp.IsSubscribed=True'建立OPC项集合SetobjItems=objTestGrp.OPCItems‘生成从TAG1到TAG8的项标识符ForI=1To8strItemIDs(I)=USTB_AUTO.Simulation0000&IlClientHandles(I)=INext'添加OPC项CallobjItems.AddItems(8,strItemIDs,_lClientHandles,lServerHandles,lErrors)EndSub开发OPC应用程序的步骤断开OPC服务器:SubDisconnect()DimlErrors()AsLongIfNotobjItemsIsNothingThenIfobjItems.Count0Then'清除OPC项objItems.Remove8,lServerHandles,lErrorsEndIfSetobjItems=NothingEndIf开发OPC应用程序的步骤IfNotobjTestGrpIsNothingThen'清除OPC组objGroups.RemoveTestGrpSetobjTestGrp=NothingEndIfIfNotobjGroupsIsNothingThenSetobjGroups=NothingEndIf开发OPC应用程序的步骤IfNotobjServerIsNothingThenIfobjServer.ServerStateOPCDisconnectedThen'断开OPC服务器.objServer.DisconnectEndIfSetobjServer=NothingEndIfEndSub开发OPC应用程序的步骤读OPC服务器的数据SubAsyncRead()DimlErrors()AsLongIfobjTestGrpIsNothingThenExitSubEndIf开发OPC应用程序的步骤IfobjTestGrp.OPCItems.Count0Then'非同期读取lTransID_Rd=lTransID_Rd+1objTestGrp.AsyncRead8,lServerHandles,_lErrors,lTransID_Rd,lCancelID_RdEndIfEndSub开发OPC应用程序的步骤数据变化处理PrivateSubobjTestGrp_DataChange(_ByValTransactionIDAsLong,ByValNumItemsAsLong,_ClientHandles()AsLong,ItemValues()AsVariant,_Qualities()AsLong,TimeStamps()AsDate)DimstrBufAsStringDimnWidthAsIntegerDimnHeightAsIntegerDimnDrawHeightAsIntegerDimsglScaleAsSingleDimIAsIntegerDimindexAsInteger开发OPC应用程序的步骤OnErrorGoToErr'棒图的表示ForI=1ToNumItems'数据的格式化strBuf=Format(ItemValues(I),###.000)'得到客户标识符index=ClientHandles(I)'表示数据字符串lbBar(index).Caption=strBuf开发OPC应用程序的步骤'计算棒的宽和高nWidth=picBar(index).ScaleWidthnHeight=picBar(index).ScaleHeig
本文标题:工业以太网通讯简介
链接地址:https://www.777doc.com/doc-4353326 .html