Pulse_TargetValueMatch_Set

目标值匹配打开(脉冲输出)

如果iChannel所指定脉冲输出通道的经过值与目标值diTargetValue匹配,则由pYOutput指定的输出继电器立即变为TRUE

参数

输入

bExecute (BOOL)

上升沿激活函数;使用PulseInfo_IsTargetValueMatchActive评估脉冲输出通道控制标志

iChannel (INT)

FPS: 0, 2

FP-X R: 0, 1

FP-X 16K C14T: 0, 1, 2

FP-X 32K C30T, C60T: 0, 1, 2, 3

FP0R: 0, 1, 2, 3

FP0: 0, 1

FP-e: 0, 1

pYOutput (POINTER)

GetPointer从提供通道编号和输出的全局变量获得的指针结果

diTargetValue (DINT)

在以下范围内为目标值指定一个32位数据值:

FP0, FP-e: -838808~+8388607

FPS, FP-X, FP0R: -2147483467~+2147483648

输出

bError (BOOL)

如果Channel%dpYOuput.iOffset的组合与全局变量确定的通道编号和输出的有效组合不匹配,则为TRUE

标注

这种非内联指令是脉冲输出工具指令的一部分。有关内部使用指令的详细描述,请参阅:F166_PulseOutput_Set

注释

若要验证通道和Y输出的组合,编译器需要以下全局变量的名称模式:%sPulse_TargetValueMatch_Channel%d_Y%d_%s

始终在目标值匹配控制中将此模式用于全局变量。

  • Channel%d必须是系统寄存器中启用的脉冲输出通道编号

  • Y%d 必须是PLC支持的明确输出地址

FP-S, FP0, FP-e:

Y0~Y7

FP-SV3.1或更高版本),FP0R

Y0~Y1F

FP-X

Y0~Y29F

  • %s 是模式开头的可选描述符

  • _%s 是模式结尾的可选描述符

示例

可选 固定模式 可选
g_b Pulse_TargetValueMatch_ChannelA_Y11F _MotorOn

此全局变量生成适用于通道A和输出Y11F的代码。

示例

全局变量

在全局变量列表中,定义项目中所有POU都可以访问的变量。

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。

	VAR_EXTERNAL
		g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On: BOOL:=FALSE;
	END_VAR
	VAR 
		diTargetValue0: DINT:=11000;
		iChannel1: INT:=1;
		bIsActive: BOOL:=FALSE;
		bErrorSet: BOOL:=FALSE;
		bSet: BOOL:=FALSE;
	END_VAR

LD本体

使用PulseInfo_IsTargetValueMatchActive来评估通道iChannel1是否已激活。如果在bSet检测到上升沿且bIsActive不为TRUE,将执行操作。通道编号与输出触点的组合将在全局变量g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On中得到验证。当通道1的脉冲输出达到目标值diTargetValue0,输出YA将被设置为TRUE

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,26,1,28,3,);
B(B_F,PulseInfo_IsTargetValueMatchActive!,,9,0,26,3,,?DiChannel?C);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_VAROUT,,bErrorSet,51,1,53,3,);
B(B_CONTACT,,bSet,3,1,5,3,R);
B(B_CONTACT,,bIsActive,7,1,9,3,N);
B(B_VARIN,,iChannel1,32,2,34,4,);
B(B_VARIN,,diTargetValue0,32,4,34,6,);
B(B_F,GetPointer!,,27,3,34,5,,?D?C);
B(B_VARIN,,g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On,25,3,27,5,);
B(B_F,Pulse_TargetValueMatch_Set!,,34,0,48,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(5,2,7,2);
L(1,2,3,2);
L(9,2,34,2);
L(48,2,51,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

bIsActive:=PulseInfo_IsTargetValueMatchActive(iChannel1);
Pulse_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
             iChannel := iChannel1,
             pYOutput := GetPointer(g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On),
             diTargetValue := diTargetValue0,
             bError => bErrorSet);

最后更新日期: 此页面上的反馈松下热线