协议在一根通讯线上采用主从应答方式的通讯连接方式。首先,主计算机的信号寻址到一台唯一地址的终端设备(从机),然后,终端设备发也的应答信号以相反的方向传输给主机,即;在一根单独的通讯线上信号沿着相反的两个方向传输所有的通讯数据流(的工作模式)。
MODBUS协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
主机查询:查询消息帧包括设备地址码、功能人码、数据信息码、校验码。地址码表明要选中的从机设备;功能代码告之被选中的从设备要执行何种功能,例如功能代码03或04是要求从设备读寄存器并返回它们的内容;包含了从设备要执行功能的其它附加信息,如在读命令中,数据段的附加信息有从何寄存器开始读的寄存器数量;校验码用来检验信息的正确性,为从设备提供了一种验证消息内容是否正确的方法,它采用CRC16的校准规则。
从机响应:如果从设备产生一正常的回应,在回应消息中有从机地址码、功能代码、数据信息码和CRC16校验码。数据信息码包括了从设备收集的数据:如寄存器值或状态。如果有错误发生,我们约定是从机不进行响应。
传输方式是指一个内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与协议-RTU方式相兼容的传输方式。每个字节的位:1个起始位、8个、()、1个停止位(有奇偶校验位时)或2个停止位(无奇位时)。
数据帧的结构:即:报文格式。
地址码 | 数据码 | 校验码 | |
1个BYTE | 1个BYTE | N个BYTE | 2个BYTE |
地址码在帧的开始部分,由一个字节(8位二进制码)组成,为0~255,在我们的系统中只使用1~247,其它地址保留。这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据告诉了主机哪台终端与之进行通信。
告诉了被寻址到的终端执行何种功能。下表列出所支持的功能码,以及它们的意义和功能。
代码 | 意义 | 行为 |
08 | 电能数据复位 (清0) | 将所操作的仪表的电能数据清0 |
数据码包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器,数据域则需要反映明从哪个寄存器开始及读取多少个数据,而从机数据码回送内容则包含了数据长度和相应的数据。
校验码错误(CRC)域占用两个字节,包含了一个16位的值。CRC值由传输设备计算出来,然后附加到上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较。如果这两个值不相等,就发生了错误。
生成一个CRC的流程为:
(1).预置一个16位寄存器为OFFFFH(16进制,全1),称之为CRC寄存器。
(2).把数据帧中的第一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
(3).将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。
(4).上一步中被移出的那一位如果为0:重复第三步(下一次移位);为1:将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。
(5).重复第三点和第四步直到8次移位。这样处理完了一个完整的八位。
(6).重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。
(7).最终CRC寄存器的值就是CRC的值。
通讯报文举例:1.读数据(功能码:03/04):这个功能可使用户获得终端设备采集、记录的数据,以及系统参数。主机一次请求采集的数据个数没有限制,但不能超出定义的地址范围。下面的例子是从终端设备地址为12(0CH)的从机上,读取3个数据Ia、Ib、Ic(中数据每个地址占用2个字,Ia的字地址为18(12H)开始,数据长度为6(06H)个字。字通讯方式。)查询数据帧(主机)
地址 | 命令 | 起始寄存器地址 (高位) | 起始寄存器地址 (低位) | 寄存器个数 (高位) | 寄存器个数 (低位) | CRC16 低位 | CEC16 高位 |
0CH | 03H | 00H | 12H | 00H | 06H | 64H | D0H |
响应(从机)
地址 | 命令 | 数据长度 | 数据1~12 | CRC16 低位 | CRC16 低位 |
表明Ia=43556680H(213.4A)、Ib=43203040H(160.1A)、Ic=42DDCC80(110.8A).
预置数据(:16):此功能允许用户改变多个寄存器的内容(需要强调的是所写入的数据为可写属性参数。个数不超过地址范围,下面的例子是写入电流变比为400A/5A=80通讯方式。
预置(主机)
地址 | 命令 | 起始寄存器地址 (高位) | 起始寄存器地址 (低位) | 寄存器个数 (高位) | 寄存器个数 (低位) | 字节 长度 | 写入 数据 | CRC16 低位 | CEC16 高位 |
响应(从机),表明数据已写入。
地址 | 命令 | 起始寄存器地址 (高位) | 起始寄存器地址 (低位) | 寄存器个数 (高位) | 寄存器个数 (低位) | CRC16 低位 | CEC16 高位 |
0CH | 10H | 00H | 04H | 00H | 01H | 41H | 15H |
MODBUS地址信息表:
地址 | 项目 | 1 | 字节 地址 | 说明 |
设置信息 | ||||
0 | MM | 编程设置密码 | 0,1 | 2字节,1-9999 |
1 | XS1 | 电量显示选择 | 2 | 电量显示方式,0-6 |
DZ | 仪表地址 | 3 | 1字节,1-247 |
|
TXK | 通讯控制字 | 9 | 见位地址说明 |
|
5 | STATUS | 状态 | 10,11 | 保留 |
电量信息 | ||||
22、23 | IC | C | 44、45、46、47 |
|
26、27 | PB | B相有功功率 | 52、53、54、55 |
|
28、29 | PC | C相有功功率 | 56、57、58、59 |
|
30、31 | PS | 总有功功率 | 60、61、62、63 |
|
32、33 | QA | A相 | 64、65、66、67 |
|
34、35 | QB | B相 | 68、69、70、71 |
|
36、37 | QC | C相 | 72、73、74、75 |
|
38、39 | QS | 总 | 76、77、78、79 |
|
40、41 | SS | 总视在功率 | 80、81、82、83 |
|
42、43 | PFS | 功率因数 | 84、85、86、87 |
|
44、45 | FRE | 频率 | 88、89、90、91 |
|
电能信息 | ||||
48、49 | 预留 | 预留 | 96、97、98、99 |
|
50、51 | EQP | 无 功电能 | 100、101、102、103 |
|
52、53 | 预留 | 预留 | 104、105、106、107 |
|
58、59 | WQP | 无 功电能 | 116、117、118、119 |
|
60、61 | 预留 | 预留 | 120、121、122、123 |
|
控制字部分 | ||
参数 | 意义 | |
01-O.8.2 |
|
|
通讯速率 BIT1 BIT0 |
|
|
10-9.6k |
|
|
11-4.8k |
|
|
注:是采用4字节的二进进制的来表示一个数据电量,其数据格式和意义如下:
符号位:SIGN=0为正,SIGN=1为负。
指数部分:E=指数部分-126。
尾数部分:M=尾数部分补上最高位为1。
数据结果:REAL=SIGN×2×M/(256×65536)
例如:主机读电能数据,从地址表上可以知道电能(正有功吸收)地址为:(字节方式,兼容旧标准)
92(005CH)长度为4(0004H)
主机:01H 04H 00 5CH 00 04H 31 DBH
从机:01 04H 04H 50 80 00 00H EBH 6CH`其中50 80 00 00为有功电度(吸收)数据,EBH 6CH CRC16的低位和高位。
其大小:SIGN(符号位=0,正),指数EX=A1H-126=35,尾数:80 00 00H
结果:2×80,00 00H/100 00 00H=17179869184Wh=17179869kWh。
功能输出电能计量和脉冲输出提供电能计量,2路电能脉冲输出功能和的数字接口来完成电能数据的显示和远传。仪表3排12位LED实现有功是能(正向)、无功电能(感性)1次侧数据的显示,右图中表示正向有功电能数据=369587.28kWh(度);集电级开路的继电器的电能脉冲(电阻信号)实现有功电能(正向)和无功电能(反向)远传,采用远程的计算机终端、PLC、DI开关采集模块采集仪表的脉冲总数来实现电能累积计量。休用输出方式的输出还是电能的精度检验的方式(国家计量规程:标准表的脉冲误差比较方法)。
电气特性开关电压≤48V、电流Iz≤50mA。
脉冲常数3200imp/kWh脉冲速度最快不超过200mS。其意义为:当仪表累积时脉冲输出个数为N(3200)个,需要强调的是1kWh为电能的2次电能数据,在PT、CT的情况下,相对的N个脉冲数据对应1次侧电能为1kWh×电压PT×电流变比CT。
应用举例PLC终端使用脉冲计数装置,假定在长度为t的一段时间内采集脉冲个数为N个,仪表输入为:10kV/100V、400A/5A, 则该时间段内仪表电能累积为:N/3200×100×80度电能。
注意事项1、使用前,仪表需通电15分钟。
2、注意防止震动和冲击,不要在有超量灰尘和超量有害气体的地方使用。
3、输入导线不宜过长,如被测信号输入端较长时请试用双绞屏蔽线。
4、若信号伴随高频干扰,应在线里试用低频过滤器。
5、长时间存放未使用时,请每三个月通电一次不少于4小时。
6、长期保存应避开直射光线,宜存放在环境温度-25°C~55°C.
7、如仪表无显示,应先检查辅助电源,电压是否在范围内。
8、如显示不正常,检查输入信号是否正常及信号接线端是否拧紧。
9、除非PT有足够功率,否则不能使用PT信号同时作为辅助电源,以保证仪表正常工作。
10、CT回路中的电流接线端子螺丝务必拧紧,保证进/出线接触可靠,以免产生故障。
11、若要校验仪表,校验仪器应优于0.1级,才能保证校验精度。