当前位置: 首页 > article >正文

主控制器与子模块通讯协议

通讯帧格式

字段名称 说明
站号 每个模块的唯一地址标识
功能码 表示具体的通讯功能
数据长度高 数据区长度的高字节
数据长度低 数据区长度的低字节
子模块类型 子模块的类型(某些协议中可忽略)
数据区 包含具体的操作数据或状态信息
CRC16 校验高 CRC 校验的高字节
CRC16 校验低 CRC 校验的低字节

说明:数据长度字段仅包含数据区长度,不包括站号、功能码、子模块类型(某些协议中不含此字段)和 CRC 校验。


功能码及协议说明

1. 主站请求/子模块响应的协议
功能码 描述 数据区内容说明
0x00 主站请求子模块报告软元件资源列表 无数据区
0x02 子模块报告软元件资源列表 包含子模块类型、输入/输出点数等信息
0x03 主站请求子模块报告动态信息并下发操作 包含软元件类型、触发事件等
0x04 子模块报告软元件动态信息 包含软元件状态、事件类型等

2. 模块数量及信息相关协议
功能码 描述 数据区内容说明
0x05 子模块报告扩展模块数量 数据区包含扩展模块数量信息
0x55 上位机请求获取总模块信息 无数据区
0x56 子模块发送模块信息数据 包含总模块数及各模块识别码

3. 主模块下发子模块配置参数
功能码 描述 数据区内容说明
0x06 主模块下发子模块配置参数 包含数字量/模拟量的具体配置参数

4. 校准模块相关协议
功能码 描述 数据区内容说明
0x85 校准模块请求被校准模块设置低值 无数据区
0x87 校准模块请求被校准模块设置高值 无数据区
0x86 校准模块写入低值实际测得值 包含 1~8 通道数据
0x88 校准模块写入高值实际测得值 包含 1~8 通道数据
0x89 校准结束,固化数据到 Flash 无数据区

数据区排列格式

数字量数据区
字段名称 说明
软元件类型 软元件的具体类型
触发事件类型 事件类型(如布尔值改变、模拟量改变等)
触发事件的元件编号 元件编号(高字节、低字节)
元件状态 包括旧状态和新状态(高字节、低字节)
模拟量数据区
字段名称 说明
软元件类型 软元件的具体类型
触发事件类型 事件类型
通道数据 包括通道数据高字节和低字节
通道设置参数 包括参数 1 和参数 2
通讯模块数据区
字段名称 说明
包号 数据包号(0 或 1)
输入/输出数据 包含具体的输入或输出数据

附录:软元件类型和触发事件类型

软元件类型
类型值 描述
0x01 模拟量输入电压
0x02 模拟量输入电流
0x03 IO 输入
0x04 IO 输出
0x05 模拟量输出电压
0x06 模拟量输出电流
0x07 模拟量输入热电阻
0x08 模拟量输入热电偶
0x09 网关通讯数据
0xFE 事务

http://www.kler.cn/a/511368.html

相关文章:

  • 要获取本地的公网 IP 地址(curl ifconfig.me)
  • 【Compose multiplatform教程】05 IOS环境编译
  • Linux(DISK:raid5、LVM逻辑卷)
  • 基于GRU实现股价多变量时间序列预测(PyTorch版)
  • 数据结构-顺序表链表经典OJ题
  • RabbitMQ集群安装rabbitmq_delayed_message_exchange
  • 【数据库知识】PostgreSQL介绍
  • 学英语学技术: jmeter插件管理器
  • nginx 配置防爬虫
  • 83.删除排序链表中的重复元素 python
  • sqlfather笔记
  • DQN【算法+代码】玩openai gym库游戏
  • 创建react18版本脚手架报错
  • SparseInst实例测试(含cuda10.1、pytorch1.8、detectron2安装过程)
  • C#中的语句
  • 【HTTP】详解
  • STL--set(集合)
  • 一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用
  • JVM 面试八股文
  • Redis学习笔记1【数据类型和常用命令】