HTTP 전송 요청
이 FP 명령은 전송을 시작하기 위해 nTransferID에 지정된 HTTP 클라이언트로 요청을 보냅니다.
입력
HTTP 클라이언트 ID 설정
값: 0-15
출력
다음 조건에서 TRUE로 전환:
연결 타임아웃 시간을 초과한 경우
IP 어드레스가 유효하지 않을 경우
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
인터럽트 프로그램에서는 이 명령을 사용할 수 없습니다.
명령을 실행하기 전에 FP_HTTP_SET_MODE 또는 HTTP 클라이언트의 설정 다이얼로그를 사용하여 전송 설정을 지정해야 합니다.
명령을 실행하기 전에 시스템 변수 sys_bIsEthernetHTTPClientReady가 TRUE인지 확인합니다. FALSE인 경우에는 명령을 실행할 때 에러가 발생합니다.
명령을 실행하기 전에 sys_bIsEthernetInitializing이 FALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializing이 TRUE로 전환됩니다. sys_bIsEthernetInitializing이 TRUE일 때 명령을 실행하면 에러가 발생합니다.
sys_bIsEthernetCableNotConnected가 FALSE인 경우에만 명령을 실행할 수 있습니다.
지정된 전송 설정에 대한 전송 요청 플래그가 "FALSE: 전송 요청 없음"인 경우에만 이 명령이 실행됩니다. 전송 요청 플래그가 "TRUE: 전송 요청됨"이면, 연산 에러가 발생합니다.
이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarry 및 sys_iEthernetConnectionErrorCode가 초기화됩니다.
다음 조건 중 하나에서 명령을 실행하려고 하면 전송 에러가 발생하고 에러 코드가 실행 완료 코드로 저장됩니다.
상태 |
코드 |
---|---|
대상 서버가 설정되지 않았습니다. |
1 |
전송 설정이 설정되지 않았습니다. |
2 |
프로세스 등록 요청이 실패했습니다. |
4 |
전송이 비활성화되었습니다. |
5 |
데이터 압축 해제가 실패했습니다. (PUT을 사용하여 데이터에 액세스 중인 경우) |
8 |
데이터 압축 해제가 실패했습니다. (GET을 사용하여 데이터에 액세스 중인 경우) |
9 |
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.
파라미터에 지정된 값이 허용 범위를 벗어난 경우.
명령을 인터럽트 프로그램에서 실행한 경우..
명령이 실행될 때 시스템 변수 sys_bIsEthernetHTTPClientReady가 FALSE인 경우.
명령이 실행될 때 지정된 전송 설정에 대한 전송 요청 플래그가 "TRUE: 전송 요청됨"인 경우
FP_HTTP_SET_MODE 또는 HTTP 클라이언트의 설정 다이얼로그로 정의되지 않은 전송 설정이 지정된 경우.
인덱스 한정자를 사용하여 지정한 영역이 제한을 초과하는 경우.
파라미터에 지정된 값이 허용 범위를 벗어난 경우.
명령을 인터럽트 프로그램에서 실행한 경우..
명령이 실행될 때 시스템 변수 sys_bIsEthernetHTTPClientReady가 FALSE인 경우.
명령이 실행될 때 지정된 전송 설정에 대한 전송 요청 플래그가 "TRUE: 전송 요청됨"인 경우
FP_HTTP_SET_MODE 또는 HTTP 클라이언트의 설정 다이얼로그로 정의되지 않은 전송 설정이 지정된 경우.
이더넷 케이블이 분리된 상태에서 명령이 실행되는 경우. sys_iEthernetConnectionErrorCode "10: 이더넷 케이블 분리"로 설정됩니다.
이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
iID10: INT:=10;
bTransferRequestError: BOOL:=FALSE;
bTransferRequest: BOOL:=FALSE;
END_VAR
bTransferRequest가 FALSE에서 TRUE로 변경되고 시스템 변수 sys_bIsEthernetHTTPClientReady가 TRUE이면 명령이 실행됩니다. HTTP 전송은 이더넷 유닛 5에 요청됩니다.
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,,bTransferRequest,5,1,7,3,R);
B(B_VAROUT,,bTransferRequestError,40,2,42,4,);
B(B_VARIN,,iID5,23,2,25,4,);
B(B_CONTACT,,sys_bIsEthernetHTTPClientReady,16,1,18,3,);
B(B_F,FP_HTTP_TRANSFER_REQUEST!,,25,0,40,4,,?DEN?DnID?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(18,2,25,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if DF(bTransferRequest) AND sys_bIsEthernetHTTPClientReady then
FP_HTTP_TRANSFER_REQUEST(nTransferID := iID10,
bError => bTransferRequestError);
End_if;