之前发布了一篇故事贴介绍在一个海上平台项目中第一次使用XC206的尴尬的小故事,今天还是同样的项目介绍一个仿真中的小趣事。
整个项目的软件开发完成后,按照惯例我都是要仿真一下的,这次的项目由于用到了冗余PLC,里面做了不少冗余系统和网络通讯的故障诊断,更加需要通过仿真仔细验证了,至于用什么仿真软件,那毫无疑问肯定是PLC SIM ADV啊,因为只有ADV可以仿真冗余系统了

话不多说 开始仿真
仿真一开始一切顺利,先把OB1里面调用的FB和FC都验证了一遍,一切正常,接下来就是三个循环中断里面的程序了。
三个循环中断的循环时间分别为10毫秒 100毫秒和1秒,按照功能的重要性设定了循环优先级为18 19 20.
转至在线,打开OB 点击监视按钮准备测试程序。
这时候奇怪的事情发生了 LAD程序在线监控的时候未接通触点是蓝色 接通的触点是绿色啊,这怎么全灰色,明显程序没跑起来啊,,可这是循环OB啊 又不需要手动调用明明自动执行啊 ,我有点纳闷了。

我检查了一下CPU当前是在run模式,又检查了一下诊断缓冲区确认没有其他程序错误,还是灰色 这就很奇怪了。于是我又想,是不是我三个循环中断其中还有个10毫秒的 导致PLC反复进中断和嵌套中断出现了异常,接下来,我将三个循环中断调整优先级并配置了时间错误阈值和代排队事件

通过尝试此方法依旧不行,我又怀疑是不是还有其他配置问题,我干脆就把另外三个循环中断删掉,重新建一个循环中断重新写一个简单指令试一下,还是不行。
最后没办法,我直接新建了个项目新建了个PLC 里面只有循环中断,这下总能排除我程序写的有问题了吧。 还是不行 我炸了。这什么情况 第一次遇到啊,总不能是博图软件和仿真软件装的有问题?但为什么只影响循环中断仿真呢?总不能是仿真软件有BUG吧 但是这可是西门子家的工业软件啊 总不能人家发布的软件有问题吧 我这可是装的最新SP1啊

于是请教400热线工程师,跟热线工程师又从头查了半天,工程师也觉得蹊跷,于是我们商量着为了防止是个例,我们俩人分别用自己的电脑和软件 用PLC SIM ADV 4.0 SP1和PLC SIM ADV 4.0做个仿真验证一下循环中断的仿真问题,最后我们两人得出一致结果,,PLC SIM ADV 4.0 SP1仿真1500冗余CPU的循环中断确实有问题,需要降级到低版本

到这 终于把问题给解决了。
由此,我想起了那句名言 当你排除一切不可能的情况,剩下的,不管多难以置信,那都是事实。
另外 干我们这行的 现场什么可能都会碰上 遇到问题,需要大胆假设,小心求证