Maflab Simulink在控制系统领域得到了广泛的应用。Matlab语言工程计算力强大,程序设计流程灵活,可实现复杂的控制算法。但不能与现场工控设备直接进行数据通信,致使很多先进控制算法仍然只是停留在纯数字仿真阶段。而常见的可编程序逻辑控制器(programmable logic controller,PLC)在控制过程中往往不能运行复杂的先进控制算法,或是勉强运行导致控制器反应实时性降低,制约了先进控制算法在PLC上的应用。为了解决此问题,本文以基于Matlab与s7—200的温度实时控制系统为例,将Matlab Simulink直接应用于实时控制现场系统。该系统的PLC进行实时数据采样和输出,在Matlab上实现控制算法,通过OPC技术实现Matlab与PLC间的数据传送,并利用Matlab内置的GUI实现上位机监控界面。该系统经实际测试,取得了较好的控制效果。本文研究为有效提高控制系统的效率与控制水平开辟一条新路。
1 OPC接口技术
opt(OLE for Process Control)规范是在微软倡导下由OPC基金会所建立的硬件和软件接口标准,它基于微软现有的OLE、组件对象模COM和分布式组件对象模DCOM技术。OPC规范的引入,提供了一种在数据源与客户端之间进行实时数据传输的通信机制。OPC标准中的软件体系结构为客户视/服务器模式,每个支持OPC接口标准的硬件厂商为其设备开发一个OPC服务器,提供必要的OPC数据访问标准子接口,主要负责从硬件设备得到数据并存人数据缓冲区;支持OPC接口的应用软件作为OPC客户,通过OPC标准接口实现与OPC服务器的数据交互,从而读写硬件设备的信息。
OPC服务器由3类对象组成,包括服务器、组和数据项。OPC的应用架构及层次对象的关系如图1所示。0PC服务器对象拥有服务器的所有信息,同时也是组对象的容器。组对象OPC项拥有本组的所有信息,同时包含并在逻辑上组织了OPC数据项。而OPC数据项是服务器定义的对象,包括值、品质、时间戳3个基本属性。OPC客户对设备寄存器的操作都是通过数据项来完成,但OPC数据项并不提供对外接口,客户不能直接对其进行操作,所有的操作都是通过组对象来进行的。
图1 OPC的应用架构及基本结构图
2 基于Matlab与S7—200温度实时控制系统的实现
2.1 温度实时控制系统的结构
本系统的设计综合了Matlab语言强大的计算能力和PLC高抗干扰性能等优点,并通过Matlab内置的图形用户界面GUI实现系统的监控。这样控制算法可以在Matlab的Simulink中进行仿真调试,进而连接被控制对象实现温度的实时控制,从而极大简化了控制系统的设计流程、提高了设计效率。该控制系统由上位机、S7—200 PLC以及温度控制对象三部分组成,系统结构图如图2所示。上位机主要完成基于Matlab的温度控制算法和控制系统监控界面,S7—200 PLC配置EM235实现温度实时信号的输入与控制信号的输出,温度控制对象包括脉宽调制电路、由ADS90组成的温度检测电路、加热器等。上位机Matlab Simulink仿真模型中的实时信号通过OPC通信技术与S7200 PLC中采样、控制信号进行通信。Matlab GUI则通过编制M文件的形式实现与Matlab Simulink仿真模型中控制参数的链接,从而在监控界面上控制及监测PLC s7—200的状态,采集对应的温度响应曲线。
图2 温度实时控制系统结构图
2.2基于OPC技术的Matlab与S7-200数据通信实现
2.2.1通信原理
Matlab7.0集成了OPC Toolbox,它是一个OPC客户端数据访问软件,通过OPC Toolbox可以连接任何一个OPC数据服务器,实现对连接服务器数据的读或写。基于OPC技术的Matlab与PLC S7200通信原理图如图3所示:参照Matlab中的OPCToolbox对象模型,以s7—200 OPC Server为OPC服务器,Matlab为客户端,建立OPC通信的流程,实现Matlab在实际工业控制系统中的应用。