ST言語とは?構造化テキストの基本構文と活用例を解説

当サイトはアフィリエイト広告を利用しています

PLCプログラムといえば、ラダー(LD)を思い浮かべる方が多いかもしれません。

しかし、制御の複雑化やデータ処理の高度化が進む中で、テキストベースのST(Structured Text)言語にも注目が集まっています。

本記事では、ST言語の基本構文や特長、LD(ラダー)との違い、実際の書き換え例までをわかりやすく解説します。

ST言語とは?

ST(Structured Text)は、IEC 61131-3で定義されているPLC用の標準言語のひとつで、C言語やPascalのような構文を持つテキストベースの言語です。

IEC 61131-3では、以下の5つの言語が定義されています。

  • LD(ラダー図):電気回路図に近く、直感的なプログラム表現
  • FBD(ファンクションブロックダイアグラム):機能ブロックによる視覚的表現
  • ST(構造化テキスト):高機能なテキスト記述
  • IL(命令リスト):アセンブリに似た表記(現在は非推奨)
  • SFC(シーケンシャルファンクションチャート):状態遷移を明確にする構造

この中でSTは、数値演算・条件分岐・繰り返し・文字列処理など、高度な制御処理に強みを発揮します。

ST言語が選ばれる理由

特長内容
高度な処理が得意数学演算や文字列処理、複雑な分岐処理が記述しやすい
保守性・再利用性に優れる構造化されており、プログラムの可読性と保守性が高い
プログラミング経験が活きるC言語などの経験があると習得がスムーズ
ベンダー横断で使えるIEC 61131-3に準拠しており、多くのPLCメーカーで利用可能

ST言語の基本構文

変数の定義

VAR

    A : INT;

    B : BOOL;

END_VAR

代入・演算

A := 10 + 5;

B := (A > 10);

条件分岐

IF A > 100 THEN

    B := TRUE;

ELSE

    B := FALSE;

END_IF;

繰り返し処理

FOR i := 1 TO 5 DO

    Sum := Sum + i;

END_FOR;

よく使われる処理とサンプルコード

処理内容サンプルコード
入出力制御Y0 := X0;
数値演算Result := A * 2 + B / 4;
条件分岐IF Mode = 1 THEN Start := TRUE;
配列の使用Data[0] := 100;
ループと集計FOR i := 0 TO 4 DO Sum := Sum + Data[i]; END_FOR;

ST言語の活用シーン

STは、以下のような場面で特に力を発揮します。

  • ラダーで書くと煩雑になる処理
  • 数値演算や統計的な処理
  • データロギングや文字列の加工
  • パラメータをもとに柔軟な処理を行いたい場合

LD(ラダー)とSTの比較

項目LD(ラダー)ST(Structured Text)
視認性回路図のようで直感的テキストで論理構造が明確
習得のしやすさ電気系の知識があれば簡単C言語経験者には親しみやすい
複雑な処理不向き(可読性低下)得意(簡潔な記述が可能)
保守性規模が大きくなると低下構造化で維持しやすい
演算・文字列処理非常に煩雑または不可標準機能で対応可能

ラダーをSTで書き換える例

例1:入力 → 出力の基本制御

LD(ラダー)

ST

Y0 := X0;

例2:自己保持回路

LD(ラダー)

ST

IF (X0 OR Y20) AND X1 == 0 THEN

    Y20 := TRUE;

ELSE

    Y20 := FALSE;

END_IF;

例3:タイマの使用

LD(ラダー)

ST

T0(IN := X0, PT := T#100ms);

※ T0 はタイマファンクションブロックとして動作。使用するPLCメーカーによって記述方法がやや異なります。

STと他言語との使い分け

現実的な開発では、言語を組み合わせて使い分けることが重要です。

処理内容適した言語
シンプルなI/O制御LD
複雑な演算処理ST
条件による分岐・繰返しST
文字列や通信データの処理ST
状態遷移制御SFC

まとめ

ST言語は、PLCにおける「高度な処理を簡潔に実装するための選択肢」として非常に有用です。

  • ラダーよりも柔軟で構造化された記述が可能
  • 保守性や再利用性が高く、大規模システムにも向いている
  • 演算処理や文字列処理など、ラダーでは煩雑な処理に最適

今後はLD+STのハイブリッド設計が当たり前になる時代です。制御エンジニアとしてST言語も使いこなせるようにしておきましょう。

Picture of しーけん師匠

しーけん師匠

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

上部へスクロール