LabVIEW实现基于OPC的PC与PCC实时通讯
关键词:OPC;PCC;LabVIEW;实时通讯
Abstract: To realize real-time communication in modern industrial process control and to ameliorate the deficiency of field-bus, the real-time data communication between PC and PCC based on OPC is designed, by using LabVIEW as the upper supervisory software. And also the detailed produces and programs are given out. This design method is successfully applied to the key technologies test platform on facing polymer macromolecule and polymer composite development. The result shows that this method can dispense with complicated programming, simplify the process of development. It is a efficient method to build facilely comprehensive industry automation control system and implement networked measurement and control system.
Keywords: OPC;PCC;LabVIEW;Real-time Communication
1 引言
PC机与PCC(Programmable Computer Controller)通讯时,PCC作为下位机完成输出控制、数据采集及状态判别工作,PC机完成资料(数据)分析、计算、存储、显示、打印输出,以实现对被控系统的监控。此系统工作模式已在现代工业控制领域得到广泛应用。然而,如何有效而简便地实现监控系统的实时通讯一直是人们想解决的问题。OPC(OLE for Process Control)技术的出现为解决此问题提供了可能。
OPC是一种基于window NT技术规范的标准接口协议,使得在使用第三方硬件时,只要硬件开发商提供OPC Server软件,开发人员无需编写低层的驱动程序,通过用户软件的OPC Client,即可与之进行数据交互,不同厂家之间软硬件的集成变得易于实现。采用OPC技术,客户不需要了解工控系统的内核,而只需要以OPC Client/OPC Server的访问方式获取实时数据[1,2,3,4]。
本文详细介绍了一种基于LabVIEW的PC与B&R PCC2003实时通讯的具体实现过程,成功地实现了控制系统的实时通讯。
2 系统结构组成
面向高分子及其复合材料开发的测试关键技术平台用于聚合物材料的性能测试。主要包括毛细管流变单元、单螺杆挤出单元和注塑单元等功能模块单元,其控制系统采用基于CAN的现场总线智能控制系统结构,控制器选用B&R可编程计算机控制器PCC2003。控制系统结构简图如图1所示。
其中,主控制站负责主机驱动,CAN I/O扩展站负责毛细管流变单元、密炼单元以及注塑单元等功能模块单元的控制;人机界面为现场操作单元;计算机数据采集与分析系统负责数据采集与动态数据处理以及输出测试结果。因此,实现PC与主控制站PCC的实时数据交换是该测控系统的关键。
图1 控制系统结构简图
设计中上位机选用研华工业控制计算机,下位机选用B&R(贝加莱)公司PCC2003系统。PC与PCC之间的物理连接采用RS232接口,上位机数据采集与动态信号处理系统基于LabVIEW8.0软件平台进行二次开发。
3 通讯方案设计与实现
LabVIEW将需要发布的数据送到OPC服务器后,通过串口RS232传给底层设备(PCC);PCC的数据传到OPC服务器,LabVIEW读取数据并在前面板中显示出来,从而得到现场数据。其中,OPC可称为“软件总线”,应用程序读取OPC数据源, OPC Server将现场数据转换为OPC统一格式的数据,从而可以使配置更加简洁、通用。在这里,OPC提供的数据类型主要有:①实时测量数据:料筒温度、熔体压力、螺杆扭矩、转速等。②控制参数:开、关、运行状态信息、硬件连接状态和软件系统状态等。
因此,基于OPC技术实现PC与PCC的实时通讯,关键在于如何建立OPC服务器各数据项与PCC中各端口地址一一对应并实现连接,以及在LabVIEW中开发的各实时监控程序如何访问OPC服务器。
3.1 PCC与OPC服务器实时通信的实现
3.1.1 PCC通信参数设置
设置PCC与PC通讯的基本参数(如通讯端口地址、通讯协议、通讯波特率等)供OPC服务器使用,并开放PC访问PCC需要的内存区和数据区。
3.1.2 OPC服务器的建立
使用OPC通信协议,需运行一个OPC服务器,需对OPC Server组态[5],如图2所示。
图2 OPC 服务器设置
1)通信路径设置
通信路径设置包括PVI(Process Visualization Interface)Connections, Lines, Devices, Stations, CPUs,Tasks的设置,其对应功能如表1所示。其中PVI Connections可以设置为本地通信或基于TCP/IP的远程通信。
2) OPC Server对象设置
OPC Server由三类对象组成:服务器(Server)对象、组(Group)对象、数据项(Item) 对象,它们共同实现OPC服务器接口定义功能。OPC服务器对象是OPC组对象的容器,通过调用OPC服务器对象建立应用程序和底层设备的会话,并返回会话句柄,使用此句柄可以在OPC服务器对象的基础上创建OPC组对象。OPC组对象是一系列相关数据的集合,通过在它上面创建OPC项对象,建立与现场测试节点的关联,访问OPC项对象就可返回现场测试数据。OPC项定义了数据的数值(Value)、品质(Quality)、时间戳(TimeStamp)、设备号(Device NO.)、板卡号(Board NO.)、通道号(Channel No.)等属性。
OPC Server对象对应PCC内存区和数据区特定地址的变量,LabVIEW通过OPC Client, OPC Server用这些变量与PCC进行数据交互。服务器对象、组对象与数据项对象可以形成树状目录管理,最多可建立6层目录。在每个对象对应的参数对话框中设置其参数并选择其通信路径,数据项对象的数据类型及地址等要与PCC变量一致。
3) OPC Server访问方式配置
访问OPC服务器的方式有两种:本地访问(Local Communication)和远程访问(Network Communication)。在“Server Parameter”中配置OPC Server的访问方式。通常情况下,为了实现透明访问,OPC服务器和客户程序位于不同的机器上,客户程序通过提供远程计算机名和OPC服务器ID实现远程访问OPC服务器。OPC服务器和客户程序也可以位于同一计算机上,此时可以设置为本地访问或远程访问OPC服务器。
3.2 LabVIEW与OPC Server实时通讯的实现
PC与PCC实时数据通信任务是通过LabVIEW实时读写PCC中的现场测试数据来实现的。由于LabVIEW软件平台支持DataSocket技术,因此LabVIEW可以通过DataSocket中隐含的一个NI OPC Client与B&R PVI OPC Server进行通讯,从而实现PC与PCC的实时数据交互。
在LabVIEW中利用DataSocket技术访问OPC服务器从而实现与PCC实时通讯的方法有两种[6,7]:
1) 前面板控件直接链接
DataSocket的前面板对象连接是不需要任何编程的数据传输方法,只需将前面板对象与OPC数据项对象一一对应即可。因此在数据变量关系不是很复杂的情况下,用前面板对象连接方法更加简单,可以大大节省编程时间,提高开发效率。建立前面板对象与OPC数据项对象链接的方法是:在需要链接的前面板对象上右击,在弹出的对话框中选择Properties选项中的Data Binding,弹出如图3所示的对话框进行前面板对象的链接设置。
图3前面板控件链接
在Data Binding Selecting的下拉菜单中选择DataSocket;在Mode中选择链接的类型后,在DataSocket URL旁选择DSTP Server,这时就会链接到刚刚设置好的OPC服务器上,选择与正在设置的变量对应的服务器上的变量名即可,如图4所示。链接后前面板对象的右上角会出现一个链接指示灯,运行程序时,若链接正确指示灯显示绿色,否则为红色。
2)DataSocket 编程
利用控件属性直接链接实现网络数据传输,具有无须编程、简单易用的特点;缺点是数据不透明,只能在客户端设置好的控件间传输、显示,无法对数据进行有效的处理。如果需要在客户端处理服务器传入的数据,必须利用DataSocket函数库提供的API函数模块,通过编程实现。
图4 OPC服务器上的变量名的链接
DataSocket函数库包含Open、Close、 Read、Write和Select等功能模块。DataSocket Read和DataSocket Write函数读写数据之前,必须用DataSocket Open函数打开URL指定的与OPC服务器中的项相对应的连接,其中URL的格式opc://localhost/servername/itemID,其中opc指DataSocket传输协议,中间两段分别指宿主机IP地址或标识和服务器的名字,最后一段是数据项,这一项名要与OPC服务器中对应项项名一致。另外为了保证读取数据不丢失,在DataSocket Open函数中利用一个枚举类型的常数设置DataSocket连接的模式为缓冲模式;为了提高写数据的效率,可以将读写的数据如单精度浮点数、无符号整型量和开关量都统一通过Variant函数转换成变体的数据类型,尤其是在写传输数据的属性如时间、名称的时候需要转换函数。
4 实验结果与分析
“面向高分子及其复合材料开发的测试关键技术平台”中的单螺杆挤出模块是目前测试平台所有模块中最复杂的一个测试模块,它要求测试精度高,涉及的变量种类多,要求能够实时显示并保存现场的压力值、四段温度值,电机的转速、扭矩,振动信号的幅度、频率,挤出产品的重量等,并有严格的时间控制要求,还要进行关键参数的报警保护设置。运行LabVIEW程序,设置完所有参数后,点击“开始测试”进行测试,如图5所示。
图5 基于OPC通信的单螺杆挤出模块测试
在右侧上方的单螺杆挤出模块模型显示区,能实时显示当前挤出机的四段温度值,压力值,电机的转速、扭矩,振动信号的幅度、频率,挤出产品的重量实际值等。整个系统性能稳定,数据传输速率快,精确性好,达到了工业现场高效率的实时数据传输要求,大大降低了数据传输过程中的差错率,证明该通信方案的有效性。
5 结束语
此方法同样适用于Profibus,CAN等通讯总线。 LabVIEW软件平台可以同时与多个OPC服务器相连,一个OPC服务器也可与多个PCC相连,用户可以自行定义、增加或删除,从而很容易实现系统集成和具有更高的系统互连性,并且可以满足大量数据源通信的标准机制。本系统通信方案的有效实现对于同类型的系统有很高的实用参考价值。
本文作者的创新点:首次将工控领域的最新技术————OPC技术,应用到聚合物加工领域;将OPC接口技术作为开放工控系统的中间件,LabVIEW作为上位机用户界面开发软件,实现了多变量实时数据的批处理,最终实现精密化控制,并为系统的信息集成提供了全面解决方案。
参考文献:
[1] Raul Alves Santos, Julio E. Normey-Rico, Alejandro Merino Gomez, OPC based distributed real time simulation of complex continuous processes[J]. Simulation Modelling Practice and Theory. 2005 (13): 525–549
[2] OPC Foundation. OPC DA 2.05a Specification[Z].http://www.OPCfoundation.org.2002
[3] 蔡思文,祁耀斌等. OPC客户端设计及其在监控系统的应用[J]. 微计算机信息.2007,5-1 :106-108
[4] 熊望枝,焦青松等. OPC 数据采集服务器的研究与设计[J].微计算机信息. 2007 ,3-1 : 24-25
[5] B&R Automation Studio help. pviopc.2004
[6]戴鹏飞,王胜开等.测试工程与LabVIEW应用[M].电子工业出版社.2006.5
[7]National Instruments. LabVIEW User Manual[M].Temas: National Instruments,2003
文章版权归西部工控xbgk所有,未经许可不得转载。