4路继电器输入输出模块
一、 产品简介
供电电压:9-36V
通信接口及协议:RS485/MODBUS RTU/ACII
通讯协议:9600(默认)/1200/2400/4800/19200可选
设备地址范围:0x01(默认) 1-255可选
输出:4路继电器输出 250VAC/30VDC 10A
输入:4路离散量输入(光耦隔离)5V/12V/24V/36V/48V可选
二、 实物图
三、 接线定义
四、 软件协议
默认波特率 9600,一位起始位,8 个数据位,一个停止位,无效验位。默认地址 0x01,通信协议符合 MODBUS RTU 规范。
以下是指令详解(以地址 01 为例,指令是 16 进制)
1、 读取开关量输入信号
发送指令格式:地址(1 字节)+命令(一字节)+寄存器地址(两字节)+数据域(两字节)+CRC 校验码(两字节)。
数据返回格式:地址(1 字节)+命令(一字节)+返回字节数(1 字节)+返回的数据(一字节)+CRC 校验码(两字节)
发送:01 02 00 20 00 04 78 03
返回:01 02 01 0F E1 8c
返回 0F,本模块只用低 4 位,只关心低四位。从第一位到第 4 位分别表示开关量输入 INPUT1 到 INPUT4 的状态,当有开关量输入信号时,相应的位为 0,假如第一路开关量有输入,其它路没有开关量输入,这个值为 0E。
2、 控制继电器输出
2.1 一次控制单个继电器动作(假定模块地址为 01)
开第一路 01 05
00 10 FF 00 8D FF
开第二路 01 05 00 11 FF 00 DC 3F
开第三路 01 05 00 12 FF 00 2C 3F
开第四路 01 05 00 13 FF 00 7D FF
关第一路 01 05 00 10 00 00 CC 0F
关第二路 01 05 00 11 00 00 9D CF
关第三路 01 05 00 12 00 00 6D CF
关第四路 01 05 00 13 00 00 3C 0F
上面命令的返回的命令就是发送的命令
2.2 一次操作所有继电器动作
开全部 01 0F 00 10 00 04 01 0F BF 51
关全部 01 0F 00 10 00 04 01 00 FF 55
置一二路开,置三四路关 01 0F 00 10 00 04 01 03 BF 54
置一二路关, 置三四路开 01 0F 00 10 00 04
01 0C FF 50
上面命令返回都是 01 0F 00 10 00 04 55 CD
3、 读取继电器输出状态
发送指令格式:地址(1 字节)+命令(一字节)+寄存器地址(两字节)+数据域(两字节)+CRC 校验码(两字节)。
数据返回格式:地址(1 字节)+命令(一字节)+返回字节数(1 字节)+返回的数据(一字节)+CRC 校验码(两字节)
发送:01 01 00 10 00 04 3c 0c
返回:01 01 01 00 51 88
返回 00,输出继电器的状态,0 为断开,1 为吸合.本模块只用低 4 位,只关心低四位。
4、 设定模块地址
指令格式:00 06 00 01 00+地址(一字节,这个字节的地址表示设备修改后的地址是这个)+CRC 校验(两字节)
将设备地址改为 01: 00 06 00 01 00 01
18 1b
将设备地址改为 02: 00 06 00 01 00 02
58 1a
5、 修改波特率
修改波特率为 1200:发送 00 06 00 02 00
01 e8 1b
修改波特率为 2400:发送 00 06 00 02 00
02 a8 1a
修改波特率为 4800:发送 00 06 00 02 00
03 69 da
修改波特率为 9600:发送 00 06 00 02 00
04 28 18
修改波特率为 19200 发送 00 06 00 02 00
05 e9 d8
修改成功后,会发返相同的数据,然后给设备重新上电,即完成修改,当波特率忘记时,可分别设置串口收发工具的波特率从 1200 至 19200 分别发送指令测试。
有3个案例