简婷
安科瑞电气股份有限公司 上海嘉定 201801
1 通讯说明
Modbus-RTU通讯协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上使用主从应答式连接(半双工)。当主计算机的信号寻址到一台终端设备(从机)后,终端设备发出应答信号传输给主机。
MODBUS协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而用于响应到达本机的查询信号。
特别说明:
通信口若是RS485,波特率可在 1200bps、2400,bps、4800 bps、9600bps、19200 bps 和 38400 bps 之间设置,校验位默认为无校验。
仪表的 RS485 通信口要求使用屏蔽双绞线连接,布线时要考虑整个网络的布局:如通信线缆的长度、走向、上位机的位置、网络末端的匹配电阻、通信转换器、网络可扩展性、网络覆盖范围、环境的电磁干扰情况等因素,都要综合考虑。
注:
1、 在布线工程上要严格按要求施工;
2、 对于暂时不需要通信的仪表都要将他们连接到 RS-485 网络上,以便于诊断和测试;
3、 进行 RS-485 电缆连接时,尽量使用双色双绞线,所有的 485 通信口“A"端接同一种颜色,“B"端接另一种颜色。
4、 RS-485 总线(从上位机通信口到任一被连接仪表终端通信口)长不超过 1200 米。
2 信息帧格式
地址码 | 功能码 | 数据区 | CRC效验码 |
1字节 | 1字节 | n字节 | 2字节 |
地址码:地址码在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0~255,在PZ仪表中只使用1~247,其它地址保留。这些位标明了用户的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址都是唯*,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。
功能码:功能码告诉了被寻址到的终端执行何种功能。下表列出了该系列仪表用到的功能码,以及它们的意义和功能。
功能 | 定义 | 操作 |
03H/04H | 读数据寄存器 | 获得一个或多个寄存器的当前二进制值 |
10H | 预置多寄存器 | 设定二进制值到一系列多寄存器中 |
数据区:数据区包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。
例如:功能码告诉终端读取一个寄存器,数据区则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。
CRC效验码:错误校验(CRC)域占用两个字节,包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。
生成一个CRC的流程为:
a、预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。
b、把数据帧中的*一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
c、将CRC寄存器向右移一位,*高位填以0,低位移出并检测。
d、如果低位为0,重复*三步(下一次移位);如果低位为1,将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。
e、重复*三步和*四步直到8次移位。这样处理完了一个完整的八位。
f、重复*2步到*5步来处理下一个八位,直到所有的字节处理结束。
g、*终CRC寄存器的值就是CRC的值。
此外还有一种利用预设的表格计算CRC的方法,它的主要特点是计算速度快,但是表格需要较大的存储空间,该方法此处不再赘述,请参阅相关资料。
3 MODBUS通讯
使用Modbus协议进行通讯时,读数据命令功能码为03H,写数据命令功能码为10H。
具体寄存器地址表如下:
3.1 功能码03H或04H:读寄存器
此功能允许用户获得设备采集与记录的数据及系统参数。主机一次请求的数据个数没有限制,但不能超出定义的地址范围。
下面的例子是从01号从机读3个采集到的基本数据 (数据帧中每个地址占用2个字节)UAB、UBC、UCA,其中UAB的地址为0028H, UBC的地址为0029H, UCA的地址为002AH。
3.2 功能码10H:写寄存器
功能码10H允许用户改变多个寄存器的内容,该仪表中系统参数、开关量输出状态等可用此功能号写入。主机一次*多可以写入16个(32字节)数据。
下面的例子是预置地址为01的仪表输出开关量Do1。开关量输入/输出状态指示寄存器地址为0022H,*9-12位对应DI1-DI4, *13-14位分别对应DO1-DO2。
4 通讯应用
采用下表格式(数据为 16 进制)
4.1 读数据
例 1:三相电压表数据
说 明 :
01:从机地址
03:功能码
0c:十六进制,十进制为 12,表示后面有 12 个字节的数据
1b 05:循环冗余校验码
例 2:读单相电流数据
说 明 :
01:从机地址
03:功能码
04:十六进制,十进制为 4,表示后面有 4 个字节的数据
5a 50:循环冗余校验码
4.2 写数据
例1:单相开关量输出远程控制(控制字:0012H)
说明:
向开关量输出状态位远程写入 1,则闭合;写入 0,则断开。
当继电器闭合持续时间为非 0 时(0 为长闭),继电器闭合持续时间为所设值。
例2:三相开关量输出远程控制(控制字:002aH)
说明:
向开关量输出状态为远程写入 1,则闭合;写入 0,则断开。
当继电器闭合持续时间为非 0 时,表示继电器工作在脉冲方式,继电器闭合持续时间为所设值;若持续时间设置为 0,则表示继电器工作在保持方式。
作者介绍
简婷,安科瑞电气股份有限公司,187 0199 8775
上一篇:综合医院能源管理信息系统的建设
扫一扫 微信咨询
©2024 安科瑞电气股份有限公司 版权所有 备案号:沪ICP备05031232号-79 技术支持:智慧城市网 Sitemap.xml 总访问量:173564 管理登陆
电瓶车充电桩禁止非法改装