quote:以下是引用youhm在2013-05-21 18:36:54的发言:
S7-200的子程序使用临时变量来传递参数,对于OUT类型子程序不会把实参读入形参,所以这里使用OUT形参的触点就出现了临时变量未赋值先使用的情况,换成IN/OUT类型则避免了该问题,而S7-300的FC的参数传递机制又有区别,对于I.Q.M以及非绝对地址引用的DB块数据(如DBX0.0)形参传递的是实参的地址,即访问形参即访问实参,不会经过临时变量,而使用绝对地址引用的DB块数据(如DB1.DBX0.0)时也会使用临时变量来传递参数。
如果I.Q.M形参传递的是实参的地址,对于I\Q\M形实参,则不仅OUT变量可以将值传入,IN变量应该也可以将值传出。
目前用PLCSIM测试结果中OUT变量可以将值传入FC中,而IN变量不能将值传出FC。也就是说将启动按钮、停止按钮和电动机都定义为OUT类型,也可以控制电动机的输出,而将启动按钮、停止按钮和电动机都定义为IN类型则无输出。
目前未在PLC上进行测试。