工程监测无线中继采集仪的参数读写MODBUS协议

简介: 无线中继采集仪支持基于地址的 MODBUS 协议、自定义的 AAB/B 协议以及字符串指令集协议,使用这些通讯协议可对寄存器(参数)进行访问。

工程监测无线中继采集仪的参数读写MODBUS协议
511.png

无线中继采集仪支持基于地址的 MODBUS 协议、自定义的 AAB/B 协议以及字符串指令集协议,使用这些通讯协议可对寄存器(参数)进行访问。

MODBUS 协议
无线中继采集仪支持 MODBUS 的 03、 04、 06 指令码。(1) 03(0x03) /03(0x04) 指令码: 读取多个连续的寄存器数据,指令格式如下
MODBUS 协议.png

例:读取地址为 129 的无线中继采集仪寄存器值,寄存器开始地址为 0,连续读取 10 个寄存器主机发送指令: 0x81 0x03 0x00 0x00 0x00 0x0A 0xDA 0x0D
从机返回应答: 81 03 14 00 81 00 01 00 02 00 01 00 01 00 0A 00 0A 00 01 09 60 00 07 A1 EF(下划线为读取到的 10 个寄存器值)读取多个连续寄存器时, 单次读取不要超过 32 个寄存器, 不要试图读取不存在的寄存器。

(2) 06(0x06) 指令码: 修改单个寄存器的值, 指令格式如下
MODBUS 协议2.png

例:将地址为 129 的无线中继采集仪中的寄存器 8 的值修改为 100 主机发送指令: 0x81 0x06 0x00 0x08 0x09 0x60 0x11 0xB0 从机返回应答: 0x81 0x06 0x00 0x08 0x09 0x60 0x11 0xB0
(3)校验码算法
CRC16-MODBUS 算法:
unsigned int crc16(unsigned char dat, unsigned int len)
{
unsigned int crc=0xffff;
unsigned char i;
while(len!=0)
{
crc^=
dat;
for(i=0;i<8;i++) { if((crc&0x0001)==0) crc=crc>>1;
else
{
crc=crc>>1;
crc^=0xa001;
}
}
len-=1;
dat++;
}
return crc;
}

相关文章
|
存储 文字识别 C#
.NET开源免费、功能强大的 Windows 截图录屏神器
今天大姚给大家分享一款.NET开源免费(基于GPL3.0开源协议)、功能强大、简洁灵活的 Windows 截图、录屏、Gif动图制作神器:ShareX。
283 1
|
Windows
怎么让鼠标带黄色光圈?
怎么让鼠标带黄色光圈?
1934 0
怎么让鼠标带黄色光圈?
|
人工智能 JSON Java
【极速入门版】编程小白也能轻松上手Comate AI编程插件
【极速入门版】编程小白也能轻松上手Comate AI编程插件
295 0
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
323 2
|
分布式计算 Shell 开发工具
Spark编程实验二:RDD编程初级实践
Spark编程实验二:RDD编程初级实践
695 1
|
存储 算法 安全
项目中密码如何存储?
密码存储安全至关重要。直接存储明文或仅使用MD5、SHA-2等哈希算法存在彩虹表攻击风险。为增强安全性,可提示用户设置复杂密码,或在密码中加入“盐值”并多次迭代哈希,增加破解难度。BCrypt算法因其多重迭代、加盐及可调成本因子,成为更安全的选择。
237 0
|
Java 关系型数据库 数据库连接
MyBatis-Plus介绍及Spring Boot 3集成指南
MyBatis-Plus是一个MyBatis扩展工具,旨在简化Java开发中的CRUD操作。它具有无侵入性、低损耗、强大的CRUD功能、Lambda表达式支持、主键自动生成、ActiveRecord模式、全局操作和内置代码生成器等特点。在Spring Boot 3中集成MyBatis-Plus,需在pom.xml添加依赖,排除特定版本的mybatis-spring,并用@MapperScan注解指定Mapper接口路径。此外,还介绍了如何使用MyBatis-Plus代码生成器自动生成Mapper、Model、Service和Controller层代码,以加速开发。
3197 2
MyBatis-Plus介绍及Spring Boot 3集成指南
|
缓存 安全 Java
Java中的线程安全问题及解决方案
Java中的线程安全问题及解决方案
|
XML 设计模式 数据格式
必知的技术知识:GridView详解
必知的技术知识:GridView详解
|
存储 自然语言处理 Java
Java从入门到精通十二(java线程)【下】
创建线程 基于Thread类创建继承类 再次回到Thread类 public class Threade xtends Object implements Runnable 这个类实现的是Runnable接口 public class Threadextends Objectimplements Runnable Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为 run 的无参数方法。
207 0
Java从入门到精通十二(java线程)【下】