1、1课程设计-软件设计 工业以太网数据交换简介北京科技大学自动化学院2企业信息化网络架构3数据交换问题l工业现场不同的控制系统间数据如何进行通讯?4常用的解决方案lDDE(Dynamic Data Exchange)l设备或软件提供方专有的通信接口lOPC(OLE for Process Control)5OPC的目的l企业信息化网络系统中,从处理设备数据的现场总线层,到进行过程处理的监控层,以至生产管理层,建立一个有效的数据交换工业标准。lOLE:Object Linking and Embedding 对象连接与嵌入lOLE for Process Control6利用驱动程序的数据通讯7利
2、用OPC的数据通讯系统8OPC的历史lOPC标准是由提供工业制造软件的5家公司所组成的OPC工作小组1995年开发的。lFisher-RosementlIntellutionlRockwell SoftWarelIntuitive TechnologylOpto22l微软作为技术顾问给予支持。9OPC的历史l1996年8月完成OPC数据访问标准版本1.0。l1996年9月OPC基金会在美国达拉斯举行第一次理事会,同年10月在美国的芝加哥举行第一次全体大会上正式宣告成立OPC基金会(OPC Foundation)。10OPC的历史l1996年10月成立日本OPC协会。l几乎同时OPC欧洲协会成立
3、。l中国在2001年12月成立了中国OPC促进会,由5家公司组成:lIntellution 公司lNI(中国)公司l西门子(中国)有限公司l爱默生过程管理(中国)公司l北京华富惠通技术有限公司11OPC的历史l目前OPC基金会的理事由如下公司组成:lFisher-RosementlHoneywelllIntellutionlRockwell SoftWarelNational InstrumentlSiements(欧洲代表)l东芝(远东代表)l OPC规范的制定由来自90多家公司的专家参与,并参考了来自200多个合作伙伴的评论意见,所以具有广泛的代表性。12OPC的历史l300家加入OPC标
4、准组织。l600种以上的OPC服务器产品和OPC应用程序产品。l目前大部分HMI软件都带有OPC服务器,和OPC客户程序。如WinCC、iFix、KingVIEW等。13OPC的发展l从国外来看,许多国际知名的控制类公司如:ABB,AspenTech,Eurotherm,Foxboro,Honeywell,National Instruments,Siemens,Toshiba,Johnson-Yokogawa,GE Fanue等相继宣布支持OPC标准,在自己的产品中增加OPC特性,包括为控制应用软件添加OPC客户端的功能,为现场设备提供OPC服务器等,一些公司还提供了OPC服务器的开发工具软
5、件。14OPC的发展l在国内,OPC技术作为一项工业标准也正在得到逐步的推广和应用,特别是近年来引起了广泛的关注。l在应用方面,中科院沈阳自动化研究所在开发新一代分布式控制系统时就采用了OPC技术,实现了上层应用软件通过OPC服务器访问现场设备信息的功能,同时,己经开发出了OPC数据服务器的开发工具软件 SmartOPC2.0版。还有其他一些公司也开发自己的开发工具软件,例如拓林、安捷尔、林柯、华富惠通。另外其他一些工控软件公司也充分利用OPC技术增强和扩展其软件功能,例如组态王、三维力控等等。15OPC标准16OPC简介l微软公司的组件对象模型(Component Object Model
6、COM)技术。其特点是:lCOM是两个软件组件间数据交换的一种机制,而不管这两个软件使用什么语言开发的;lCOM服务器:提供数据的数据源,根据COM客户的要求提供COM服务;lCOM客户程序:数据的使用者。17OPC简介lDCOM(Distributed Component Object Model)分布式COM技术。18OPC简介lCOM技术的出现为控制设备与设备之间、控制设备与控制管理系统之间的数据交换提供了一种简单的实现方式。l但如果没有一个工业标准化的COM接口,各设备厂家开发的COM组件间的连接依然困难。lOPC是作为工业标准定义的特殊的COM接口。19OPC好处l设备开发者:可以使
7、设备驱动程序单一化。l应用软件开发者:可以使用通用的开发工具,不必特别开发接口,使设备接口的开发简单易行。l用户:可以使用各种商业软件包,降低系统构成的成本。同时可以方便的使用不同设备厂商的设备。20OPC好处l在OPC技术出现前,DDE在控制系统中使用最多的数据交换技术。DDE是基于Windows的消息传递建立的技术,所以DDE技术存在以下问题。l数据的传送速度较慢;l没有安全机制;l开发困难;l功能缺乏柔软性;l可靠性难令人满意。21OPC好处l与DDE相比OPC有如下的优越性:l高速的数据传送性能;l基于分布式COM的安全管理机制;l开发成本降低;l可以实现高度柔软性的系统;l高可靠性。
8、22OPC好处23OPC问题?lCOM程序设计的难度较大,是否给OPC的应用带来困难?lOPC服务器的设计确实需要深入理解和掌握COM技术,但目前有许多开发工具包,可以不需要多少COM知识的情况下开发OPC服务器。l客户端的程序开发同样不需要太多的COM知识。l大多数应用软件都带有OPC接口。24OPC的应用领域1.数据采集数据采集软件:软件:2.历史数据访问历史数据访问:OPC提供了读取存储在过程数据存档文件、数据库或远程终端设备中的历史数据以及对其操作、编辑的方法。3.报警和事件处理报警和事件处理:OPC能够更好地捕捉控制过程中的各种报警和事件并给予相应的处理。25OPC的应用领域4.数据
9、冗余技术数据冗余技术:OPC技术的使用可以更加方便地实现软件冗余,而且具有较好的开放性和可互操作性。5.远程数据访问:远程数据访问:利用Mierosoft的DCOM技术,OPC实现了高性能的远程数据访问能力。26OPC同步数据访问处理27OPC异步数据访问处理28OPC订阅方式数据采集29使用VB开发OPC应用程序lOPC应用程序首先生成OPC服务器支持的OPC对象,然后可以使用OPC对象支持的属性和方法对其进行操作。l一个OPC程序可以和多个OPC服务器连接。30OPC对象l在Visual Basic里,是以对象的单位对OPC服务器进行访问。OPC自动化接口是由以下四种对象所定义。l OPC
10、服务器l OPC组(OPC组集合)l OPC标签(OPC标签集合)l OPC浏览器 31开发OPC应用程序的步骤l建立一个VB工程;l在工程中注册OPC的DLLl选择菜单Project/References;l得到References窗口;l在Available References列表中选中OPC Automation 2.0;l单击OK按钮。32开发OPC应用程序的步骤lOption Base 1lOption Explicitl建立OPC对象-声明变量lDim WithEvents objServer As OPCServerlDim objGroups As OPCGroupslDim
11、 WithEvents objTestGrp As OPCGroup lDim objItems As OPCItemslDim lServerHandles()As Long33开发OPC应用程序的步骤l定义变量定义变量lDim lTransID_Rd As LonglDim lCancelID_Rd As LonglDim lTransID_Wt As LonglDim lCancelID_Wt As Long34开发OPC应用程序的步骤l连接OPC服务器:lSub Connect(strProgID As String,Optional strNode As String)l If ob
12、jServer Is Nothing Thenl 建立一个OPC服务器对象l Set objServer=New OPCServerl End Ifl If objServer.ServerState=OPCDisconnected Thenl 连接OPC服务器l objServer.Connect strProgID,strNodel End If35开发OPC应用程序的步骤l If objGroups Is Nothing Thenl 建立一个OPC组集合l Set objGroups=objServer.OPCGroupsl End Ifl l If objTestGrp Is Noth
13、ing Thenl 添加一个OPC组l Set objTestGrp=objGroups.Add(TestGrp)l End Ifl lEnd Sub36开发OPC应用程序的步骤l添加OPC标签:lSub AddItem()l Dim strItemIDs(8)As Stringl Dim lClientHandles(8)As Longl Dim lErrors()As Longl Dim I As Integerl If objTestGrp Is Nothing Thenl Exit Subl End If37开发OPC应用程序的步骤l If Not objItems Is Nothin
14、g Thenl If objItems.Count 0 Thenl Exit Subl End Ifl End Ifl 设置组活动状态l If DataChgChk.Value=vbChecked Thenl objTestGrp.IsActive=Truel Elsel objTestGrp.IsActive=Falsel End If38开发OPC应用程序的步骤l 启动组非同期通知l objTestGrp.IsSubscribed=Truel 建立OPC项集合l Set objItems=objTestGrp.OPCItemsl 生成从TAG1到TAG8的项标识符l For I=1 To
15、8l strItemIDs(I)=USTB_AUTO.Simulation0000&Il lClientHandles(I)=Il Nextl 添加OPC项l Call objItems.AddItems(8,strItemIDs,_l lClientHandles,lServerHandles,lErrors)lEnd Sub39开发OPC应用程序的步骤l断开OPC服务器:lSub Disconnect()lDim lErrors()As Longl If Not objItems Is Nothing Thenl If objItems.Count 0 Thenl 清除OPC项l objI
16、tems.Remove 8,lServerHandles,lErrorsl End Ifl Set objItems=Nothingl End If40开发OPC应用程序的步骤l If Not objTestGrp Is Nothing Thenl 清除OPC组l objGroups.Remove TestGrpl Set objTestGrp=Nothingl End Ifl l If Not objGroups Is Nothing Thenl Set objGroups=Nothingl End If41开发OPC应用程序的步骤lIf Not objServer Is Nothing T
17、henl If objServer.ServerState OPCDisconnected Thenl 断开OPC服务器.l objServer.Disconnectl End Ifl l Set objServer=Nothingl End If lEnd Sub42开发OPC应用程序的步骤l读OPC服务器的数据lSub AsyncRead()l Dim lErrors()As Longl If objTestGrp Is Nothing Thenl Exit Subl End If43开发OPC应用程序的步骤l If objTestGrp.OPCItems.Count 0 Thenl 非同
18、期读取l lTransID_Rd=lTransID_Rd+1l objTestGrp.AsyncRead 8,lServerHandles,_l lErrors,lTransID_Rd,lCancelID_Rdl End IflEnd Sub44开发OPC应用程序的步骤l数据变化处理lPrivate Sub objTestGrp_DataChange(_l ByVal TransactionID As Long,ByVal NumItems As Long,_l ClientHandles()As Long,ItemValues()As Variant,_l Qualities()As Lon
19、g,TimeStamps()As Date)l Dim strBuf As Stringl Dim nWidth As Integerl Dim nHeight As Integerl Dim nDrawHeight As Integerl Dim sglScale As Singlel Dim I As Integerl Dim index As Integer45开发OPC应用程序的步骤l 棒图的表示l For I=1 To NumItemsl 数据的格式化l strBuf=Format(ItemValues(I),#.000)l 得到客户标识符l index=ClientHandles(
20、I)l 表示数据字符串l lbBar(index).Caption=strBuf46开发OPC应用程序的步骤l 计算棒的宽和高l nWidth=picBar(index).ScaleWidthl nHeight=picBar(index).ScaleHeightl sglScale=ItemValues(I)/100l nDrawHeight=CInt(nHeight*sglScale)l 清除现棒图l picBar(index).Clsl 绘制棒图l picBar(index).Line(0,nHeight-nDrawHeight)-(nWidth,nHeight),RGB(255,0,0)
21、,BFl NextlEnd Sub47OPC应用程序演示48课程设计-软件设计l目标:掌握常用开发软件(VB)读取数据采集卡中数据的方法和程序实现,了解通过DDE实现数据交换的原理和方法,了解通过OPC技术实现数据交换的概念和方法,掌握OPC客户端程序的实现方法,设计并设计并实现数据采集和监视的监控软件实现数据采集和监视的监控软件。49考核安排l答疑、程序调试时间:答疑、程序调试时间:11月月12日(第日(第8周、周四)下午周、周四)下午13:3016:30 11月月13日(第日(第8周、周五)下午周、周五)下午13:3016:30l口试时间:口试时间:1201-1203班:班:11月月20日
22、(第日(第9周、周五)上午周、周五)上午8:3011:30 1203-1205班:班:11月月20日(第日(第9周、周五)下午周、周五)下午13:3016:30l地点:信息楼地点:信息楼60650考核安排l纸版实验报告纸版实验报告:(双面打印,排版规范)(双面打印,排版规范)1.设计内容设计内容2.应用程序总体分析与设计应用程序总体分析与设计3.应用程序各功能模块分析与设计应用程序各功能模块分析与设计 (每个模块附程序源代码)(每个模块附程序源代码)4.程序测试程序测试5.程序文档程序文档 注:报告中不用加运行环境配置。注:报告中不用加运行环境配置。lppt及实验指导书下载地址:及实验指导书下载地址:ustb_ key:ustb2015lOPC服务器名称:OPCJ.SampleServer.1l 生成从TAG1到TAG8的项标识符 For I=1 To 8 strItemIDs(I)=TAG&I lClientHandles(I)=I Next 添加OPC项51