quote:以下是引用youhm在2012-11-04 15:55:55的发言:
你用S或R指令输出,你的指令可能被跳过了,即既没有执行S指令也没有执行R指令
这样的问题,最好有段程序为例来解释
比如说FC2里面的指令是这样的:
A IN1
S OUT
////
A IN2
R OUT
////
类型说明:IN1 IN2都是输入型的位参数,OUT是位型的输出参数;
假如OB1里面调用FC2两次,每次都赋予不同的实际参数值,第一次调用FC2实际输出变量为Q0.0,第二次调用时输出变量为Q0.1,那么就会出现:当第一次调用FC2的时候,Q0.0会置位,这个没问题,第二次调用FC2其输出Q0.1也会置位,即使从逻辑上讲并不应该置位,也就是说Q0.1与Q0.0实际结果是同步的。
问过西门子的技术,他们说这个是因为调用块以后系统不清除内存,所以会这样的,很是不解。