modbus - 为什么在写入多个寄存器时需要寄存器数量和字节数?
问题描述
根据 MODBUS 应用协议规范,当写入多个寄存器时,我们需要指定寄存器的数量和字节数。但是这个文件也说“数据被打包为每个寄存器两个字节”。那么,我们只需要其中一个就足够了吗?寄存器数量或字节数。
在我看来,数据并不总是被打包为每个寄存器两个字节。它可以是三个或四个字节。那是对的吗?所以,我们两者都需要,是吗?
解决方案
Modbus 寄存器总是 2 个字节。对于预设多寄存器命令,字节计数字段是多余的。但似乎字节计数字段在其他命令中有其他用途,而且并非总是如此(寄存器计数 * 2)。例如,查看读取线圈状态命令 (0x01) 的响应。此响应可以包含奇数个字节。
推荐阅读
- laravel - 调用数组 Laravel 上的成员函数 paginate()
- mysql - 查询酒店可预订房间
- python - 使用 matplotlib 在 x 轴上突出显示特定日期
- c++ - Qt SLOT 不是由 QTest 环境中的 std::async 发出的信号触发的
- sql-server - 错误 1105 - 为什么 SQL 说 PRIMARY 文件组已满,而实际却没有?
- bash - 在bash中比较并丢弃数组中的元素
- angular - 如何使用 Float 修复角度 ngFor
- flutter - 如何设置 Flutter 文本最大长度值?
- typescript - Typescript 通过解构区分联合类型推断
- shiny - 在 rMarkdown 中上传文件并调用文件生成统计摘要