「ソフトウェアPLCとは何か」を自分なりに整理してみる。
まずハードウェアPLC。
こちらは、制御ロジックの実行、I/O処理、通信処理を、専用ハードウェアとベンダー固有の実行環境に強く結び付けて実現する制御装置。三菱・オムロン・キーエンスのPLCは基本的にこの系統に入る。
ではソフトウェアPLCとは。
そのPLC機能をソフトウェアランタイムとして実装し、汎用CPUベースの計算基盤上で動かす考え方。実行基盤は、Windows系、Linux系、BSD系、RTOS系など、製品によって異なる。TwinCATはPCベースシステムをリアルタイム制御に変えるソフトウェアとして提供され、CODESYSもWindowsやLinuxベースを含む幅広いプラットフォーム向けにランタイムを展開している。
ソフトウェアPLCの代表例としてはBeckhoffのTwinCAT、そしてCODESYSがある。
TwinCAT 3 PLC は IEC 61131-3 に基づくPLCをIPC上で実現する。
CODESYSはメーカー非依存の IEC 61131-3 ソフトウェアとして展開され、500超のメーカー、1000超のデバイスタイプで利用されている。
で、上記のこのことこそがソフトウェアPLCの本質だと思う。つまり、「制御ロジック」と「それを動かすハードウェア」が分離されることに本質がある。
ハードウェアPLCでは、制御ロジックは基本的にそのメーカーのハードと強く結び付く。
一方でソフトウェアPLCは、同じランタイム系・互換環境の上であれば、ハードウェアの選択自由度を大きくできる。
これが、ソフトウェアPLCの重要な価値の一つである「ハードウェアの抽象化」。