NTPサーバー接続の設定
このFP命令は、時刻同期要求を送信可能な宛先NTPサーバーを設定します。
入力
IPアドレスまたはホスト名(必須のキーワード)
IPアドレス
IPアドレスの場合は、最初にキーワードIPv4
またはIPv6
を指定します。
IPv4の文法: 例'IPv4=111.122.133.144'
IPv6の文法: 例'IPv6=1111:122:2:1555:0:0:1888'
ホストネーム
キーワード: HOST
文法: 例:'HOST=ntp.pidsx.com'
出力
動作が実行されずに異常終了した場合、TRUEに設定します。例:sys_bIsEthernetInitializingがTRUEの場合
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
この命令は、割り込みプログラム中で使用することはできません。
NTPサーバーアドレスは、sNTPServerに基づいてCPUユニット(内蔵ET-LAN)に設定されます。
システムレジスタ( )に設定されているデータは無効となり、この命令で指定した時刻にNTP時刻同期要求が実行されます。
以下の場合、PLCはシステムレジスタの設定に戻ります。
電源の切断時。
「PROGモード」から「RUNモード」への切替え時。
他のプロジェクトへの切替え時。
設定データは、FP_IPV4_SET_ADDRESS命令が実行された場合も消失することはありません。
命令を実行する前にsys_bIsEthernetInitializingがFALSEであることを確認してください。命令が実行されるとsys_bIsEthernetInitializingはTRUEになります。sys_bIsEthernetInitializingがTRUEのときに命令を実行すると、エラーが発生します。
この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。
命令が正常に実行されなかった場合、FP_NTP_SYNCHRONIZE命令の出力nResultの実行結果コードを確認します。
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
パラメータに指定された値が許容範囲外の場合。
命令が割り込みプログラム内で実行された場合。
システムがNTPサーバーの時刻を同期中の場合。
パラメータに指定された値が許容範囲外の場合。
命令が割り込みプログラム内で実行された場合。
システムがNTPサーバーの時刻を同期中の場合。
Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。
VAR
sNTPServer: STRING[32]:='IPv4=192.168.2.1';
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,1,8,3,N);
B(B_CONTACT,,bEnable,14,1,16,3,);
B(B_F,FP_NTP_SET_SERVER!,,22,0,33,4,,?DEN?DsNTPServer?AENO?AbError);
B(B_VARIN,,sNTPServer,20,2,22,4,);
B(B_VAROUT,,bIsError,33,2,35,4,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,14,2);
L(16,2,22,2);
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_SERVER(sNTPServer := sNTPServer,
bError => bIsError);
end_if;