NTPサーバー同期時刻の設定
このFP命令は、NTPサーバーとの自動時刻同期を実行する時刻を設定します。
入力
NTPサーバーとの自動時刻同期を行う時刻を指定します。
次のキーワード設定を1つ以上使用して時刻を設定します。
毎日の同期(オプションパラメータ)
キーワード: 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'
毎月の同期(オプションパラメータ)
キーワード:MONTH
文法:'MONTH,xxxxxx'
値:DISABLE、DDHHMM
DD =日(0~28)、HH =時間(0~23)、MM =分(0~59)
変換例:
毎月の同期なし:'MONTH=DISABLE'
毎月15日15:30の場合:'MONTH=150330'
出力
動作が実行されずに異常終了した場合、TRUEに設定します。例:sys_bIsEthernetInitializingがTRUEの場合
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
この命令は、割り込みプログラム中で使用することはできません。
キーワードの順序を変更しないでください。キーワードと設定パラメータはここに記載されている順序で記述してください。
パラメータ構文は部分的な省略が可能です。省略されたパラメータの設定は変更されません。
指定キーワードより前の部分を省略する場合は、キーワードのみを省略し、キーワードを区切るカンマ「,」は省略しません。 ',,MONTH=150300'
指定キーワードより後ろの部分を省略する場合はカンマ「,」およびキーワードの両方を省略します。 'DAY=1130,WEEK=DISABLE'
同じキーワードを指定しないでください。同じキーワードを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サーバーの時刻を同期中の場合。
Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。
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;