目标值匹配打开(脉冲输出)
如果经过值与所选脉冲输出通道的目标值匹配,则指定的输出立即变为TRUE。
输入
脉冲输出通道:0–3
在以下范围内为目标值指定一个32位数据值: -2147483467~+2147483648
输出
当经过值与目标值匹配时变为TRUE的输出: Y0~Y1F
脉冲输出特性
目标值:10000
脉冲输出的经过值
执行条件
"输出控制激活"标志
PLC输出
当经过值与目标值匹配时,PLC输出变为TRUE。另外,"输出控制激活"标志变为FALSE,且指令被禁用。如果指定了尚未执行的输出,则仅设置或复位相应WY地址的内部存储器。
中断操作
当经过值与目标值匹配时,将执行中断程序。任何已输入任务列表的中断都将自动启用。每个通道编号都会分配一个特殊的中断程序编号。
中断程序使用的通道:
中断8 |
通道0 |
中断9 |
通道1 |
中断10 |
通道2 |
中断11 |
通道3 |
在系统寄存器中设置所需通道的"脉冲输出"。
当执行此指令时,所用通道的"输出控制激活"标志(例如sys_bIsPulseChannel0ControlActive)变为TRUE。只要此标志为TRUE,就无法执行使用相同通道的其他具有输出控制(F166_PulseOutput_Set或F167_PulseOutput_Reset)的高速计数器指令。
此指令可用于F173_PulseOutput_PWM除外的所有脉冲输出,并且可以在执行脉冲输出指令之前或之后执行。
重复使用其他指令(OUT、SET、RST、KEEP和其他F型指令)中的输出不会被FPWIN Pro验证,并且不会被检测到。
若要将之前通过此指令设置为TRUE的PLC输出设置为FALSE,请使用RST或MOVE指令。
若要取消执行脉冲输出指令,请将存储脉冲输出控制代码(sys_wHscOrPulseControlCode)的数据寄存器的第2位设置为TRUE。然后脉冲输出控制标志将变为FALSE.若要重新允许执行指令,请将位2复位为FALSE。
如果主程序和中断程序都包含同一通道的代码,请确保两者不同时执行。
强烈建议将强制停止选项包含到位置控制程序中。
在执行扫描时,高速计数器控制标志或脉冲输出控制标志的状态可能改变。例如,如果多次读取接收到的字节数,则在单次扫描中可能存在不同的状态。
在全局变量列表中,定义项目中所有POU都可以访问的变量。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR_EXTERNAL
out_0: BOOL:=FALSE;
(*output Y0 of PLC*)
END_VAR
VAR
start: BOOL:=FALSE;
(*start condition*)
@'': @'';
END_VAR
当变量start设置为TRUE时,执行此函数。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,F166_PulseOutput_Set!,Instance,12,1,26,6,,?DEN?Hn_diPulseOutputChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,3,12,5,);
B(B_VARIN,,10,10,4,12,6,);
B(B_VAROUT,,out_0,26,3,28,5,);
B(B_CONTACT,,start,5,2,7,4,R);
L(1,3,5,3);
L(7,3,12,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(start) then
F166_PulseOutput_Set(n_diPulseOutputChannel := 0,
s_diTargetValue := 10,
d_Y => out_0);
END_IF;