许多人发现S7-300/400移植到S7-1500后,原来的LAD程序变成的STL了,程序不宜读,给维护人员造成了很大的困难!
今天我就带大家发现问题的原因,并找出解决的方案!
![图片](http://static.11467.com/img/lazy.gif)
图1
移植后LAD变成STL了,其根本原因就是系统发生了变化,而只有STL可以兼容原有方式,所以,所有不符合新系统编程方式的程序就变成STL了,例如S7-1500PLC对数据类型的检查更加严格,类型混用就不能顺利移植了,还有就是一些指令参数发生了变化,所以移植后都变成STL了。
那能不能移植以后再手动改过来呢?这要看改动量了,一个大的程序段,即使有一个变量或者一个指令不满足要求,整个程序段就变成STL了,所以大的程序段改动量还是比较大的。
接下来我教大家怎么解决这个问题,自动+手动修改的方式,这样可以节省移植的时间。
![图片](http://static.11467.com/img/lazy.gif)
图2
对于数据类型不匹配的问题(图2),程序移植后进行编译,系统报错,根据报错信息我们可以看到是在哪一个程序段哪些变量的类型不匹配,然后返回到STEP7的源程序的符号表中将变量类型进行更正,然后再移植,这样既消除了错误,程序显示也不会发生改变。
对于指令不匹配的问题,我们可以在移植日志中得到相关信息。
![图片](http://static.11467.com/img/lazy.gif)
图3
如果一个程序段比较大,可以在源程序中将不支持的指令删除(图3)。
![图片](http://static.11467.com/img/lazy.gif)
图4
然后在移植后的程序中再添加相匹配的指令,那如果小呢?直接手动替换就完了。
还有一些系统的指令,例如计数器(SFB0),移植后不能被识别,但仍然保持LAD显示,这时可以使用替代指令在原位置进行替换就可以了。
![图片](http://static.11467.com/img/lazy.gif)
图5