一线通模块在MODBUS协议中的若干说明
发布时间:2009年5月16日 1时9分
一线通模块采用RS485通讯接口与上位机通讯,通讯协议采用MODBUS-RTU协议通讯,MODBUS-RTU协议现在广泛的应用于工业现场,一线通系统与上位机系统的组态软件采用该协议进行通讯,现在已经同国内外的多家组态软件通讯,如国内的组态王、MCGS,国外的FIX、INTOUCH等,现就该协议介绍如下:
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
MODBUS串口通讯有两种形式:RTU、ASCII。MODBUS通讯为主从式通讯,一方为主机,另一方为从机,主机发送命令,从机接受命令并应答。从机有从机地址。
双方通讯参数设置必须相同:从机地址、波特率、数据位数、齐偶校验、起始位数、停止位数。通讯双方数据以寄存器号对应。
一线通模块现在与国内外的多家组态软件成功通讯,如国内的组态王、MCGS,国外的IFIX、INTOUCH等,与组态软件连接时候,只需按照MODBUS协议的有关规定设置即可,
举例:以读模拟量数据为例介绍MODBUS通讯过程:
主机读#2-#4模拟量数据,假设从机地址为2,通讯过程如下:
■ 主机发送模拟量采集命令数据串: 02H、04H、00H、01H、00H、03H、CRC、CRC。
→ 02H:——从机地址;
→ 04H:——命令码,04H----读模拟量积存器;
→ 00H、01H:——模拟量积存器起始地址
→ 00H、03H:——欲读取的模拟量数量,双字节,同上。
→ CRC、CRC:——双字节CRC校验结果(数据串前6个字节的CRC校验结果)。
■ 从机接受到主机的上述命令后,经校验正确后,将#2-#4积存器数据发送给主机,数据串如下: 02H、04H、06H、数2H、数2L、数3H、数3L、数4H、数4L、CRC、CRC。
→ 02H:——从机地址。
→ 04H:——功能码(读模拟量数据)。
→ 06H:——回答的数据字节数量(三个数据共6个字节)
→ 数2H、数2L:——#2积存器数据,双字节。
→ 数3H、数3L:——#3积存器数据,双字节。
→ 数4H、数4L:——#4积存器数据,双字节。
→ CRC:——CRC校验。
若通讯参数编程正确,主机按上述命令数据串输出数据,从机就能按要求回复正确的数据。
具体设置可以参见相关组态软件的关于MODBUS协议的设置;一线通与组态王、MCGS的组态连接有专门的论述,详见相关文章;
下面列出了一线通模块中通道与Modbus中寄存器的对应关系:
表一 模块通道与Modbus寄存器地址对应关系表
AI寄存器地址 |
30000+通道号=3xxxx |
DI寄存器地址 |
10000+通道号=1xxxx |
AO寄存器地址 |
40000+通道号=4xxxx |
DO寄存器地址 |
00000+通道号=0xxxx |
表二 通讯模块与上位系统(PC机/DCS/PLC)通讯参数设置表
设置项目 |
设置可选项 |
Modbus地址(从机地址) |
1-255(默认1) |
通讯速率 |
9600bps、19200bps(默认)、38400bps |
奇偶校验 |
无、奇、偶(默认) |
起始位、 |
1位(固定) |
数据位 |
8位(固定) |
停止位、 |
1位(固定) |
|