引用
引用第4楼qq771621929于2023-02-01 13:29发表的 :
就是modbusRTU通讯,读的丹佛斯变频器,1200里面取位很简单,SMART200还没用过
1200我只会打开博图组态然后弄个起保停啥的,不知道1200的MODBUS RTU的库是不是和200SMART一样。
以下是200SMART说明文档里边关于MBUS_MSG指令里边的一段解释。你可以看一下。
参数“计数”(Count) 用于分配要在该请求中读取或写入的数据元素数。对于位数据类型,“Count”是位数,对于字数据类型,则表示字数。
对于地址 0xxxx,“计数”(Count) 是要读取或写入的位数
对于地址 1xxxx,“计数”(Count) 是要读取的位数
对于地址 3xxxx,“计数”(Count) 是要读取的输入寄存器字数
对于地址 4xxxx 或 4yyyyy,“计数”(Count) 是要读取或写入的保持寄存器字数
MBUS_MSG/MB_MSG2 指令最多读取或写入 120 个字或 1920 个位(240 个字节的数据)。Count 的实际限值取决于 Modbus 从站设备的限制。
参数 DataPtr 是间接地址指针,指向 CPU 中与读/写请求相关的数据的 V 存储器。对于读请求,将 DataPtr 设置为用于存储从 Modbus 从站读取的数据的第一个 CPU 存储单元。对于写请求,将 DataPtr 设置为要发送到 Modbus 从站的数据的第一个 CPU 存储单元。
程序将 DataPtr 值以间接地址指针的形式传递到 MBUS_MSG/MB_MSG2。例如,如果要写入到 Modbus 从站设备的数据始于 CPU 的地址 VW200,则 DataPtr 的值将为 &VB200(地址 VB200)。指针必须始终是 VB 类型,即使它们指向字数据。
DataPtr 这个指针指向的存储空间就是“字”。你可以监控一下。比如你在 DataPtr 这个管脚填写的是&VB200,那你就在状态图表里监控VW200,这个就是你读取到的字。然后你想读取哪个位就分开监控哪个位呗。V200.0,V200.1,V200.2等等。