RTU测试步骤V1.0.8 联系客服

发布时间 : 星期五 文章RTU测试步骤V1.0.8更新完毕开始阅读

02:非法的数据地址 03:非法的数据值 04:从机设备故障 05:确认

06:从设备忙碌 07:否定

08:内存奇偶校验错

以下是测试下发的数据及回应:

1.开关输入(读 8路)

读开关输入:

主机下发命令 读开关输入 读8路 01 02 00 00 00 08 79 CC

--01 02 01 00 A1 88 //00代表8路全为0

--01 02 01 04 A0 4B //04--100 代表3路为高

--01 02 01 03 E1 89 //会8路全部读取无论读取的是不是全部 03--11,代表第1-2路为高 --01 02 01 0C A1 8D // 0c--1100,代表3-4路为高 13:54 2015-4-13 --01 02 01 30 A1 9C // 30--110000,代表5-6路为高 注:没有启用的情况下,读取到数值全为0,不会回应错误

2.AD模拟输入(读 8路)

读AD模拟输入:

主机下发命令 读AD输入 读第1路 01 04 00 00 00 02 71 CB

--01 04 04 00 00 00 00 FB 84

----01 04 04 00 00 0B B1 3C C0 //0B B1 --2993

主机下发命令 读AD输入 读第2路 01 04 00 02 00 02 D0 0B

--01 04 04 00 00 0B B1 3C C0 //2993

主机下发命令 读AD输入 读第3路 01 04 00 04 00 02 30 0A

--01 04 04 00 00 0B B1 3C C0

主机下发命令 读AD输入 读第4路 01 04 00 06 00 02 91 CA

--01 04 04 00 00 0B B3 BD 01 //0B B3--2995

主机下发命令 读AD输入 读第5路 01 04 00 08 00 02 F0 09

--01 04 04 00 00 01 CB BB 83

主机下发命令 读AD输入 读第6路 01 04 00 0A 00 02 51 C9

--01 04 04 00 00 01 CC FA 41

主机下发命令 读AD输入 读第7路 01 04 00 0C 00 02 B1 C8

--01 04 04 00 00 01 CC FA 41

主机下发命令 读AD输入 读第8路 01 04 00 0E 00 02 10 08

主机下发命令 读AD输入 读全部8路 01 04 00 00 00 10 F1 C6

---01 04 20 00 00 23 17 00 00 23 0F 00 00 23 18 00 00 22 FD EE 00 00 23 55 00 00 23 1E 00 00 22 F1 00 00 23 24 74 B0

//00 00 23 17---8983,00 00 23 0F---8975,00 00 23 18--8984,00 00 22 FE--8958,00 00 23 55--9045,00 00 23 1E--8990,00 00 22 F1--8945,00 00 23 24--8996

3.继电器(读写 4路)

读继电器:

主机下发命令 读继电器 读4路 01 01 00 0F 00 04 0d ca

--01 01 01 00 51 88 // 00--0,4路继电器都为断开 --01 01 01 0F 11 8C // 0f--1111,4路继电器都为闭合

--01 01 01 05 91 8B // 05--0101,1、3路继电器为闭合,2、4路断开 --01 01 01 0A D1 8F // 0A--1010,2、4路继电器为闭合

写继电器:

//写继电器 写第1路为断开状态 00016-1=15

下发--01 0F 00 0F 00 01 01 00 7A 96 //00 0F起始寄存器地址,00 04寄存器的数量,01字节数,00输出值 回应--01 0F 00 0F 00 01 08 A4

//写继电器 写第2路为断开状态

下发--01 0F 00 10 00 01 01 00 ef 54 //00 0F起始寄存器地址,00 04寄存器的数量,01字节数,00输出值 回应--01 0F 00 10 00 01 CE 95

//写继电器 写第3路为断开状态

下发--01 0f 00 11 00 01 01 00 d2 94 //00 0F起始寄存器地址,00 04寄存器的数量,01字节数,00输出值 回应--01 0F 00 11 00 01 0E C4

//写继电器 写第4路为断开状态

下发--01 0f 00 12 00 01 01 00 96 94 //00 0F起始寄存器地址,00 04寄存器的数量,01字节数,00输出值 回应--01 0F 00 12 00 01 0E 34

