微信を使ってシーメンスPLCを遠隔監視する
Thread Content
はじめに:シーメンスS7-200PLCは産業制御分野で広く利用されており、高性能で安定した動作を誇るコントローラーです。今回は、シーメンスのS7-200PLCをEMCP IoTクラウドプラットフォーム(略称:EMCP)に接続し、コンピュータのWebページ、スマートフォンアプリ、微信を通じて200PLCを遠隔で監視することを実現します。 一、準備作業。 1.1接続する前に、以下の物品を準備する必要があります; S7-200 1台(CPU226またはCPU224を推奨。2つのシリアルポートを備えたPLCで、port1はプログラムのダウンロードおよびオンライン監視に、port0はModbus-RTUスレーブとしてGM10-DTUモジュールとの通信に使用します)。Smart200PLCも使用できます(以下、旧型200PLCを事例として説明します)。 1.DTUモジュール1台、アンテナ、電源アダプター(以下、GM10-DTUを例とする)。 2.データ通信機能付きのSIMカード1枚、大容量タイプ(auまたはドコモのカード)。 3.DP9オスピン1個。 4. ネットに接続できるパソコン1台(Windows XP/Win7/Win8オペレーティングシステム)5. 電気工事用ツール、導線数本。 材料の準備は以下の通りです; https://attach01.hcbbs.com/forum/201803/06/152246sdh3b37dhd3b037b.png 1.2 DTUの準備作業 ここでは「GM10-DTUユーザーマニュアル」を参照して操作を行います。DTUゲートウェイ(WM10-DTUゲートウェイの設定はGM10と似ており、以下ではすべてGM10-DTUゲートウェイを例に説明します)にアンテナを接続し、SIMカード(au/KDDIのデータ通信用カード、大容量タイプ)を挿入し、12Vまたは24Vの電源アダプターを接続する必要があります。 1.3 S7-200PLCの準備作業。 200PLCに電源を接続します(電源が24VDCか220VACかに注意してください)。上図のような9ピンのシリアルポートを用意し、2本の配線でそれぞれ3番と8番のピンにはんだ付けします(200PLCのシステムマニュアルに記載がありますが、3番と8番のピンは485通信ポートです)。このとき、PLCのprot0シリアルポートの3番ピンをGM10モジュールの「485A」端子に接続し、8番ピンをGM10モジュールの「485B」端子に接続します。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUooOGP3AEwrAM4mAI!300x300.png 二、200PLCスレーブの作成。 1. プログラミング用コンピュータに200PLCを接続し、Step7-MicroWinプログラミングソフトウェアを起動して新しいプロジェクトを作成します。メインプログラムにModbus Slave Port0機能ブロック(MBUS_INIT, MBUS_SLAVE)を追加します。http://6318546.s21i-6.faiusr.com/2/ABUIABACGAAguKH4zgUoss-k0wIw6AE4iAE.jpg ライブラリファイル・シーメンスのModbusスレーブプロトコルライブラリには、MBUS_INIT命令とMBUS_SLAVE命令の2つの命令が含まれています。•MBUS_SLAVE命令は、Modbusマスター機器からのリクエストに応答するために使用されます。•MBUS_INIT命令は、Modbusスレーブ通信を有効化、初期化、または無効にするために使用されます。MBUS_SLAVE命令を使用する前に、必ずMBUS_INIT命令を正しく実行しなければなりません。命令の実行が完了したらすぐに「完了」ビットを設定し、次の命令を実行できる。 http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUolOj0XzCRAzj-AQ!400x400.png http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUom6L5qgcw-gI4kQE.png MBUS_INIT、MBUS_SLAVEの命令については、「STEP 7-MicroWIN」ソフトウェアのヘルプを参照してください。前述の通り、Modbusのホールドレジスタ領域はVB1000から始まり(HoldStart=VB1000)、ホールドレジスタの数は100ワードです(MaxHold=100)。ホールドレジスタはワード(2バイト)単位であるため、実際にこの通信バッファはVB1000~VB1200の合計200バイトを占有します。2、ライブラリストレージエリアを設定する。メニューバーの「ファイル」をクリックし、ポップアップメニューから「ライブラリストレージ領域の割り当て」を選択します。開くダイアログボックスにライブラリストレージ領域の開始アドレスを入力します。このアドレスが、プログラム内で既に使用されている、または今後使用される予定の他のアドレスと重ならないように注意してください。「推奨アドレス」をクリックすれば、Modbus機能ブロックが使用するアドレスとプログラム内のレジスタアドレスが重なるのを避けることができます。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUo_NrwTTDWAjiOAw!300x300.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUogKuAogEwigM40AI.png
3. コンパイラを使用してプログラムをコンパイルし、エラーがなければPPIケーブルを介してそのプログラムをPLCにダウンロードする(PLCにシリアルポートが1つしかなく、そのポートがModbusポートとして設定されている場合は、プログラムをダウンロードする際にPLCの運転スイッチを「stop」位置に切り替える必要がある)。ダウンロードが完了したら電源を切り、プログラムモニターを開いてMBUS_INIT命令およびMBUS_SLAVE命令の「Error」ピンの出力が正常かどうかを確認する(0値なら正常で、他の値は故障を意味する。詳しくはシーメンスPLCの技術マニュアルに記載されている故障一覧を参照のこと)。 三、EMCPプラットフォームの設定。 管理者アカウントでEMCPプラットフォーム(IE9以降のブラウザまたはGoogle Chrome)にログインし、EMCPクラウドプラットフォームを設定します。具体的な操作については、「EMCP IoTクラウドプラットフォームユーザーマニュアル」をご参照ください。EMCPにログインすると、まずデバイス一覧の表示ページに移動します。何もデバイスを作成していないため、ページは空の状態です。右上隅にある「バックエンド管理」ボタンをクリックしてください(この権限は管理者アカウントのみが持っています)。そうするとEMCPプラットフォームのバックエンド画面に移動します。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUo0Iih0QcwgAg4PQ.png 3.1 リモート設定DTU 「バックエンド管理—>モジュール管理」ページを開き、DTUをこの管理者アカウントに紐付けると、「リモート設定」機能を使ってDTUの各種通信パラメータや機能パラメータを設定できます。設定が必要な主な箇所は2つあります。1つ目はPLCと通信するためのシリアルポートパラメータ、2つ目はDTUが定期的にPLCのデータを取得するためのMODBUSチャネルパラメータです。以下、この機能についてステップバイステップで説明します。注:モジュールはオンラインになっている場合のみ遠隔で設定できます。また、「DTU設定ソフトウェア」を使用してモジュールを設定することも可能です。詳しくはドキュメント「DTU設定ソフトウェア使用マニュアル」を参照してください。3.1.1モジュールのバインディング
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgi_i8zwUo9aLY9wYwrgY4_wI.png
モジュールの初期バインディングパスワードは111111で、そのままクリックしてバインドすればよいです。3.1.2 モジュールの遠隔設定 モジュールの遠隔設定では、まず「読み取り」を行い、その後に「書き込み」を行うのが望ましい。書き込みが成功した場合にのみ、そのパラメータがDTUに正しく設定されたとみなされる。「書き込み」後には、以前の操作が正常に行われたかどうかを確認するために「読み取り」を行うこともできる。モジュールDIアラームポイントを使用しない場合は、「ショートメッセージ設定」を行う必要はありません。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguKH4zgUosom33QEwgAg42gM.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguaH4zgUo-9ix7QIwgAg47AM.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguaH4zgUovLC7hAQwgAg46AM.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguqH4zgUo2Yew2gUwgAg46gM.png
デバイスサーバ番号:モジュールに接続されているデバイスのMODBUSサーバアドレス(範囲1~250)。このアドレスは、デバイスサーバアドレスと同じでなければなりません。PLCで設定されたMODBUSスレーブ番号と一致していなければなりません。機能コード:モジュールがデバイスのMODBUSレジスタ領域を読み取るためのフラグです。“機能コード01は「コイル」(0XXXX)に対応し、「機能コード02」は「ディスクリート入力」(1XXXX)に対応し、「機能コード03」は「保持レジスタ」(4XXXX)に対応し、「機能コード04」は「入力レジスタ」(3XXXX)に対応します。シーメンスPLCにおいて、Qポイントは01機能コードに対応し、Iポイントは02機能コードに対応し、V領域は03機能コードに対応し、AI領域は04機能コードに対応します。開始アドレス:モジュールが接続されているデバイスのMODBUSレジスタから読み取る開始アドレス(レジスタ領域識別子は含まない)。図中の1は40001のデータ長さに対応し、これはDTUがデバイスからデータを連続して読み取る長さです。図中の長さは10であり、40001から40010までの合計10個のデータが連続して読み取られます。標準DTUは複数のスレーブ(最大4台)を接続でき、「新規作成」をクリックして新しいサブデバイススレーブを作成でき、設定ルールは上記の説明に従います。前述のPLCスレーブの設定に基づき、ここで読み取られるのは40001から40010であり、これはシーメンス200PLC内部のVW1000からVW1019のレジスタにあるデータです。注:DTUに異常が発生し、ネットワークに接続できない、またはPLCと正常に通信できない場合は、設定ポート(デフォルトはRS232)を使ってPCに接続し、「DTU設定ソフトウェア」を用いて状態や異常アラームを確認できます。詳細は「DTU設定ソフトウェア使用マニュアル」をご覧ください。3.2 新規データルールの作成
ウェブページの左側にある「データルール」をクリックしてルール設定ページに移動し、右上角の「新規追加」をクリックします。表示されるウィンドウで、そのデータルールの名前を「S7-200PLC」とし、表示形式を「リスト表示」に設定します。リスト表示または構成表示のいずれかを選択でき、リスト表示の場合、追加したデータは一定のリスト形式で表示されます。リスト表示は簡単で便利なため、データテスト段階ではリスト表示を利用するとよいでしょう。コンフィグレーション表示:デバイスデータの表示形式を自由に設計でき、図形、画像、ダッシュボード、棒グラフ、テキストなどを追加することが可能です(この機能は従来のコンフィグレーションソフトウェアに類似しており、「EMCPプラットフォーム画面コンフィグレーション使用説明」ドキュメントを参照してください)。データルールの新規作成が完了したら、「リアルタイムデータ」をクリックしてリアルタイムデータを追加します(3.1.2で設定したModbus設定)。次に、「読み書きデータ」をクリックし、プラットフォームがデバイスに対して手動で行う読み書き操作のデータを作成します。ルールの作成は次のように表示されます。注:リアルタイムデータ:これは、DTUが設定されたModbus収集チャネル(上記の3.1を参照)に基づき、設定された収集間隔でスレーブデータを定期的に読み取り、プラットフォームに表示する内容です;データの読み書き:DTUでModbusの定時収集チャネルを設定する必要はなく、プラットフォームを通じて直接下位機器に対してデータの手動読み書き操作が可能です;EMCPプラットフォームにおけるすべての「レジスタアドレス」設定には、レジスタエリア識別子は必要ありません。例えば、「保持レジスタ」(機能コード03)内の40019のデータを読み書きする場合、プラットフォームのデータ規則にある「レジスタアドレス」に19を入力すればよいです(注:デバイスのModbusアドレスのカウントが0から始まる場合は、1を足して20と入力する必要があります)。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguqH4zgUoovLfsAMwgAg45AM.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAguqH4zgUo0oasiQEwgAg4lwQ.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgu6H4zgUo-KDC7wIwgAg4pwQ.png
アラーム設定では、作成済みのリアルタイムデータ内で「アラーム」オプションをクリックし、アラーム設定ページに移動します。このデータのアラームの上限・下限、アラーム内容、およびこのアラームを有効にするかどうかを設定できます。アラームを設定すると、そのデータがアラームの上限・下限を超えた際に、プラットフォームは自動的にアラームが発生した時間と値を記録します。同時に、プラットフォームはユーザーがログインしているAPPやWeChatにアラームメッセージを送信します。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgu6H4zgUolq7PogUwgAg4qgQ.png
3.3 新規デバイスの作成
「デバイス」を新規作成し、メニューの「デバイス管理」→「追加」を選択して、「シーメンスS7-200PLC」というデバイスを新規作成します。新規設備の登録では、まず設備の基本情報を入力します。1つ目は、設備に合った画像を選択することです(ローカルからアップロードしてもよく、選ばなくてもシステムはデフォルトの画像を表示します)。2つ目は、モジュールのSNを入力することで、紐付けたいSNコードを入力します。このSNが以前に紐付けられていない場合は、紐付け用のウィンドウが表示されて紐付けを行います。3つ目は、先に作成したデータルールを選択します。4つ目は、「地図」ボタンをクリックして、設備がある地理的位置を選択します。完了したら「保存」をクリックしてください。 http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgvKH4zgUoxN6ZpQcwgAg4pwQ.png 四、実験結果。 Step7-MicroWinプログラミングソフトウェアの「プログラム状態監視」と「状態表監視」を開き、プログラムの動作状態や内部データの数値表示を確認します。ステータステーブルを使うことで、各データの現在値を確認したり、データに強制的な操作を加えたりできます。下図の通りです。 http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgvKH4zgUo9KvB0wUw-wU40AM.png http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgvKH4zgUoqtTiiQQwgAg46AQ.png ユーザーはEMCPプラットフォームにログインし、「シーメンスS7-200PLC」デバイスの画像またはデバイス名をクリックしてそのデバイスにアクセスします。まず表示されるのは、200PLCが定時に収集したデータの表示(リアルタイムデータ)です。「データの読み書き」をクリックすると200PLCへの読み書き操作が行え、「履歴データ」をクリックすると、装置が定時に保存したデータの履歴報告書が表示されます。「アラーム記録」をクリックすると、アラーム情報の記録ページに移動し、以下のように表示されます。http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgvKH4zgUouPy5wwcwgAg4pwQ.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgvaH4zgUop6n4VjCACDihBA.png
http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAgvaH4zgUoiNDsggYwgAg4pwQ.png
スマートフォンに「雲連物通」というアプリをインストールし、ユーザー名とパスワードでログインします。その後、デバイス一覧から「シーメンスS7-200PLC」というデバイスを選ぶと、リアルタイムのデータ一覧画面または設定画面が表示されます(設定表示モードの場合)。右上のメニューバーにある「三本線のボタン」をクリックすると機能メニューが表示されます。そこで「データの読み書き」をクリックすると、データの読み書き操作が行えます。「履歴報告書」をクリックすると、デバイスの過去のデータが確認できます。「履歴グラフ」をクリックすると、各データの過去の傾向がグラフで確認できます。「アラーム情報」をクリックすると、そのデバイスのアラーム記録が確認できます。「デバイスの詳細」をクリックすると、デバイスの詳細情報やビデオ映像が確認できます。 http://6318546.s21i-6.faiusr.com/4/ABUIABAEGAAg6LH4zgUowLz7pwYwlgY4xgU.png