NTP 서버의 동기화 시간 설정
이 FP 명령은 NTP 서버와 자동 시간 동기화를 실행하기 위한 시간을 설정합니다.
입력
NTP 서버와 자동 시간 동기화를 위한 시간을 지정합니다.
다음 키워드 설정 중 하나 이상을 사용하여 시간을 설정합니다.
일일 동기화(옵션 파라미터)
키워드: DAY
구문: 'DAY=xxx'
값: DISABLE, HHMM
HH=시간(0–23), MM=분(0–59)
예:
일일 동기화 없음: 'DAY=DISABLE'
매일 13:30에: 'DAY=1330'
주간 동기화(옵션 파라미터)
키워드: WEEK
구문: 'WEEK=xxxxx'
값: DISABLE, WHHMM
W=요일(0=일요일, 1=월요일, 2=화요일, 3=수요일, 4=목요일, 5 = 금요일, 6 = 토요일), HH=시간(0–23), MM=분(0–59)
예:
주간 동기화 없음: 'WEEK=DISABLE'
매주 일요일 23:59에: 'WEEK=02359'
월간 동기화(옵션 파라미터)
키워드: 월
구문: '월, xxxxxx'
값: DISABLE, DDHHMM
DD=일(0–28), HH=시간(0–23), MM=분(0–59)
예:
월별 동기화 없음: 'MONTH=DISABLE'
매월 15일 15:30에: 'MONTH=150330'
출력
실행 없이 연산이 비정상적으로 종료되는 경우(예: sys_bIsEthernetInitializing 이 TRUE인 경우)에 TRUE로 설정합니다.
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
인터럽트 프로그램에서는 이 명령을 사용할 수 없습니다.
키워드의 순서를 변경하지 않음. 키워드와 설정 파라미터를 여기에 나열된 순서대로 지정하십시오.
파라미터 구문의 일부를 생략할 수 있습니다. 파라미터가 부분적으로 생략되어도 설정은 변경되지 않습니다.
지정된 키워드 앞 부분을 생략할 경우 키워드만 생략하고 쉼표는 생략합니다. ',,MONTH=150300'
.
지정된 키워드 뒤에 있는 부분을 생략할 경우 쉼표 ","와 키워드는 생략합니다. 'DAY=1130,WEEK=DISABLE'
.
같은 키워드를 2회 이상 지정하지 않음. 같은 키워드를 2회 이상 지정하면 에러가 발생합니다.
NTP 서버에 대한 시간 동기화 요청 시간은 sSynchronizeTime에 따라 설정됩니다.
시스템 레지스터( )에 이미 설정된 데이터가 유효하지 않으며, NTP 시간 동기화 요청이 이 명령에 의해 지정된 시간에 실행됩니다.
다음과 같은 경우 PLC가 시스템 레지스터에서 설정으로 돌아갑니다.
전원이 꺼져 있습니다.
[PROG 모드]에서 [RUN 모드]로 전환합니다.
다른 프로젝트로 전환합니다.
FP_IPV4_SET_ADDRESS 명령을 실행해도 설정 데이터가 손실되지 않습니다.
명령을 실행하기 전에 sys_bIsEthernetInitializing이 FALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializing이 TRUE로 전환됩니다. sys_bIsEthernetInitializing이 TRUE일 때 명령을 실행하면 에러가 발생합니다.
이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarry 및 sys_iEthernetConnectionErrorCode가 초기화됩니다.
에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.
파라미터에 지정된 값이 허용 범위를 벗어난 경우.
명령을 인터럽트 프로그램에서 실행한 경우.
시스템이 NTP 서버와 시간을 동기화하는 경우.
파라미터에 지정된 값이 허용 범위를 벗어난 경우.
명령을 인터럽트 프로그램에서 실행한 경우.
시스템이 NTP 서버와 시간을 동기화하는 경우.
이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다.모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
sSynchronizeTime: STRING[32]:='DAY=1130,WEEK=62345,MONTH=280200';
bIsError: BOOL:=FALSE;
bEnable: BOOL:=FALSE;
END_VAR
시스템 변수 sys_bIsEthernetInitializing이 FALSE이고 변수 bEnable이 TRUE로 설정되면 펑션이 실행됩니다.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,sys_bIsEthernetInitializing,6,2,8,4,N);
B(B_CONTACT,,bEnable,14,2,16,4,);
B(B_F,FP_NTP_SET_SYNCHRONIZE_TIME!,,22,1,38,5,,?DEN?DsSynchronizeTime?AENO?AbError);
B(B_VARIN,,sSynchronizeTime,20,3,22,5,);
B(B_VAROUT,,bIsError,38,3,40,5,);
L(1,0,1,5);
L(1,3,6,3);
L(8,3,14,3);
L(16,3,22,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
FP_NTP_SET_SYNCHRONIZE_TIME(sSynchronizeTime := sSynchronizeTime,
bError => bIsError);
end_if;