牛文彬+吕静+吕旭东
[摘 要]在油田生产中,智能仪表的数量越来越多,如何利用Modbus通讯对现场仪表数据进行采集及控制已成为当前数字化建设的突出问题。因此,本文通过和利时PLC的RS485串行通行通讯口基于Modbus协议改进PLC与从设备的数据采集。
[关键词]和利时PLC;RS485;串行通讯;Modbus协议
doi:10.3969/j.issn.1673 - 0194.2017.08.092
[中图分类号]TP273 [文献标识码]A [文章编号]1673-0194(2017)08-0-01
0 引 言
目前,在长庆油田投入使用的增压撬中多数采用和利时LM3109的PLC,基于油田SCADA数字化的集成发展,越来越多的智能仪表需要进行数据采集,为了减少占用PLC的IO点,并保证数据传输的准确性,利用LM3109的RS485串行通信口对其他智能仪表的数据采集成为了最好的解决方案。
1 Modbus和RS485的简介
Modbus协议描述了一个控制器请求访问其他设备的过程,如何回应来自其他设备的请求以及怎样侦测错误并记录,制定了消息域的格式和内容。协议决定了每个控制器必须知道自己的设备地址,根据地址识别消息的归属,决定执行何种功能。控制器生成报文并以Modbus协议帧方式发送报文。
RS485采用差分信号负逻辑,+2~+6 V表示“0”,-6~-2 V表示“1”。RS485有两线制和四线制两种接线,四线制是全双工通讯方式,两线制是半双工通讯方式,半双工数据通讯模式下数据的收发不能同时进行。在RS485通信网络中一般采用的是主从通信方式,允许连接多达128个设备。
2 现场设备物理层连接
现场设备物理层连接示意图所示。
设备按照RS485两线制通讯方式,接出来的RS485通讯线与PLC的RS485通讯总线进行连接。线路连通后在PLC中编写符合作业流程计算的程序。
3 程序设计及比较
3.1 2台RS485从设备
对于常见的增压站,PLC需要读取2台输油泵的变频器,在程序中通过继电器的交替接通选择从哪台从设备读取数据。因为各延时继电器的触发都是各自独立循环的,所以实际工作时会出现各从设备的询问帧发送数量不一样的情况。
3.2 多台RS485从设备
当现场存在3台及3台以上从设备需要采集数据时,采用两个延时继电器交替运行的方法已经不能使用了,于是将程序中控制从设备地址的延时继电器改为一个,并由变量自增循环选择从设备。但在实际工作中会出现有时从设备的数据变化不连续。该问题出现在当现场采用两线制RS485通讯时,线路中可能会同时出现询问帧在发送,而从设备在同时发送应答帧时,考虑到两线制RS485通讯为半双工的情况,同时存在的数据要么是发送,要么是接收,要想实现主设备对从设备的一问一答就需要再次改进程序结构。
3.3 遵循RS485半雙工通讯的多从设备通讯
为了能达到半双工通讯的要求,将通讯程序结构分为4个阶段,即通讯间隔、发送询问帧、接受询问帧或接收超时、1.5字符停顿,具体程序结构如图2所示。
该程序结构实现了多个从设备通讯的完整循环。t1是从设备的延时器,t2是询问帧,两者变化时间一致。当PLC通过COMM2_SEND向从设备发送数据时,COMM2_RECEIVE接收数据反馈并进行收包统计。如果发现从设备故障无法应答,t2认为此通讯超时并发出指令,PLC的监控进程进入下一轮询。在现场实际使用中,通过询问帧结构PLC发送询问帧,从设备发回应答帧,实现了主设备对从设备通讯的一问一答,数据连续更新,达到了预期要求。
4 结 语
经过程序改进并在现场多台设备上实际运行后,改进后的RS485通讯程序能连续处理现场从设备发回的数据,保证了现场数据能及时处理并发回SCADA平台,实现了在SCADA平台上实时读取现场的从设备数据的目的。