最后更新:2022-04-28 03:50:13 手机定位技术交流文章
Modbus是一项合作通信议定书。1979年,Modicon(原Schneider Electric)首次使用可编程逻辑控制器(PLC)通信。摩德布斯事实上已成为工业通信协定的行业标准。它目前是连接工业电子产品的标准方法。
Modbus是一项合作通信议定书。1979年,Modicon(原Schneider Electric)首次使用可编程逻辑控制器(PLC)通信。摩德布斯事实上已成为工业通信协定的行业标准。它目前是连接工业电子产品的标准方法。以下是莫德布斯比其他通信议定书得到更广泛使用的主要原因:
1. 没有版权限制,出版向公众开放。
2、易于部署和维护
3. 供应商修改当地比特或字节的能力不受限制。
地址+功能代码+数据+验证=框架结构
| 地址码 | 功能码 | 数据 | CRC校验 |
|---|---|---|---|
| 1byte | 1byte | n byte | 2byte |
地址代码是传输的初始字节 。此位表示将从主机收到用户指定的地址代码 。每台机器都有自己的地址密码答复首先从其各自的地址号码开始。主机的地址代码显示要从计算机发送的地址 。机器提供的地址代码 揭示了机器的返回地址地址码为0时,为广播地址,所有从机均能识别,从站不做应答。
通信传输的第二个字节是功能代码。《ModBus通信法》界定了职能1至127。作为主机请求发送,机器会用功能代码告诉你该怎么做作为从机响应,机器发送的函数代码与主机发送的函数代码相同。它还表明,机器是应东道方的要求采取行动的。如果机器的最大功能代码为1(例如,同时127个最大和最大),,表示没有从计算机中找到答案,或者发送错误。例如,003(03H)是一个函数代码。如果从机正常执行,返回相同的功能代码 。如果病情不正常,返回1,00,003(83H)。
数据区域的变化取决于功能代码。数据部分可包括实际值、设定点、机器地址的主机或机器地址的主机。例如,函数代码表示机器从注册处读取的值。要阅读登记册,数据区域必须包含起始地址和读数长度。对于不同的从机,地址和数据不是一回事。
核查:为了保证数据没有错误,添加这一数据,然后计算先前的数据,以核实数据是否一致,如果一致,则表示数据准确,我回答;如果没有准确,数据在传输时不正确,被销毁。
常用命令码
| 命令码 | 功能 |
|---|---|
| 03H | 寄存器读取 |
| 06H | 单个寄存器写入 |
| 10H | 多个寄存器写入 |
数据解析如下
数据解析如下
数据解析如下
数据解析如下
Modbus的《儿童权利公约》计算涉及除《儿童权利公约》核查价值以外的所有交付数据,包括地址代码、指令代码和数据。
C#计算方法:
C语言CRC计算
大端大英:高字节储存在低记录和档案管理地点,低字节储存在高记录和档案管理地址。
小英内存地址以低内存地址存储低字节,高内存地址存储高字节。
网络字节序列:由于TCP/IP层协议将字节序列定义为Big-Endian,它通常被称为网络字节序列。
Sttm32 IDE 软件IAR
Stm32F429是芯片。
以下是共同的价值观和保留地:
变量Addr、年份和月份为 Int16格式数据,高字节数据放在高地址,可以观察到Stm32默认设置为小端格式格式。
在传输数据时, Modbus 先传送字节, 然后降低字节; 因此, stm32 写入 Modbus 代码, 并确保高低字节被翻译。
本文由 在线网速测试 整理编辑,转载请注明出处。