Pulse_TargetValueMatch_Reset

목표 값 일치 OFF(펄스 출력)

경과 값이 iChannel에서 지정한 펄스 출력 채널의 목표 값 diTargetValue와 일치하면 pYOutput에서 지정한 출력 릴레이가 바로 FALSE로 전환됩니다.

파라미터

입력

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

주석

이 비 인라인 명령은 펄스 출력의 도구 명령 일부입니다. 내부에서 사용되는 명령의 자세한 내용은 :F167_PulseOutput_Reset

주석

채널과 Y 출력 조합의 유효성을 검사하려면 컴파일러에 전역 변수에 대한 다음과 같은 이름 패턴이 필요합니다.%sPulse_TargetValueMatch_Channel%d_Y%d_%s

항상 목표 값 일치 제어에 전역 변수에 대한 이 패턴을 사용합니다.

  • Channel%d는 시스템 레지스터에서 활성화된 펄스 출력 채널 번호여야 합니다.

  • Y%d 는 PLC에서 제공하는 명시적 출력 어드레스여야 합니다.

FP-S, FP0, FP-e:

Y0~Y7

FP-S(V3.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_Y19_Motor1_On: BOOL:=FALSE;
	END_VAR
VAR
		iChannel1: INT:=1;
		diTargetValue1: DINT:=22000;
		bIsActive: BOOL:=FALSE;
		bErrorReset: BOOL:=FALSE;
		bReset: BOOL:=FALSE;
	END_VAR

LD 본문

PulseInfo_IsTargetValueMatchActive를 사용하여 iChannel1이 활성화되어 있는지 평가합니다. bReset에서 상승 엣지가 검색되고 bIsActiveTRUE가 아니면 명령이 실행됩니다. 채널 번호와 출력 접점 조합은 글로벌 변수 g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On에서 확인됩니다. 채널 1의 펄스 출력이 목표값 diTargetValue1에 도달하면 출력 Y19FALSE로 설정됩니다.

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_CONTACT,,bReset,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,,diTargetValue1,32,4,34,6,);
B(B_VAROUT,,bErrorReset,52,1,54,3,);
B(B_F,GetPointer!,,27,3,34,5,,?D?C);
B(B_VARIN,,g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On,25,3,27,5,);
B(B_F,Pulse_TargetValueMatch_Reset!,,34,0,49,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(5,2,7,2);
L(1,2,3,2);
L(9,2,34,2);
L(49,2,52,2);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

bIsActive:=PulseInfo_IsTargetValueMatchActive(iChannel1);
Pulse_TargetValueMatch_Reset(bExecute := DF(bReset) AND NOT bIsActive,
             iChannel := iChannel1,
             pYOutput := GetPointer(g_bPulse_TargetValueMatch_Channel1_Y19_Motor1_On),
             diTargetValue := diTargetValue1,
             bError => bErrorReset);

최종 수정일: 2021-11-10이 페이지에 대한 피드백Panasonic 직통 전화