FP_NTP_SET_SYNCHRONIZE_TIME

NTP 서버의 동기화 시간 설정

이 FP 명령은 NTP 서버와 자동 시간 동기화를 실행하기 위한 시간을 설정합니다.

입력

sSynchronizeTime (STRING)

NTP 서버와 자동 시간 동기화를 위한 시간을 지정합니다.

다음 키워드 설정 중 하나 이상을 사용하여 시간을 설정합니다.

  • 일일 동기화(옵션 파라미터)

    키워드: DAY

    구문: 'DAY=xxx'

    값: DISABLE, HHMM

    HH=시간(0–23), MM=분(0–59)

    예:

    1. 일일 동기화 없음: 'DAY=DISABLE'

    2. 매일 13:30에: 'DAY=1330'

  • 주간 동기화(옵션 파라미터)

    키워드: WEEK

    구문: 'WEEK=xxxxx'

    값: DISABLE, WHHMM

    W=요일(0=일요일, 1=월요일, 2=화요일, 3=수요일, 4=목요일, 5 = 금요일, 6 = 토요일), HH=시간(0–23), MM=분(0–59)

    예:

    1. 주간 동기화 없음: 'WEEK=DISABLE'

    2. 매주 일요일 23:59에: 'WEEK=02359'

  • 월간 동기화(옵션 파라미터)

    키워드:

    구문: '월, xxxxxx'

    값: DISABLE, DDHHMM

    DD=일(0–28), HH=시간(0–23), MM=분(0–59)

    예:

    1. 월별 동기화 없음: 'MONTH=DISABLE'

    2. 매월 15일 15:30에: 'MONTH=150330'

출력

bError (BOOL)

실행 없이 연산이 비정상적으로 종료되는 경우(예: sys_bIsEthernetInitializingTRUE인 경우)에 TRUE로 설정합니다.

에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.

주석

  • 인터럽트 프로그램에서는 이 명령을 사용할 수 없습니다.

  • 키워드의 순서를 변경하지 않음. 키워드와 설정 파라미터를 여기에 나열된 순서대로 지정하십시오.

  • 파라미터 구문의 일부를 생략할 수 있습니다. 파라미터가 부분적으로 생략되어도 설정은 변경되지 않습니다.

  • 지정된 키워드 부분을 생략할 경우 키워드만 생략하고 쉼표는 생략합니다. ',,MONTH=150300'.

  • 지정된 키워드 에 있는 부분을 생략할 경우 쉼표 ","와 키워드는 생략합니다. 'DAY=1130,WEEK=DISABLE'.

  • 같은 키워드를 2회 이상 지정하지 않음. 같은 키워드를 2회 이상 지정하면 에러가 발생합니다.

  • NTP 서버에 대한 시간 동기화 요청 시간은 sSynchronizeTime에 따라 설정됩니다.

  • 시스템 레지스터([이더넷] > [시간 동기화])에 이미 설정된 데이터가 유효하지 않으며, NTP 시간 동기화 요청이 이 명령에 의해 지정된 시간에 실행됩니다.

  • 다음과 같은 경우 PLC가 시스템 레지스터에서 설정으로 돌아갑니다.

    • 전원이 꺼져 있습니다.

    • [PROG 모드]에서 [RUN 모드]로 전환합니다.

    • 다른 프로젝트로 전환합니다.

  • FP_IPV4_SET_ADDRESS 명령을 실행해도 설정 데이터가 손실되지 않습니다.

  • 명령을 실행하기 전에 sys_bIsEthernetInitializingFALSE인지 확인하십시오. 명령이 실행되면 sys_bIsEthernetInitializingTRUE로 전환됩니다. sys_bIsEthernetInitializingTRUE일 때 명령을 실행하면 에러가 발생합니다.

  • 이 명령이 성공적으로 실행되면 시스템 변수 sys_bIsCarrysys_iEthernetConnectionErrorCode가 초기화됩니다.

  • 에러가 발생하면 시스템 변수 sys_iEthernetConnectionErrorCode에서 에러 코드 번호를 확인하십시오.

에러 플래그

sys_bIsOperationErrorHold(TRUE로 전환되어 TRUE로 유지됨)
  • 파라미터에 지정된 값이 허용 범위를 벗어난 경우.

  • 명령을 인터럽트 프로그램에서 실행한 경우.

  • 시스템이 NTP 서버와 시간을 동기화하는 경우.

sys_bIsOperationErrorNonHold(스캔 1회에 대해 TRUE로 전환)
  • 파라미터에 지정된 값이 허용 범위를 벗어난 경우.

  • 명령을 인터럽트 프로그램에서 실행한 경우.

  • 시스템이 NTP 서버와 시간을 동기화하는 경우.

sys_bIsCarry(스캔 1회에 대해 TRUE로 전환)

이더넷 초기화 중에 명령이 실행되면 sys_iEthernetConnectionErrorCode가 "11: 이더넷이 초기화 중입니다"

POU 헤더

이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다.모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.

	VAR
		sSynchronizeTime: STRING[32]:='DAY=1130,WEEK=62345,MONTH=280200';
		bIsError: BOOL:=FALSE;
		bEnable: BOOL:=FALSE;
			END_VAR

LD 본문

시스템 변수 sys_bIsEthernetInitializingFALSE이고 변수 bEnableTRUE로 설정되면 펑션이 실행됩니다.

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

ST 본문

if NOT (sys_bIsEthernetInitializing) AND (bEnable) then
    FP_NTP_SET_SYNCHRONIZE_TIME(sSynchronizeTime := sSynchronizeTime,
    bError => bIsError);
end_if;

최종 수정일: 2024-03-07이 페이지에 대한 피드백Panasonic 직통 전화