什么程序Zui难移植?请把你的答案打在评论区!
很多人会说是指针,因为指针只能在STL语言中使用,而S7-1500PLC底层又不支持STL,为了程序的移植,只能虚拟一个环境用于STL的运行,既然是虚拟的环境,肯定不健全,所以移植会有问题。
这个回答其实比较接近答案了,但是指针使用的比较常见,如果这个都不行还怎么完成整体项目移植?所以指针移植肯定不困难!
什么程序移植Zui困难?我的回答是进口设备带的程序Zui难移植!
因为这些程序大部分使用了STL语言又进行了标准化编程,程序块为了适合不同的调用方式,指针、地址寄存器以及状态位的使用非常常见,有的甚至使用了一些奇怪的编程方式,这样就增加了移植的难度。
下面我就带大家来见识一下有些程序的奇怪之处以及对应的解决办法。
![图片](http://static.11467.com/img/lazy.gif)
这个程序中包含了FC1和FC2两个块,假如M1.5为TRUE,FC2调用FC1,并赋值给M1.2。这都是什么程序,好奇葩的程序!结果移植后提示错误:RLO 未初始化,访问无效。
![图片](http://static.11467.com/img/lazy.gif)
解决办法就是使能FC1属性中的“通过寄存器进行参数传递”选项,然后将CALL指令变为UC。结果是不是也惊掉了下巴!
再看下面的程序
![图片](http://static.11467.com/img/lazy.gif)
这回变样了,在FC2中直接调用FC1,然后将FC1中M1.2的值赋值给M1.5。
![图片](http://static.11467.com/img/lazy.gif)
移植后还是报错,上面的介绍方法失效了,只能在程序中手动添加状态位进行传递。这得多考验工程师的水平呀,辛亏这样的编程手段比较少间。