DAM1600C-继电器 2020-07-23 程序之旅,记录 暂无评论 795 次阅读 ### DAM1600C-继电器 官网的文档写得乱七八糟的,这里自己总结一下,中继器使用的是modbus tcp/ip协议,需要自行封装消息解析。 #### 设备参数 - ip:192.168.1.232 - 端口:10000 - 地址:254 - 16路继电器 - 波特率:2400,4800,9600,19200,38400 ![img](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/worker/20200723110744.jpg) | ***\*动作\**** | ***\*说明\**** | | -------------- | ------------------------------ | | 长按按键6秒 | 释放按键后,进入默认静态模式。 | | 长按按键12秒 | 释放案件后,进入默认DHCP模式 | #### 常用消息指令内容 | 描述 | RTU格式(16进制) | 响应 | | -------------------- | -------------------------------------- | -------------------------------------------------- | | 查询十六路状态(心跳) | FE 01 00 00 00 10 29 C9 | FE 01 02 00 00 AD E8(FE 01 02 FF FF AC 58) | | 打开第1个继电器 | FE 05 00 00 FF 00 98 35 | FE 05 00 00 FF 00 98 35 | | 关闭第1个继电器 | FE 05 00 00 00 00 D9 C5 | FE 05 00 00 00 00 D9 C5 | | 全部打开 | FE 0F 00 00 00 10 02 FF FF A6 64 | FE 0F 00 00 00 10 40 08 | | 全部关闭 | FE 0F 00 00 00 10 02 00 00 A7 D4 | FE 0F 00 00 00 10 40 08 | | 闪开指令 | FE 10 00 03 00 02 04 00 04 00 64 C0 87 | FE 10 00 03 00 02 A5 C7 | | 闪闭指令 | FE 10 00 03 00 02 04 00 02 00 64 20 86 | FE 10 00 03 00 02 A5 C7 | #### 指令解析 ##### 继电器查询 描述:查询十六路状态(心跳) ``` FE 01 00 00 00 10 29 C9 ``` **解析** | 字段 | 含义 | 备注 | | ----- | -------- | ------------------------------ | | FE | 设备地址 | 这里为广播地址 | | 01 | 01指令 | 查询继电器状态指令 | | 00 00 | 起始地址 | 要查询的第一个继电器寄存器地址 | | 00 10 | 查询数量 | 要查询的继电器数量 | | 29 C9 | CRC16 | 前6字节数据的CRC16校验和 | 0000 0000 | 0000 0000 第一路亮的时候 显示的是 0000 0001 | 0000 0000 第九路亮的时候 显示的是 0000 0000 | 0000 0001 **返回消息** ``` FE 01 02 00 00 AD E8 FE 01 02 FF FF AC 58 打开第一路 FE 01 02 01 00 AC 78 打开第二路 FE 01 02 02 00 AC 88 打开第三路 FE 01 02 04 00 AF 28 打开第四路 FE 01 02 08 00 AA 28 打开第五路 FE 01 02 10 00 A0 28 FE 01 02 03 00 AD 18 ``` | 字段 | 含义 | 备注 | | ------------- | ---------- | ------------------------ | | FE | 设备地址 | 这里为广播地址 | | 01 | 01指令 | 查询继电器状态指令 | | 02 | 字节数 | 返回状态信息的所有字节数 | | 00 00 (01 00) | 查询的状态 | 返回的继电器状态 | | AD E8 (AC 78) | CRC16 | 前6字节数据的CRC16校验和 | ##### 打开(关闭)第一路继电器 描述:打开第一路继电器电路 ``` FE 05 00 00 FF 00 98 35 ``` **解析** | 字段 | 含义 | 备注 | | ----- | -------- | ------------------------------ | | FE | 设备地址 | 这里为广播地址 | | 05 | 05指令 | 单个控制指令 | | 00 00 | 地址 | 要查询的第一个继电器寄存器地址 | | FF 00 | 指令 | 继电器开的动作 | | 98 35 | CRC16 | 前6字节数据的CRC16校验和 | **返回消息** ``` FE 05 00 00 FF 00 98 35 ``` | 字段 | 含义 | 备注 | | --------------- | -------- | ------------------------------ | | FE | 设备地址 | 这里为广播地址 | | 05 | 05指令 | 单个控制指令 | | 00 00 | 地址 | 要查询的第一个继电器寄存器地址 | | FF 00 (00 00) | 指令 | 继电器开(关)的动作 | | 98 35 (D9 C5) | CRC16 | 前6字节数据的CRC16校验和 | ##### 全部打开(关闭) 描述:打开或关闭所有继电器电路 ``` FE 0F 00 00 00 10 02 FF FF A6 64 ``` **解析** | 字段 | 含义 | 备注 | | ----------------- | ------------ | -------------------------------- | | FE | 设备地址 | 这里为广播地址 | | 0F | 0F指令 | 返回指令:如果查询错误,返回0x82 | | 00 00 | 起始地址 | 要查询的第一个继电器寄存器地址 | | 00 10 | 控制数量 | 控制的继电器数量 | | 02 | 字节数 | 发送命令字节数 | | FF FF (或00 00) | 全开全关命令 | FF FF全开命令 00 00全关命令 | | A6 64(或A7 D4) | CRC16 | 前6字节数据的CRC16校验和 | **返回消息** ``` FE 0F 00 00 00 10 40 08 ``` | 字段 | 含义 | 备注 | | ----- | -------- | -------------------------------- | | FE | 设备地址 | 这里为广播地址 | | 0F | 0F指令 | 返回指令:如果查询错误,返回0x82 | | 00 00 | 起始地址 | 要查询的第一个继电器寄存器地址 | | 00 10 | 数量 | 返回信息的继电器数量 | | 40 08 | CRC16 | 前6字节数据的CRC16校验和 | ##### 闪开闪闭指令 描述:闪开闪闭指令电路 ``` 闪开 第一路 FE 10 00 03 00 02 04 00 04 00 64 C0 87 第二路 FE 10 00 08 00 02 04 00 04 00 64 81 34 第三路 FE 10 00 0D 00 02 04 00 04 00 64 41 0B 第四路 FE 10 00 12 00 02 04 00 04 00 64 00 47 第五路 FE 10 00 17 00 02 04 00 04 00 64 C0 78 第六路 FE 10 00 1C 00 02 04 00 04 00 64 81 CB 闪闭 FE 10 00 03 00 02 04 00 02 00 64 20 86 ``` **解析** | 字段 | 含义 | 备注 | | ------------ | ------------ | ------------------------------------------------------------ | | FE | 设备地址 | 这里为广播地址 | | 10 | 10指令 | 查询输入寄存器指令 | | 00 03 | 继电器地址 | 要查询的第一个继电器寄存器地址,开始地址为 0x03 下一个加0x05 | | 00 02 | 控制命令数量 | 要对继电的命令个数 | | 04 | 字节数 | 发送命令字节数 | | 00 04或00 02 | 指令 | 00 04为闪开指令 00 02为闪闭命令 | | 00 64 | 间断时间 | 00 64为十六进制换为十进制则为100间隔时间为(0.1秒*10) | | C0 87 | CRC16 | 前6字节数据的CRC16校验和 | **返回消息** ``` FE 10 00 03 00 02 A5 C7 ``` | 字段 | 含义 | 备注 | | ----- | ---------- | ------------------------------------------------------- | | FE | 设备地址 | 这里为广播地址 | | 10 | 10指令 | 查询输入寄存器指令 | | 00 03 | 继电器地址 | 要查询的第一个继电器寄存器地址,开始地址为 03 下一个加5 | | 00 02 | 接收命令数 | 设备接受的命令个数 | | A5 C7 | CRC16 | 前6字节数据的CRC16校验和 | ### FAQ - 默认ip,192.168.1.232 电源键后有一复位键,能够切换DHCP模式 - 端口能改吗?10000 不能修改,不过指定ip就这个端口,无所谓跟换 - 波特率能改吗 DAM1600C支持的波特率有2400,4800,9600,19200,38400,支持市面上大部分的波特率,所以无需更改 打赏: 微信, 支付宝 标签: 继电器, tcp, modbus 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。