项目是PCS7,有部分程序是执行工艺曲线,我的工艺曲线分为三部分:FC1 FC2 FC3,FC3是比较每一步工艺的初值和设定值,判断该步是按斜率上升还是下降还是保持;FC2累计运行时间,与每步的设定运行时间比较,判断程序处于哪一步。FC1中调用FC2一次,调用FC3 25次(有25个工艺步),每一次调用FC3都由DB给定不同的设定运行值和设定运行时间。以上程序用STL语言编写,并在PLSIM中运行正常。在PCS7工厂层级编程时,将以上程序运算得出的当前目标值给PID(CFC块)的SP,我是将CFC的程序编译后,再在OB中编写程序调用FC1。但是这样下载后,不执行这个程序。我就在CFC编程界面中,插入了FC1。但是这样编译下载后CPU报错停机。提示是OB1超出循环时间。于是我又将这个程序放在了OB32中,下载了还是报错停机,提示OB32出了错。我的FC1程序一共有26个网络,删掉了9个网络后,下载就行了。请问是什么原因呢。这个程序我在测试时没这个问题啊。后来我又单独建了个STEP7项目,只将这几个功能装入(OB1 FC1 FC2 FC3 DB1:DB1存放工艺各步的设定值)。下载后也是出现同样问题。该怎么解决啊。
问题补充:
对了,CPU是416-2DP(V5.2.1)
最佳答案
估计是你的程序存在循环等待的逻辑错误 导致CPU超时停机
仔细察看实际IO是否和模拟时情况不同并查看程序
既然删除部分程序即可正常
那么把删除的部分程序另外做个FC调用 缩小查错范围
提问者对于答案的评价:
问题虽然解决了,还是不知道什么原因,我是把程序重新编了一遍
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc196483.html