このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
howto:open_plc:sys_time [2022/10/17 13:07] Staff_Ujiie [補足事項] |
howto:open_plc:sys_time [2023/03/31 10:31] (現在) Staff_Ujiie [OpenPLCでの日時情報] |
||
---|---|---|---|
行 7: | 行 7: | ||
===== 時刻情報の予備知識 ===== | ===== 時刻情報の予備知識 ===== | ||
- | * RaspberryPi OSが属するLinuxが使っている時間情報は、UNIX時間というものになります。\\ 過去のある時点(The Epoch(1970年1月1日00: | + | * RaspberryPi OSが属するLinuxが使っている時間情報は、**UNIX時間**というものになります。\\ 過去のある時点(The Epoch(1970年1月1日00: |
* この元となるUNIX時間データは1664150405.200.のような数値で、これだけではいつなのかよくわかりませんので、そこから通常よく使われる年/月/日などで表示された時刻に変換して利用します。 | * この元となるUNIX時間データは1664150405.200.のような数値で、これだけではいつなのかよくわかりませんので、そこから通常よく使われる年/月/日などで表示された時刻に変換して利用します。 | ||
行 16: | 行 16: | ||
* OpenPLCでは、システムの現在時刻情報を、プログラムで利用できる特別なアドレス(**%ML1024**)に取り込んでくれます。\\ [[https:// | * OpenPLCでは、システムの現在時刻情報を、プログラムで利用できる特別なアドレス(**%ML1024**)に取り込んでくれます。\\ [[https:// | ||
- | * %ML1024で提供されるデータは、そのままでは上記のUNIX時間の一種(地方標準時相当)の数値なので、使う側が必要な形式に変換して、変換後のデータを利用します。 | + | * %ML1024で提供されるデータは、そのままでは上記のUNIX時間の一種(地方標準時相当)の数値なので、使う側が必要なデータ形式に変換して、変換後のデータをプログラム内で利用します。 |
\\ | \\ | ||
===== 利用する時間形式への変換 ===== | ===== 利用する時間形式への変換 ===== | ||
行 28: | 行 28: | ||
* %ML1024に取り込まれる数値のデータ型は何が適切なのかよくわからなかったのですが、フォーラム内のOpenPLC作者の[[https:// | * %ML1024に取り込まれる数値のデータ型は何が適切なのかよくわからなかったのですが、フォーラム内のOpenPLC作者の[[https:// | ||
- | * 型変換 | + | |
- | * 時間データの変換には、データ型変換の機能ブロックを使います。上記の各データに変換したいときは、**ULINT_TO_TOD**、**ULINT_TO_DT**、**ULINT_TO_DATE**の型変換です。\\ \\ {{: | + | * 時間データの変換には、**データ型変換の機能ブロック**を使います。上記の各データに変換したいときは、**ULINT_TO_TOD**、**ULINT_TO_DT**、**ULINT_TO_DATE**の型変換です。\\ \\ {{: |
* プログラム上の記載は以下のようになります。変数と機能ブロックをつないだだけですが、変数 " | * プログラム上の記載は以下のようになります。変数と機能ブロックをつないだだけですが、変数 " | ||
行 39: | 行 39: | ||
* 上記のフォーラムの[[https:// | * 上記のフォーラムの[[https:// | ||
- | * 上記[[https:// | + | * 上記[[https:// |
\\ | \\ | ||