FP_FTP_GET_DATA_FORMAT

FTP 프로토콜에 대한 데이터 형식 문자열 생성

이 FP 명령은 입력 Var에서 데이터 유형에 따라 데이터 형식(FP 어드레스 및 길이)을 지정하는 문자열을 생성합니다 FP_FTP_SET_MODE 명령의 sPLCFullFileNameOrDataFormat 입력에 대해 적합한 sDataFormat 출력 변수에 문자열을 작성합니다.

파라미터

입력

Var (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

간단한 데이터 형식 또는 간단한 데이터 형식 배열. 예: BOOL, INT, UINT, STRING, ...

제한: ARRAY..OF..STRING은 허용되지 않음

nSize (WORD, INT, UINT)

워드 또는 문자열의 데이터 크기(바이트 단위).

nColumns (WORD, INT, UINT)

.csv 변환 파일에서 새 줄을 추가해야 하는 항목 수

출력

sDataFormat (STRING)

FP_FTP_SET_MODE의 입력 sPLCFullFileNameOrDataFormat에 대한 데이터 형식을 지정하는 문자열입니다

주석

  • 명령을 실행하기 전에 FP_FTP_SET_MODE 또는 FTP 클라이언트의 설정 다이얼로그를 사용하여 전송 설정을 지정해야 합니다.

  • 명령을 실행하기 전에 sys_bIsEthernetInitializingFALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializingTRUE로 전환됩니다. sys_bIsEthernetInitializingTRUE일 때 명령을 실행하면 에러가 발생합니다.

  • 지정된 전송 설정에 대한 전송 요청 플래그가 "FALSE: 전송 요청 없음"인 경우에만 이 명령이 실행됩니다. 전송 요청 플래그가 "TRUE: 전송 요청됨"이면, 연산 에러가 발생합니다.

  • 이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarrysys_iEthernetConnectionErrorCode가 초기화됩니다.

  • 이 명령은 PLC에 저장된 이더넷 구성 데이터를 영구적으로 덮어쓰지 않습니다. PLC의 전원을 껐다가 다시 켜면 PLC에 저장된 이더넷 구성 데이터가 다시 사용됩니다.

  • FTP 클라이언트 전송 설정이 완료되면 FP_FTP_TRANSFER_REQUEST 가 실행될 때 데이터가 파일로 전송되거나 파일에서 얻어집니다.

  • 에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 연결 타임아웃 시간을 초과한 경우

  • IP 어드레스가 유효하지 않을 경우

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 연결 타임아웃 시간을 초과한 경우

  • IP 어드레스가 유효하지 않을 경우

sys_bIsCarry(스캔 1회에 대해 TRUE로 전환)
  • 이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"로 설정됩니다.

POU 헤더

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

	VAR
		bSetModePlcData: BOOL:=FALSE;
		bSetModePlcDataError: BOOL:=FALSE;
		arrayValues: ARRAY[0..15] OF REAL:=[16(0.0)];
		iID10: INT:=10;
	END_VAR

POU 본문

bSetModePlcDataFALSE에서 TRUE로 변경되고 sys_bIsEthernetInitializingFALSE면 이 명령이 실행됩니다.

LD 본문

주석
값이 0인 정수가 입력 nColumns에 적용되면 생성된 데이터 형식 문자열의 줄 바꿈 위치가 생략됩니다. 나중에 FP_FTP_SET_MODE 명령이 GETDATA 작동 모드에서 사용된 경우에 필요합니다.
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_CONTACT,,bSetModePlcData,5,1,7,3,R);
B(B_VARIN,,'SV0~GETDATA~NON',40,3,42,5,);
B(B_VAROUT,,bSetModePlcDataError,60,2,62,4,);
B(B_VARIN,,'\B:\LOG\MyData.csv~END',40,5,42,7,);
B(B_VARIN,,iID10,40,2,42,4,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_VARIN,,arrayValues,6,4,8,6,);
B(B_VARIN,,0,13,6,15,8,);
B(B_F,Size_Of_Var!,,8,5,15,7,,?D?C);
B(B_F,FP_FTP_SET_MODE!,,42,0,58,7,,?DEN?DnTransferID?DsOperation?DsPLCFullFileNameOrDataFormat?DsFTPServerFullFileName?AENO?CbError);
B(B_F,FP_FTP_GET_DATA_FORMAT!,,15,3,29,8,,?D@'Var'?DnSize?DnColumns?CsDataFormat);
L(1,2,5,2);
L(7,2,16,2);
L(8,5,8,6);
L(18,2,42,2);
L(58,3,60,3);
L(8,5,15,5);
L(29,5,42,5);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

If DF(bSetModePlcData) And not sys_bIsEthernetInitializing then
    FP_FTP_SET_MODE(nTransferID := iID10,
                    sOperation := 'SV0,GETDATA,NON',
                    sPLCFullFileNameOrDataFormat := FP_FTP_GET_DATA_FORMAT(Var := arrayValues,
                                                                           nSize := Size_Of_Var(arrayValues),
                                                                           nColumns := 0), 
                    sFTPServerFullFileName := '\B:\LOG\MyData.csv,END',
                    bError => bSetModePlcDataError);
End_if;

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