如图在主程序调用子程序,而实际运算是在下一级子程序,在执行一级嵌套子程序的参数会不会因为二级嵌套子程序的调用而改变,从而产生运算错误。程序在附件里
应该是可以的,但是估计容易出错;
其实,你可以把模拟量程序作为一个库进行调用的;就是你的子程序:AL_CTRL
西门子200PLC的库程序编程方法
http://bbs.gongkong.com/d/201307/514344_1.shtml
也可以用这个网上的库进行编程的
西门子200库文件《分享》
http://bbs.gongkong.com/d/201304/491279_1.shtml
回复内容:
对: 银光人生—华 如图在主程序调用子程序,而实际运算是在下一级子程序,在... 内容的回复!
没有注释看不清意思,这样应该好一点
你的意思我清楚,库调用其实就是调用子程序,我程序里面已经有了,inverter是把aiw转成实际物理量,这里是温度,实型变量;error是计算冷却系统和冷媒水系统的进出水温差,计算出的温差,再转成整形变量,作为Pid的过程变量输入的。
我是把一个系统的四路模拟量及其温差计算又集成在一起,做了一个集中处理的子程序AI_ctrl ,实际的计算功能都在二级嵌套子程序里面。
我的疑问就是主程序里面调用AI_ctrl后赋予的实参,会不会准确传递进去,计算出来的结果会不会准确传递出来。其实就是在执行在AI_ctrl里面的时候,子程序里面有输入参数进来,被存储在LW0-LW6的局部变量里面,这时又要调用二级子程序inverter或者error,执行完后一级子程序里面LW0-LW6的数据会不会因为执行二级子程序而改变?