HTTP 프로토콜에 대한 데이터 형식 문자열 생성
이 FP 명령은 데이터 형식(FP 어드레스 및 길이)을 지정하는 문자열을 생성합니다. FP_HTTP_SET_MODE 명령의 sPLCDataFormat 입력에 대해 적합한 sDataFormat 출력 변수에 문자열을 작성합니다.
입력
ASCII 데이터가 포함된 문자열
워드 또는 문자열의 데이터 크기(바이트 단위).
출력
FP_HTTP_SET_MODE의 입력 sPLCDataFormat에 대한 데이터 형식을 지정하는 문자열입니다
명령을 실행하기 전에 FP_HTTP_SET_MODE 또는 HTTP 클라이언트의 설정 다이얼로그를 사용하여 전송 설정을 지정해야 합니다.
명령을 실행하기 전에 sys_bIsEthernetInitializing이 FALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializing이 TRUE로 전환됩니다. sys_bIsEthernetInitializing이 TRUE일 때 명령을 실행하면 에러가 발생합니다.
지정된 전송 설정에 대한 전송 요청 플래그가 "FALSE: 전송 요청 없음"인 경우에만 이 명령이 실행됩니다. 전송 요청 플래그가 "TRUE: 전송 요청됨"이면, 연산 에러가 발생합니다.
이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarry 및 sys_iEthernetConnectionErrorCode가 초기화됩니다.
이 명령은 PLC에 저장된 이더넷 구성 데이터를 영구적으로 덮어쓰지 않습니다. PLC의 전원을 껐다가 다시 켜면 PLC에 저장된 이더넷 구성 데이터가 다시 사용됩니다.
HTTP 클라이언트 전송 설정을 구성한 후에는 FP_HTTP_TRANSFER_REQUEST 명령이 실행될 때 데이터가 실제로 전송되거나 획득됩니다.
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
연결 타임아웃 시간을 초과한 경우
IP 어드레스가 유효하지 않을 경우
연결 타임아웃 시간을 초과한 경우
IP 어드레스가 유효하지 않을 경우
이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
sStringData: STRING[31767]:='';
iID5: INT:=5;
bSetModeStringData: BOOL:=FALSE;
bErrorModeStringData: BOOL:=FALSE;
END_VAR
bSetModeStringData가 FALSE에서 TRUE로 변경되고 sys_bIsEthernetInitializing이 FALSE면 이 명령이 실행됩니다.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_VARIN,,iID5,39,2,41,4,);
B(B_VARIN,,'SV0~UPLOAD;POST',39,3,41,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/PLC?ment',39,5,41,7,);
B(B_VAROUT,,bErrorModeStringData,52,2,54,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,LEN!,,11,4,16,7,,?DIN?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,41,0,52,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(11,5,11,6);
L(18,2,41,2);
L(10,5,16,5);
L(31,5,41,5);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetModeStringData) AND not sys_bIsEthernetInitializing Then
FP_HTTP_SET_MODE(nTransferID := iID5,
sOperation := 'SV0,UPLOAD;POST',
sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData,
LEN(sStringData)),
sHTTPServerURL := '/PLC?ment',
bError => bErrorModeStringData);
End_if;