F168_PulseOutput_Home

홈 복귀

이 명령은 지정한 DUT의 파라미터에 따라 원점복귀를 수행합니다. 이 채널의 제어 플래그가 FALSE이고 실행 조건이 TRUE이면 지정된 채널에서 펄스가 출력됩니다.

파라미터

입력

s_dutDataTable (F168_PulseOutput_Home_DUT)

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

n_iPulseOutputChannel(10진수 정수)

펄스 출력: 0 또는 1

주석

드라이브 시스템 전원이 켜진 후 내부 위치 값(경과 값)과 축의 기계적 위치 간의 차이가 있습니다. 사전에 이 차이를 결정할 수 없습니다. 내부 값은 축의 실제 위치 값과 동기화되어야 합니다. 위치 값이 알려진 참조점(원점)에서 등록된 상태에서 이는 원점복귀의 수단으로 완료됩니다. 원점 복귀 명령 실행 중에 펄스는 원점 입력이 활성화될 때까지 계석 출력됩니다. I/O 할당은 사용한 채널에서 결정됩니다. 홈 위치에 가까워지면 이동을 감속하려면 원점근방 입력을 지정하고 펄스 출력 제어 코드(sys_wHscOrPulseControlCode)를 저장하는 특수 데이터 레지스터의 비트 4TRUE로 설정하고 다시 FALSE로 설정합니다. 원점 복귀 중의 경과 값 영역 값은 현재 값과 다릅니다. 복귀가 완료되면 경과 값은 0으로 변경됩니다.

두 가지 다른 작동 모드 중 하나를 선택합니다.

  • 형식 1: 원점근방 입력 유무, 선언 유무 또는 선언 완료 여부와 관계없이 원점입력이 효과적입니다.

    • 원점근방 입력 없음:

    • 원점근방 입력 있음:

      1.  (1) 초기 및 최종 속도
      2.  (2) 타겟 속도
      3.  (3) 원점근방 입력: TRUE
      4.  (4) 원점입력: TRUE
      5.  (5) 원점입력은 언제든지 유효합니다.
  • 형식 2: 선언(원점근방 입력으로 시작)이 완료된 후에만 원점입력이 효과적입니다.

    1.  (1) 초기 및 최종 속도
    2.  (2) 타겟 속도
    3.  (3) 원점근방 입력: TRUE
    4.  (4) 원점입력: TRUE
    5.  (5) 원점 입력은 감속 후에만 유효합니다.

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

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

  • 제어 코드

  • 초기 및 최종 속도

  • 타겟 속도

  • 가속/감속 시간

  • 펄스 정지(고정)

펄스 출력 특정

  • 펄스 출력 주파수는 지정된 가속/감속 시간에 따라 변경됩니다.

  • 목표 및 초기 속도 간의 차이점은 램프 기울기를 결정합니다.

일반 프로그래밍 정보

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

  • 프로그램이 RUN 모드에서 편집되면 펄스 출력이 정지하지만 프로그램 변경 후 다시 시작되어 다운로드됩니다.

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

  • 원점 입력이 발생하더라도 이 명령을 실행하면 펄스 출력이 시작됩니다.

  • 가속 진행 중에 원점근방 입력이 활성화되면 감속이 시작됩니다.

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

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

  • 고속 카운터 제어 플래그 또는 펄스 출력 제어 플래그 상태는 스캔이 실행 중인 동안에 변경될 수 있습니다. 예를 들어, 수신된 바이트 수를 읽으면 스캔 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

FP0, FP-e의 원점 입력

채널 번호 원점입력

0

X0

1

X1

POU 헤더

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

VAR_EXTERNAL
		X0_bMotorSwitch: BOOL:=FALSE;
			(*at X0*)
	END_VAR
	VAR 
		dutHome: F168_PulseOutput_Home_DUT:=wControlCode := 16#102,
iInitialAndFinalSpeed := 0,
iTargetSpeed := 0,
iAccelerationAndDecelerationTime := 0;
		iInitialAndFinalSpeed: INT:=3000;
		iTargetSpeed: INT:=7000;
		iAccelerationTime: INT:=300;
		@'': @'';
	END_VAR

LD 본문

	BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 13 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,2,6,4,R);
B(B_F,E_MOVE!,Instance,17,1,23,5,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.iAccelerationAndDecelerationTime,23,3,25,5,);
B(B_F,E_MOVE!,Instance,17,5,23,9,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.iInitialAndFinalSpeed,23,7,25,9,);
B(B_F,E_MOVE!,Instance,17,9,23,13,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHome.iTargetSpeed,23,11,25,13,);
B(B_VARIN,,iAccelerationTime,15,3,17,5,);
B(B_VARIN,,iInitialAndFinalSpeed,15,7,17,9,);
B(B_VARIN,,iTargetSpeed,15,11,17,13,);
L(1,3,4,3);
L(6,3,17,3);
L(8,3,8,11);
L(8,11,17,11);
L(8,7,17,7);
L(1,0,1,13);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,1,6,3,R);
B(B_F,F168_PulseOutput_Home!,Instance,11,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutHome,9,2,11,4,);
B(B_VARIN,,0,9,3,11,5,);
L(1,2,4,2);
L(6,2,11,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF DF(X0_bMotorSwitch) then
    dutHome.iInitialAndFinalSpeed:=iInitialAndFinalSpeed
    dutHome.iTargetSpeed:=iTargetSpeed
    dutHome.iAccelerationAndDecelerationTime:=iAccelerationTime
END_IF;
IF DF(X0_bMotorSwitch) then
F168_PulseOutput_Home(s_dutDataTable := dutHome,
    n_iPulseOutputChannel :=0);
END_IF;

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