F165_HighSpeedCounter_Cam

FP0H의 캠 제어

이 명령은 고속 카운터의 경과값에 따라 최대 32개 목표값을 사용하여 지정된 DUT의 파라미터에서 지정한 대로 캠 제어를 수행합니다. 모든 단일 캠 출력의 경우 목표값은 ON 및 OFF 설정값의 쌍 하나로 설정됩니다.

경과값이 목표값 중 하나와 일치할 때마다 인터럽트 프로그램을 실행할 수 있습니다.

파라미터

입력

iHscChannel* (INT)

고속 카운터 채널: 0-3

s_dutDataTable (ANY_DUT)

데이터 테이블이 포함된 영역의 시작 어드레스

출력

dutBitOutputs (ANY_DUT)

출력 워드 어드레스가 포함된 영역의 시작 어드레스(WR, WL 또는 WY)(예: BOOL32_OVERLAPPING_DUT). diNumberOfTargetValuesAndOutputRelays를 사용하여 번호 설정에 따라 크기(16 또는 32비트)를 선택합니다.

주석

  • 입력

    샘플과 같은 다음 DUT를 사용하여 자체 DUT 만들기: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT

    DUT에서 F168_PulseOutput_Home_DUT 파라미터를 지정할 수 있습니다.

  • 출력

    • 목표값 수가 1–16 범위 내에 있으면 1워드가 사용됩니다. 목표값 수가 17–32 범위 내에 있으면 2워드가 사용됩니다.

    • 예: 출력 어드레스가 "내부 플래그"로 설정되면 출력 어드레스의 시작 워드 번호는 "0"으로 설정되고 목표값 수는 "32"로 설정된 후 R0~R1F는 캠 출력의 어드레스로 할당됩니다.

    1.  (1) 경과값이 목표값 1에 도달하면 R0이 켜지거나 꺼집니다.
    2.  (2) 경과값이 목표값 16에 도달하면 RF이 켜지거나 꺼집니다.
    3.  (3) 경과값이 목표값 18에 도달하면 R11이 켜지거나 꺼집니다.
    주석

    출력 플래그(Y)가 지정된 경우 값은 CPU 출력과 연산 메모리 모두에 출력됩니다.

    1.  (1) 경과값
    2.  (2) 목표값 1, ON 설정값: 1000

      1000–4999 R100: ON

    3.  (3) 목표값, OFF 설정값: 5000
    4.  (4) 목표값 2, ON 설정값: 7000

      7000–8999 R101: ON

    5.  (5) 목표값, OFF 설정값: 9000

최대 목표값 제어

  • F165_HighSpeedCounter_Cam을 사용하면 지정된 목표값으로 제어를 수행할 수 있습니다. 최대 목표값 제어의 활성화/비활성화 설정과 최대 목표값은 데이터 테이블에 지정되어 있습니다.

  • 데이터 테이블은 목표값 수와 지정된 최대 목표값 설정에 따라 12~138 워드 범위 사이입니다.

주석

데이터 테이블 끝의 최대 목표값은 dwCamControlCode에서 목표값 제어가 16#0010(최대값 포함)으로 설정된 경우에만 유효합니다. 목표값 제어를 16#0000(최대값 미포함)으로 설정하면 이 설정을 생략할 수 있습니다.

유효

무효

계산 범위

0~목표값

최소 음의 값~최대 양의 값

계산 범위를 초과하면 연산

증가 계산:

경과값이 목표값을 초과하면 0으로 설정됩니다.

경과값이 최대 양의 값을 초과하면 최소 음의 값으로 돌아갑니다.

감소 계산:

데이터 테이블의 포인터는 마지막 목표값에서 목표값 1로 이동합니다.

경과값이 0 미만이면 목표값으로 설정됩니다.

경과값이 최소 음의 값 미만하면 최대 양의 값으로 돌아갑니다.

목표값 사양

출력은 ON 설정값과 OFF 설정값에 따라 달라집니다.

  • OFF 목표값 > ON 설정값

    경과값이 ON 설정값보다 크거나 같고 OFF 설정값보다 작으면 해당 출력 비트가 켜집니다. 경과값이 범위를 벗어나면 해당 비트가 꺼집니다.

    증가 계산:

    감소 계산:

    OFF 설정값(1) > ON 설정값(2)

  • ON 설정값 > OFF 설정값

    경과값이 ON 설정값보다 작고 OFF 설정값보다 크거나 같으면 해당 출력 비트가 꺼집니다. 경과값이 범위를 벗어나면 해당 비트가 켜집니다.

    증가 계산:

    감소 계산:

    ON 설정값(1) > OFF 설정값(2)

  • ON 설정값 = OFF 설정값

    경과값이 범위를 벗어나면 해당 비트가 꺼집니다.

    증가 계산:

    감소 계산:

    ON 설정값(1) = OFF 설정값(2)

