FB(ファンクションブロック)の学習
ほとんど仕事の話....会社で、PLC(プログラマブル・ロジック・コントローラ)を使うのですが、主にFA(ファクトリー・オートメーション)の分野で使われ、OA機器や通信には、ほとんど使われることはありません。PLCの”標準的な言語?”といわれるラダープログラムというのがあります。ラダ-は、リレー回路の代替として開発されたものなのですが、完全なリレーの代替とは言えず、リレーの回路で動作しえない回路も多く存在します。殆んどのメーカがオンラインエディット機能などを充実させており、機械を運転しながら、プログラムの作製や書き換えができてしまいます。しかし、このラダ-プログラム! かなりの曲者です。C言語やBASICなどの汎用言語とはかなり違いった作りになります。入出力は絶対番地になるのは、仕方がないのですが、変数やフラグまでが絶対番地扱いなのです。本当は再配置可能な変数やフラグが指定できるのですが、変数やフラグにラベルを付ける必要があることから、即席でプログラムする人ほど使いません。それと数値演算、論理演算、文字列も扱えるようになっているのですが、リレー回路を変形したような形になっており、ぱっと見何をやってるか分らないし、サブルーチンも独特で使い難いです。さらにです、せっかく苦労して作ったプログラムもメーカが変わると使えない~ ^^;そのせいもあり、ラダーでは長いプログラムを作らないようにしていました。せいぜい2kステップ以内でしたが....しかしユーザは、どんどん機能を要求してきます。このような状況だったのですが、近年やっとPLCの国際規格(IEC 61131-3)に整理されてきました。PLC大手の三菱電機も積極的にアナウンスしていませんが、新しいツールでは、IEC 61131-3に準拠しています。この規格では、ラダーを含め5種類の言語に対応するようになっており、制御対象に適した言語を選択したり、あるいは組み合わせて、保守性の良いプログラムを作るよう推奨しています。前置きが長くなってしまいましたが、ラダ-とFB(ファンクション・ブロック)、FB はST(ストラクチャード・テキスト)とラダ-の組み合わせで、プログラムの学習してみました。とくにST(ストラクチャード・テキスト)は、PASCALに似ており、構造化言語仕様となっています。拡大画像です。←ここをクリック