发表于:2013/10/21 16:50:32
#0楼
在与设备进行modbus通讯时,客户会面临以下几个问题:
(1) 设备是非标准的modbus,驱动如何配置?
(2) 寄存器的地址和功能码如何对应,如40001寄存器应该与几号功能码对应?偏移地址设置为多少?
针对以上问题,本期将向您介绍力控mod bus驱动详细使用办法。
1、首先理解寄存器与功能码的概念
MODBUS对应的寄存器只4种
0开头的寄存器是开关量输出,或称DI,如000001
1开头的寄存器是开关量输入,或称DO,如100001
3开头的寄存器是模拟量输入,或称AI,如300001
4开头的寄存器是模拟量输出,或称AO,如400001
但用MODBSU RTU协议去读写这些寄存器时是功能码访问的对应关系如下:
01与05号代码对应0号寄存器,01负责读,05负责写
02号代码对应1号寄存器,只读
04号代码对应3号寄存器,只读
03与06号代码对应4号寄存器,03负责读,06负责写
此条指令写的话还可以是16号代码,即 A0功能代码,用来指写数据的
在数据连接中只能看到03看不到06是因为在驱动配置中有一个06与16的项!
这样的话你就会发现读:
300011寄存器,在力控驱动中选择 04功能代码,偏置为将16进制地址转换成10进制数,然后加1,在300011寄存器中,11为十六进制,转为偏置即为(1×16+1)+1=18。
2、非标准Modbus如何配置以及注意事项请参考力控官网论坛。
(1) 设备是非标准的modbus,驱动如何配置?
(2) 寄存器的地址和功能码如何对应,如40001寄存器应该与几号功能码对应?偏移地址设置为多少?
针对以上问题,本期将向您介绍力控mod bus驱动详细使用办法。
1、首先理解寄存器与功能码的概念
MODBUS对应的寄存器只4种
0开头的寄存器是开关量输出,或称DI,如000001
1开头的寄存器是开关量输入,或称DO,如100001
3开头的寄存器是模拟量输入,或称AI,如300001
4开头的寄存器是模拟量输出,或称AO,如400001
但用MODBSU RTU协议去读写这些寄存器时是功能码访问的对应关系如下:
01与05号代码对应0号寄存器,01负责读,05负责写
02号代码对应1号寄存器,只读
04号代码对应3号寄存器,只读
03与06号代码对应4号寄存器,03负责读,06负责写
此条指令写的话还可以是16号代码,即 A0功能代码,用来指写数据的
在数据连接中只能看到03看不到06是因为在驱动配置中有一个06与16的项!
这样的话你就会发现读:
300011寄存器,在力控驱动中选择 04功能代码,偏置为将16进制地址转换成10进制数,然后加1,在300011寄存器中,11为十六进制,转为偏置即为(1×16+1)+1=18。
2、非标准Modbus如何配置以及注意事项请参考力控官网论坛。
力控科技——管控一体化解决之道