//写继电器 写4路 4路都为断开状态

下发--01 0F 00 0F 00 04 01 00 6a 97 //00 0F起始寄存器地址,00 04寄存器的数量,01字节数,00输出值 回应--01 0F 00 0F 00 04 0B 64

//写继电器 写4路 4路都为闭合状态 下发--01 0F 00 0F 00 04 01 0F 2a 93 回应--01 0F 00 0F 00 04 0B 64

4.数字输出(读写 4路)

数字输出对应的首地址16进行表示0x0037,1路数字输出对应2个寄存器 0x0037 代表的是数字输出的当前状态 高电平 低电平 方波 1-高电平 2- 低电平 3- 方波

0x0038 代表的是数字输出的方波周期(若不是方波则是00 00)

//40056-40001=55,55--37(16进制),数字输出对应的首地址16进行表示0x0037,1路数字输出对应2个寄存器 40058-40001=57,57--39(16进制) )

注意:这里如果配置为上升沿和下降沿,提交之后,再次采集--读取会变成高低电平,这是正常的,因为上升下降只是瞬间。 注意:当状态为“方波”时,周期才有效,否则值为0

读数字输出:

01 03 00 37 00 02 75 c5 //读第1路

--01 03 04 00 00 00 01 3B F3 //00 01高电平,00 00周期 当状态为“方波”时,周期才有效,否则值为0 01 03 00 37 00 02 75 c5

01 03 00 39 00 02 14 06 //读第2路 //00 03--方波

--01 03 04 01 F4 00 03 FA 3C //01 F4--500方波周期,00 03--方波

01 03 00 3B 00 02 B5 c6 //读第3路

--01 03 04 02 BC 00 03 7A 6E //02 BC--700方波周期,00 03--方波

01 03 00 3D 00 02 55 c7 //读第4路

--01 03 04 03 20 00 03 BB BC //02 BC--800方波周期,00 03--方波

01 03 00 37 00 08 F5 C2 //读1-4路

--01 03 10 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 17 48 //高 高 高 高 --01 03 10 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 07 B9 //高 低 低 低

--01 03 10 00 C9 00 03 00 C9 00 03 00 C9 00 03 00 C9 00 03 A3 90 //00 03-方波,00 C9-周期201 4路都是一样的 15:48 2015-4-13

写数字输出:

//写数字输出第1路当前状态 (高低电平、方波、等)修改为高电平 //没有启用的话 会回应错误 下发--01 06 00 37 00 01 f9 c4 //06写单个寄存器,00 37当前状态寄存器地址,01-高电平 回应--01 06 00 37 00 01 F9 C4

//写数字输出第1路当前状态 (高低电平、方波、等)修改为方波 //没有启用的话 会回应错误 下发--01 06 00 37 00 03 78 05 //06写单个寄存器,00 37当前状态寄存器地址,03-方波 回应--01 06 00 37 00 03 78 05

//写数字输出第1路(周期)修改周期为32 01 06 00 37 00 21 f8 1c

下发--01 06 00 38 00 20 09 df//06写单个寄存器,00 38方波周期寄存器地址,00 20--32周期值 回应--01 06 00 38 00 20 09 DF

//写数字输出第2路(周期)修改周期为32

下发--01 06 00 3a 00 20 a8 1f//06写单个寄存器,00 3a方波周期寄存器地址,00 20--32周期值 回应--01 06 00 3A 00 20 A8 1F

//写数字输出第3路(周期)修改周期为32

下发--01 06 00 3c 00 20 48 1e//06写单个寄存器,00 3c方波周期寄存器地址,00 20--32周期值 回应--01 06 00 3c 00 20 48 1e

//写数字输出第4路(周期)修改周期为32

下发--01 06 00 3e 00 20 e9 de//06写单个寄存器,00 3e方波周期寄存器地址,00 20--32周期值 回应--01 06 00 3e 00 20 e9 de

//写数字输出 写1路 修改为方波,修改周期为201

下发--01 10 00 37 00 02 04 00 c9 00 03 21 62 //00 37寄存器地址,00 02-寄存器的数量,04字节数,00 c9-周期为201,00 03-方波 回应--01 10 00 37 00 02 06 F0

