定时器16位
辅助定时器指令F137_STMR为倒计时定时器。定时器设置时间的公式为0.01秒 * 设置值s(可从0.01至327.67秒设置时间)。如果使用特殊内部继电器R900D作为定时器触点,务必在指令之后立即在地址中进行编程。
如果辅助定时器指令(STMR)的触发器EN处于ON状态,由s指定的常量或值被传输到由d指定的区域。
定时操作期间,从d指定区域中的值减去时间。
当d指定区域中的值变为0时,输出ENO打开。
输入
定时器设置值的16位区域或等效常量
输出
定时器经过值的16位区域
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
bstart: BOOL:=FALSE;
(*activates the timer*)
iSetValue: INT:=600;
(*six seconds (600 * 0,01s)*)
iElapsedValue: INT:=0;
bTimerOutput: BOOL:=FALSE;
(*set to TRUE after 6s have elapsed*)
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,iSetValue,7,2,9,4,);
B(B_VAROUT,,iElapsedValue,16,2,18,4,);
B(B_CONTACT,,bstart,4,1,6,3,);
B(B_COIL,,bTimerOutput,23,1,25,3,);
B(B_F,F137_STMR!,Instance,9,0,16,4,,?DEN?D@'s'?AENO?Cd);
L(1,2,4,2);
L(6,2,9,2);
L(16,2,23,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY