FP_SD_READ_LINE

SD 카드의 지정된 파일에서 한 줄 읽기

이 FP 명령은 s_FullFileName에서 지정한 파일을 d2_dutReadLine에서 지정한 포인터 위치부터 지정한 최대 바이트 수까지 또는 줄바꿈 문자(CR, LF, CR+LF)가 감지될 때까지 읽습니다. 결과는 d1_Out에서 지정한 영역에 저장됩니다.

파라미터

입력

s_FullFileName (STRING)

파일 이름

입력/출력

d2_dutReadLine (FP_SD_READ_LINE_DUT)

포인터 위치와 읽을 최대 문자 수

출력

d1_Out (STRING)

출력 영역

주석

  • SD 카드 메모리 사전 주의사항도 참조해 주십시오.

  • SD 메모리 카드 명령의 트리거 ENTRUE로 전환된 후 SD 메모리 액세스 활성 플래그(sys_bIsSDMemoryAccessActive)는 TRUE로 전환되고 실행이 완료될 때까지 TRUE로 유지됩니다. 이 시간 동안에는 다른 SD 메모리 카드 명령을 실행할 수 없습니다.

  • SD 메모리 액세스 완료 플래그(sys_blsSDMemoryAccessDone)가FALSE이고 TRUE가 되며, 명령이 완료되면 TRUE를 유지합니다.

  • 명령 실행이 완료될 때까지 출력 영역의 데이터를 읽지 마십시오.

에러 플래그

sys_bIsSDMemoryAccessError
  • FALSE: 명령이 에러 없이 완료된 경우

  • TRUE: 에러가 발생하여 명령이 완료된 경우

  • sys_iSDMemoryAccessErrorCode를 사용하여 에러 코드를 평가합니다.

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.

POU 헤더

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

	VAR
		bStart: BOOL:=FALSE;
			(*activates the instruction*)
		dutSDReadString: FP_SD_READ_LINE_DUT;
		sStringRead1: STRING[32]:='';
		@'': @'';
	END_VAR

POU 본문

변수 bStartFALSE에서 TRUE로 변경되면 함수가 실행됩니다.

LD 본문

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bStart,5,1,7,3,R);
B(B_VAROUT,,dutSDReadString.udiReadCharPosition,16,2,18,4,);
B(B_VARIN,,0,8,2,10,4,);
B(B_F,E_MOVE!,,10,0,16,4,,?DEN?D?AENO?C);
L(1,2,5,2);
L(7,2,10,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,'\TestLine.csv',10,4,12,6,);
B(B_CONTACT,,bStart,2,1,4,3,R);
B(B_CONTACT,,sys_bIsSDMemoryAccessActive,10,1,12,3,N);
B(B_VARIN,,dutSDReadString,10,5,12,7,);
B(B_VAROUT,,sStringRead1,27,4,29,6,);
B(B_F,FP_SD_READ_LINE!,,12,2,27,7,,?DEN?Ds_FullFileName?Dd2_dutReadLine?Ad2_dutReadLine?AENO?Cd1_Out);
L(1,2,2,2);
L(4,2,10,2);
L(12,2,12,4);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

IF DF(bStart)And not sys_bIsSDMemoryAccessActive then
    dutSDReadString.udiReadCharPosition:=0;
    FP_SD_READ_LINE(s_FullFileName := '\TestLine.csv',
                    d2_dutReadLine := dutSDReadString,
                    d1_Out => sStringRead1);
END_IF;

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