请问我程序中静态变量的仿真结果为什么会这样?我想做一个时间累加:
程序写在FB块中:
static:time_last time
temp:temp1 time
network:
A m100.0
FP #FP120
JCN L001
CALL TIME_TCK
RET_VAL :=DB1.time1//启动
L001: AN m100.0
JCN L002
CALL TIME_TCK
RET_VAL :=DB1.time2//停止
L002: L DB1.time2
L DB1.time1
>=D
JCN L004
-D
T #temp1
L003: L #temp1
L #time_last
+D
T #out
T #time_last
JU L004
L004: NOP 0
问题补充:
正确的程序我已经写出,但是就是不知道为什么使用静态变量之后,最后的输出结果会变化那么快,我这个程序实际才仿真运行了一分钟不到,最后的输出时间就那么大
图片说明:
最佳答案
静态变量(STAT)在PLC运行期间始终被存储。
参考同类问题回复,链接:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=66195&cid=1029
补充问题回复:
这个程序计算结果与是否使用静态变量没有关系的。在调用该子程序时,先初始化(清零这个#time_last静态变量)。
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc165571.html