世界热消息:基于OpenHarmony 系统通过Modbus协议读取设备数据
Modbus RTU(Remote Terminal Unit 远程终端单元):这种方式常采用RS-485做为物理层,一般利用芯片的串口实现数据报文的收发,报文数据采用二进制数据进行通信。
想了解更多关于开源的内容,请访问:
(资料图片仅供参考)
清一色开源基础软件社区
https://ost.51cto.com
Modbus简介
原文链接:链接
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus RTU(Remote Terminal Unit 远程终端单元):这种方式常采用RS-485做为物理层,一般利用芯片的串口实现数据报文的收发,报文数据采用二进制数据进行通信。
Modbus TCP/IP 或 Modbus TCP:这是一种 Modbus 变体版本,使用 TCP/IP 网络进行通信,通过 502 端口进行连接。报文不需要校验和计算,因为以太网底层已经实现了CRC32 数据完整性校验
Modbus RTU
地址:取值范围是0-247,如果是0,就是主站广播报文;如果是1-247,则有可能是主站请求或者从站应答。
功能码:也就是报文命令,代表主站对从站的操作,读或者写。
数据:数据字段,主请求报文,从应答报文会有所差异。也就是说假设抓取总线报文,如何区分是主站请求还是从站应答,则需要通过数据字段进行区分了。
CRC校验:采样CRC16,16位循环冗余校验。
部分功能码解析
1、功能码 –读线圈状态
主机发送:01 01 00 01 00 08 6C 0C从机回复: 01 01 01 2F 10 54主机解析:01 地址(设备ID)01 功能码; 00 01 代表查询的起始线圈地址,即从0001线圈开始查询。 00 08 查询线圈数量。 6C 0C 循环冗余校验。
从机解析:01 地址(设备ID)。
01 功能码; 01 代表后面数据的字节数。 2F 读取以0001线圈开始的8个线圈的状态。0x2F二进制为00101111,对应状态为1111 0100 10 54 循环冗余校验。
2、功能码 –-读离散输入寄存器
功能:读离散输入寄存器,位操作,可读单个或多个,类似功能码0X01。
3、功能码 –-读保持寄存器的值
主机发送:01 03 00 01 00 01 D5 CA从机回复: 01 03 02 00 01 79 84主机解析:01 地址(设备ID)03 功能码; 00 01 代表查询的起始寄存器地址,即从0001寄存器开始查询。 00 01 查询寄存器数量。 D5 CA 循环冗余校验。
从机解析:01 地址(设备ID)。
03 功能码; 02 代表后面数据的字节数。 00 01 查询0001寄存器的值。 79 84 循环冗余校验。
4、功能码 –-读输入寄存器
功能:读输入寄存器,字节操作,可读单个或多个,类似功能码0X03。
5、功能码 –-写单个保持寄存器
功能:对单个线圈进行写操作,位操作,只能写一个。写入0xFF00表示将线圈置为ON,写入0x0000表示将线圈置为OFF,其它值无效。
主机发送数据:从站地址+功能码+寄存器起始地址+数据值+校验码 从站应答数据:从站地址+功能码+寄存器地址+写入值+校验码
6、功能码 –-写单个保持寄存器
主机发送:01 06 00 02 00 01 E9 CA从机回复: 01 06 00 02 00 01 E9 CA主机解析:01 地址(设备ID)06 功能码; 00 02 代表待写入的起始寄存器地址,即从0002寄存器开始写数据。 00 01 写入的寄存器的值。即给0002寄存器写入0001 E9 CA 循环冗余校验。
从机解析:01 地址(设备ID)。
06 功能码; 02 代表后面数据的字节数。 00 01 查询0001寄存器的值。 E9 CA 循环冗余校验。
7、功能码 –-写多个线圈状态
主机发送:01 0F 00 01 00 07 01 6B B2 B9从机回复: 01 0F 00 01 00 07 45 C9主机解析:01 地址(设备ID)0F 功能码; 00 01 代表待写入的起始线圈地址,即从0001线圈开始写数据。 00 07 待写入的线圈的数量。 01 后面写入数据的字节数。 6B写入寄存器的值,即11010110。二进制01101011 B2 B9 循环冗余校验。
从机解析:01 地址(设备ID)。
0F 功能码; 00 01 代表待写入的起始线圈地址,即从0001线圈开始写数据。 00 07 待写入的线圈的数量。 45 C9 循环冗余校验。
8、功能码 – 写多个保持寄存器
主机发送:01 10 00 04 00 03 06 00 01 00 00 00 01 5B 55从机回复: 01 10 00 04 00 03 C1 C9主机解析:01 地址(设备ID)10 功能码; 00 04 代表待写入的起始寄存器地址,即从0004寄存器开始写数据。 00 03 待写入的寄存器的数量。 06 后面写入数据的字节数。 0001,0000,0001写入寄存器的值。即给0004,0005,0006寄存器分别写入0001,0000,0001 5B 55 循环冗余校验。
从机解析:01 地址(设备ID)。
10 功能码; 00 04 代表待写入的起始寄存器地址,即从0004寄存器开始写数据。 00 03 待写入的的寄存器的值。即给0004,0005,0006寄存器分别写入0001,0000,0001 C1 C9 循环冗余校验。
在OpenHarmony上面使用Modbus
原文链接:链接
加入Modbus C++库libmodbus
适配文件在当前目录下的cpp文件夹中。
库文件:
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
c文件:
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
把上面文件加入编译:
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
Modbus TCP
配置Modbus信息
设置IP和端口号以及DeviceID。
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
设置数据地址和长度。
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
把测试代码执行起来
引入测试代码库。
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
初始化Modbus连接。
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
读取数据。
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
运行调试
基于OpenHarmony 系统通过Modbus协议读取设备数据-开源基础软件社区
Modbus RTU
Modbus RTU主要是通过RS485或者232接口读取数据的modbus协议。
libmodbus库函数解析
功能码函数:
函数 | 功能吗 |
modbus_read_registers | 03 |
modbus_read_input_registers | 04 |
modbus_read_bits | 01 |
modbus_read_input_bits | 02 |
modbus数据转换函数
函数 | 转换内容 |
modbus_get_float_abcd | 获取浮点数ABCD |
modbus_set_float_abcd | 设置浮点数ABCD |
想了解更多关于开源的内容,请访问:
清一色开源基础软件社区
https://ost.51cto.com
关键词:
责任编辑:宋璟
-
世界热消息:基于OpenHarmony 系统通过Modbus协议读取设备数据
-
世界新动态:717影院在线观看理论_717电影在线观看免费
-
什么叫质子数原子数_什么叫质子数
-
陈茂波:债券通月交易额6年跳升30倍 世界资讯
-
可惜!世界男排联赛,中国男排2-3憾负日本
-
樟树简介50字_樟树简介
-
追光|她们是亚洲杯冠军 她们是中国女篮
-
环球通讯!欧洲统治阶级现在还能吃香喝辣,再被美国抢几年,西北风都喝不着!
-
天津GPT产业发展计划启动 三六零将牵头在津形成百亿GPT产业价值链
-
全球球精选!推特新规限制浏览 悠星旗下日服手游宣布停止推特绑定功能
-
报道:范马刃牙17_关于范马刃牙17的简介
-
今头条!发现没有,七年级数学下期末考试压轴题,“截长补短”模型成为最近几
-
来一场“虫虫大战”!世纪公园科普夜游“世纪夜猫子行动”再次启动_每日快看
-
国家发改委主任郑栅洁:要坚定实施扩大内需战略 全面促进消费 加快消费提质升级
-
激光络腮胡脱毛的效果怎么样 今日热文
-
焦点热门:多部门会商7月自然灾害风险形势
-
天天通讯!海思科7月4日盘中涨停
-
全球信息:「信访之窗」3年的心结3天解开
-
自动挡驾照能开手自一体的车吗(自动挡驾照能开手动挡的车吗) 天天简讯
-
全球看热讯:民警为群众追回被盗手机
-
暗枪士技能(暗枪士加点)
-
长治市中研附院5个专科入选省中医优势专科建设项目和培育项目
-
胆汁质多血质粘液质抑郁质特点(胆汁质多血质粘液质抑郁质)|看热讯
-
通讯!各地强化就业服务 助力高校毕业生就业
-
女工程师为出轨对象做间谍17年 拉丈夫一起贩卖情报
-
备用金的限额标准(备用金限额规定)
-
别太孤独了 容易折寿_环球实时
-
新奥股份07月03日获沪股通增持81.96万股 当前视讯
-
风水伏位是什么意思(伏位是什么意思)
-
山东招远市工业和信息化局原党组副书记、四级调研员王学鹏被查|环球快看
-
盖洛普民调:七国集团中美英两国政府信心指数最低
-
降魔的迅雷下载_降魔的介绍
-
稳汇率工具箱储备足 业界预计人民币汇率下半年或重回升值通道 环球快报
-
申请交易,再见湖人!远没有达到预期,你对自己所做的决定后悔-每日焦点
-
全球观焦点:【真相|漫评】美国的“毒瘾”,靠“甩锅”治不好