IEC 61131-3で定義された5つの言語|用途と向いているケースを解説

PLC(プログラマブルロジックコントローラ)を用いた制御システムの開発では、どの言語を使ってプログラムを書くかが、開発効率や保守性に大きく影響します。

国際規格IEC 61131-3では、PLCプログラミングのための5つの標準言語が定義されており、それぞれに特性と適した用途があります。

本記事では、IEC 61131-3に準拠した5つのプログラミング言語の特徴と、それぞれがどのような制御に向いているのかをわかりやすく解説します。

IEC 61131-3で定義される5つの言語とは?

IEC 61131-3は、PLCのプログラミング仕様を国際的に統一した規格です。

この規格では、次の5つの言語が定義されています。

言語名略称特徴
ラダー図LD(Ladder Diagram)電気図に似た記述で、現場保守者にも視認性が高い
ファンクションブロック図FBD(Function Block Diagram)ブロックをつなげて制御ロジックを視覚的に表現
構造化テキストST(Structured Text)C言語に似た構文で、複雑な処理を柔軟に記述可能
命令リストIL(Instruction List)アセンブリ言語のような低レベル記述
(※現在は非推奨)
シーケンシャルファンクションチャートSFC(Sequential Function Chart)ステップごとのフロー制御に最適

IEC 61131-3については以下の記事で詳しく紹介していますので、参照してください。

IEC 61131-3とは?PLCプログラミング言語の国際規格をやさしく解説IEC 61131-3とは?PLCプログラミング言語の国際規格をやさしく解説

各言語の特徴と「向いているケース」

それぞれの言語は設計思想や記述スタイルが異なるため、用途や担当者のスキルに応じて最適な言語を選ぶことが重要です。

言語向いている場面解説
LD(ラダー図)・シンプルな論理制御・現場保守が中心のシステム電気回路図に似ており、電気技術者にも直感的に理解しやすい。IO制御や接点論理に強み。
FBD(ファンクションブロック図)・アナログ処理、PID制御・計算処理が多い装置ブロック単位で機能を視覚的に接続。機能の再利用性や複雑な演算に強い。
ST(構造化テキスト)・アルゴリズム制御・ループや条件分岐が多い場合C言語に近く、ソフトウェアエンジニアにもなじみやすい。可読性・保守性が高い。
IL(命令リスト)・レガシー設備の保守・リソースが限られた環境古いPLCや一部の制限的な環境で用いられるが、現在は非推奨。
SFC(シーケンシャルファンクションチャート)・工程制御や段取り作業・明確なステップが存在する処理ステップベースの処理に適し、工程管理や状態遷移の見える化に最適。

複数言語の併用も可能

IEC 61131-3準拠の開発環境では、1つのプロジェクト内で複数の言語を組み合わせて使うことも可能です。

たとえば:

  • 入出力処理:ラダー図(LD)
  • 計算処理や演算ロジック:構造化テキスト(ST)
  • フロー制御:SFC

このように目的に応じて最適な言語を選び、役割分担を明確にすることで、開発効率・可読性・保守性のすべてを高めることができます。

ソフトウェアPLCでより自由な言語選択が可能に

近年注目されているソフトウェアPLC(例:CODESYS、TwinCAT)では、IEC 61131-3準拠の複数言語をシームレスに統合できます。

従来のハードPLCと異なり、柔軟な処理能力と豊富なライブラリが利用可能なため、「LD+ST+SFC」など複数言語を活用した高度なシステム開発が一般的になっています。

CODESYSやTwinCATでの言語活用事例

近年のソフトウェアPLC環境では、IEC 61131-3の複数言語を柔軟に活用する設計が一般的です。

とくに、CODESYSTwinCAT などのモダンな開発環境では、言語の併用状況に応じた最適な記述法が推奨されています。

CODESYSの場合

CODESYSは、IEC 61131-3に完全準拠したマルチ言語対応のソフトウェアPLC環境です。プロジェクト内で自由に言語を選択・混在でき、以下のような使われ方が一般的です。

処理内容使用される言語解説
入出力制御LD / FBD接点制御やシンプルな制御は視覚的な言語で構築
アナログ処理や計算FBD / STPID制御やフィルタ処理はFBDで視覚的に、複雑な計算はSTで柔軟に記述
ステップ制御SFC工程やフロー制御を視覚的に定義しやすい
複雑な演算・構造化処理ST構造体、クラス、ライブラリなどを用いた高度な構造設計も可能

さらにCODESYSはSTの再利用性やモジュール化機能が充実しており、関数ブロックとSTの組み合わせによる設計が多く用いられます。

TwinCATの場合

TwinCAT(Beckhoff)はPCベースのオートメーション環境で、IEC 61131-3に準拠した開発言語に加え、C/C++やMATLAB/Simulinkとの統合も可能です。

特徴的な使われ方解説
EtherCATと組み合わせた高速制御FBDやLDでIO制御、STで演算を構築
ビジュアルエディタによるSFC管理工程制御の可視化と制御ロジックの分離に有効
モジュール設計やオブジェクト指向STの活用クラスやインターフェースを活用した高度な構造化プログラミング

TwinCATではSTによるメインロジック開発が主流ですが、装置によってはLDやSFCでの補助ロジックも併用されています。

ソフトウェアPLCでの開発は「言語設計力」が問われる

これらの環境では、単に言語を知っているだけでなく、「どの処理をどの言語で書くか?」「どう分担・モジュール化するか?」といった設計レベルでの判断力が開発の品質と効率を左右します。

まとめ:言語選定は“処理内容”と“誰が扱うか”で決めよう

IEC 61131-3に準拠した各言語にはそれぞれの強みがあります。

言語選定の際には、次の視点を意識しましょう。

  • 制御対象は単純か複雑か?
  • 保守は誰が行うか?現場担当者?ソフト技術者?
  • 処理内容は状態遷移型か、連続演算型か?

目的に応じて最適な言語を選び、必要に応じて併用することが、これからのPLC開発において重要なスキルとなるでしょう。

関連記事

日本で使われているPLCプログラミング言語の実態|ラダーが8割、FBD・STはどこまで広がっている?日本で使われているPLCプログラミング言語の実態|ラダーが8割、FBD・STはどこまで広がっている?
Picture of しーけん師匠

しーけん師匠

「しーけん師匠」こと当サイト運営者は、制御エンジニア歴35年以上。三菱電機製シーケンサや産業ネットワークを中心に、現場からIT/OTの連携まで幅広く対応。若手に制御エンジニアの魅力を伝え、業界の活性化と人材不足の解消を目指して情報を発信中。

上部へスクロール