行为
在位存储区超过 8 K字节的 S7-400 CPU 中,FB81S_MODB 功能块拒绝访问 MB 255以上的位存储区地址。在 MODBUS主站的应答消息中,功能码的最高位被置位,并且错误代码为 "02"(无效的数据地址)。
修正
在位存储区超过 8 K字节的 S7-400 CPU 中,必须扩展用户程序以便能够访问大于 MB 255 的位存储区。
当初始化 FB81 S_MODB 后,依次运行一次下面的程序,换言之,在 FB 的参数 CP_START_OK = TRUE 之后。
L xx | // xx = 位存储区中允许的字节大小 |
T DByy.cpu_data.noMemory | // DByy = FB81 S_MODB 背景数据块的名称 |
如果使用 FB82 S_MODB 作为多重背景数据块,需要相应的修改第二条语句。
背景知识
通过查询 S7 CPU 的系统状态列表,FB81 S_MODB 查询到了关于 S7-400 CPU 错误的信息。上述程序手动的修正了读取状态列表的结果。
关键字
1SI,ET 200S,串口通信,Modbus RTU
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325898.html