「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
この度ソフテックでは、ターク・ジャパン株式会社が扱うリモートI/Oやワイヤレスコントローラ製品とModbus TCPプロトコルで通信し、レジスタのデータを取得・ロギングするデータロガーアプリケーション「センサデータロギングツール」を受託開発いたしました。本号ではその開発に触れ、アプリの使用方法についても解説していきます。
同社が扱うTURCK製リモートI/Oやワイヤレスコントローラは、EtherNet/IP、Modbus TCP、PROFINETのマルチプロトコル対応で、様々なメーカのPLCやNC等のコントローラと接続が可能です。従来のニーズではPLCやNC等でのデータ収集及び制御を完結するシステムがほとんどでしたが、昨今ではDX化の流れによって、PLCやNCでの制御と並行して、PCによる現場データのデータ収集及びデータ活用や、様々な場所にセンサが導入される事で、より簡単にセンサデータのモニタリングを求められる様になりました。そうした要望を受けてこのたび弊社にご依頼いただきましたのが、複数のプロトコルを同時に通信可能な製品の特徴を活かし、Modbus TCPプロトコルでLAN上のリモートI/O機器と周期的に通信し、データを収集・ログ出力するWindowsアプリ「センサデータロギングツール」(以下、本アプリ)の開発です。
Modbus TCPとは、PLCとの通信のために策定されたModbusプロトコルを、TCP/IPというインターネット通信プロトコルを基盤に拡張したもので、開発は25年前ながら今なお多くの産業向け機器に採用される通信規格です。Modbus TCPについては第155号「PLCでModbus TCP通信 〜横河電機社製での実装例〜」やその後の号でも何度か取り上げておりますので、ぜひページ最下部のリンクからご覧ください。
また、本アプリは最新でない環境でも実行できるように.Net Framework 3.5で設計されているため、Windows 7以降の32bit/64bitシステム上で使用可能です。言語は日本語と英語に対応しています。
本アプリの主な機能は、次のようなものです。
これらの機能によって、簡易的ながらも、TURCK社製/Banner Engineering社製デバイスのユーザーが、各機器のデータを一括で監視し、またログから長い期間のデータに対して分析をかけることが可能になります。
ここから先では、本アプリの使用方法をデモンストレーションしていきます。デモンストレーションでは次の機器を使用します。
機器構成は次の画像に示します。
上記構成におけるTBEN-S2-4IOLのレジスタアドレス割付は下表の通りです。
表1. 本号におけるTBEN-S2-4IOLのレジスタアドレス割付
レジスタ番号 | モジュールポート | 項目 |
2 (0x0002) | IO-Link Port1 | RI360P0: 角度情報(シングルターン) |
3 (0x0003) | RI360P0: 回転数情報(マルチターン) bit3-15 マルチターンエラー bit2 回転エレメント未検出 bit1 回転エレメント検出状態不安定 bit0 |
|
4-17 (0x0004 - 0x0011) | なし | |
18-33 (0x0012 - 0x0021) | IO-Link Port 2 | なし |
34-49 (0x0022 - 0x0031) | IO-Link Port 3 | なし |
50-65 (0x0032 - 0x0041) | IO-Link Port 4 | なし |
上記構成におけるDXM700のレジスタアドレス割付は下表の通りです。
表2. 本号におけるDXM700のレジスタアドレス割付
レジスタアドレス (番号) | 項目 | 端末 |
0 (0x0000) | 温度(摂氏) | DX80 – QM30 |
1 (0x0001) | 温度(華氏) | |
2 (0x0002) | Z軸RMS速度 | |
3 (0x0003) | X軸RMS速度 | |
4 (0x0004) | Z軸RMS加速度 | |
5 (0x0005) | X軸RMS加速度 |
筆者注) DXM700のレジスタアドレス割付はBanner Engineering社によって頒布されている「DXM Configuration Tool」によって変更可能です。
なお、機器側の設定方法については本号ではご説明いたしませんので、各機器のマニュアルをご参照ください。
本アプリを使用するには、まず、「データ取得設定」を登録します。
初めて本アプリを起動すると、画面下部の【データ取得設定】のテーブルに、設定が一つ登録されています。
下部の[編集]ボタンをクリックすると、この設定を編集するダイアログが表示されます。このダイアログで、ネットワーク上のどのリモートI/Oのどのアドレスのデータを、アプリ内レジスタのどこにリマップするかを指定できます。画像では、ローカルネットワーク上のアドレス"192.168.1.250"にあるリモートI/O(今回の場合、TBEN-S2-4IOL)のレジスタアドレス2から2WORD分を取得し、アプリ内レジスタの0からのエリアにリマップするよう指定しています。
設定ダイアログで[OK]を選択すると、【データ取得設定】のテーブルに設定が反映され、【データロギング設定】のテーブルには指定したIPアドレスと対応するレジスタアドレスがリマップされています。
このまま、ローカルネットワーク上のアドレス"192.168.1.240"にあるDXM700からもデータを取得するよう登録していきます。
下部の[追加]ボタンをクリックすると、データ取得設定を新規追加するダイアログが表示されます。今度は、"192.168.1.240"のレジスタアドレス0から6WORD分取得し、アプリ内レジスタの6からのエリアにリマップするよう指定しました。
設定ダイアログで[OK]を選択して、【データ取得設定】のテーブルと【データロギング設定】のテーブルに設定とリマップが反映されたことを確認します。
これで「データ取得設定」の登録は完了です。画面上部の[接続]ボタンを押すと、右上のステータスが"オンライン"になり、リモートI/Oのレジスタのデータを取得できます。
取得したデータを加工したり、ログファイルに出力したりするには、「データロギング設定」を編集します。
【データロギング設定】のテーブルでリマップされたデータの一つを選択して下部の[編集]ボタンをクリックすると、このデータについて設定を編集するダイアログが表示されます。画像では、取得したデータを符号なし16bit整数(UINT)として扱い、"0.0055 * x"という式でスケーリングするよう指定しています。
設定ダイアログで[OK]を選択すると、【データロギング設定】のテーブルに設定が反映されます。リモートI/Oに接続すると、取得したデータが設定した数式通りに加工されていることを確認できます。
スケーリングの他に、bit抽出やバイトスワッピングを指定できます。
画像では、取得したデータのうちbit3から13bit分を抽出して符号なし整数に変換するよう指定しています。
バイトスワッピングは、次のようなルールで受信したバイトデータの順序を変換します。
まだリマップされていないアプリ内レジスタには、リマップされたデータや自分より上位のスケーリング済みデータをソースとしてデータロギングアイテムを登録できます。
画像では、ローカルネットワーク上のアドレス"192.168.1.250"のレジスタアドレス3をソースとしてbit2を1bit抽出するよう指定しています。
このまま表 1、表 2に示したリモートI/O機器のレジスタアドレス割付に合わせて、データロギングアイテムの登録を行っていきます。
このように、本アプリではリモートI/Oのアドレス範囲ごとにリマップし、リマップしたデータ1つずつについて、データの加工を指定することができます。
また、スケーリングしたデータをソースにしてさらに別の計算式で多重にスケーリングをかけることもできます。
【データロギング設定】テーブルの【ログ出力】の列にチェックが入っていれば、その項目をログファイルに出力できます。画像の状態で画面上部の[ロギング開始]ボタンをクリックすると、ステータスが"ログ実行中"になり、取得したデータが【ログ保存先】で指定したフォルダにファイル出力されます。
出力されたファイルは画像のようなCSV形式です。
ログはCSV形式のみではなく、Excelテンプレートや、開いているExcelブックに出力できます。
Excel出力を設定するには、一度切断し、画面上部の[詳細設定]ボタンをクリックします。
表示された詳細設定ダイアログの【Excel出力】タブで[Excel出力]にチェックを入れ、テンプレートファイルを指定し、先ほどと同じようにメイン画面上部の[ロギング開始]ボタンをクリックします。
すると、指定したテンプレートファイルをもとに、ログファイルと同じフォルダにxlsxファイルが生成されます。例えば、画像左のようなテンプレートをもとにすると、画像右のようなxlsxファイルがログファイルフォルダに作成されます。
画面上部の[通信モニタ]ボタンをクリックすると、通信モニタ画面が開きます。
通信モニタ画面上部の[開始]ボタンをクリックすることで、通信関係のイベントのモニタリングを開始できます。(ボタンの表示は[停止]に変わります)
ここまで、ターク・ジャパンが取り扱うリモートI/Oやワイヤレス製品と通信してデータのロギングを行う、弊社開発のデータロガーアプリ「センサデータロギングツール」についてご紹介しました。
スマートファクトリーやIIoTなどをキーワードに、産業分野には大きな変革の波が押し寄せ、今はその時流の真っ只中です。ソフテックでは、お客様のこうした変化への対応をお手伝いすべく、Modbus TCPのような産業向け規格を柔軟に取り入れた開発を承っています。
なお、本号でご紹介した「センサデータロギングツール」は、ターク・ジャパン株式会社が取り扱うリモートI/Oやワイヤレス製品のユーザー向けに、同社によって頒布が予定されています。
(R.O.)
関連ページへのリンク
関連するソフテックだより