FP_ETHERNETIP_REFRESH_OUTPUT

EtherNet/IP 출력 리프레쉬

이 FP 명령은 노드의 출력 데이터와 지정된 연결 번호를 새로 고칩니다. 데이터는 PLC의 연산 메모리에서 PLC의 전송 버퍼로 복사됩니다.

파라미터

입력

s1_NodeNumber (WORD, INT, UINT)

새로 고칠 출력 데이터의 노드 번호입니다. 스캔 리스트 범위: 1-256

지정된 값이 스캔 목록 범위를 벗어나면 에러가 발생합니다.

I/O 맵은 데이터를 대상 장치(PLC)로 전송하는 데 사용됩니다.

s2_ConnectionNumber (WORD, INT, UINT)

새로 고칠 출력 데이터의 연결 번호입니다. 범위: 1-256

지정된 값이 스캔 목록 범위를 벗어나면 에러가 발생합니다.

출력

d_Result (WORD)

리프레쉬 결과를 저장하는 메모리 영역. 이 명령이 RPI보다 빠른 주기로 실행되면 출력 리프레쉬가 수행되지 않을 수도 있습니다.

  • 0: 리프레쉬 연산이 완료되었습니다.

  • 1: 수신한 데이터가 없습니다. 리프레쉬가 수행되지 않습니다.

  • 2: 이더넷/IP가 통신할 준비가 되지 않았습니다.

주석

  • 명령을 실행하기 전에 FP_ETHERNETIP_GET_STATE_TABLE_RUN을 사용하여 지정된 연결의 통신이 정상적으로 실행되는지 확인합니다.

  • sys_bIsEtherNetIPReadyTRUE로 바뀐 후에 이 명령을 호출합니다. sys_bIsEtherNetIPReadyTRUE로 바뀌기 전에 이 명령이 호출되면 이더넷/IP가 통신할 준비가 되지 않았음을 나타내는 에러가 반환됩니다.

  • 통신 부하를 줄이기 위해 한 번의 스캔에서 이 명령을 연속으로 실행하지 마십시오.

  • [EtherNet/IP 설정]에서 [리프레쉬 방법]으로 [명령]이 선택된 연결에 대해서만 이 명령을 사용합니다.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 이더넷 유닛 구성에서 EtherNet/IP 기능을 사용하지 않는 경우.

  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

  • 파라미터에 지정된 값이 허용 범위를 벗어난 경우.

  • s1_NodeNumbers2_ConnectionNumber에서 지정한 I/O 맵 또는 노드/연결이 존재하지 않는 경우.

  • 연결에 대해 선택한 리프레쉬 방법이 [명령]이 아닌 경우.

  • 지정된 연결의 출력 데이터 수가 0인 경우.

  • 지정된 연결의 리프레쉬된 데이터 수가 0인 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 이더넷 유닛 구성에서 EtherNet/IP 기능을 사용하지 않는 경우.

  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

  • 파라미터에 지정된 값이 허용 범위를 벗어난 경우.

  • s1_NodeNumbers2_ConnectionNumber에서 지정한 I/O 맵 또는 노드/연결이 존재하지 않는 경우.

  • 연결에 대해 선택한 리프레쉬 방법이 [명령]이 아닌 경우.

  • 지정된 연결의 출력 데이터 수가 0인 경우.

  • 지정된 연결의 리프레쉬된 데이터 수가 0인 경우.

POU 헤더

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

	VAR
		bEnable: BOOL:=FALSE;
		iNodeNumber: INT:=0;
		iConnectionNumber: INT:=0;
		wResult: WORD:=0;
	END_VAR

POU 본문

변수 sys_bIsEtherNetIPReadybEnableTRUE로 설정되면 기능이 실행됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_VARIN,,iNodeNumber,13,4,15,6,);
B(B_VARIN,,iConnectionNumber,13,5,15,7,);
B(B_VAROUT,,wResult,32,4,34,6,);
B(B_CONTACT,,bEnable,13,1,15,3,);
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,1,7,3,);
B(B_F,FP_ETHERNETIP_REFRESH_OUTPUT!,,15,2,32,7,,?DEN?Ds1_NodeNumber?Ds2_ConnectionNumber?AENO?Cd_Result);
L(1,2,5,2);
L(7,2,13,2);
L(15,2,15,4);
L(1,0,1,9);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF (sys_bIsEtherNetIPReady) AND (bEnable) then
    FP_ETHERNETIP_REFRESH_OUTPUT(s1_NodeNumber := iNodeNumber,
                                 s2_ConnectionNumber := iConnectionNumber,
                                d_Result => wResult);
END_IF;

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