SMTP 프로토콜에 대한 데이터 형식 문자열 생성
이 FP 명령은 입력 Var FP_SMTP_SET_MODE 명령의 sAttachment 입력에 대해 적합한 sDataFormat 출력 변수에 문자열을 작성합니다.
FP_SMTP_SET_MODE를 사용하여 데이터 레지스터가 전송되면 데이터 값이 지정된 .csv 파일이 생성됩니다. 전송 중에 데이터가 데이터 유형에 따라 ASCII로 변환됩니다. 따라서 sAttachment 입력 시에는 ASCII 유형으로 변환해야 하는 데이터를 표시하는 추가 정보가 필요합니다.
입력
간단 데이터 유형 또는 간단 데이터 유형 배열(예: BOOL, INT, UINT, STRING 등)
제한: ARRAY..OF..STRING은 허용되지 않음
워드 또는 문자열의 데이터 크기(바이트 단위).
출력
FP_SMTP_SET_MODE의 입력 sAttachment에 대한 데이터 형식을 지정하는 문자열입니다
명령을 실행하기 전에 FP_SMTP_SET_MODE 또는 SMTP 클라이언트의 설정 다이얼로그를 사용하여 이메일 전송 설정을 지정해야 합니다.
명령을 실행하기 전에 FP_SMTP_SET_GROUP 또는 SMTP 클라이언트의 설정 다이얼로그를 사용하여 그룹 및 이벤트 메일 설정을 지정해야 합니다.
지정된 전송 설정에 대한 전송 요청 플래그가 "FALSE: 전송 요청 없음"인 경우에만 이 명령이 실행됩니다. 전송 요청 플래그가 "TRUE: 전송 요청됨"이면, 연산 에러가 발생합니다.
이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarry 및 sys_iEthernetConnectionErrorCode가 초기화됩니다.
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
연결 타임아웃 시간을 초과한 경우
IP 어드레스가 유효하지 않을 경우
연결 타임아웃 시간을 초과한 경우
IP 어드레스가 유효하지 않을 경우
이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
arrayValues_UDINT: ARRAY [0..19] OF UDINT;
bError: BOOL:=FALSE;
bSetMode: BOOL:=FALSE;
iID8: INT:=8;
END_VAR
bSetMode가 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 := 14 ;
NETWORK_BODY
B(B_VARIN,,iID8,42,2,44,4,);
B(B_CONTACT,,bSetMode,4,1,6,3,R);
B(B_VAROUT,,bError,57,2,59,4,);
B(B_VARIN,,'GRPNO=0~SUBJECT=Time Notify Mail',42,4,44,6,);
B(B_VARIN,,'Hello~ this is time notify Mail from system. See attachment',42,5,44,7,);
B(B_VARIN,,'INFO=ADD~ATT=DATA;',11,7,13,9,);
B(B_VARIN,,'TRIG=TIME~/day~13:30:00',42,3,44,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_VARIN,,arrayValues_UDINT,11,9,13,11,);
B(B_F,CONCAT-2!,,37,7,43,10,,?D?D?C);
B(B_F,Size_Of_Var!,,15,10,22,12,,?D?C);
B(B_F,FP_SMTP_GET_DATA_FORMAT!,,22,8,37,12,,?D@'Var'?DnSize?CsDataFormat);
B(B_F,FP_SMTP_SET_MODE!,,44,0,57,8,,?DEN?DnTransferID?DsTrigger?DsGroupNumber_Subject?DsBodyText?DsAttachment?AENO?CbError);
L(1,2,4,2);
L(6,2,13,2);
L(15,2,44,2);
L(37,9,37,10);
L(13,8,37,8);
L(15,10,15,11);
L(13,10,22,10);
L(43,7,43,8);
L(43,7,44,7);
L(1,0,1,14);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetMode) And not sys_bIsEthernetInitializing then
FP_SMTP_SET_MODE(nTransferID := iID8,
sTrigger := 'TRIG=TIME,/day,13:30:00',
sGroupNumber_Subject := 'GRPNO=0,SUBJECT=Time Notify Mail',
sBodyText := 'Hello, this is time notify Mail from system. See attachment',
sAttachment := CONCAT('INFO=ADD,ATT=DATA;',
FP_SMTP_GET_DATA_FORMAT(arrayValues_UDINT,
Size_Of_Var(arrayValues_UDINT))),
bError => bError);
End_If;