F152_RMRD

슬레이브 스테이션에서 데이터 읽기

이 명령은 MEWNET-F 슬레이브 스테이션의 지정된 인텔리전트 유닛에서 데이터를 읽습니다.

파라미터

입력

s1_Control (DWORD)

마스터/슬레이브 구성에 대한 제어 데이터를 저장합니다.

s2_Start (WORD, INT, UINT)

읽을 메모리 영역의 시작 어드레스

n_Number (INT)

읽을 워드 수(최대 32워드)

d_Start (WORD, INT, UINT)

읽은 워드가 저장된 시작 16비트 영역(F153 참조)

변수 s2_Startd_Start의 데이터 형식은 같아야 합니다.

주석

  • 여러 개의 F152_RMRD 명령과 F153_RMWT 명령을 동시에 실행할 수 없습니다. 프로그램은 F152_RMRD/F153_RMWT 명령 실행 활성화 플래그sys_bIsMewnetFNotActiveTRUE일 때 이러한 명령이 실행되도록 설정해야 합니다.

    sys_bIsMewnetFNotActive

    0: 실행 억제(F152_RMRD/F153_RMWT 명령 실행 중)

    1: 실행 활성화됨

  • F152_RMRD 명령은 요청 수락만 가능합니다. 실제 처리는 스캔이 끝날 때 수행됩니다. F152_RMRD/F153_RMWT 명령 완료 플래그(R9036)는 명령이 실행되었는지 여부를 확인하는 데 사용할 수 있습니다.

    sys_bIsMewnetFError

    0: 정상 완료

    1: 에러와 함께 완료됨(sys_wMewnetFErrorCode에 에러 코드가 저장됨)

    sys_wMewnetFErrorCode

    에러 sys_bIsMewnetFError(TRUE로 전환되어 TRUE로 유지됨) 이 발생한 상태로 전송이 완료되었고 에러 내용(에러 코드)이 저장됩니다.

    에러 코드(16진수)

    설명

    16#5B

    타임아웃 에러(지정된 위치에서 인텔리전트 유닛을 찾을 수 없음)

    16#68

    메모리 없음 에러(지정된 어드레스에 메모리가 없음)

    16#71

    응답 전송 타임아웃 에러

    16#72

    전송 버퍼 전체 타임아웃 에러

    16#73

    응답 타임아웃 에러

  • 에러 코드가 16#71–16#73인 경우 통신 타임아웃 에러가 발생했습니다. 시스템 레지스터 32의 설정을 사용하여 타임아웃 시간을 10.0ms ~ 81초 범위(10ms 단위) 내에서 변경할 수 있습니다. 기본값은 2초로 설정되어 있습니다.

  • s1이 마스터 및 슬레이브 유닛의 구성에 대한 제어 데이터를 네트워크에 저장합니다. n워드는 s2_Start에 지정된 인텔리전트 유닛의 공유 메모리 어드레스 번호부터 읽어옵니다. 결과는 d에 저장됩니다.

    s1_Control 사양:

    1.  (1) s1 상위 워드
    2.  (2) 비트
    3.  (3) s1 상위 워드
    4.  (4) 뱅크 번호(지정할 뱅크가 있는 경우 16#0016#FF, 그렇지 않은 경우 16#00)
    5.  (5) 슬롯 번호(16#0016#1F, FP3: 16#0016#17)
    6.  (6) s1 하위 워드
    7.  (7) s1 하위 워드
    8.  (8) 마스터 스테이션 번호(16#0116#04)
    9.  (9) 슬레이브 스테이션 번호(16#0116#20)
힌트

뱅크가 있는 인텔리전트 유닛: FP3 확장 데이터 메모리 유닛

주문 번호: AFP32091 AFP32092

에러 플래그

sys_bIsOperationErrorHold
  • 제어 데이터가 s1_Control이 지정된 범위의 한계를 초과하는 경우

  • MEWNET-F 마스터 유닛을 찾을 수 없는 경우

  • 데이터 읽기가 s2_Start 영역을 초과한 경우

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 제어 데이터가 s1_Control이 지정된 범위의 한계를 초과하는 경우

  • MEWNET-F 마스터 유닛을 찾을 수 없는 경우

  • 데이터 읽기가 s2_Start 영역을 초과한 경우

POU 헤더

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

  1.  (1) 마스터 스테이션 1
  2.  (2) 제어 데이터 = 16#A0105
  3.  (3) 인텔리전트 유닛(공유 메모리)
	VAR
		Start: BOOL:=FALSE;
		ControlData: DWORD:=16#000A0105;
			(*No bank, 
slot no. 10, 
Master station 1, 
Slave station 5*)
		StartingAddress: WORD:=0;
		NoWordsWrite: INT:=5;
		WordsWritten: ARRAY [0..4] OF WORD:=[5(0)];
	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 := 8 ;
        NETWORK_BODY
B(B_F,F152_RMRD,,11,1,20,8,,?DEN?D@'s1'?Ds2?Dn?Dd?AENO);
B(B_CONTACT,,Start,5,1,7,3,);
B(B_VARIN,,ControlData,9,3,11,5,);
B(B_VARIN,,StartingAddSlave,9,4,11,6,);
B(B_VARIN,,NumberWordsRead,9,5,11,7,);
B(B_VARIN,,WordsRead[0],9,6,11,8,);
L(1,0,1,8);
L(1,2,5,2);
L(7,2,11,2);
L(11,2,11,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

If (Start) Then
    F152_RMRD(s1_Control := ControlData,
              s2_Start := StartingAddress,
              n_Number := NoWordsWrite,
              d_Start := WordsRead[0]);
End_if;

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