//写数字输出 写2路 第一路修改为方波 修改周期为201,修改第二路修改为方波 修改周期为201

下发--01 10 00 37 00 04 08 00 c9 00 03 00 c9 00 03 8E C2 //00 37寄存器地址,00 04-寄存器的数量,08字节数,00 c9 00 03-第1路的值,00

c9 00 03第2路的值

回应--01 10 00 37 00 04 04 70

//写数字输出 写4路 1(方波 201) 2(方波 201) 3(方波 201) 4(方波 201)

下发--01 10 00 37 00 08 10 00 c9 00 03 00 c9 00 03 00 c9 00 03 00 c9 00 03 AE 47 回应--01 10 00 37 00 08 01 70

//写数字输出 写4路 1(高电平 100) 2(高电平 100) 3(高电平 100) 4(高电平 100)

下发--01 10 00 37 00 08 10 00 64 00 01 00 64 00 01 00 64 00 01 00 64 00 01 F1 9C 回应--01 10 00 37 00 08 01 70

5.计数器输入(读写 4路)

读计数器输入:

主机下发命令 读计数器输入 读1路

01 03 00 00 00 04 44 09 //03读保持寄存器,00 00起始寄存器地址,00 04寄存器数量--每路占用4个寄存器,每个寄存器2字节 --01 03 08 00 00 00 00 00 00 00 00 95 D7 ==01 03 08 00 00 00 00 00 00 00 00 95 D7

--01 03 08 00 00 00 00 00 00 00 03 D5 D6 //08字节数 第一路的值为03--3

--01 03 08 00 00 00 00 00 00 00 3D 54 06 //08字节数 第一路的值为3D--61(10进制)

主机下发命令 读计数器输入 读6路

01 03 00 00 00 18 45 c0 //18--24, 4*6=24,每路4字节,采集6路

--01 03 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 BC

--01 03 30 00 00 00 00 00 00 00 9B 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 36 79

//30字节数48,第一路00 00 00 00 00 00 00 9B--155,第2路-- 02,第3路--01,第4路--02,第5路--02,第6路--01 16:01 2015-4-13

写计数器输入:

计数器每占用4个寄存器,8个字节。 //写计数器输入 写第1路 清零

下发--01 06 00 00 00 00 89 ca //01从设备地址,06功能码--写单个寄存器,00 00寄存器地址,00 00寄存器的值 下发--01 06 00 00 00 00 89 CA //写计数器输入 写第2路 清零

下发--01 06 00 04 00 00 C8 0B //01从设备地址,06功能码--写单个寄存器,00 00寄存器地址,00 00寄存器的值 下发--01 06 00 04 00 00 C8 0B

//写计数器输入 写第3路 清零

下发--01 06 00 08 00 00 08 08 //01从设备地址,06功能码--写单个寄存器,00 00寄存器地址,00 00寄存器的值 下发--01 06 00 08 00 00 08 08

//写计数器输入 写第4路 清零

下发--01 06 00 0c 00 00 49 c9 //01从设备地址,06功能码--写单个寄存器,00 00寄存器地址,00 00寄存器的值 下发--01 06 00 0C 00 00 49 C9

//写计数器输入 写第5路 清零

下发--01 06 00 10 00 00 88 0f //01从设备地址,06功能码--写单个寄存器,00 00寄存器地址,00 00寄存器的值 下发--01 06 00 10 00 00 88 0F

//写计数器输入 写第6路 清零 //第6路路清0有误

下发--01 06 00 14 00 00 C9 CE //01从设备地址,06功能码--写单个寄存器,00 00寄存器地址,00 00寄存器的值 下发--01 86 03 02 61

//写计数器输入 写第1-2路 清零 //每路占用4寄存器,每个寄存器2个占字节

01 10 00 00 00 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 cd // 4*2=8(寄存器个数),8*2=16(占用字节数) --01 10 00 00 00 08 CF C1 //写计数器输入 写第1-3路 清零

01 10 00 00 00 0c 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 df // 4*3=12,12*2=24 --01 10 00 00 00 0C 0C C0

//写计数器输入 写第1-4路 清零

01 10 00 00 00 10 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 83 bc //

4*4=16--10,16*2=32--20 --01 10 00 00 00 10 C5 C1