关于ModBus协议在煤矿自动化改造应用方法
在现代煤矿工控系统中,现有的仪表(温度巡检仪、水位仪、多功能仪表)、监控设备(SamSungPLC、西门子PLC)、传动设备(ABB变频器)大部分不是以太网通讯,而是留有RS485通讯接口,通过485通讯支持的ModBus协议,实现煤矿自动化、智能化、无人化的改造。
1.ModBus协议的简介
ModBus是MODICON公司于1978年最先倡导的一种通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。
ModBus是一种主-从站方式通讯,一个主站控制一个或多个从站,支持物理层接口有RS232、RS422、RS485和以太网接口,特别是RS-485上的广泛应用,已经成为事实上的RS-485接口的标准通讯。
2.数据类型
(1)位(BOOL布尔量):就是0或是1,占1位,最小的单位;
(2)字节(BYTE):一个字节=8位;
(3)字(WORD):一个字=2个字节=16位,16位无符号整数;
(4)整数(INT):16位有符号整数;
(5)双字(DW):32位无符号整数;
(6)浮点数(float):单精度浮点数,浮点数的意思就是有小数点的数值。
我们在ModBus协议中会经常提起“寄存器”,这个寄存器占2个字节,即16位,想要建立通讯必须知道数据的类型。
3.数据的传输方式
(1)传输通讯格式,即:波特率,数据位,停止位,检验方式
我们已经知道计算机中的信息都是二进制的0和1来表示,其中每一个0或1被称作一个位,我们把具有起始位、数据位和奇偶校验位的这一串数字叫做字节。一个字节有10位二进制数码。
波特率:就是一秒钟传送的位数,也就是通讯速率,单位为bps,波特率越高,传送的数据越大,比如波特率为9600,即一秒钟可以传送9600个位数。
数据位:传输一个字符由8位组成,计算机的基本单位就是“位”,其值非“0”即“1”。
停止位:传输一个字符有几个停止位,用来判断某个字符是否传输结束,以便开始接收下一个字符。
校验方式:奇校验或偶校验或无校验,目的是判断传输过程中是否有错误。
(2)RS485连接方式
图1有主站,还有4个从站。我们看到1号到3号从站的接线其实都是节点,节点中既有一条进线,也有一条出线,还有引至自身的内部引线。这种接线方法被称为“菊花瓣”的“手拉手”连接方法。在菊花瓣接线中,任何一个节点如果出现断路,则后续的节点均无法通信。
图1的通讯电缆外表面有屏蔽层,并且屏蔽层需要接地。对于通讯电缆的屏蔽层接地来说,只能有一个接地点。如果出现两个接地点,则接地点之间的环流会引起干扰。
我们还在通讯电缆头尾都安装了120欧的电阻,此电阻被称为终端电阻,终端电阻的用途是:吸收反射波,建立稳定的电平关系。通讯电缆必须采用双绞线,采用双绞线的目的是利用电感效应来中和分布电容。
(3)ModBus通讯协议的指令(功能码)
ModBus通讯协议是主从站通讯方式,什么是主从站呢,我们一般把主站说成上位机,就是电脑的监测数据,从站就是仪表,上位机想要监测数据,上位机(主站)发出一个命令,想看某一从站的电流数据,就对具体某一个仪表(从站)的电流数据进行呼唤,从站接到命令以后,就会有一个响应,向主站发送数据,而在从站发送数据的时候,其它从站是不进行传输的,只有在主站再次对其它从站发出指令,得到指令的从站才能进行响应。
以下是ModBus通讯协议的指令:
01读线圈状态;02读某组开关量;03读保持寄存器;04读输入寄存器;05强置某逻辑通断;06预置单寄存器;15置若干线圈状态on/off;16预置多寄存器。
ModBus功能码与数据类型对应关系:
继电器0xxxxx,数据格式:位,功能码01、15、06;
开关量输入1xxxxx,数据格式:位,功能码02;
模拟量输入3xxxxx,数据格式:整型、状态字、浮点型,功能码04;
保持寄存器4xxxxx,数据格式:整型、字符型、状态字、浮点型,功能码03、10、06;
我们用的最多的就是03功能码,读取寄存器的数据。
4.现场实例
供配电系统中,配电室里大部分低压配电柜的多功能仪表是具备ModBus协议支持485通讯的,所以只需要向厂家要去通讯协议,就可以完成远程读取数据。图2为某厂家提供的ModBus通讯协议(也可以叫通讯点表或数据点表),所有的数据都是16进制。
(1)读取数据寄存器(03功能码)
主机发送:
01 03 00 2B 00 03 75 C3
地址01:从站(仪表)的设置地址;
命令03:03功能码,读取寄存器的值;
起始地址002B:2B是十六进制(换算成十进制就是43),也就是A相电流的数据;
寄存器个数0003:就是这个数据的长度是3个寄存器,也就是Ia、Ib、Ic三个寄存器的数据;
CRC:校验码。
(2)从机响应
01 03 06 13 80 13 90 13 70 75 C3
Ia数据:13 80,换算成十进制就是4992,因为数据格式是int,有符号整数型,13换算成二进制就是00010011,第8位是0,所以为正,Ia=(4992/10000)*101=4.992A;
Ib数据:13 90,换算成十进制就是5008,实际值5.008A;
Ic数据:13 70,换算成十进制就是4976,实际值4.976A。
5.关于ModBus_RTU各种通讯方式现状分析
(1)ModBus_RTU串口通信
这个是最常用的,也是成本最低的。常见的一些主通风机在线监测系统,风机的轴承、电机绕组的温度通过PT100温度探头,将多个探头接入仪表或是巡检仪,通过RS485,在工控机串口加一个RS485转232接口,直接连接电脑,上位机读取数据。
该方式特点就是测温点多,如果每一个点设置一个变送器,相对应的温度变送器的输出信号就要接入PLC每个接点,4-20mA电流信号还需配备安全格栅,而通过PT100温度探头,只需要一个变送器,然后通过变送器的mosbus协议,接485线进入上位机电脑就可以了,可以大大节约成本。
弊端:距离受限,虽然RS48的传输距离为1400米,但是也仅限于现场设备监控,如果集控中心或是远程监控,就只能通过OPC或是WebServer来进行组态软件的传输。
(2)ModBus_RTU/TCP串口转以太网
通过串口服务器,将RTU转为以太网的方式,进入工业环网,实现数据互联互通。经过此方式,我们实现了空压机的远程监测、配电所的远程监控、变频器的远程监测、水位的远程监测、直流屏系统的远程监测。
此种方式的弊端就是无法两个上位机同时访问。
(3)MosBus_TCPIP以太网协议
通过网关服务器,利用ModBus_TCPIP协议将所有读取串口数据分组打包传入远程机房,实现了多个上位机同时访问终端设备,由于主通风机的在线监测,必须考虑到就地和远方的双重监控,通过网关服务器,实现了此目标。
综上所述,通过ModBus协议的各种应用,能够在减少投资的情况,实现各不同厂家的工业仪表与PLC、控制器实现通讯互联,并以实际工程中的实例连接方法给出了具体方案,该方法已成功应用到工业现场监控平台,实现了多个地方远程监控,为煤矿自动化、智能化、无人化的改造提供了更多的技术支持。
摘要:在煤矿很多工控系统中,由于不同厂家生产的仪表、控制器、PLC的通讯方式各不相同,有以太网通讯、RS485通讯、RS232通讯,如何将这些设备实现通讯互联是一个难点问题,本论重点研究利用ModBus协议,实现工业仪表与控制系统之间通讯互联的主要步骤与方法,结合现场实例,给出利用Modbus协议实现通讯互联的完整解决方案。
关键词:ModBus协议,自动化改造
参考文献
[1] 史运涛,孙德辉,李志军,等.基于Modbus协议的通讯集成技术研究[J].化工自动化及仪表,2010,37(4):67-72.
[2] 张白帆.低压成套开关设备的原理及其控制技术[M].北京:机械工业出版社,2014.