发布于 2011-08-04 19:11:51
18楼
9楼程序确实有问题,没有仔细看就回复了,抱歉!
我把9楼程序问题说一下:
第一:临时变量没有初始化。在调用其他fc或者fb存在临时变量之后,如果继续调用,可能会出现错误。按下不动的情况下可能会出现输出变化的情况。
第二:解决的办法很简单,将变量定义为VAR_IN_OUT。
FUNCTION FC1010 :bool
VAR_INPUT
rise:BOOL;
END_VAR
VAR_IN_OUT
rise1:BOOL;//这里必须用in_out定义。
END_VAR
VAR_TEMP
rise2:BOOL;
END_VAR
rise2:=(NOT rise1) AND rise;
rise1:=rise;
fc1010:=fc1010 XOR rise2
END_FUNCTION
就像找找偷懒的诀窍