「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
各メーカーのPLCプログラミングツールには、PLCのシミュレータが搭載されています。
シミュレータは、文字通り実機PLCをシミュレーションするものであり、実機PLCが無い状況でもPC1台あれば手軽にプログラムを動かしてみることができます。
対応命令に制限がある、タイマ精度が実機PLCと異なるなど多少制約はありますが、うまく活用することでPLCアプリケーションの開発効率を向上させることができます。
本技術レポートでは、過去の事例を取り上げ、シミュレータを活用することのメリット、注意すべき点について紹介したいと思います。
また、各シミュレータの機能についても簡単に紹介します。
ソフトウェア開発の現場では、コーディングを終えたあと、実際にプログラムを動作させてバグを潰すデバッグ作業を行います。
PLCアプリケーション開発でも同様で、なるべく現地の環境に近いデバッグ環境を社内に立ち上げてデバッグを行います。
デバッグ環境構築に最低限必要な実機PLCは、弊社ではお客様からお借りして使用することがほとんどです。
現地へ新規に納入するような案件であれば、実際に納めるPLCを借用してハードウェア確認も兼ねて使用することができますが、既に稼働しているシステムの改造案件である場合など、PLCの借用が難しいことも多々あります。
何とか実機PLCを確保しようと努力はしますが、どうしても確保できない場合にシミュレータを利用することも一つの選択肢となります。
シミュレータはPC上で動作するため、実機PLCと比較していくつか制約があります。
この制約を熟知した上で利用すれば非常に強力なツールであると思います。
他人が開発したプログラムを解析するようなケースにおいてもシミュレータのメリットが発揮されます。
ただ闇雲に回路を読んでいくよりも、動きを確認しながら見ていった方が、速く正確に解析することができるためです。
PLCは同じメーカーでも機種が多く存在するため、解析対象のプログラムに合った実機PLCを用意するのは大変です。
シミュレータならば機種設定を合わせるだけで利用可能となり、シミュレータが機種の違いを吸収してくれます。
弊社の事例では、古いPLCのリプレース案件で役立っています。
古いPLCの場合には更に実機PLCを準備することが大変になりますので、シミュレータが大活躍します。
シミュレータを利用することで、実機PLCでは行うことができないデバッグも可能となります。
組込み、パソコンアプリケーション開発でごく普通に行うステップ実行が代表例です。
ラダープログラムにおいても、好きな条件でブレークさせて1ステップずつ演算結果を確認していくということが、シミュレータを利用すると可能となります。
弊社のPLC技術者ならば、このようなデバッグ機能に頼らなくても通常は問題となりませんが、過去の事例では再現性の低いバグの原因追究を行う場面でシミュレータが威力を発揮しました。
バグが再現したらブレークするように条件設定し、再現するまでシミュレータを走らせておくという使い方です。
シミュレータによっては、ブレークした状態から過去に遡ってステップ実行する機能も搭載されていますので、バグ再現時の状態を確認できるだけでなく、より効率良く原因に辿りつくことが可能です。
また、これらのデバッグ機能は、ラダープログラムを学習している方にも有効です。
1ステップごとに命令の実行結果を確認することができるため、ラダープログラムの理解を深めるのに最適な機能です。
各社タッチパネルにもシミュレータがあり、PLCのシミュレータと連携できるものもありますので、HMI(ヒューマンマシンインタフェース)とセットで学習する際にも環境構築の手間が大きく軽減されます。
実機PLCは、制御プログラムを動作させるために専用で開発された組込みアプリケーションですが、シミュレータはあくまでWindows OS上でシミュレーションしているだけです。汎用的なWindows OS上で動作するため、どうしても制約は存在します。
この制約は「実機PLCとシミュレータの違い」として、どのPLCメーカーも取扱説明書に詳しく記載していますので、違いを熟知した上で利用する必要があります。
実機PLCとシミュレータの違いの中で代表的なものは、タイマの精度です。
実機PLCはリアルタイムな処理が可能ですが、Windowsアプリケーションであるシミュレータのタイマ精度はOSに依存します。
そのため、ラダープログラムで使用するタイマ命令、クロック系の特殊リレーなど時間に関係するものは、実機PLCと全く同一にはなりません。
厳密な時間管理が必要なプログラムには不向きということとなります。
対応命令にも実機PLCとシミュレータで違いがあります。
使用頻度の高い一般的な命令はどのシミュレータでも対応していますが、ソケット通信、ファイル処理といった外部との通信やリソースを使用するような命令は未サポートとなっているメーカーが多いです。
未サポート命令については、取扱説明書にまとめられており、命令が使われた場合にどのような動きをするかについても記載されています。
また、シミュレータによっては、実行中のプログラムで使用している未サポート命令をリストアップしてくれる機能もありますので、どこまでシミュレーションできるのか把握した上で利用する必要があります。
以上の通り、実機PLCと完全に同一の動作とはなりませんので無条件に信頼してしまうのは少々危険です。
三菱PLCの取扱説明書『GX Works2 Version1 オペレーティングマニュアル(共通編)』、18.1.1章「シミュレーション機能の安全および取扱い上の注意事項」にも以下の記述があります。
実機との違いや制約をしっかり把握した上で、目的を持って活用する必要があります。
最後に、PLCメーカー4社のシミュレータの特徴を簡単に挙げさせて頂きます。
詳しい情報は参考文献に記載した各社ドキュメントを参照頂ければと思います。
メーカー | シミュレータ | 内容 |
---|---|---|
三菱電機 | GX Simulator2 |
|
横河電機 | Virtual-M3 |
|
キーエンス | KV STUDIO |
|
オムロン | CX-Simulator |
|
PLC開発におけるシミュレータを活用した実機レスデバッグというテーマで、シミュレータの活用事例や注意点を紹介しました。
執筆にあたっての調査で、今まで使ったことが無かった機能についても理解が深まり、改めて開発効率向上に活用できると感じました。
皆様も本レポートを参考にして利用してみてはいかがでしょうか。
最後に、4社のシミュレータの機能については、本技術レポートではほんの一部しか紹介することができませんでした。
より詳細な情報は、参考文献に記載した各社のドキュメント、ホームページ、アプリケーション内のヘルプを参照頂ければと思います。
(M.S.)
関連ページへのリンク
関連するソフテックだより