目标值匹配关闭(脉冲输出)
如果经过值与脉冲输出通道的目标值匹配,则指定的输出立即变为FALSE。
输入
脉冲输出通道: 0~3
在以下范围内为目标值指定一个32位数据值: -2147483467~+2147483648
输出
当经过值与目标值匹配时变为FALSE的输出: Y0~Y1F
脉冲输出特性
目标值:-200
脉冲输出的经过值
执行条件
"输出控制激活"标志
PLC输出
当经过值与目标值匹配时,PLC输出变为FALSE。另外,"输出控制激活"标志变为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验证,并且不会被检测到。
若要取消执行脉冲输出指令,请将存储脉冲输出控制代码(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 := 5 ;
NETWORK_BODY
B(B_F,F167_PulseOutput_Reset!,Instance,12,0,26,5,,?DEN?Hn_diPulseOutputChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,2,12,4,);
B(B_VARIN,,-200,10,3,12,5,);
B(B_VAROUT,,out_0,26,2,28,4,);
B(B_CONTACT,,start,5,1,7,3,R);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(start) then
F167_PulseOutput_Reset(n_diPulseOutputChannel := 0,
s_diTargetValue := -200,
d_Y => out_0);
END_IF;