FC11:Calculate and store OBx cycle times,请高人解释下此段程序
NW1:Convert Cycle Time
L #OBx_PREV_CYCLE
ITD // Integer to Double integer
DTR // Double integer to real
T #CYCLE_ACT // Store
NW2:Store if < MIN
A(
L #CYCLE_ACT
L #CYCLE_MIN
)
JNB _001
L #CYCLE_ACT
T #CYCLE_MIN
_001: NOP 0
NW3:Store if > Max
A(
L #CYCLE_ACT
L #CYCLE_MAX
>R
)
JNB _002
L #CYCLE_ACT
T #CYCLE_MAX
_002: NOP 0
NW4:Initialize
O(
A #INIT
JNB _003
L 1.000000e+009
T #CYCLE_MIN
SET
SAVE
CLR
_003: A BR
)
O(
A #INIT
JNB _004
L 0
T #CYCLE_MAX
SET
SAVE
CLR
_004: A BR
)
= #t_dummy
问题如下:
1,NW1中的 “#OBx_PREV_CYCLE”上一循环周期时间这一临变是由谁赋值的,DB中无此变量值,这一事件系统是如何得出得来的了
2,NW1到NW3中说把上一循环周期时间作为当前的循环周期时间,且若#CYCLE_ACT小于#CYCLE_MIN,则把#CYCLE_ACT当作当前程序的循环周期时间,且#CYCLE_ACT大于#CYCLE_MAX,则把#CYCLE_ACT的值给#CYCLE_MAX,这段看不懂,当前循环时间是由上一循环周期决定的么
3,NW4中把10的9此方赋给最小循环时间#CYCLE_MIN,而把0给#CYCLE_MAX,这我更不懂了,为啥把0给最大循环而10的9此方给最小循环了