From 11:00 PM CDT Friday, Nov 8 - 2:30 PM CDT Saturday, Nov 9, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



LabVIEW からプログラム的にシステム時刻を設定するにはどうすれば良いでしょうか。



使用ソフトウェア: LabVIEW Development Systems>>LabVIEW Full Development System
使用ソフトウェア・バージョン: 2009 SP1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:
GPS 時刻を計測器から読み取っていて、 Windows のシステム時刻を LabVIEW から設定したいです。LabVIEW のタイミングパレットには「日付/時間文字列を取得」関数がありますが、「時刻を設定」は見当たりません。時刻を LabVIEW で設定するにはどうすれば良いでしょうか。


解決策:
LabVIEW 関数でシステム時刻を設定する関数はありません。しかしながら、 Windows SDK を使用すると行えます。「ライブラリ関数呼び出しノード」を使用し、「SetSystemTime」関数を kernel32.dll から使用する方法は下記の通りです。
  1. 「ライブラリ関数呼び出しノード」をブロックダイアグラムに配置します。関数をダブルクリックし、「ライブラリ関数の呼び出し」ウィンドウを開きます。
  2. 参照ボタンから、 kernel32.dll を選択して下さい。(通常 C:\WINDOWS\system32\kernel32.dll にあります。)
  3. 関数名から「SetSystemTime」を選択します。
  4. 「呼び出し規約」にて「stdcall (WINAPI)」を選択します。
  5. 「パラメータ」タブに移動し、「返り値タイプ」で「数値」、「符号付き8ビット整数」を選択してください。
  6. 「パラメータを追加」をクリックし、「タイプに適応」をタイプとして選択し、データ形式では「ハンドルへのポインタ」を選択します。
  7. OK ボ タンをおし、「ライブラリ関数呼び出しノード」を構成します。
  8. この関数は、8個の WORDS (16ビット整数)をパラメータとして受け入れます。これを LabVIEW で行うには、8個の WORDS のクラスタを作成します。8個の WORDS はそれぞれ、年、月、曜日、日、時、分、秒、ミリ秒です。そのクラスタを「ライブラリ関数呼び出しノード」の param1に入力して下さい。
  9. 任意の値を設定し、プログラムを実行するとシステム時刻が設定されます。
メモ: SetSystemTimeをWindows Vista以降のPCでLabVIEWから呼び出す場合、LabVIEWを管理者として実行する必要があります。LabVIEWを起動するときに、アイコンを右クリックし 管理者として実行を選択してください。

詳細については、下記 Microsoft のリンクにある SetSystemTime 関数についての記載を参照してください。なお、kernel32.dll には「GetSystemTime」関数もあります。

ライブラリ関数呼び出しノードの LabVIEW 7.1 以前の詳細につきましては、下記リンクにある「Using External Code in LabVIEW」を参照して下さい。LabVIEW 8.0 以降につきましては、 LabVIEW ヘルプの「 Configuring the Call Library Function Node 」を参照してください。


関連リンク:
外部リンク: SetSystemTime function
製品マニュアル: Using External Code in LabVIEW
チュートリアル: シンプルなDLLを呼び出すためにライブラリ関数呼び出しノードを構成する


添付:





報告日時: 02/06/2004
最終更新日: 05/08/2017
ドキュメントID: 365AR7FQ