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については以下の記事で詳しく紹介していますので、参照してください。

各言語の特徴と「向いているケース」
それぞれの言語は設計思想や記述スタイルが異なるため、用途や担当者のスキルに応じて最適な言語を選ぶことが重要です。
言語 | 向いている場面 | 解説 |
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の複数言語を柔軟に活用する設計が一般的です。
とくに、CODESYS や TwinCAT などのモダンな開発環境では、言語の併用や状況に応じた最適な記述法が推奨されています。
CODESYSの場合
CODESYSは、IEC 61131-3に完全準拠したマルチ言語対応のソフトウェアPLC環境です。プロジェクト内で自由に言語を選択・混在でき、以下のような使われ方が一般的です。
処理内容 | 使用される言語 | 解説 |
入出力制御 | LD / FBD | 接点制御やシンプルな制御は視覚的な言語で構築 |
アナログ処理や計算 | FBD / ST | PID制御やフィルタ処理は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開発において重要なスキルとなるでしょう。
関連記事
