您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > OPC技术在MATLAB与PLC通讯实现
OPC技术下MATLAB与PLC的通讯实现黄双成,李志伟(河南化工职业学院机械电子系,河南郑州450000)摘要:PLC具有结构简单、编程方便,可靠性高特点,已经在工业及生产过程中得到了广泛应用,但PLC的编程语言功能简单,无法实现复杂的控制算法;MATLAB是一种高级矩阵语言,并且包含工具箱和Simulink仿真环境,可通过对控制系统进行可视化建模,仿真等工作,实现复杂控制算法,但不能直接应用在实时控制中。本文采用OPC通信技术,实现MATLAB与PLC通信,为PLC控制下复杂算法的实现提供了技术基础。关键词:OPC技术MATLABPLC通讯中图分类号:TP273文献标识码:AAbstract:PLC,withsimplestructure,convenientprogrammingandgoodreliability,isalreadywidelyusedinindustrialcontrolarea,butitisunabletoachievecomplexcontrolalgorithmwithshortageofprogramminglanguage;MATLABisakindofhigh-levelmatrixlanguage,withitstoolboxandSimulinksimulationenvironment,complexcontrolalgorithmcanbeachievedthroughtheresearchonthevisualmodelandsimulationofthecontrolsystem,butitcannotbeusedinreal-timecontrol.Thispaper,usingOPCcommunicationtechnology,achievescommunicationbetweenMATLABandPLC,providestechnicalfoundationfortherealizationofcomplexalgorithmunderPLCcontrol.Kewords:OPCTechnologyMATLABPLCCommunicationCommunicationbetweenMATLABandPLCbeachievedbytheOPCtechnologyHuangShuang-cheng,LiZhi-wei(DepartmentofMachineryandElectronics,HenanVocationalCollegeofChemicalTechnology,Zhengzhou450000)1、引言如何检验复杂先进控制算法,并将其有效地应用在生产现场一直是工业控制领域普遍关注的热点问题。PLC控制器加工控机模式是常见分布式监控系统的结构,但是PLC编程语言简单,无法实现先进的控制算法。随着工业过程控制要求的提高,模糊算法、神经网络算法、遗传算法等复杂控制算法取代传统的PID算法成为工业过程控制的发展趋势[1]。Matlab语言工程计算力强大,程序设计流程灵活,可实现复杂的控制算法[2]。若将PLC采集到的实时数据通过数据交换传给MATLAB进行计算处理,再将运算处理结果传送给下位机PLC,由PLC输出模块输出控制信号,实现过程控制,这样不仅极大提高监控系统的作用,而且有利于复杂算法的故障诊断和过程控制的设计与实现。要实现上述目的,问题节点在于PLC和MATLAB之间的数据交换。通过在MATLAB的Simulink中设计数据传输模块来实现两者之间数据交换的文献鲜见报道。本文介绍通过OPC技术实现MATLAB与PLC之间进行数据交换的方法,并通过一个实际的例子来说明PLC与MATLAB通信的原理及过程。PLC采集现场仪器仪表的数据,通过工业以太网传给工控机,数据再通过工控机内部的OPC协议分别传给组态软件和MATLAB的工作空间,组态软件是用来监控系统的,MATLAB将PLC中的数据经过算法处理得出最优的控制数据,然后再通过OPC协议和以太网返回到PLC内,PLC再根据数据对现场仪器仪表进行精确的控制,系统结构图如图1所示。组态软件交换机OPCMATLABPLC1PLC3PLC2现场仪器仪表现场仪器仪表现场仪器仪表工控机OPCserverOPCgroupOPCgroupOPCitemOPCitemOPCitemOPCitem图1数据交换结构图图2OPC服务器3种对象层次关系图2、OPC技术OPC是ObjectLinkingandEmbedding(OLEforProcessControl)的缩写,它是以微软公司COM和DCOM技术为基础,创建的一种应用于自动化领域的软件接口标准。OPC采用开放式的数据交互,能使不同公司的软硬件组成一个有机的整体,传输可靠,速度快,适于大批量数据交换,已经成为工控行业新的通信标准,广泛应用在工控行业的各个领域[3]。OPC采用客户/服务器体系,目标是在客户和服务器之间建立一种通信和数据交换的工业标准机制,只要遵循OPC标准,数据交互对两者来说都是透明的。各客户/服务器间形成即插即用的简单规范的链接关系,即不同的客户软件能够访问任意的数据源。OPC使用主要包括OPC服务器与OPC客户两个部分,OPC服务器是数据的供应方,负责为OPC客户提供所需的数据;OPC客户是数据的使用方,使用OPC服务器提供的数据。OPC数据存取服务器主要由服务器对象(Server)、组对象(Group)和数据项对象(Item)3类对象组成[4]。3类对象的层次关系图如上图2所示。OPC具体使用必须遵循下列步骤:第一,OPC客户要能够连接到DA服务器上,并建立OPC组(Group)和OPC数据项(Item)。第二,OPC客户通过对其建立的Group和Item进行访问实现对过程数据的访问,客户可以选择设备或缓冲区作为其访问的数据源。客户的过程数据访问包括过程数据的读取、更新、订阅、写入等。第三,完成通知,当服务器响应客户的过程数据访问请求,并处理完毕时通知客户。3、MATLAB与PLC之间的通讯实现在MATLAB指令空间中输入“opctool”,打开OPC工具箱进行OPC的配置,在MATLAB的OPC工具箱中将MATLAB设为本地服务器,然后把“CoDeSys.OPC.02”添加为客户,然后点击“connect”,连上之后,在客户端添加一个组,重命名为“INPUT”,然后在这个组中添加一个对象,画面如图3所示,可以看到,在PLC配置中设置的两个变量都显示在添加对象的对话框的左边,选中“INPUT”变量,然后点击“add”,就可以看到,PLC的变量“INPUT”添加到了组“INPUT”中,用同样的方法添加一个“OUTPUT”组,然后将PLC的变量“OUTPUT”添加到组“OUTPUT”中,这时在PLC的模拟量输入端给一个5V的信号,就可以看到在PLC编程软件PLC配置中,模拟量输入有了一个整型值,而在MATLAB的OPC工具箱中,选中“INPUT”变量,也显示了一个整型值,就可以看到它的值和PLC配置中模拟量端口显示的整型值完全相等。图3在MATLAB的OPC工具箱中添加对象的画面图4simulink中OPC配置图下面再看一下在MATLAB的simulink中对这个模拟量输入的实时监测,然后将这个模拟量再送给到模拟量输出端子。在MATLAB的simulink工作空间中加入“OPCConfiguration”、“OPCRead”、“OPCWrite”三个模块,做好相应的配置,“OPCRead”模块中加入变量“INPUT”作为对象,“OPCWrite”模块中加入变量“OUTPUT”作为对象,添加完毕之后可以看到在simulink工作空间的“OPCRead”和“OPCWrite”中,显示了PLC的两个变量名,这说明PLC的两个变量都已经导入到simulink的工作空间。然后,将“OPCRead”的端子V和“OPCWrite”的端子相连,再在中间加入一个“scope”,来实时显示从PLC读过来的数据,配置好的simulink工作空间如图4所示。设置完毕,开始仿真,双击“scope”,可以看到随着时间的推移,数据也在实时的显示,通过调节模拟量输入端的电压值,可以看到显示数据也在随着调节而实时的变化,如图5所示图5simulink中实时监测画面这时再来看PLC硬件配置中在线显示的数据,模拟量输入端口显示的数据和模拟量输出端口显示的数据完全相等,跟“scope”监测到的数据以及opctool中组“INPUT”和组“OUTPUT”中的两个变量的数据也完全一样,可以得出,模拟量输入的值通过MATLAB的simulink中OPC准确无误的传送到了模拟量输出端口。4、结束语(1)文献[5][6]提出用MATLAB和组态软件通过OPC技术进行数据交换,而一般的组态软件跟PLC之间也是通过OPC进行数据交换的,这样可以实现PLC与MATLAB之间的数据交换,但是要经过两层OPC协议,而本文提出的MATLAB和PLC直接用OPC协议进行数据之间的通讯,只经过一层OPC协议,实时性强。(2)本文只是简单的将模拟量输入数据通过OPC协议,经过MATLAB的simulink空间传送到模拟量输出端子,有了这个基础,可以在“OPCRead”中添加任何现场的开关量或模拟量数据,而在“OPCWrite”中添加需要控制的开关量或模拟量输出变量,然后在它们之间加入智能控制算法的工具箱以及控制系统的数学模型,这样就可以实现控制系统的精确控制。(3)工业控制系统一般都是一直在运行的,平时用simulink仿真空间做仿真时都是设定一个仿真时间值,要想做到simulink能够一直处于工作状态,可以将仿真值设为“inf”,这样控制系统就可以一直在运行,而不用担心simulink仿真时间结束导致系统瘫痪。参考文献:[1]王树东,毕作文,王红波.OPC技术下PLC与MATLAB相结合的实时模糊控制系统[J].电气自动化,2011,33(5)11-14[2]林宝全,陈冲.基于MATLAB与PLC的实时控制系统[J].南昌大学学报:工科版,2011,33(3):298-302[3]柴兆森.基于工业以太网和OPC技术的异构系统集成研究[D].兰州:兰州理工大学,2009[4]唐立学,梁伟平,杨维波.基于OPC的MATLAB与iFIX数据通信实现的过程控制[J].电力科学与工程,2008,24(2):26-28[5]祝磊,雷建军,王桂荣,顾德英.RSView32和MATLAB之间的通讯[J].微计算机信息,2003,19(3)[6]徐联贵,梁岚珍,史颖.基于OPC技术的MATLAB与组态王通信模块设计[J].工业控制计算机,2007,20(3):26-27
本文标题:OPC技术在MATLAB与PLC通讯实现
链接地址:https://www.777doc.com/doc-2847506 .html