当在位存储区大小超过 8 K 字节的 S7-400 中使用 FB81 S_MODB 功能块时,怎样访问大于 MB 255 的位存储区?

行为
在位存储区超过 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论