恭喜,你发布的帖子
发布于 2023-07-28 09:47:44
1楼
我的解释顺序跟提问顺序不完全一致,哪里没明白再继续提问。
这个时间记录是保存在全局DB中,在名称为"ProductionData"的DB中声明的upperLimitTime数组变量。
WHILE循环就是判断条件是否满足,满足了就执行DO后面的指令,不满足就结束循环,不会自动对#index递减,所以要靠#index := #index - 1; 来实现每次循环执行时,访问下一地址。
5个数,是0到4号数组元素,新值写到0号元素,那之前要把3写入到4中,2写入到3中,1写入到2中,0写入到1中。这些是由WHILE循环完成的,最开始的3号元素值赋值给4号元素,
"ProductionData".upperLimitTime[#index + 1] := "ProductionData".upperLimitTime[#index];
这时#index的值应该是3,接下来#index减1变成2,下次就是2号元素值赋值给3号元素,以此类推,最后一次0号元素值赋值给1号元素,#index减1变成-1,不再满足#index >= 0的条件,结束循环。
最后再把最新的采集值赋给0号元素。
请填写推广理由:
分享
只看
楼主