各位前辈:
小弟刚刚使用STEP7,在调用FB,FC是有些不懂的地方,请大家帮忙解释一下。
我编了一个FC1,功能是:按下启动,电机正转10S后停止,5S后电机反转,反转10S后停止,5S后电机正转,如此反复,直到按下停止按钮。为了实现这个功能,我在FC里面使用了两个临时变量,A1,A2。在OB1中我两次无条件调用FC1,但在PLCSIM中运行时出现了问题。当第一次调用时,启动第一个电机,在运行时第二个电机也在工作(我没有启动第二个电机),我看了一下是临时变量的原因,第一个电机在执行时使临时变量为1,第二个电机也在调用这个临时变量而动作。
我看手册,我的理解是当第一次调用FC1时系统分配给FC1一个局部变量存储区,当FC1执行完毕后返回OB1,局部变量存储区释放,临时变量复位,第二次调用是也是如此,这样才不会造成两次调用FC1而使用一个状态。后来我又编了几个带临时变量的FC、FB,在多次调用时也出现过上述情况。但上面的程序说明我的理解是错误的。我只有用增加OUT形参用M区的位变量代替临时变量。请各位大哥给我讲一下临时变量是怎样存储的,象上面的例子又该怎样使用临时变量,临时变量又该怎样与局部堆栈联系起来理解。