Hsc_TargetValueMatch_Set

목표 값 일치 ON(고속 카운터)

경과 값이 iChannel에서 지정한 고속 카운터 채널의 목표 값 diTargetValue와 일치하면 pYOutput에서 지정한 출력 릴레이가 바로 TRUE로 전환됩니다.

파라미터

입력

bExecute
상승 엣지가 함수를 활성화, HscInfo_IsActive를 사용하여 고속 카운터 제어 플래그 평가
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

pYOutputPOINTER
채널 번호와 출력을 공급하는 전역 변수에서 GetPointer로 가져온 포인터 결과
diTargetValue (DINT)

목표 값의 32비트 데이터 값을 다음 범위 내로 지정:

FP0, FP-e: -838808~+8388607

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

출력

bError (BOOL)
Channel%dpYOuput.iOffset의 조합이 전역 변수에서 정의한 채널 번호와 출력의 조합과 일치하지 않으면 TRUE

주석

이 비 인라인 명령은 고속 카운터의 도구 명령의 일부입니다. 내부에서 사용되는 명령의 자세한 내용은 : F167_HighSpeedCounter_Reset을 참조해 주십시오. F166_HighSpeedCounter_Set

주석

채널과 Y 출력 조합의 유효성을 검사하려면 컴파일러에 전역 변수에 대한 다음과 같은 이름 패턴이 필요합니다.%sHsc_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 Hsc_TargetValueMatch_ChannelA_Y11F _MotorOn
이 전역 변수는 채널 A의 코드와 출력 Y11F를 생성합니다.

글로벌 변수

글로벌 변수 리스트에서 프로젝트의 모든 POU에서 액세스할 수 있는 변수를 정의합니다.

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

VAR
	VAR 
		bExecute: BOOL:=0;
		iChannel1: INT:=1;
		diTargetValue0: DINT:=15000;
		bIsActive: BOOL:=FALSE;
		diElapsedValue: DINT:=0;
		bSet: BOOL:=FALSE;
		bErrorSet: BOOL:=FALSE;
	END_VAR

LD 본문

HscInfo_IsActive를 사용하여 iChannel1에서 지정한 채널을 평가합니다. 상승 엣지가 bSet에서 감지되고 bIsActiveTRUE가 아니면 명령이 실행됩니다. 채널 번호와 출력 접점 조합은 글로벌 변수 g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On에 확인됩니다. 채널 1의 고속 카운터가 대상 값 diTargetValue0에 도달하면 출력 Y1TRUE로 설정됩니다.

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_F,HscInfo_IsActive!,,9,0,18,3,,?DiChannel?C);
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,18,1,20,3,);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_VAROUT,,bErrorSet,46,1,48,3,);
B(B_CONTACT,,bSet,2,1,4,3,R);
B(B_CONTACT,,bIsActive,6,1,8,3,N);
B(B_VARIN,,iChannel1,31,2,33,4,);
B(B_VARIN,,diTargetValue0,31,4,33,6,);
B(B_F,GetPointer!,,26,3,33,5,,?D?C);
B(B_VARIN,,g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On,24,3,26,5,);
B(B_F,Hsc_TargetValueMatch_Set!,,33,0,46,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(1,2,2,2);
L(4,2,6,2);
L(8,2,33,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

bIsActive:=HscInfo_IsActive(iChannel1);
Hsc_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
             iChannel := iChannel1,
             pYOutput := GetPointer(g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On),
             diTargetValue := diTargetValue0,
             bError => bErrorSet);

최종 수정일: 2019-04-29이 페이지에 대한 피드백Panasonic 직통 전화