2022-07-23に更新

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

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

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

今回はデータベースを準備します。
image

データベース

このサンプルでは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)

ツイッターでシェア
みんなに共有、忘れないようにメモ

COOL MAGIC PRODUCTS

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント