工业级无线数传采集终端RTU的MODBUS协议调试详解.docx
- 文档编号:29896689
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:14
- 大小:572.70KB
工业级无线数传采集终端RTU的MODBUS协议调试详解.docx
《工业级无线数传采集终端RTU的MODBUS协议调试详解.docx》由会员分享,可在线阅读,更多相关《工业级无线数传采集终端RTU的MODBUS协议调试详解.docx(14页珍藏版)》请在冰豆网上搜索。
工业级无线数传采集终端RTU的MODBUS协议调试详解
工业级无线数传采集终端RTU的MODBUS协议调试详解
Modbus协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
开启MODUBS配置:
测试之前首先要在RTUWEB页面里--"服务器参数设置",根据如下图修改配置:
注意:
要测试的那路要先启用,否则读取到数值可能全为0,有的会回应错误有的不会。
打开网络调试助手,开启TCP服务端口27000,等待上线后(若RTU已经在线需重启才能连上),就可以发送数据了,就会得到相应回应!
数据回应错误码:
00:
没有错误
01:
非法功能码
02:
非法的数据地址
03:
非法的数据值
04:
从机设备故障
05:
确认
06:
从设备忙碌
07:
否定
08:
内存奇偶校验错
以下是测试下发的数据及回应:
1.开关输入(读8路)
读开关输入:
主机下发命令读开关输入读8路
01020000000879CC
--01020100A188//00代表8路全为0
--01020104A04B//04--100代表3路为高
--01020103E189//会8路全部读取无论读取的是不是全部03--11,代表第1-2路为高
--0102010CA18D//0c--1100,代表3-4路为高13:
542015-4-13
--01020130A19C//30--110000,代表5-6路为高
注:
没有启用的情况下,读取到数值全为0,不会回应错误
2.AD模拟输入(读8路)
读AD模拟输入:
主机下发命令读AD输入读第1路
01040000000271CB
--01040400000000FB84
----01040400000BB13CC0//0BB1--2993
主机下发命令读AD输入读第2路
010400020002D00B
--01040400000BB13CC0//2993
主机下发命令读AD输入读第3路
010400040002300A
--01040400000BB13CC0
主机下发命令读AD输入读第4路
01040006000291CA
--01040400000BB3BD01//0BB3--2995
主机下发命令读AD输入读第5路
010400080002F009
--010404000001CBBB83
主机下发命令读AD输入读第6路
0104000A000251C9
--010404000001CCFA41
主机下发命令读AD输入读第7路
0104000C0002B1C8
--010404000001CCFA41
主机下发命令读AD输入读第8路
0104000E00021008
主机下发命令读AD输入读全部8路
010400000010F1C6
---010420000023170000230F00002318000022FDEE000023550000231E000022F10000232474B0
//00002317---8983,0000230F---8975,00002318--8984,000022FE--8958,00002355--9045,0000231E--8990,000022F1--8945,00002324--8996
3.继电器(读写4路)
读继电器:
主机下发命令读继电器读4路
0101000F00040dca
--010101005188//00--0,4路继电器都为断开
--0101010F118C//0f--1111,4路继电器都为闭合
--01010105918B//05--0101,1、3路继电器为闭合,2、4路断开
--0101010AD18F//0A--1010,2、4路继电器为闭合
写继电器:
//写继电器写第1路为断开状态00016-1=15
下发--010F000F000101007A96//000F起始寄存器地址,0004寄存器的数量,01字节数,00输出值
回应--010F000F000108A4
//写继电器写第2路为断开状态
下发--010F001000010100ef54//000F起始寄存器地址,0004寄存器的数量,01字节数,00输出值
回应--010F00100001CE95
//写继电器写第3路为断开状态
下发--010f001100010100d294//000F起始寄存器地址,0004寄存器的数量,01字节数,00输出值
回应--010F001100010EC4
//写继电器写第4路为断开状态
下发--010f0012000101009694//000F起始寄存器地址,0004寄存器的数量,01字节数,00输出值
回应--010F001200010E34
//写继电器写4路4路都为断开状态
下发--010F000F000401006a97//000F起始寄存器地址,0004寄存器的数量,01字节数,00输出值
回应--010F000F00040B64
//写继电器写4路4路都为闭合状态
下发--010F000F0004010F2a93
回应--010F000F00040B64
4.数字输出(读写4路)
(
数字输出对应的首地址16进行表示0x0037,1路数字输出对应2个寄存器
0x0037代表的是数字输出的当前状态高电平低电平方波
1-高电平
2-低电平
3-方波
0x0038代表的是数字输出的方波周期(若不是方波则是0000)
//40056-40001=55,55--37(16进制),数字输出对应的首地址16进行表示0x0037,1路数字输出对应2个寄存器
40058-40001=57,57--39(16进制)
)
注意:
这里如果配置为上升沿和下降沿,提交之后,再次采集--读取会变成高低电平,这是正常的,因为上升下降只是瞬间。
注意:
当状态为“方波”时,周期才有效,否则值为0
读数字输出:
01030037000275c5//读第1路
--010304000000013BF3//0001高电平,0000周期当状态为“方波”时,周期才有效,否则值为0
01030037000275c5
0103003900021406//读第2路//0003--方波
--01030401F40003FA3C//01F4--500方波周期,0003--方波
0103003B0002B5c6//读第3路
--01030402BC00037A6E//02BC--700方波周期,0003--方波
0103003D000255c7//读第4路
--01030403200003BBBC//02BC--800方波周期,0003--方波
010300370008F5C2//读1-4路
--010310000000010000000100000001000000011748//高高高高
--0103100000000100000002000000020000000207B9//高低低低
--01031000C9000300C9000300C9000300C90003A390//0003-方波,00C9-周期2014路都是一样的15:
482015-4-13
写数字输出:
//写数字输出第1路当前状态(高低电平、方波、等)修改为高电平//没有启用的话会回应错误
下发--010600370001f9c4//06写单个寄存器,0037当前状态寄存器地址,01-高电平
回应--010600370001F9C4
//写数字输出第1路当前状态(高低电平、方波、等)修改为方波//没有启用的话会回应错误
下发--0106003700037805//06写单个寄存器,0037当前状态寄存器地址,03-方波
回应--0106003700037805
//写数字输出第1路(周期)修改周期为32010600370021f81c
下发--01060038002009df//06写单个寄存器,0038方波周期寄存器地址,0020--32周期值
回应--01060038002009DF
//写数字输出第2路(周期)修改周期为32
下发--0106003a0020a81f//06写单个寄存器,003a方波周期寄存器地址,0020--32周期值
回应--0106003A0020A81F
//写数字输出第3路(周期)修改周期为32
下发--0106003c0020481e//06写单个寄存器,003c方波周期寄存器地址,0020--32周期值
回应--0106003c0020481e
//写数字输出第4路(周期)修改周期为32
下发--0106003e0020e9de//06写单个寄存器,003e方波周期寄存器地址,0020--32周期值
回应--0106003e0020e9de
//写数字输出写1路修改为方波,修改周期为201
下发--0110003700020400c900032162//0037寄存器地址,0002-寄存器的数量,04字节数,00c9-周期为201,0003-方波
回应--01100037000206F0
//写数字输出写2路第一路修改为方波修改周期为201,修改第二路修改为方波修改周期为201
下发--0110003700040800c9000300c900038EC2//0037寄存器地址,0004-寄存器的数量,08字节数,00c90003-第1路的值,00
c90003第2路的值
回应--0110003700040470
//写数字输出写4路1(方波201)2(方波201)3(方波201)4(方波201)
下发--0110003700081000c9000300c9000300c9000300c90003AE47
回应--0110003700080170
//写数字输出写4路1(高电平100)2(高电平100)3(高电平100)4(高电平100)
下发--0110003700081000640001006400010064000100640001F19C
回应--0110003700080170
5.计数器输入(读写4路)
读计数器输入:
主机下发命令读计数器输入读1路
0103000000044409//03读保持寄存器,0000起始寄存器地址,0004寄存器数量--每路占用4个寄存器,每个寄存器2字节
--010308000000000000000095D7
==010308000000000000000095D7
--0103080000000000000003D5D6//08字节数第一路的值为03--3
--010308000000000000003D5406//08字节数第一路的值为3D--61(10进制)
主机下发命令读计数器输入读6路
01030000001845c0//18--24,4*6=24,每路4字节,采集6路
--01033000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000C0BC
--010330000000000000009B0000000000000002000000000000000100000000000000020000000000000002
00000000000000013679
//30字节数48,第一路000000000000009B--155,第2路--02,第3路--01,第4路--02,第5路--02,第6路--0116:
012015-4-13
写计数器输入:
计数器每占用4个寄存器,8个字节。
//写计数器输入写第1路清零
下发--01060000000089ca//01从设备地址,06功能码--写单个寄存器,0000寄存器地址,0000寄存器的值
下发--01060000000089CA
//写计数器输入写第2路清零
下发--010600040000C80B//01从设备地址,06功能码--写单个寄存器,0000寄存器地址,0000寄存器的值
下发--010600040000C80B
//写计数器输入写第3路清零
下发--0106000800000808//01从设备地址,06功能码--写单个寄存器,0000寄存器地址,0000寄存器的值
下发--0106000800000808
//写计数器输入写第4路清零
下发--0106000c000049c9//01从设备地址,06功能码--写单个寄存器,0000寄存器地址,0000寄存器的值
下发--0106000C000049C9
//写计数器输入写第5路清零
下发--010600100000880f//01从设备地址,06功能码--写单个寄存器,0000寄存器地址,0000寄存器的值
下发--010600100000880F
//写计数器输入写第6路清零//第6路路清0有误
下发--010600140000C9CE//01从设备地址,06功能码--写单个寄存器,0000寄存器地址,0000寄存器的值
下发--0186030261
//写计数器输入写第1-2路清零//每路占用4寄存器,每个寄存器2个占字节
011000000008100000000000000000000000000000000019cd//4*2=8(寄存器个数),8*2=16(占用字节数)
--011000000008CFC1
//写计数器输入写第1-3路清零
01100000000c1800000000000000000000000000000000000000000000000092df//4*3=12,12*2=24
--01100000000C0CC0
//写计数器输入写第1-4路清零
01100000001020000000000000000000000000000000000000000000000000000000000000000083bc//
4*4=16--10,16*2=32--20
--011000000010C5C1
//写计数器输入写第1-5路清零
01100000001428000000000000000000000000000000000000000000000000000000000000000000000000
00000000f49d//4*5=20--14,20*2=40--28
--01100000001406C0
//写计数器输入写第1-6路清零
01100000001830000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000239d//4*6=24--18,24*2=48--30
--0190030C01
注:
RTU支持亚控阻态软件,具体用法请参照其它文件。
6.PWM输出(读写2路)
(
PWM对应首地址的16进行表示是0x002F,1路PWM2个寄存器
0x002F代表的是PWM的周期
0x0030代表的是PWM的占空比(值不能大于10进制数100)
)
读PWM输出:
主机下发命令读PWM输出1-2路读2路//40048-40001=47,47--2f
0103002f000475c0//读写都一样,占空比在前,周期在后
--0103080000003C0000002105CA//第1路频率(Hz)3C--60,占空比--0,第2路频率(Hz)21--33,占空比--0
--0103080050003C005A002175DC//第1路频率(Hz)003C--60,占空比0050--80,第2路频率(Hz)0021--33,占空比005A--90
读取PWM第1路周期
0103002f0001b5c3
--0103020020B99C//第1路频率(Hz)003C--60,占空比0050--80
读取PWM第1路占空比
0103003000018405
--01030200063846//第1路频率(Hz)003C--60,占空比0050--80
读取PWM第2路周期
010300310001d5c5
--0103020003F845//第1路频率(Hz)003C--60,占空比0050--80
读取PWM第2路占空比
01030032000125c5
--0103020004B987//第1路频率(Hz)003C--60,占空比0050--80
读取PWM第1路周期和占空比一起
0103002f0002F5c2
--0103040050003CFA33//第1路频率(Hz)003C--60,占空比0050--80
读取PWM第2路周期和占空比一起
01030031000295c4//40050-40001=49,49--31
--010304005A00211A38//第2路频率(Hz)0021--33,占空比005A--90
写PWM输出:
//写PWM写第1路修改占空比为11周期为12
下发--0110002F000204000B000Cc030//000B-11,000C-12
回应--0110002F00020170
===0110002F0002017011:
112015-4-13
//写PWM写1路修改占空比为11周期为12故意错误的地址
下发--0110002E000204000B000C01FC
回应--019002CDC1非法的数据地址
===0190030C0111:
112015-4-13
//写PWM写第2路修改占空比为11周期为12
下发--01100031000204000B000C40b0//000B-11,000C-12
回应--0110003100020710
//写PWM写2路修改第一路占空比为11周期为12修改第二路占空比为11周期为12
下发--0110002F000408000B000C000B000CF8D7
回应--0110002F000403F0
//写PWM输出第一路修改周期为32
下发--0106002F0020b9db
回应--0106002F0020B9DB
==0106002F0020B9DB10:
582015-4-13
下发--0106002F03e8b8bd//修改周期为1000
==0106002F03E8B8BD11:
052015-4-13
//写PWM输出第一路修改占空比为33
下发--01060030002149dd
回应--01060030002149DD
===01060030002149DD10:
572015-4-13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工业 无线 采集 终端 RTU MODBUS 协议 调试 详解