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