注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
qzairdzgs的个人空间 https://home.eeworld.com.cn/space-uid-481672.html [收藏] [复制] [分享] [RSS]
日志

IPAM7404远程控制IO模块如何通过modbusrtu读取计数值?

已有 815 次阅读2013-8-1 16:10 |

一次读取所有4个通道的计数值

发送指令:01 03 00 78 00 08 C4 15

其中 

01为模块地址,

03为读取保持型寄存器的功能码(计数值属于保持型寄存器)

00 78为计数通道0的寄存器地址

00 08为需要读取的寄存器数量。每一个通道占用两个寄存器地址,4个通道一共8个寄存器地址。

C4 15crc检验码

模块返回:01 03 10 00 01 13 69 00 00 00 0F 00 00 00 00 00 00 00 00 EA 13

其中

01为模块地址

03为功能码

10为返回数据的字节数量,一个计数通道占用两个寄存器地址,一个寄存器为一个字(两个字节),所以一个寄存器需要4个字节数据,4个通道一共16个(10为十六进制数)。

00 01 13 69 00 00 00 0F 00 00 00 00 00 00 00 004个通道的计数值,其中00 01 13 69为计数通道0的计数值,00 00 00 00为计数通道1的计数值,以此类推。00 01 13 69转换为十进制的计数值的方法是:

1、把00 01 13 69转换为十进制为:00 01 19 105

2、计数值 ((00*256+01*256+19*256+105 = 70505

EA 13CRC检验码

一次读取单个通道的计数值

发送指令:01 03 00 78 00 02 44 12

其中

01为模块地址

03为读取保持型寄存器的功能码

00 78为计数通道0的寄存器地址,注意一个计数通道占用2个地址,所以计数通道1的寄存器为00 7a,通道200 7c,通道300 7e

00 02为读取的寄存器数量,这里02表示读取一个通道。

44 12CRC检验码

模块返回:01 03 04 00 01 13 69 66 ED

其中

01为模块地址

03为功能码

04为返回的字节数量

00 01 13 69为对应通道的计数值,计数值00 01 13 69转换为十进制的计数值的方法是:

1、把00 01 13 69转换为十进制为:00 01 19 105

2、计数值 ((00*256+01*256+19*256+105 = 70505

66 edCRC检验码

清零所有4个通道的计数值

发送指令:01 10 00 78 00 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B3 BF

其中

01为模块地址

10为写入多个保持型寄存器的功能码

00 78为写入的起始地址,这里为计数通道0的寄存器地址

00 08要写入的寄存器的数量,00 08表示写入8个寄存器,即所有4个通道

10为要写入的字节数量。

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00全部写入0,清零所有通道。

B3 BFCRC检验码

模块返回:01 10 00 78 00 08 41 D6

模块返回的前6个字节数据和写入的前6个字节数据相同表示清零成功。

41 d6crc检验码。

清零一个通道的计数值

发送指令:01 10 00 78 00 02 04 00 00 00 00 F5 2D

其中

01为模块地址

10为为写入多个保持型寄存器的功能码

00 78为计数通道0的寄存器地址,如果要清零其他通道则把地址改为该通道地址

00 02要写入的寄存器的数量,00 02表示写入一个通道

00 00 00 00写入0,清零该通道计数值

F5 2Dcrc检验码

模块返回:01 10 00 78 00 02 C1 D1

模块返回的前6个字节数据和写入的前6个字节数据相同表示清零成功。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章