FP_NTP_SET_TIME_ZONE

NTP 서버의 현지 시간대 설정

주석

유연한 시간대에서만 현지 시간대를 설정하면 됩니다.

이 FP 명령은 일시적으로 시스템 레지스터 530[EtherNet/IP] > [시간 동기화]로 설정된 시간대를 현지 시간대로 덮어씁니다. 이 현지 시간대는 FP_NTP_SYNCHRONIZE에서 PLC 시간을 설정할 때 사용됩니다.

입력

sTimeZone (STRING)

GMT(그리니치 표준시)를 기준으로 시간대를 지정합니다.

구문: +HHMM/-HHMM

값: 형식: 기호(+/-) 및 HHMM(HH=시간(00–23), MM=분(00–59))

예:

  1. 프랑스, 이탈리아, 스페인, 독일: '+0100'

  2. 일본: '+0900'

  3. 하와이: '-1000'

출력

bError (BOOL)

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

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

주석

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

  • 이 명령은 시스템 레지스터 530에 설정된 시간대를 삭제하거나 영구적으로 덮어쓰지 않지만, sTimeZone에 지정된 값으로 일시적으로 치환합니다.

  • 다음과 같은 경우 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
		sTimeZone: STRING[32]:='+0100';
		bIsError: BOOL:=FALSE;
		bEnable: BOOL:=FALSE;
			END_VAR

LD 본문

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

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_CONTACT,,sys_bIsEthernetInitializing,6,4,8,6,N);
B(B_CONTACT,,bEnable,14,4,16,6,R);
B(B_F,FP_NTP_SET_TIME_ZONE!,,18,3,31,7,,?DEN?DsTimeZone?AENO?AbError);
B(B_VARIN,,sTimeZone,16,5,18,7,);
B(B_VAROUT,,bIsError,31,5,33,7,);
L(1,0,1,7);
L(1,5,6,5);
L(8,5,14,5);
L(16,5,18,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST 본문

if (NOT (sys_bIsEthernetInitializing) AND DF(bEnable)) then
    FP_NTP_SET_TIME_ZONE(sTimeZone := sTimeZone,
    bError => bIsError);
end_if;

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