OPC技术下MATLAB与PLC的通讯实现

2014-05-15 08:10黄双成李志伟
机械工程与自动化 2014年3期
关键词:工具箱工控机模拟量

黄双成,李志伟

(河南化工职业学院 机 械电子系,河南 郑州 450000)

0 引言

如何检验复杂先进的控制算法,并将其有效地应用在生产现场一直是工业控制领域普遍关注的热点问题。PLC+工控机模式是常见的分布式监控系统结构,但是PLC编程语言简单,无法实现复杂的控制算法,而传统的PID算法已经不能满足实际控制的需要,神经网络、模糊控制等复杂算法取代PID算法成为工业控制的发展趋势[1]。

MATLAB工程计算能力强大,程序设计流程灵活,可实现复杂的控制算法[2]。若将 MATLAB应用到PLC控制系统中,将有利于故障诊断和过程控制复杂算法的设计与实现。但要实现上述目的,问题节点在于PLC和MATLAB之间的数据交换。本文介绍通过OPC技术实现MATLAB与PLC之间数据交换的方法,并通过一个实际的例子来说明PLC与MATLAB通讯的原理及过程。

1 OPC技术

OPC是以微软公司COM和DCOM技术为基础而创建的一种应用于自动化领域的软件接口标准,具有传输可靠、速度快的特点,已广泛应用在工控行业的各个领域[3]。

OPC目标是在客户和服务器之间构建一种通讯和数据交换的工业标准机制,只要遵循OPC标准,客户和服务器间就能形成一定规范的链接关系,OPC服务器就可为客户提供数据服务。通常情况下OPC服务器主要由服务器对象(Server)、组对象(Group)和数据项对象(Item)3类组成[4],具体层次关系如图1所示。

图1 OPC服务器层次关系图

2 MATLAB与PLC之间的通讯实现

PLC采集现场的数据,通过工业以太网传给工控机,再通过工控机内部的OPC协议分别传给组态软件和MATLAB的工作空间,组态软件用来监控系统,而MATLAB通过算法取得最优数据,然后再通过OPC协议和以太网将数据返回到PLC内。数据交换系统结构如图2所示。

打开MATLAB并在指令空间中输入“opctool”,在OPC工具箱进行OPC的配置,将MATLAB设为本地服务器,然后把“Co DeSys.OPC.02”添加为客户,点击“connect”,连接之后,在客户端添加一个组,重命名为“INPUT”,并且在该组中添加一个对象,画面如图3所示,可以看到,在PLC配置中设置的两个变量都显示在添加对象的对话框的左边,选中“INPUT”变量,点击“add”,则PLC的变量“INPUT”添加到了组“INPUT”中。用同样的方法添加一个“OUTPUT”组,然后将PLC的变量“OUTPUT”添加到组“OUTPUT”中,这时在PLC的模拟量输入端给一个5 V的信号,且看到在PLC编程软件PLC配置中,模拟量输入有了一个整型值,而在MATLAB的OPC工具箱中,选中“INPUT”变量,也显示了一个整型值,它的值和PLC配置中模拟量端口显示的整型值完全相等。

图2 数据交换结构图

图3 在MATLAB的OPC工具箱中添加对象的画面

接着在MATLAB的Simulink中对这个模拟量输入实时监测,然后将此模拟量再送到模拟量输出端子。首先在MATLAB的Si mulink工作空间中加入“OPC Configuration”、“OPC Read”、“OPC Write”三个模块,并做好相应的配置。“OPC Read”模块中加入变量“INPUT”作为对象,“OPC Write”模块中加入变量“OUTPUT”作为对象,添加完毕后PLC的两个变量名显示在Simulink工作空间的“OPC Read”和“OPC Write”中,说明PLC的两个变量都已经导入到Simulink的工作空间。然后,将“OPC Read”的端子V和“OPC Write”的端子相连,再在中间加入一个“scope”,用来实时显示从PLC读过来的数据,配置好的Simulink工作空间如图4所示。设置完毕后开始仿真,双击“scope”,则随着时间的推移数据也在实时显示,通过调节模拟量输入端的电压值,可以看到显示数据也在随着调节而实时变化,如图5所示。

这时PLC硬件配置中在线显示的数据、模拟量输入端口显示的数据和模拟量输出端口显示的数据完全相等,与“scope”监测到的数据以及opctool中组“INPUT”和组“OUTPUT”中的两个变量的数据也完全相同,由此可得,模拟量输入的值通过 MATLAB的Simulink中的OPC准确无误地传送到了模拟量输出端口。

图4 Simulink中OPC配置图

图5 Simulink中实时监测画面

3 结束语

(1)文献[5]提出用 MATLAB和组态软件通过OPC技术进行数据交换,实现了PLC与MATLAB之间的数据交换,但是要经过两层OPC协议,而本文提出的MATLAB和PLC直接用OPC协议进行数据之间的通讯,只经过一层OPC协议,实时性强。

(2)本文验证了模拟量输入数据通过OPC协议,经过MATLAB的Simulink空间传送到模拟量输出端子,有了这个基础,可以在“OPC Read”中添加任何现场的开关量或模拟量数据,而在“OPC Write”中添加需要控制的开关量或模拟量输出变量,然后在它们之间加入智能控制算法的工具箱以及控制系统的数学模型,就可以实现控制系统的精确控制。

(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:12-15.

[4] 唐立学,梁伟平,杨维波.基于OPC的 MATLAB与i FIX数据通信实现的过程控制[J].电力科学与工程,2008,24(2):26-28.

[5] 徐联贵,梁岚珍,史颖.基于OPC技术的MATLAB与组态王通信模块设计[J].工业控制计算机,2007,20(3):26-27.

猜你喜欢
工具箱工控机模拟量
定制工控机在老旧线路计算机联锁设备中的应用
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
中压电子束焊工控机Windows NT系统文件丢失故障的修复方法
基于MATLAB优化工具箱优化西洋参总皂苷提取工艺
关于600MW火电机组模拟量控制系统设计和研究
Matlab曲线拟合工具箱在地基沉降预测模型中的应用
模拟量输入式合并单元测试仪的研制
中国工控机市场新Style
新汉 前插拔CoreTM-i系列无风扇工控机
一种通用模拟量及开关量信号采集板卡的设计