求助: 具体怎么操作?????
1.在S7-400中使用功能完善的FC或FB,在更换调用OB块后发生本地数据分配错误。
2.原因分析:从诊断缓冲区故障描述可以看到该故障是由循环中断OB34触发,打开项目交叉索引查看程序结构,如图2,OB34和OB35中都调用了FC1,而FC1需要使用512字节的本地数据区,这些本地数据区由调用OB动态分配。项目中OB34和OB35所需使用的最大本地数据为534字节。
3.查看CPU属性循环中断页面(图4)中可查到OB34优先级11,OB35优先级为12,所以OB35本地数据区大小默认为758字节,OB34本地数据区大小默认为256字节。由此可得知故障原因是由于CPU为OB34预分配的本地区大小(256<534)。
4.解决方案
方法一:将FC1在本地数据区足够大的OB中调用,例如OB33优先级10,本地数据默认758字节。
方法二:将优先级11的本地数据区增大。CPU的本地数据最大根据CPU型号不同而不同,具体参考《SIMATIC S7-400 S7-400自动化系统,CPU规格》。