LD(ラダー ダイアグラム:Ladder Diagram)言語は、電気回路のイメージで記述したグラフィカルなプログラム言語なので、スイッチやセンサなどの入力に応じてリレーなどを介してランプやモータなどの負荷をコントロールするI/O制御プログラムを記述するのに適しています。
一方、ST(ストラクチャード テキスト:StructuredText)言語は、工業制御(おもにPLC)用の高級言語で、用意された制御文、演算子、関数により、ラダー言語では記述しにくい数値演算処理などを部分的に処理するのに適しています。
したがって、ラダー言語で記述したI/O制御プログラム内に、工業単位系の変換や数値演算処理、通信やHMI用のテキスト処理、配列や構造体メンバへの代入処理などを、併記できると可読性の高いプログラムを記述することができるようになります。
従来からFB(ファンクションブロック)内に記述して、部品化することで、ラダープログラム上に組み込むことは可能でしたが、ラダー図とST言語記述を同一プログラム内に可視化された状態で記述することはできませんでした。
このような課題に対して、NJ/NXシリーズコントローラのプログラム開発ツールであるSysmac Studioでは、「インラインST」というST言語を記述する可視化されたボックスをラダー図の回路上に命令語のように記述できる機能をサポートしています。
インラインSTで使用する変数は、新たにそのボックス内で使用する変数を定義するのではなく、それが記述されているプログラムやFB(ファンクションブロック)、FUN(ファンクション)などのPOU(プログラム構成要素:Program Organizasion Unit)で定義されたローカル変数や全プログラムで共通定義されたグローバル変数を使用します。
以下に、その具体的な記述方法を示します。
<インラインSTの概要>
インラインST は、ラダー図内の「インラインST BOX」と呼ぶ箱(空白のテキスト入力エリア)の中に、ST 言語を記述するラダー図言語の要素です。
なお、ここで記述するST言語も、プログラムなどのPOUで記述するST言語と同様な仕様なので、IEC61131-3の規格に準じています。
これにより、数値演算処理や文字列操作処理を、ラダー図言語内で簡単に記述できます。
「インラインST BOX」への接続線が入力条件となり、それにしたがって、ST BOX 内のST 言語が実行されます。
なお、インラインST は、ラダー図言語で記載された回路要素の一種として扱われます。
そのため、FB やFUN とは異なり、前述のとおり、入力変数、出力変数、入出力変数はありません。
具合的な記述方法は下図のとおりです。
<インラインST 内のST言語の制限>
インラインST BOX 内には、任意のST言語プログラムを記述できます。
<インラインST の実行条件>
インラインST の実行条件は以下のとおりです。
・入力条件TRUE時
入力条件(パワーフローまたは左母線直結が可能)にしたがって動作。
立ち上がり または 立ち下がり指定は、入力条件の接点で指定
・入力条件FALSE時
何もしない
<インラインST 内の変数のスコープ>
インラインST でアクセスできる変数のスコープは、インラインST が記述されるラダー図のPOUと同一です。
<インラインST の制限>
1 回路あたりのインラインST 数は、一つまでとなります。
インラインSTは右母線にのみ接続可なので、右に続けてFB やFUN、OUT系の命令などを記述することはできません。
<インラインSTを使ったプログラム記述例>
下図のように、FB型命令の実行前処理と実行後処理をインラインSTで記述すると、わかりやすくなります。