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

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
![4bef24e301bab8c385bc5659d66fab1262d4b8451782b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/0761fe5e-fc3f-f199-6583-1919e8981239.png)
初回は、ゲートウェイでPLCのデータを取得します。
![c2c94364c86325cb400ed616c683221562d4b8537ad2c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/7f21bb24-a3db-e867-e31c-20579da076e4.png)
サンプルは、Windowsがあれば環境の準備と動作が可能です。よろしければ、自己責任のもとで環境を準備し、サンプルを動作させてみてください。
## PLC
この解説でのサンプルでは、PLCの代わりにModbus/TCPシミュレーターを使用します。これにより、PLCの本物がなくても、実装の学習とテストが可能となります。
今回使用したModbus/TCPシミュレーターは、貴重なmod_RSsim.exeです。もちろん、他のシミュレータでも構いません。

- Modbus/TCPシミュレーター: MOD-RSsim Version 8.20

![59603780d55c186e1a70e1b112539c5562d4afc50041e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/39e98e25-d6d5-1cd8-0c44-b84299a593d3.png)
## ゲートウェイ
この解説のサンプルでは、WEINTEK製ゲートウェイを想定します。WEINTEK製ゲートウェイのソフトウェア開発ツールは、Windows上でソフトウェアを書くことができることに加え、ゲートウェイの動きをシミュレートすることが出来ます。これにより、ゲートウェイの本物がなくても、実装の学習とテストが可能となります。

- WEINTEK製ゲートウェイのソフトウェア開発環境: EasyBuilder Pro

EasyBuilderはWEINTEKのサイトからダウンロードすることが出来ます。
[https://www.weintek.com/globalw/Download/Download.aspx](https://www.weintek.com/globalw/Download/Download.aspx)
## ゲートウェイの設定とプログラミング
ゲートウェイは各社、各モデルで実装のスタイルが大きく異なります。しかし、この解説では、多くのゲートウェイでの機能実装が可能となるよう勘案し、よりシンプルな手順になるよう考慮しています。
前述のとおり、この解説では、ゲートウェイの本物を使用しません。代わりにEasyBuilderという、WEINTEK製ゲートウェイの開発環境を使用します。

EasyBuilder Pro を起動します。
![70b6249e55a43645fa24782555dba08a62d4bfe2afa50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/469b623c-24f3-a731-fc21-8da0d66a8bfd.png)
プロジェクトを新たに作成します。
これから行う設定が、どのゲートウェイの設定であるかをゲートウェイのモデルの一覧から選択します。このサンプルでは、最もシンプルなモデル"cMT-G01"を選択します。
![73133d6f86ad19a49ce3d64ec95ce1a662d4c0da0fe55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/92a8dfbd-e3c9-30ff-7b1a-eab485816c2a.png)
"cMT-G01"とはこのようなハードウェアです。
[cMT-G01](https://dl.weintek.com/public/cMT/eng/Datasheet/cMT-G01_Datasheet_ENG.pdf)

このゲートウェイが対象にするPLCを設定します。メニュー[ホーム]-[システムパラメータ]を選択します。
![e1fd4a5385cd74a43bada117619cb52762d4c1ed7671d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/79978681-e444-013f-213d-dfbc9c01c9d2.png)
[装置]タブを選択します。
![173c66d906d17f0d2905b9713ccd038c62d4c305cc7ca.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/b4d0780b-12c7-df01-b689-db76b0be7080.png)
[装置/サーバを新規追加]をクリックします。
![116c9134b0a53cfc0182069b0ee3f37a62d4e5e3e346e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/b36b5f3e-042c-bc08-281f-24f981b83900.png)
以下のように設定します。
![b4813a2fca2935a56983ddc1dfcefddc62d4c2a3aec24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/bd4782c2-0efc-c04f-52be-78526486dc4c.png)
PLCに相当するModbus/TCPシミュレータは、EasyBuilderと同じWindowsマシン上で稼働させる予定です。このため装置（=PLC=Modbus/TCPシミュレータ）のIPアドレスを127.0.0.1にしています。
装置のポートはModbus/TCPの標準である502を選択しています。
> 上記設定は、この解説におけるサンプルのための設定です。現実は、対象とするPLCやリモートIOなどに応じた設定が必要となります。
> 例えば、対象の装置が三菱電機のMELSECであれば、該当のモデルを選択します。下は、Mitsubishi QJ71E71の例です。
> ![cf6a77fc1f36d91ac1b06786216393f462d634aac0aa8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/77258b6e-41af-ee77-a168-c9b6ed1dbcdd.png)
## テスト
ここまでで、PLC（=Modbus/TCPシミュレータ）に接続する設定が終わりました。接続のテストをします。

mod_RSsim.exeを起動しておきます。
![59603780d55c186e1a70e1b112539c5562d4c596c61b2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/d9eb5fbf-7ddb-4526-28be-09da6cd44195.png)
次はEasyBuilderです。
もちろん、これまでの設定をゲートウェイ（cTM-G01）にロードしてゲートウェイを動かすことも可能ですが、今回はシミュレーターを使います。
メニュー[プロジェクト]-[オンラインシミュレーション]をクリックします。
![e57da9ac757974ac53d74202ab3f186962d4c5d9df4b8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/c3def09a-d739-d68d-9dea-96ee34bad9ac.png)
シミュレーターが起動します。"MODBUS TCP/IP (32-Bit)"に接続済みであるように見えますが、これはあてにはなりません。
![2b4ac9177034a63ae4627b253d2cade562d4c6d9f2b98.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/a0cea469-e692-dab0-860d-84f79bfb890c.png)
Modbus/TCPシミュレーターのウィンドウの左上にある"Connected"の表示を確認します。ゲートウェイからの接続が行われていれば、[1/10]となります。
![320155af5baceef2c37476485fd2741962d4e7455062b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/0f420ccf-917d-a9ce-df12-5964310096b3.png)
## 次回へ
続きは次回とさせていただきます。
初心者の方々のために、ゆっくりとマッタリと進めさせていただきます。
次回は、ゲートウェイによるPLCからのデータ取得です。

[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)](https://qiita.com/COOLMAGICPRODU1/items/370b1bd37dca8a4fd9ae)
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (3)](https://qiita.com/COOLMAGICPRODU1/items/08891c828736428c1b5c)
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (4)](https://qiita.com/COOLMAGICPRODU1/items/449f206bbdf07c8e491b)
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (5)](https://qiita.com/COOLMAGICPRODU1/items/92724b0908143275cfac)
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (6)](https://qiita.com/COOLMAGICPRODU1/items/5afd3a846791046ef128)