펄스 출력 제어 코드 쓰기

시스템 변수 sys_wHscOrPulseControlCode를 사용하여 고속 카운터와 펄스 출력 제어 코드가 저장된 특수 데이터 레지스터에 액세스할 수 있습니다. (시스템 변수 sys_wHscOrPulseControlCode는 특수 데이터 레지스터 DT90052에 해당됩니다.)

펄스 출력 제어 코드로 수행한 작업:

시스템 변수 sys_wHscChannelxControlCode 또는 sys_wPulseChannelxControlCode(여기서 x=채널 번호)를 사용하여 각 채널의 제어 코드 설정을 모니터할 수 있습니다.이 시스템 변수 설정은 다른 설정 작업이 실행되기 전까지는 변경되지 않습니다.
주석
  • 강제 정지를 수행하면 PLC 출력 측의 경과 값과 모터 입력 측의 경과 값이 달라질 수 있습니다. 따라서 펄스 출력이 정지된 후에 복귀원점을 실행해야 합니다.
  • 계산이 금지되거나 소프트웨어 리셋이 수행된 경우, 원점근방 입력을 설정할 수 없습니다.

원점근방 입력 설정/초기화

홈 위치에 가까워지면 이동을 감속하려면 원점근방 입력을 지정하고 펄스 출력 제어 코드(sys_wHscOrPulseControlCode)를 저장하는 특수 데이터 레지스터의 비트 4TRUE로 설정하고 다시 FALSE로 설정합니다.원점근방 비트가 유지됩니다. 이 비트를 TRUE로 설정한 후 바로 FALSE로 설정하면 원점복귀 중에 원점근방 입력 두 번째 시간을 설정할 수 있습니다.

  1.  (1) 초기 및 최종 속도
  2.  (2) 타겟 속도
  3.  (3) 원점근방 입력: TRUE
  4.  (4) 원점입력: TRUE
  5.  (5) 원점입력은 언제든지 유효합니다.

펄스 출력 계속/정지(강제 정지)

펄스 출력 제어 코드(sys_wHscOrPulseControlCode)를 저장하는 데이터 레지스터의 비트 3TRUE로 설정하면 펄스 출력이 중지됩니다. 펄스 출력 명령을 사용하여 모든 프로그램에서 강제 정지를 설정할 수 있습니다. 비트 3FALSE로 다시 설정하여 펄스를 계속 출력합니다.

계산 연산 활성화/비활성화

Y*

펄스 출력

(1)

경과값

(2)

1

제어 코드의 비트 1TRUE로 설정하면 계산이 금지되고 경과 값은 현재 값을 유지합니다. 비트 1FALSE로 초기화하면 계산이 계속 됩니다.

고속 카운터의 경과 값(소프트웨어 리셋) 초기화

Y*

펄스 출력

(1)

경과값

(2)

펄스 출력 제어 코드의 비트 0(소프트웨어 리셋)

제어 코드의 비트 0TRUE로 설정하면 소프트웨어 리셋이 수행되고 경과 값은 0으로 설정됩니다. 비트 0FALSE로 초기화될 때까지 경과 값은 값 0을 유지합니다.

고속 카운터 및 위치 제어 명령 취소(FP0R에만 해당)

펄스 출력 명령 실행을 취소하려면 펄스 출력 제어 코드(sys_wHscOrPulseControlCode)를 저장하는 데이터 레지스터의 비트 2TRUE로 설정합니다. 그런 다음 펄스 출력 제어 플래그가 FALSE로 변경됩니다. 명령 실행을 다시 활성화하려면 비트 2FALSE로 다시 설정합니다.

FP-Sigma 설명

제어 코드의 비트 0~15는 그룹 4개에 할당됩니다. 각 그룹의 비트 설정은 16진수로 표현됩니다(예: 00020000 0000 1001 = 16#2009).

그룹 IV

(1)

채널 번호(채널n: 16#n)

그룹 III

0(고정)

그룹 II

(2)

원점근방 입력(비트 4)

0: FALSE

1: TRUE

그룹 I

(3)

펄스 출력(비트 3)

0: 계속

1: 정지

(4)

0(비트 2, 고정)

(5)

계산(비트 1)

0: 허용

1: 금지

(6)

경과 값을 0으로 초기화(비트 0)

0: 아니요

1: 예

예: 16#2009

그룹

설명

IV

2

채널 번호: 2

III

0

(고정)

II

0

원점근방 입력: FALSE

I

9

16진수 9는 이진 1001에 해당됨

펄스 출력: 정지(비트 3)

1

(비트 2, 고정)

0

계산: 허용(비트 1)

0

경과 값을 0으로 초기화: 예(비트 0)

1

FP-X 설명

그룹 IV

(1)

채널 번호(채널n: 16#n)

그룹 III

(2)

1(고정)

그룹 II

(3)

원점근방 입력(비트 4)(참고 참조)

0: FALSE

1: TRUE

그룹 I

(4)

펄스 출력(비트 3)

0: 계속

1: 정지

(5)

계산(비트 1)

0: 허용

1: 금지

(6)

경과 값을 0으로 초기화(비트 0)

0: 아니요

1: 예

예: 16#2109

그룹

설명

IV

2

채널 번호: 2

III

1

(고정)

II

0

원점근방 입력: FALSE

I

9

16진수 9는 이진 1001에 해당됨

펄스 출력: 정지(비트 3)

1

(비트 2 고정)

0

계산: 허용(비트 1)

0

경과 값을 0으로 초기화: 예(비트 0)

1

FP0R 설명

제어 코드의 비트 0~15는 그룹 4개에 할당됩니다. 각 그룹의 비트 설정은 16진수로 표현됩니다(예: 00020001 0000 1001 = 16#2109).

그룹 IV

(1)

채널 번호(채널n: 16#n)

그룹 III

1(고정)

그룹 II

(2)

위치 제어 시작 요청

0: 무효

1: 유효

(3)

감속 정지 요청

0: 무효

1: 유효

(4)

원점근방 입력(비트 4)(참고 참조)

0: FALSE

1: TRUE

그룹 I

(5)

펄스 출력(비트 3)

0: 계속

1: 정지

(6)

펄스 출력 제어 취소(비트 2)

0: 계속

1: 정지

(7)

계산(비트 1)

0: 허용

1: 금지

(8)

경과 값을 0으로 초기화(비트 0)

0: 아니요

1: 예

예: 16#2109

그룹

설명

IV

2

채널 번호: 2

III

1

(고정)

II

0

위치 제어 시작 요청: 무효

감속정지 요청: 무효

원점근방 입력: FALSE

I

9

16진수 9는 이진 1001에 해당됨

펄스 출력: 정지(비트 3)

1

펄스 출력 제어 취소(비트 2)

0

계산: 허용(비트 1)

0

경과 값을 0으로 초기화: 예(비트 0)

1

FP0, FP-e 설명

제어 코드의 비트 0~15는 그룹 4개에 할당됩니다. 각 그룹에는 1채널 설정이 포함되어 있습니다. 각 그룹의 비트 설정은 16진수로 표현됩니다(예: 0000 0000 1001 0000 = 16#90).

그룹

II

I

채널

1

0

  1.  (1) 펄스 출력(비트 3)

    0: 계속

    1: 정지

  2.  (2) 원점근방 입력(비트 2)(참고 참조)

    0: FALSE

    1: TRUE

  3.  (3) 계산(비트 1)

    0: 허용

    1: 금지

  4.  (4) 경과 값을 0으로 초기화(비트 0)

    0: 아니요

    1: 예

예: 16#90

그룹

설명

II

9

채널 번호: 1

16진수 9는 이진 1001에 해당됨

펄스 출력: 정지(비트 3)

1

원점근방 입력: FALSE(비트 2)

0

계산: 허용(비트 1)

0

경과 값을 0으로 초기화: 예(비트 0)

1

I

0

예: 채널 2의 원점근방 입력 활성화(FP-SIGMA)

POU 헤더

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

	VAR
	 bEnableNearHome: BOOL:=FALSE;
	END_VAR
	VAR CONSTANT
		PLS_CH2_ENABLE_NEAR_HOME: WORD:=16#2010;
			(*Enables near home input for channel 2*)
		PLS_CH2_CONTINUE: WORD:=16#2000;
			(*Disables near home input for channel 2
and starts deceleration*)
	END_VAR

LD 본문

원점복귀 동작 중에 채널 2의 원점근방 입력이 활성화됩니다.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,PLS_CH2_ENABLE_NEAR_HOME,20,2,22,4,);
B(B_VARIN,,PLS_CH2_CONTINUE,20,6,22,8,);
B(B_F,E_MOVE!,Instance,22,0,28,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,2,30,4,);
B(B_F,E_MOVE!,Instance,22,4,28,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,6,30,8,);
B(B_CONTACT,,bEnableNearHome,4,1,6,3,R);
L(7,2,7,6);
L(1,2,4,2);
L(6,2,22,2);
L(7,6,22,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

if DF(bEnableNearHome) then
    PLS_CH2_ENABLE_NEAR_HOME:=sys_wHscOrPulseControlCode;
    PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;

예: 채널 0에 대해 강제 정지 수행(FP0, FP-e, FP-SIGMA)

POU 헤더

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

LD 본문

채널 0에 대해 펄스 출력의 강제 정지가 수행됩니다.

ST 본문

if DF(bStopPulseOutput) then
    PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
    PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
주석

강제 정지를 수행하면 PLC 출력 측의 경과 값과 모터 입력 측의 경과 값이 달라질 수 있습니다. 따라서 펄스 출력이 정지된 후에 복귀원점을 실행해야 합니다.

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