在线工博会

Modbus通讯协议在空气压缩机监控系统中的应用
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
引言
广东某铅锌矿运转工区的空气压缩机组是采矿生产中的关键设备,共有六台进口的英格索兰CENTAC空气压缩机,它的运行稳定与否直接关系到整个矿区的安全生产和经济效益。
原上位机监控软件为英格索兰公司的CEM2.52,由于其数据处理量大,数据更新速度慢;并且软件必须运行在Windows英文版操作平台上,操作人员很难看懂英文数据,软件版本也无法升级;另外,上位机的报警功能失效,远程操作与管理功能无法实现,造成操作人员无法及时发现问题,处理突发事件。为了解决上述存在的问题,提高生产自动化程度,决定对空气压缩机组原有的监控系统进行改造。控制系统间的通讯是改造过程中的难点,本文介绍了采用Modbus通讯协议实现上述通讯的方法,采用力控组态软件开发了空气压缩机监控系统,实现了空气压缩机组的智能化控制,使得空气压缩机运转稳定、可靠、精度高、维护方便,而且保证了矿区的安全生产,具有直接的经济效益。
Modbus通讯协议
1.1协议
Modbus协议是由MODICON公司为其控制器设计的一种可靠而有效的工业控制系统通信协议。从功能上看,可以认为是一种现场总线[1]。Modbus协议定义了消息域格式和内容的公共格式,使控制器能认识和使用消息结构,而无需考虑通信网络的拓扑结构,它描述了一个控制器访问其它设备的过程。当采用Modbus协议通信时,此协议规定每个控制器需要知道自己的设备地址,识别按地址发来的消息,如何响应来自其它设备的请求,如何侦测错误并记录。其数据通讯采用主—从方式,主机只能有1台,每个从机都有指定的地址,地址范围在0~247之间(其中0为广播地址),只有主机具有主动权,从机只能对主机发送的命令作出响应。当主机端发出数据请求消息(查询)时,从机端接收到正确消息后就可以发送数据到主机端以响应请求;主机端也可以直接发消息修改从机端的数据,实现读和写。查询—回应周期如图1。如果采用广播方式(地址为0)查询,从机不作任何回应。

(图片)

1.2 信息块格式
Modbus通讯时主机发出的指令字符串的通常格式如表1。

(图片)

从机地址:主机指明的接收命令的从机地址。
功能码:功能码决定本次通讯要求从机执行的动作,功能码占1个字节,MODBUS可能的功能代码范围是十进制的1~255。其中有些代码适用于所有的控制器,有些是针对某种MODICON控制器,有些是为用户保留或备用。表2为Modbus协议规定的标准功能码,某些设备的Modbus协议只兼容其中的一部分功能码,表中的功能码为16进制数。

(图片)

数据起始地址:通讯时读出、写入数据的起始地址。Modbus有多种批量数据操作功能码,可同时读出或写入多个具有连续地址的数据。数据起始地址占用2个字节。
数据量:命令中进行读出或写入的数据数量,这些数据从起始地址开始连续地址排列,在对模拟量进行操作时,每个数据具有2字节;在对数字量进行操作时每8个数据为1个字节。数据量占用2个字节。
1.3数据格式
Modbus通讯协议规定了2种通讯方式。RTU(REMOTE TERMINAL UNIT)方式通讯采用8位字节的二进制数据通讯,数据校验采用CRC循环冗余校验,通讯速度较快;ASCII方式采用7位ASCII码进行通讯,数据校验采用LRC逻辑冗余校验,通讯速率较慢。在一个通讯系统中,只能选用一种通讯方式,两种方式不能并用。为了减少网络数据传输量,在我们的应用系统中一般使用RTU通讯方式。
2 系统的硬件组成
下位监控站采用六个英格索兰单片机对六台空气压缩机进行控制,包括对压力、振动、温度,油温、油压等参数的监控,每个单片机外接一个通用通讯模块,上位监控站采用工控机,由于现场控制站与工控机相距60m左右,使用RS485/RS232 转换器,转换器与现场控制站采用RS485总线,工控机与转换器之间采用RS232总线,这样既解决了传输距离过远而无法连接问题,也提高了系统的抗干扰能力。其硬件组成Modbus通讯网络如图2所示。软件平台采用WindowsXP,选用三维科技有限公司的力控组态软件。

(图片)

3 力控的I/O驱动配置
在使用力控软件进行组态时,I/O设备驱动配置为:采用标准的Modbus,选RTU串行口通讯方式,按设备地址从01—06匹配六台现场控制机,数据更新周期为500毫秒,超时时间为8秒,使用串口(RS232/422/485)通讯,COM1端口设置与现场控制机的端口参数设置一样为9600.8.无.1
4 通讯过程
Modbus协议通讯时主机首先向从机发送通讯请求命令字符串,从机接收到命令字符串后,根据命令字符串中的命令码向主机作出相应的回答,完成一次通讯,整个的网络通讯都是由主机进行调度。下面举例说明04和05功能码实现模拟量数据读取和远程操作功能的通讯过程[2]。
例1:假定主机要求读取01从机的系统压力数值时,主机将发送如表3所示的通讯请求命令字符串,在英格索兰单片机中系统压力数据起始地址为十六进制代码0BBE(Modbus协议规定通讯字符串中的地址比实际地址小“1”),正常情况下从机回信字符串如表4。

(图片)

从机地址即01号机的设备地址,数据量0002表示存放系统压力数值有两个寄存器,该位占两个字节。

(图片)

英格索兰单片机是一个32位浮点数处理器,数据“42DCD4C6”经过IEEE32位浮点数转换后得出系统压力为110.4156psi。
例2:假定主机要求远程启动01从机,主机将发送如表5所示的通讯请求命令字符串,在英格索兰单片机中远程启动数据起始地址为十六进制代码00E0,正常情况下从机回信字符串如表6。

(图片)

从机回信的字符串与主机发送的通讯请求命令字符串应该是同样的,数据“FF00”迫使01从机的远程启动继电器线圈打开,数据“0000”迫使01从机的远程启动继电器线圈关闭。

(图片)

5 结束语
利用Modbus协议实现了矿区空气压缩机监控系统中的上位工控机与下位英格索兰通用通讯模块的数据通讯,开发了空气压缩机监控系统。运转两个多月来的情况表明,该系统运行可靠,维护方便,监控过程显示形象直观,为矿区运转工区最终实现“无人值班,少人值守”的目标奠定了基础。 1/22/2006


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站