【仓颉】二、一个仓颉的Modbus库-1. Modbus基本概念与设计

Modbus是一个基于二进制数据流的问答式通讯规约。

Modbus规约以byte数组数据流为基础,有以下概念:

1:RTU ID:一个对象身份。比如,一个风机,一个水泵,等等,在当前链路上给它分配编号。范围:1-253(byte)

2:寄存器:数据的表格。通过编号,双方约定数据。如:约定1号对应空调开,2号对应空调温度,等等。寄存器数值标准为:按位的和按16位(UInt16)的两种。之后其他数据类型在此之上发展与魔改,如用一个16位寄存器标识16个bool值,用两个寄存器标志一个32位数据,等等

3:命令:根据命令判断读某种类型或写某种类型数据。

4:链路:Modbus通讯规约链路层有ModbusRTU与ModbusTCP两种。ModbusRTU主要跑在485回路上,ModbusTCP跑在ModbusTCP链路上。但也有一些变化情况,ModbusTCP的二进制报文也有可能运行在MQTT、WebSocket等链路上,ModbusRTU也出现过在UDP、TCP、MQTT等链路上运行的情况。

因此,这里将ModbusRTU与ModbusTCP的差异抽象视作Modbus的链路层。数据流连接面对UDP、TCP、MQTT等可以自由适配的方式设计。

由于Modbus面对二进制数据流有多种数据类型的转换,典型应用:数组转换位UInt16,数组转换位Int16,数组转换位UInt32,数组转换位Int32,浮点数等,以上设计为面对数组类型扩展方法。

Modbus设计分为3层:

  • 26
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值