如何处理本地数据分配错误

1. 问题描述
在S7-400中使用功能完善的FC或FB,在更换调用OB块后发生本地数据分配错误,如图一所示。

如何处理本地数据分配错误
图 1

2. 故障原因
从诊断缓冲区故障描述可以看到该故障是由循环中断OB34触发,打开项目交叉索引查看程序结构如图2,OB34和OB35中都调用了FC1,而FC1需要使用512字节的本地数据区,这些本地数据区由调用OB动态分配。项目中OB34和OB35所需使用的最大本地数据为534字节。

如何处理本地数据分配错误
图 2

在硬件组态中查看CPU属性内存页面(图3),可以看到CPU为各优先级预分配的本地数据区大小。

如何处理本地数据分配错误
图 3

查看CPU属性循环中断页面(图4)中可查到OB34优先级为11,OB35优先级为12,所以OB35本地数据区大小默认为758字节,OB34本地数据区大小默认为256字节。由此可得知故障原因是由于CPU为OB34预分配的本地数据区太小(256<534)。

如何处理本地数据分配错误
图 4

3. 解决方法
方法一:将FC1在本地数据区足够大的OB中调用,例如OB33优先级10,本地数据默认758字节。
方法二:将优先级11的本地数据区增大。CPU的本地数据最大值根据CPU型号不同而不同,具体参考《SIMATIC S7-400 S7-400自动化系统,CPU规格》

53385241

关键词
本地数据,优先级

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc329066.html

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

相关推荐

发表回复

登录后才能评论