F169_PulseOutput_Jog

JOG 동작

이 명령은 JOG 동작에 사용됩니다. 위치 제어 트리거 입력이 TRUE로 변환된 후 펄스의 특정 번호가 출력됩니다. 목표 값에 도달하고 펄스 출력이 정지하기 전에 감속이 수행됩니다. 이 채널의 제어 플래그가 FALSE이고 실행 조건이 TRUE이면 지정된 채널에서 펄스가 출력됩니다.

파라미터

입력

s_dutDataTable (F169_PulseOutput_Jog_DUT)

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

n_iPulseOutputChannel (INT)

펄스 출력: 0 또는 1

주석

  • 다음과 같은 사전 정의된 DUT 사용: 2022-06-29F169_PulseOutput_Jog_DUT

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

    • 제어 코드

    • 속도

  • 펄스 출력 특정

    스캔마다 주파수와 듀티를 변경할 수 있습니다. (변경 사항은 다음 펄스 출력에 유효합니다.)

일반 프로그래밍 정보

  • 이 명령을 사용하여 프로그램 온라인 편집을 시작하자마자(즉, RUN 모드에서) 펄스 출력이 정지합니다.

  • 펄스 출력 채널에 할당된 모든 고속 카운터를 시스템 레지스터의 "미사용"으로 설정합니다.

  • 주 프로그램과 인터럽트 프로그램 모두에 같은 채널 코드가 포함된 경우, 두 프로그램을 동시에 실행하지 마십시오.

  • 고속 카운터 제어 플래그(예: sys_bIsHscChannel0ControlActive)와 펄스 출력 제어 플래그(예: sys_bIsPulseChannel0Active)가 같은 특수 내부 플래그 번호(예: R903A)에 할당됩니다. 따라서 고속 카운터 명령 또는 펄스 출력 명이 실행되면 사용된 채널의 고속 카운터 제어 플래그(예: sys_bIsHscChannel0ControlActive)와 펄스 출력 제어 플래그(예: sys_bIsPulseChannel0Active)는 TRUE입니다. 다른 고속 카운터 명령 또는 펄스 출력 명령이 실행되면 이 플래그는 더 이상 TRUE가 아닙니다.

  • 회전이 한 방향으로만 실행되는 경우, 내부 경과 값의 상한값이 초과하면 펄스 출력이 정지합니다. 보호 조치로서, 이 명령을 실행하기 전에 경과 값을 0으로 다시 설정합니다. 경과 값의 데이터 범위가 부호가 있는 32비트 값이므로, FP0R이 FP0 호환 모드에서 사용되면 펄스 출력이 정지되지 않습니다.

  • 증분 계산을 사용하는 경우, 경과 값이 2147483647을 초과하면 펄스 출력이 정지합니다.

  • 감소 계산을 사용하는 경우, 경과 값이 -2147483648을 초과하면 펄스 출력이 정지합니다.

  • 위치결정 프로그램에 강제 정지 옵션을 통합하는 것이 좋습니다.

  • 고속 카운터 제어 플래그 또는 펄스 출력 제어 플래그 상태는 스캔이 실행 중인 동안에 변경될 수 있습니다. 예를 들어, 수신된 바이트 수를 읽으면 스캔 1회에 다른 상태가 두 개 이상 있을 수 있습니다.

FP0R 을 FP0 호환 모드로 실행

FP0 호환 모드에서 FP0R을 실행하려면 FP0 프로그램을 FP0R에 다운로드하면 됩니다. 다음 제한 사항을 참조해 주십시오.

  • FP0R은 경과 값과 목표 값에 대해 부호가 있는 32비트 데이터를 지원하고, FP0은 부호가 있는 24비트 데이터를 지원합니다. FP0 호환 모드에서 데이터가 FP0 범위를 초과하더라도 계산과 펄스 출력은 계속 실행됩니다.

  • 듀티는 명령 설정에 관계없이 항상 25%입니다. 펄스 출력 방법 "펄스/방향"을 사용하면 방향 신호가 출력된 후에 펄스는 약 300ms로 출력됩니다. 모터 드라이버 특성도 동시에 고려해야 합니다.

  • FP0R은 "계산 없음" 설정을 지원하지 않습니다. 대신 FP0 펄스 출력 명령으로 수행되는 증분 계산은 "계산 없음"으로 설정됩니다.

  • 최대 펄스 출력 주파수는 10000Hz입니다.

  • 펄스 출력 명령이 보통 출력으로 사용 중인 출력을 사용하지 않는지 확인합니다.

  • PLC 기종(C10, C14, C16, C32T32)이 정확히 일치하면 FP0 프로그램이 FP0 호환 모드에서만 실행될 수 있습니다. F32 형식 FP0R에서는 FP0 호환 모드를 사용할 수 없습니다.

FP0, FP-e의 출력 및 시스템 변수

채널 및 펄스 출력 번호

채널 번호 펄스 출력 펄스 출력 방법

0

Y0

펄스

Y2

방향

1

Y1

펄스

Y3

방향

사용한 메모리 영역의 시스템 변수. 괄호 안의 값은 FP0 T32에 유효합니다.

설명

시스템 변수

펄스 출력: 채널의 제어 플래그

0

sys_bIsPulseChannel0Active

1

sys_bIsPulseChannel1Active

펄스 출력: 채널의 경과 값

0

sys_diPulseChannel0ElapsedValue

1

sys_diPulseChannel1ElapsedValue

펄스 출력: 채널의 목표 값

0

sys_diPulseChannel0TargetValue

1

sys_diPulseChannel1TargetValue

고속카운터 또는 펄스 출력 제어코드

sys_wHscOrPulseControlCode

글로벌 변수

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

DUT

DUT F169_PulseOutput_Jog_DUTFP Library에서 사전 정의됩니다.

POU 헤더

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

	VAR_EXTERNAL
		X0_bMotorSwitch: BOOL:=FALSE;
	END_VAR
	VAR 
		dut_Jog: F169_PulseOutput_Jog_DUT:=wControlCode := 16#110,
iSpeed := 0;
			(*Digit2: 1= Duty 10%
Digit1: 1=Incremental counting
Digit0: 0=No direction output*)
		@'': @'';
	END_VAR

POU 본문

코멘트 필드는 이 예의 함수를 설명합니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_COMMENT,,define frequency~ 300Hz,2,1,22,2,);
B(B_F,E_MOVE!,Instance,9,2,15,6,,?DEN?D?AENO?C);
B(B_VARIN,,300,7,4,9,6,);
B(B_VAROUT,,dut_Jog.iSpeed,15,4,17,6,);
B(B_CONTACT,,X0_bMotorSwitch,5,3,7,5,);
L(1,0,1,6);
L(1,4,5,4);
L(7,4,9,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_F,F169_PulseOutput_Jog!,Instance,12,2,25,7,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dut_Jog,10,4,12,6,);
B(B_VARIN,,0,10,5,12,7,);
B(B_CONTACT,,X0_bMotorSwitch,5,3,7,5,);
B(B_COMMENT,,start pulse output to output,2,1,22,2,);
L(1,4,5,4);
L(7,4,12,4);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF (X0_bMotorSwitch) then
    dutJog.ispeed := 300;
END_IF;
IF (X0_bMotorSwitch) then
    F169_PulseOutput_Jog(s_dutDataTable := dutJog, 
  n_iPulseOutputChannel := 0);
END_IF;

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