1.PLCロガー&ビューアー
PLC側に特別なアプリケーション追加なしでPLCから任意のメモリ(デバイス)を定期収集します。
対象機種は現在手元にあるキーエンス(KV-nano),三菱(iQ-F(FX5)シリーズ),富士電機(SXシリーズ)、混在環境にも対応可能です。要望があれば増対応機種はやしていくつもりです。
ロガーやビューアーは世の中にたくさんありますが、細かいところでかゆいところで手が届かないことがあるかと思います。
ここで作成したロガーはPythonでCSVに落とし込み、ビューアーは生成したCSVファイルをExcelで可視化します。
どちらも細かな個々の要求に対するコーディネイトがしやすいことが特徴です。

1.1 ロガー
〇概要
PLC側に特別なアプリケーションを追加することなく、PLCから任意のメモリ(デバイス)を定期的に収集します。現在の対応機種はキーエンス(KV-nano)および三菱(iQ-F(FX5)シリーズ)です。混在環境にも対応可能で、必要に応じて対応機種を増やしていく予定です。
収集周期は1秒周期ぐらいからとなります。
これよりも早い周期が必要な場合は他の手段を検討する必要があります。
〇ロガーの設定
・動作定義CSVファイル
下記のフォーマットとなります。「メモリ定義CSVファイル」を複数定義し、
1,a1,0.5,192.168.100.50,8501,kv-nano
2,a2,2.5,192.168.100.51,1026,fx5u
・メモリ定義CSVファイル
下記のフォーマットとなります。1項目はメモリのアドレス表現で識別子+アドレス、2項目はデバイスコメントを記載します。
R0001,入力2
DM10300.U,ワーク1
DM10301.U,ワーク2
DM10302.U,ワーク3
DM10303.U,ワーク4
DM10304.U,ワーク5
PLCとの通信方式
・KV-nano 上位リンク通信
・iQ-FX5U MCプロトコル3Eフレーム
・SPH2000 ローダコマンド
を使用しています。
KV-nano,iQ-FX5U,SPH2000対応としていますが、確認していないだけで、KVシリーズやiQシリーズ,SXシリーズでも使用できるとは思っています。(MelsecのMCプロトコルは3Eフレームと4Eフレームがあり少々複雑)
※上位リンク通信はこちらを参考にしています。
※MCプロトコルはこちらを参考にしています。
1.2 ビューアー
ロガーで収集したcsvファイルを全体俯瞰ができるExcel形式のファイルに変換し、行列を入れ替えた上で、Excelのスパークライン機能を使ってグラフを作成します。
1.3 ソースコードおよび実行ファイル
下記のGithubにてソースコードおよび、Python環境の無い方でも実行可能なExe形式を公開しています。
実行ファイルはココでもダウンロードできます。
1.4 使い方
① ロガー実行
〇Python実行
Python PlcLogger.py "動作定義CSVファイルpath"
例:
Python PlcLogger.py Sample\cmdFile.csv
〇Exeファイル実行
PlcLogger "動作定義CSVファイルpath"
例:
PlcLogger Sample\cmdFile.csv
〇cmdFile.csv
1,Sample/a1,0.5,192.168.100.50,8501,kv-nano
2,Sample/a2,2.5,192.168.100.51,1026,fx5u
〇a1.csv
R0001,入力2
DM10300.U,ワーク1
DM10301.U,ワーク2
DM10302.U,ワーク3
DM10303.U,ワーク4
DM10304.U,ワーク5
〇a2.csv
X0001,入力2
D0000,ワーク1
D0001,ワーク2
D0002,ワーク3
D0003,ワーク4
D0004,ワーク5
② ビューアー実行
〇Python実行
Python PlcViewer.py "ログファイル名"
例:
Python PlcViewer.py a1_20240523.csv
〇Exeファイル実行
PlcViewer "ログファイル名"
例:
PlcViewer PlcViewer.py a1_20240523.csv