FP_NTP_SET_TIME_ZONE

NTPサーバーのローカルタイムゾーンの設定

注記

ローカルタイムゾーンを設定する必要があるのは、フレキシブルタイムゾーンの場合だけです。

このFP命令は、システムレジスタ530 「EtherNet/IP」 > 「時刻同期」によって設定されたタイムゾーンをローカルタイムゾーンで一時的に上書きします。このローカルタイムゾーンは、PLC時間がFP_NTP_SYNCHRONIZEによって設定されている場合に使用されます。

入力

sTimeZone (STRING)

GMT (グリニッジ標準時)に基づいてタイムゾーンを指定します。

構文: +HHMM/-HHMM

値:フォーマット:記号(+/-)およびHHMM (HH =時間(00~23)、MM =分(00~59))

変換例:

  1. フランス、イタリア、スペイン、ドイツの場合:'+0100'

  2. 日本の場合:'+0900'

  3. ハワイの場合:'-1000'

出力

bError (BOOL)

動作が実行されずに異常終了した場合、TRUEに設定します。例:sys_bIsEthernetInitializingTRUEの場合

エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。

解説

  • この命令は、割り込みプログラム中で使用することはできません。

  • この命令は、システムレジスタ530で設定されたタイムゾーンを削除したり、完全に上書きしたりするのではなく、sTimeZoneで指定された値で一時的に置換を行います。

  • 以下の場合、PLCはシステムレジスタの設定に戻ります。

    • 電源の切断時。

    • 「PROGモード」から「RUNモード」への切替え時。

    • 他のプロジェクトへの切替え時。

  • 設定データは、FP_IPV4_SET_ADDRESS命令が実行された場合も消失することはありません。

  • 命令を実行する前にsys_bIsEthernetInitializingFALSEであることを確認してください。命令が実行されるとsys_bIsEthernetInitializingTRUEになります。sys_bIsEthernetInitializingTRUEのときに命令を実行すると、エラーが発生します。

  • この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。

  • エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • パラメータに指定された値が許容範囲外の場合。

  • 命令が割り込みプログラム内で実行された場合。

  • システムがNTPサーバーの時刻を同期中の場合。

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • パラメータに指定された値が許容範囲外の場合。

  • 命令が割り込みプログラム内で実行された場合。

  • システムがNTPサーバーの時刻を同期中の場合。

sys_bIsCarry (1回のスキャンに対してTRUE)

Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。

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-03-22このページに関するフィードバックお問い合わせ窓口