随笔分类 - IoT
摘要:本文代码有些许问题,处理方案见:解决 spring-integration-mqtt 频繁报 Lost connection 错误 一、添加配置 spring: mqtt: client: username: 用户名 password: 密码 serverURIs: tcp://ip:port #
阅读全文
摘要:| 类型 | 长度(位) | 取值范围 | 描述 | | | | | | | BOOL | 1 | 0/1 | 布尔型 | | BYTE | 8 | 0x00~0xFF | 十六进制数 | | WORD | 16 | 0~65535 | 无符号整数 | | DWORD | 32 | 0~429496
阅读全文
摘要:算法 1. CRC16 校验寄存器赋值为 0xFFFF; 2. 取被校验串的第一个字节赋值给临时寄存器; 3. 临时寄存器与 CRC16 校验寄存器的 高位 字节进行“异或”运算,赋值给 CRC16 校验寄存器; 4. 取 CRC16 校验寄存器最后一位赋值给检测寄存器; 5. 把 CRC16 校验
阅读全文
摘要:算法 1.预置一个值为 0xFFFF 的 16 位寄存器,此寄存器为 CRC 寄存器。 2.把第 1 个 8 位二进制数据(即通信消息帧的第 1 个字节)与 16 位的 CRC 寄存器相异或,异或的结果仍存放在该 CRC 寄存器中。 3.把 CRC 寄存器的内容右移一位,用 0 填补最高位,并检测移
阅读全文
摘要:本文已收录至: "开源 DotNetty 实现的 Modbus TCP/IP 协议" Client (文中代码仅添加了 0x03 的方法) 在 Client 中封装了 Modbus 请求方法,对同一个功能同时有同步方法(ReadHoldingRegistersAsync)和异步方法(ReadHold
阅读全文
摘要:本文已收录至: "开源 DotNetty 实现的 Modbus TCP/IP 协议" DotNetty 作为一个半成品,我们不需要关注细节的实现,只需要关注自己的业务即可,所以最主要的就是处理 Codecs 和 Handler。 所有的 Codecs 和 Handler 均直接或间接继承自 Chan
阅读全文
摘要:本文已收录至: "开源 DotNetty 实现的 Modbus TCP/IP 协议" ModbusFunction 类图如下: 如前文所述,所有请求/相应的 PDU 均继承自 ModbusFunction,其子类传入对应的 Function Code 并实现三个方法: 1. CalculateLen
阅读全文
摘要:本文已收录至: "开源 DotNetty 实现的 Modbus TCP/IP 协议" Modbus TCP/IP 报文 + 报文最大长度为 260 byte (ADU = 7 byte MBAP Header + 253 byte PDU) + Length = Unit Identifier 长度
阅读全文
摘要:本项目的目的是为了学习 DotNetty 与 Modbus 协议,参考 "modjn" 实现功能 + 0x01: Read Coils (读取线圈/离散量输出状态) + 0x02: Read Discrete Inputs (读取离散量输入值) + 0x03: Read Holding Regist
阅读全文