中央监控器MODBUS通信协议
监控器采用Modbus RTU通讯规约,可方便地进行遥测、遥信、遥控、遥调操作。
1.物理接口
1).串行通信口RS-232。
2).信息传输方式为:异步,1位起始位,8位数据位,1位停止位。
3).数据传输速率:9600B/S。
4).当传送2字节数据时,高8位在前,低8位在后;传送CRC校验码时,高8位在前,低8位在后。
5).传输的数据采用二进制码。
6).监控器在系统中的地址为:0C0H(十进制数192),不支持广播命令。
2.功能码03,读取点和返回值:
中央监控器采用Modbus RTU通讯规约,利用通讯命令,可以进行读取点(“保持寄存器”) 或返回值(“输入寄存器” )。保持和输入寄存器是16位(2字节),并且返回值高位在前。协议规定一次只能读取单个寄存器地址(一个整型数值,2 BYTE)。由于一些可编程控制器不用功能码03,所以功能码03被用作读取点和返回值。从机响应的命令格式是从机地址、功能码、数据区及CRC码。数据区的数据都是每二个字节高位在前,CRC校验码低位在前,高位在后。
信息帧格式举例:
从机地址为C0,起始地址0000的单个寄存器地址。
此例中寄存器数据地址为:
地址数据
0000 EA60
主机发送字节数举例
从机地址 1 C0 发送至从机0C0H
功能码 1 03 读取寄存器
起始地址 2 00 起始地址为 0032
32
读取点数 2 00 读取1个寄存器(共2字节)
01
CRC码 2 Low 由主机计算得到的CRC码
High
从机响应字节数举例
从机地址 1 C0 来自从机0C0H
功能码 1 03 读取寄存器
读取字节数 1 02 2个寄存器字节总数
寄存器数据1 2 EA 地址为0032内的内容
60
CRC码 2 H 由从机计算得到的CRC码
L
其中标示红色的地方,客户一般只要显示这些比较重要的量,每问一句只能采集一个数据。
3.功能码06,单点保存:
主机利用这条命令把单点数据保存到的存储器。从机也用这个功能码向主机返送信息。
信息帧格式举例:
从机地址为C0,保存起始地址0000的1个值。在此例中,数据保存结束后,从机中地址为0002内的内容为0002。
主机发送字节数举例
从机地址 1 CO 发送至从机0C0H
功能码 1 06 单点保存
起始地址 2 00 起始地址为 0002
02
保存数据 2 00 保存的数据为0002
02
CRC码 2 H 由主机计算得到的CRC码
L
从机响应字节数举例
从机地址 1 C0 来自从机0COH
功能码 1 06 单点保存
起始地址 2 00 起始地址为 0002
02
保存数据 2 00 保存的数据为0002
02
CRC码 2 H 由从机计算得到的CRC码
L
错误返回值:
如果主机发出的数据地址错误或数据值错误,则中央监控器向主机回送错误信息,功能码的最高位为1,即中央监控器返回给主机的功能码是在主机已送的功能码上加128。
从机返回的错误码的格式如下:
地址码:1字节
功能码:1字节(最高位为1)
错误码:1字节
CRC码:2字节
错误码如下:
01.收到错误的功能码,本协议只用03和06功能,如果收到其它码,则返回01错误码。
02.CRC校验码错。
03.非法的数据地址:接收到的数据地址的范围。
04.非法的数据值:接收到的数据值超出相应地址的数据范围。
05.非法的寄存器地址数:本协议规定一次只读一个寄存器地址,所以上位机企图一次读多个或0个寄存器地址,将返回错误码05。