「案例」你见过西门子触摸屏Smart 700 IE V3的这种编译出错吗?

近日,网友求助:自己的Smart 700 IE V3触摸屏项目编译出错,从报错信息上找不到任何帮助,自己比较抓狂啦,报错信息见下图(数组超出范围):

「案例」你见过西门子触摸屏Smart 700 IE V3的这种编译出错吗?

和他联系后,拿到了源程序,开始查故障:

1、由于是数组超出范围,首先去找可能用到索引的地方:查看所有画面,没有见到索引的动画、复杂动态显示之类的引用。

2、查图片列表、文本列表、报警设置、连接中的区域指针等等,都没有发现问题。

3、是不是画面里有什么隐藏的问题?于是一副一副画面删除,编译,到最后只剩主画面了,还是编译出错。将主画面上的内容逐个区域删除,直到最后只有空画面,还是编译出同样的错误。(测试时,会出现别的错误,暂时不用例会)。

4、将变量列表里的条目全部删除,编译,超限的报错消失。恢复变量。然后,逐步成组删除变量,最后发现是这几个变量问题:

「案例」你见过西门子触摸屏Smart 700 IE V3的这种编译出错吗?

5、是不是地址超出了使用范围?和网友沟通,PLC为S7-200SMART,确认没有超出范围,有的CPU上有36个DI,地址区间可以是:I0.0-I4.3呢,应该没有超限。

6、继续采用二分法,一半一半删除测试,最终发现是I2.6这个变量有问题。重新建了一个I2.6的变量,删除原变量,则编译通过。

7、这个I2.6的变量有什么问题呢?难道是后台数据库被破坏了?于是点开该变量的属性,终于发现了原因:

「案例」你见过西门子触摸屏Smart 700 IE V3的这种编译出错吗?

应该是使用了一个不恰当的函数,或者函数的参数没有给对导致。

好隐蔽的一个小地雷呀!


说明:

1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。

2、如需进行控制、三电相关技术求助,交流,请留言,也可加入技术讨论群:877456127


分享到:


相關文章: