在使用CPU315时, 我的程序中发现Timer不够用,所以我就做按加计数原则,使了一秒钟的脉冲进行加计数,作了一个可延时置位的FC,在程序少的情况测试OK,但是加入我的正常程序后就出现,IN_OUT参数不能清零的情况,而且一直累加,我的主程序约40KB,在程序中是在FB块内作多次调用,现将我的代码写在下面,请各位多多指教,
IN release_delay BOOL release protec module pump delay stare
IN delaytime_set_s INT delya_active_set pump delay star time second
OUT delay_active_out BOOL protect delay stare pump of module is ok
IN_OUT delay_active_actual INT delay time is be calculated by second
TEMP delay_active BOOL delay stare is active
Network 1 release protect stare and reset
A #release_delay
JC M100
SET
R #delay_active
L 0
T #delay_active_actual
Network 2 delay time caculate--sec
M100: AN #release_delay
ON "One-shot 1.0 sec pulse"
O #delay_active
O(
L #delay_active_actual
L #delaytime_set_s
>=I
)
JC M200
L #delay_active_actual
+ 1
T #delay_active_actual
M200: A(
L #delay_active_actual
L #delaytime_set_s
>=I
)
A #release_delay
S #delay_active
Network 3
A #release_delay
A #delay_active
= #delay_active_out