일반 프로그래밍 정보

  • 시스템 레지스터에서 원하는 채널의 고속 카운터 입력을 선택합니다.

  • 고속 카운터 명령이 실행되면 사용한 채널의 고속 카운터 제어 플래그(예: sys_bIsHscChannel0ControlActive)는 TRUE로 전환됩니다. 같은 채널을 사용하여 다른 고속 카운터 명령을 실행하면 제어 플래그는 더 이상 TRUE가 아닙니다.

  • 최대 두 채널에서 이 명령을 동시에 실행할 수 있습니다.

  • 명령 실행을 취소하려면 고속 카운터 제어 코드(sys_wHscOrPulseControlCode)를 저장하는 데이터 레지스터의 비트 3TRUE로 설정합니다. 그러면 고속 카운터 제어 플래그는 FALSE로 변경됩니다. 고속 카운터 명령 실행을 다시 활성화하려면 비트 3FALSE로 초기화합니다.sys_wHscOrPulseControlCode의 비트 3TRUE로 설정하면 최대 목표값 제어도 비활성화됩니다. 최대 목표값 제어가 중지되면 캠 출력은 유지되고 고속 카운터는 계속 계산합니다.

  • 명령이 활성화되기 전에 고속 카운터 경과값을 재설정 또는 사전 설정합니다.

  • 명령 실행 중에 사용된 채널의 경과값을 다시 쓰면 예상치 못한 연산이 발생할 수 있습니다.

  • 명령이 주 프로그램에서 실행되면 인접 목표값 사이의 최소 시간 범위가 스캔 시간보다 큰 지 확인하십시오.

  • 명령이 인터럽트 프로그램에서 실행되면 인접 목표값 사이의 최소 시간 범위가 인터럽트 프로그램의 최대 실행 시간보다 큰 지 확인하십시오.

  • 재설정 입력 또는 소프트웨어 재설정을 사용하고 있는 경우, 목표값 1이 정수이고 ³ 1인지 확인하십시오.

  • 최대 목표값 제어가 재설정 입력 또는 소프트웨어 재설정과 함께 사용되는 경우, 동시에 사용하지 마십시오.

  • 고속 카운터 제어 중에 하드웨어 재설정 또는 소프트웨어 재설정을 실행하면 고속 카운터 경과값은 0으로 재설정됩니다. 캠 제어에 할당된 출력은 경과값 0에 따라 출력됩니다.

  • 또한 경과값이 각 목표값에 도달할 때마다 인트럽트 프로그램 INTn이 시작될 수 있습니다. 이 연산의 경우 인터럽트 제어 명령 ICTL을 통해 인터럽트 프로그램 활성화가 허용되어야 합니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 채널 번호 또는 데이터 테이블 값이 허용 범위를 벗어나는 경우
  • 고속 카운터가 시스템 레지스터에 설정되지 않은 경우
  • 목표값 > 최대 목표값인 경우.

  • 목표값= 0인 경우.

  • 목표값은 오름차순으로 정렬되지 않은 경우

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 채널 번호 또는 데이터 테이블 값이 허용 범위를 벗어나는 경우
  • 고속 카운터가 시스템 레지스터에 설정되지 않은 경우
  • 목표값 > 최대 목표값인 경우.

  • 목표값= 0인 경우.

  • 목표값은 오름차순으로 정렬되지 않은 경우

FP0H의 CH0 사용 예

DUT

DUT F165_HighSpeedCounter_Cam_8_Values_OnOff_DUTFP Library에서 사전 정의되고 샘플로 사용될 수 있습니다.

글로벌 변수

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

POU 헤더Copy code to clipboard

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

	VAR
		bEnable: BOOL:=FALSE;
		dutF165FP0H_CH0: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT;
	END_VAR
	VAR_EXTERNAL
		g_dutCamControl_WY0: BOOL32_OVERLAPPING_DUT;
	END_VAR

POU 본문

변수 bEnableTRUE로 설정되면 함수가 실행됩니다.

LD 본문Copy code to clipboard

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,5,1,7,3,);
B(B_F,F165_HighSpeedCounter_Cam!,,14,0,28,5,,?DEN?HiHscChannel?Ds_dutDataTable?AENO?CdutBitOutputs);
B(B_VARIN,,0,12,2,14,4,);
B(B_VAROUT,,g_dutCamControl_WY0,28,2,30,4,);
B(B_VARIN,,dutF165FP0H_CH0,12,3,14,5,);
L(1,0,1,6);
L(1,2,5,2);
L(7,2,14,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문Copy code to clipboard

if (bEnable) then
    F165_HighSpeedCounter_Cam(iHscChannel := 0, s_dutDataTable := dutF165FP0H_CH0,
                              dutBitOutputs => g_dutCamControl_WY0);
end_if;

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