0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (4)

Last updated at Posted at 2022-07-22

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
初回から前回にかけては、ゲートウェイを使って、PLCから取得したデータをMQTTでブローカーに送信するまでを実装しました。

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (1)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (3)

今回はデータベースを準備します。
348f9673721149a9206023ad2b3ca8e062d7eb7ab1449.png

データベース

このサンプルではMySQLを使用します。MySQLでなければいけない理由はまったくありません。MySQLを選択した理由は、そこ(私の開発環境、作業場ですね)で動いていたからです。
テーマを「JSONで保存」とした以上は、JSON型をサポートしているDBMSである必要はあるのですが、MySQL以外にもJSON型をサポートしているDBMSはあります。

ユーザとデータベースは事前に作成されていたものを使います。これらの作成については解説はいたしません。

MySQLにおける、データベースとユーザの作成については、こちらを参照ください。
データベースの作成
ユーザーの作成

テーブルを作成する

任意のユーザとデータベースでテーブルを作成します。

hoge@localhost C:\Users\hoge>mysql -u hoge -p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.29 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use hoge
Database changed
mysql> 

データを保存するためのテーブルをひとつだけ作成します。

mysql> create table from_plc (
    -> body json,
    -> time_insert timestamp default current_timestamp
    -> );
Query OK, 0 rows affected (0.17 sec)

mysql> show full columns from from_plc;
+-------------+-----------+-----------+------+-----+-------------------+-------------------+---------------------------------+---------+
| Field       | Type      | Collation | Null | Key | Default           | Extra             | Privileges                      | Comment |
+-------------+-----------+-----------+------+-----+-------------------+-------------------+---------------------------------+---------+
| body        | json      | NULL      | YES  |     | NULL              |                   | select,insert,update,references |         |
| time_insert | timestamp | NULL      | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED | select,insert,update,references |         |
+-------------+-----------+-----------+------+-----+-------------------+-------------------+---------------------------------+---------+
2 rows in set (0.07 sec)

mysql>

次回

続きは次回とさせていただきます。
MySQLのセットアップを行われた方がいるとすれば、その方にとっては、この記事の中で最も時間を要した回であったはずです。そういった方に配慮し、今回は短めとし続きは次回とさせていただきます。
私の記事は先を急ぎませんので。
次回は、いよいよデータをデータベースに書き込みます。

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (1)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (3)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (5)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (6)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?