PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
初回から前回にかけては、ゲートウェイを使って、PLCから取得したデータをMQTTでブローカーに送信するまでを実装しました。
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (1)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)
PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (3)
データベース
このサンプルでは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)