基于OPC技术的FX2NPLC和PC数据通信实现
2014-05-16王建勋沈胜利
王建勋, 沈胜利
(郑州职业技术学院,河南郑州 450121)
0 引言
可编程控制器(PLC)主要面向生产现场,具有抗干扰能力强、可靠性好、编程使用简单、易于控制等特点[1]。但PLC没有良好的人机界面,不便于实时监控。采用PLC和PC通信的方法可解决以上问题[2]。随着计算机技术的发展,主从式控制系统得到广泛应用,上位机监控是其主要组成部分。一般情况下,上位机可采用组态式监控软件、VB和VC等实现,也可采用编程语言LabVIEW来实现。
FX2NPLC与PC间通信方法有多种:有通过FX-232BD 通信模块的[3];有 FX2N-232IF 模块的[4];有使用动态链接库的;也有采用 MSComm控件和 MX Component通信控件的[5-6]。我们采用的是基于OPC技术的数据通信方式。
以 NI OPC Servers为基础,通过 OPC Server Client、共享变量、Datasocket数据绑定和分布式系统管理器等4种方式来实现FX2N-48MR PLC与PC间的数据通信。
1 OPC、Datasocket、LabVIEW 和 DSC 模块
1.1 OPC 技术
用于过程控制的对象嵌入链接(Object Linking and Embedding for Process Control,OPC)。OPC 以OLE(现在的Active X)/COM(部件对象模型)/DCOM(分布式部件对象模型)技术为基础,采用客户/服务器模式,为工业自动化面向对象的开发提供的统一标准[7-8]。OPC技术被广泛用来统一软件与设备的接口标准及进行现场数据的网络通信,因此很多设备厂商都为其设备提供了OPC Server(OPC服务器),如西门子公司的Simatic NET OPC Server、三菱公司的Melsec OPC Server和欧姆龙的 Sysmac OPC Server等[9]。
NI OPC Servers可将专用工业协议转换为开放式OPC Classic和OPC统一架构(UA)协议。这一转化使得NI LabVIEW软件能够通过LabVIEW DSC模块内含的OPC客户端与多种不同的可编程逻辑控制器(PLC)和第三方设备通信。NI OPC Servers所支持的装置与驱动插件程序可从ni.com查看。NI OPC Server与LabVIEW组合而成的单一平台可对工业系统进行高性能的测量和控制[10]。
1.2 Datasocket技术
DataSocket技术是NI公司推出的面向测控领域的网络通信技术,是一种基于TCP/IP协议的网络编程技术,它支持本地文件I/O操作、FTP和HTTP文件传输、实时数据共享,并提供统一的API(应用程序编程接口)。具有方便使用、高效编程、不需了解底层操作过程等优点,适合于远程数据采集、监控和数据共享等应用程序的开发。
从结构上看,DataSocket包括 DataSocket API和DataSocket Server两部分。DataSocket API提供了简单的应用接口,作为客户,可以在多种编程环境下与多种数据类型通信,DataSocket API包含四个基本动作:Open、Read、Write 和 Close。除了从 DataSocket Server上获取数据外,DataSocket还可以获得HTTP Server、FTP Server和 OPC Server的数据。DataSocket Server是一个独立运行的程序,是提供数据交换的场所,作为服务器,负责存储数据源发布的数据,然后提供给请求的计算机[11-12]。
1.3LabVIEW
LabVIEW是由美国国家仪器公司开发的一种功能强大而又灵活的仪器和分析软件应用开发工具。
LabVIEW使用的编程语言为G语言(图形化的程序设计语言),它用框图代替了传统的程序代码。目前LabVIEW已被公认为是标准的数据采集和仪器控制软件,广泛应用于测试、工业自动化、教学和科研等领域[13]。
1.4 DSC 模块
数据记录与监控模块(Datalogging and Supervisory Control Module,DSC)是 LabVIEW 的附加模块。LabVIEW DSC模块包含针对常用工业协议(其中包括OPC)的支持。这让应用程序几乎能同所有PLC与可编程自动化控制器进行通信。借助DSC,可以利用少则十余个、多则数千个的标签,交互开发分布式监测和控制系统[14]。
2 基于OPC技术的FX2NPLC和PC的数据通信
基于OPC技术的FX2NPLC和PC间的数据通信,从硬件上讲,采用的仍然是SC-09编程电缆连接PLC和PC,不需增加其他硬件。PLC自带的编程口是RS-422接口,PC端是RS-232C接口,通信方式仍然是串行通信方式。编程口在程序下载结束处于闲置状态,我们就可以利用它实现PLC和PC间的通信[15]。
从软件上讲,NI OPC Servers配置后,可以通过OPC Server Client、共享变量方式、Datasocket数据绑定方式和NI分布式系统管理器等四种不同的方式来实现数据通信,进一步可实现实时监控,如图1所示。
图1 基于OPC技术的四种不同方式的数据通信
3 实例验证
下面以一个由定时器构造的振荡电路为例,通过实验验证FX2N-48MR PLC和PC间四种不同的数据通信方式的可行性。
如图2所示为振荡电路的梯形图。定时器T1的设定值为10×100=1 s,定时器T2的设定值为20×100=2 s。振荡电路的工作原理是:当PLC的输入端X0接收信号后,通过定时器T1、T2间的配合,PLC的输出端Y0产生出T1=1 s、T2=2 s的振荡电路。如图3所示为振荡电路的时序图。
地震是一种严重影响地基稳定性的自然灾害,地震发生后,在地震荷载的作用下,地基土体会出现松动和变形现象,从而影响建筑结构的稳定性。加固地基是增强地基抗震性能最为有效的方法之一。通过加固处理,可以使地基的抗液化能力显著提升,从而改善地基土体的动力特性。同时,加固后的地基土会产生预震效应,进一步提高了地基的整体强度、刚度和稳定性。对震害严重的厚软土层,可以采用高压喷射注浆法进行加固处理,当地震发生时,可以使地基保持良好的稳定性。
3.1 NI OPC Servers添加PLC OPC标签
在NI OPC Servers添加PLC OPC标签的目的在于建立起和PLC间的一一对应关系。
3.2 通过OPC Server Client进行读写
当 PLC执行程序时,选择 Tools→OPC Quick Client,就可进入OPC Quick Client工作界面,就可以对PLC的各个软元件(X0、Y0、T1、T2)的工作状态进行读取。
当 PLC处于 STOP状态时,通过 Value→Asynchronous 2.0 Write,还可改变软元件的当前值。如图6所示,写入输出端Y0的值为1,此时PLC上Y0对应的指示灯亮起。
图2 振荡电路梯形图
图3 振荡电路时序图
图4 通过共享变量方式读取
3.3 通过共享变量方式实现读写
在LabVIEW 2010启动界面中,通过项目→新建I/O Server→ OPC Client→ Configure OPC Client I/O Server,建立库文件,然后创建约束变量→添加变量→多变量编辑器。利用PLC OPC标签,创建四个变量。最后在LabVIEW连续运行时,得到的结果如图4所示。
在PLC处于STOP状态时,通过改变软元件的当前值。如改变Y0的值为1,此时PLC上Y0对应的指示灯亮起。
3.4 通过Datasocket数据绑定方式来读写
在LabVIEW 2010新建VI的前面板中,先绘出振荡电路梯形图。X0、Y0、T1和T2均用垂直摇杆开关表示(但T1、T2的关闭并不代表计时过程)。在每个元件→属性→数据绑定→Datasocket,再通过浏览→DSTP服务器,选中 PLC OPC标签,即可实现Datasocket数据绑定。在设计程序时,选择了读取DataSocket和写入 DataSocket节点。其中 OPC TO URL是子VI。
3.4.1 读取数据
LabVIEW连续运行时,需要读取X0、Y0数据时,推上选择开关,并在项名称中选择X0或Y0,通过指示灯即可读取。读取Y0的结果如图5所示。要读取T1、T2数据时,拉下选择开关,并在项名称中选择T1或T2,通过“读取的数据”即可读取T1或T2计时值。
图5 读取Y0的数据
3.4.2 写入数值
当PLC在STOP状态下,可以写入部分软元件数值,以Y0为例,推上是否写入选择开关,点击“写入”指示灯后灯亮起,随之PLC对应Y0对应的指示灯亮起,“读值”指示灯也随之亮起,如图6所示。
3.5 通过分布式系统管理器方式读取
LabVIEW自版本自8.6后,可用NI分布式系统管理器来实现共享变量的功能。如图7所示为通过分布式系统管理器读取Y0的数据。
图6 写入Y0值
图7 分布式系统管理器读取Y0值
4 结语
以NI OPC Servers为基础,可以通过OPC Server Client、共享变量、Datasocket数据绑定和分布式系统管理器等四种方式来实现FX2N-48MR PLC与PC间的数据通信。实验证明,这四种数据通信方式具备,且具有可行性、操作简单、可靠性高等特点。
(References):
[1] 李红梁.基于OPC的PC与PLC实时通讯的LabView实现[J].计算机应用研究,2003(12):115-118.
LI Hong-liang.Implementation of OPC-based Communication between PC and PLC on LabView Platform [J].Application Research of Computers,2003(12):115-118.
[2] 郁汉琪,盛党红,邓东华.电气控制与可编程控制器应用技术[M].南京:东南大学出版社,2003.
[3] 颜志国,沈天明,金 洁.基于VB的PLC串口通讯在背散射人体检查仪动作控制中的应用[J].警察技术,2010(5):61-64.
YAN Zhi-guo,SHEN Tian-ming,JIN Jie.Application of PLC Serial Communication in the Backscattering Body Chek Control Instrument Based on VB[J].Police Technology,2010(5):61-64.
[4] 俞红卫,杨 静,顾站松.FX2N型PLC与PC机的串行通信[J].电气自动化,2004,26(5):37-38,49.
YU Hong-wei,YANG Jing,GU Zhan-song.Serial Communication between PC Computer and FX2NPLC[J].Electrical Automation,2004,26(5):37-38,49.
[5] 张 晖.基于LabVIEW的FX2N型PLC与计算机通信实现[J].自动化博览,2008(8):78-80.
ZHANG Hui.Design and Implementation of Identification for SIP System Based on LabVIEW[J].Automation Panorama,2008(8):78-80.
[6] 鄢华林,邱月全.VB6.0环境下三菱FX系列PLC与上位机的串行通信[J].计算机与现代化,2010(5):122-124.
YAN Hua-lin,QIU Yue-quan.Serial Communication Between FX Series of Mitsubishi PLC and Host Computer Based on VB6.0 [J].Computer and Modernization,2010(5):122-124.
[7] 杨 芷,鲁五一,熊红云.基于OPC技术的LabVIEW与PLCs通讯[J].长沙航空职业技术学院学报,2006,6(2):62-65.
YANG Zhi,LU Wu-yi,XIONG Hong-yun.TheCommunication Between LabVIEW and PLC Based on OPC[J].Journal of Changsha Aeronautical Vocational and Technical College,2006,6(2):62-65.
[8] 石灵丹,华 斌,朱歆州,等.基于OPC技术的PC与西门子PLC的实时通讯[J].船电技术,2011,31(1):9-12.
SHI Ling-dan,HUA Bin,ZHU Xin-zhou,WU Ming.Real-time Communication Between PC and Siemens PLC Based on OPC[J].Marine Electric & Electronic Engineering,2011,31(1):9-12.
[9] 曾珞亚.基于OPC技术的PLC与LabView通信实现[J].微计算机信息,2009,25(16):52-53,128.
ZENG Luo-ya.Realization of Data Communication based on OPC Technology between PLC and LabView [J].Microcomputer Information,2009,25(16):52-53,128.
[10] 徐庆坤,王军伟,毛建伟.基于NI OPC Servers实现PC与PLC实时通讯[J].工业控制计算机,2013,26(7):51-52.
XU Qing-kun,WANG Jun-wei,MAO Jian-wei.Implementation of NI OPC-based Real-time Communication Between PC and PLC[J].Industrial Control Computer,2013,26(7):51-52.
[11] 林 鹏,温响东.基于DataSocket技术网络虚拟实验室构建[J].实验室研究与探索,2008,27(5):68-70.
LIN Peng,WEN Xiang-dong.Construction of Network Virtual Lab on DataSocket Technique[J].Research and Exploration in Laboratory,2008,27(5):68-70.
[12] 蒋朝阳,祝 陈.基于DataSocket的虚拟仪器技术在设备远程状态监测与故障诊断中的应用[J].数字技术与应用,2012(5):64-65.
JIANG Zhao-yang,CHEN Zhu.Application of Virtual Instrument Technology in Remote Condition Monitoring and Fault Diagnosis Based on DataSocket[J].Digital Technology and Application,2012(5):64-65.
[13] 彭 勇,潘晓烨,谢龙汉.LabVIEW虚拟仪器设计与分析[M].北京:清华大学出版社,2011.
[14] 俞 梅,孙 娜,唐明新.基于LabVIEW DSC的监控软件的应用研究[J].微计算机信息,2007,23(3-1):88-90.
YU Mei,SUN Na,TANG Ming-xin.Application Rearch of the SCADA Software Based on Lab VIEW DSC[J].Microcomputer Information,2007,23(3-1):88-90.
[15] 柳 剑,陈於学,杨曙年.基于编程口的三菱PLC与PC机串行通信实现[J].自动化仪表,2010,31(11):31-33,37.
LIU Jian,CHEN Yu-xue,YangShu-nian.ImplementingSerial Communication between PC and MITSUBISHI PLC Based on Selfcontained Programming Port[J]. Process Automation Instrumentation,2010,31(11):31-33,37.