IPAM2505读取开关量:
一次读取所有5个通道的开关量采集值。
发送指令:01 02 00 00 00 05 B8 09
其中01为模块地址,
02为读取开关量的功能码,
00 00为开关量的其实地址,
00 05为开关量的数量。00 00 00 05的意思为第0通道开始的5个通道的采集值。B8 09为crc校验码
模块返回:01 02 01 1D 61 81
其中01为模块地址,
02为读取开关量功能码,
01为返回数据的字节数为1个字节,
1D为通道的采集值,1D转换为二进制为0001 1101 ,按照从右边到左边的顺序对应的是第0通道到第4通道(5个通道),其中1为开关打开或者输入高电平,0为开关闭合或者输入低电平。1D代表第1通道为闭合,其他通道打开。
61 81为crc检验。
控制单个继电器
打开通道0或者吸合继电器0
发送指令:01 05 02 00 FF 00 8D 82
其中01为模块地址;
05为写单个开关量的功能码;
02 00为第0通道的寄存器地址;
Ff 00为控制开关量打开或者继电器吸合的数据(00 00关闭开关量或者断开继电器);
8d 82为crc校验。
模块返回:01 05 02 00 FF 00 8D 82
模块返回数据和发送数据一样代表模块正常动作。
关闭通道或者断开继电器
发送指令:01 05 02 00 00 00 CC 72
指令和上面打开通道的指令类似,只是把FF 00 改为00 00,00 00为关闭,FF FF 为打开。另外crc校验吗也不同。
模块返回:01 05 02 00 00 00 CC 72
返回数据与发送指令一样代表模块正常动作。
一次控制5个输出通道(继电器通道)
控制输出通道0,2,3,4为打开或者继电器吸合,输出通道1为关闭或者继电器断开。
发送:01 0F 02 00 00 05 01 1D AE BD
其中01为模块地址;
0f为控制多个开关量通道的功能码;
02 00为起始的开关量通道寄存器地址;
00 05为控制5个通道,02 00 00 05合起来意思为02 00开始的5个通道。
01为发送数据的字节数,因为一个字节有8个位可以控制8个通道,所以小于8个通道只需要发送一个字节。
1d为控制0,2,3,4为打开或者继电器吸合,输出通道1为关闭或者继电器断开。1D转换成二进制后为 0001 1101 ,按照从右边到左边的顺序对应的是第0通道到第4通道(5个通道),1为打开输出通道或者吸合继电器。0相反。
AE BD为crc检验码。
模块返回:01 0F 02 00 00 05 94 70
原文来源:http://blog.tianya.cn/blogger/post_read.asp?BlogID=4720391&PostID=51729008