「ラダー・ロジック」の版間の差分

削除された内容 追加された内容
SieBot (会話 | 投稿記録)
m ロボットによる 変更: es:Lenguaje Ladder
m 重複した記述の一方を削除。
38行目:
Z
 
この例では次のような関数を構成している:
<code>S = X AND ( Y OR Z )</code>
 
一般的にはラダーは左から右に、上から下に読むようにする。各々の行(ラング)の演算結果は出力コイルに格納され、その結果が後続のステップで入力として扱われることが多いためである。ラダー中に多数の「ラング」がある複雑なシステムでは、演算する順に番号を振るものもある。
50 ⟶ 51行目:
S X T
 
2. <code>T = X AND S</code>  この X は前述の1のものと同じものである。
 
2は多少複雑にしたシステムである。1行目の演算後、出力コイル(S)がラング2に代入され、さらにその演算結果が出力コイル T に代入される。Tの値は出力デバイス(ブザー、ランプなど)に反映されたり、さらに次のラングに代入される、といった具合である。
64 ⟶ 65行目:
 
この回路には2個のキースイッチがあり、銀行の金庫室のドアのモータを駆動する保安装置として利用できるかもしれない。2個スイッチのの常開接点が双方とも閉じたときだけ、ドアを開けるモータに電流が流れる。これは論理積回路になっている。
 
| |
| +-------+ |
|----------------------------+ +----|
| +-------+ |
| Remote receiver |
|-----][------------+-----------------O---|
| remote unlock | lock solenoid |
|-----][------------+
interior switch
 
この回路は架空の車の電子ドアロックをトリガする2つの機構を説明したものである。Remote receiver はは常に給電されている。lock solenoid は2つの接点のいずれかが閉じれば作動する。これは論理和回路になっている。
 
FA機器などでは通常は、モータのオン用には小さめで緑色の「始動」ボタンを、オフ用には大きな赤い「停止」ボタンを使う。
 
 
ラダー・ロジックはプロセス制御や[[ファクトリーオートメーション]]で[[シーケンス制御]]などで使われるPLCのプログラミングに広く使用されている。またラダー・ロジックは単純ではあるがクリティカルな制御が求められるシステム、あるいは旧来のリレーと実配線による回路の置き換えにも利用される。PLCは近年高機能化の一途をたどっており、非常に複雑なオートメーションシステムで使われるようになった。
 
ほとんどのPLCメーカが自社用のラダー・ロジック用のプログラミングツールを提供している。通常はメーカが異なれば完全な互換性はない。1つの言語というよりは、互いにかなり似たプログラミング言語群といえる。同じシリーズのPLCであっても型番が違えば記述方法が異なる、といったこともあるので、プログラムの移植は一筋縄ではいかない。
 
ラダー・ロジックは手続き型言語というよりは、ルールベースの言語といえる。ラダー中の「ラング」がルールである。ラング内のリレー各種のデバイス(ルール)は同時に、即時に「実行」される。PLC内部に実装されている場合は、通常はこれらのルールはソフトウェアによってシーケンシャルに(順番に)無限ループで実行される。実行速度が充分に速ければ(通常はミリ秒オーダーである)この同時性、即時性があるといえる。ただし、実際にPLCを使うときは、ラングの実行順序による制限を知っていなければならない場合もある。
 
== 簡単なラダー・ロジックのプログラム例 ==
この言語は複数の論理の検出(リレー接点)とアクチュエータ(コイル)を組み合わせたものとみなせる。ラングの左側から「真」(trueの、もしくは「閉じた」)接点を経由して出力側につながる経路がある場合、ラングはtrueであり、出力コイルは真(1)、もしくはtrueを保持することになる。経路がない場合は出力はfalse(0)となり、「コイル」に相当するデバイスは「不活性」な状態になる。この論理とリレー接点の対応は [[クロード・シャノン]] の考案によるものである。
 
ラダー・ロジックは「接点」によって「回路」を「閉じる」あるいは「開く」ことで「コイル」制御する。各コイルや接点はPLCのメモリの1ビットの状態に対応する。電気的なリレーと異なり、ラダー・ロジックのプログラムでは各ビットの参照回数に制限はなく、莫大な数の接点を持ったリレーといえる。
 
いわゆる「接点」は押しボタンやリミットスイッチといった機器からPLCへの入力を参照することができる。さらに、内部的なメモリのビットの状態や、プログラムのほかの箇所の出力を読み込むこともできる。
 
普通、各ラングの右端にはコイルを1個配置する。メーカによっては複数のコイルをサポートしている場合もある。
 
<code>--( )-- </code>
通常のコイル。ラングがtrueのときtrueとなる。
 
<code>--(\)-- </code>
反転コイル。ラングがtrueのときfalseとなる。
 
「コイル」(ラングの出力)はPLCに接続された機器を駆動する物理的な出力を表す場合もあるし、プログラムの別の箇所で使う内部的な記憶ビットの場合もある。
 
== 例 ==
 
下記の例は、ラダー・ロジックプログラム中の1個のラングがどのように見えるかを示したものである。実際のプログラムでは、これらが何百行も連なることになる。
 
 
1. ----[ ]---------|--[ ]--|------( )--
X | Y | S
| |
|--[ ]--|
Z
 
この例では次のような関数を構成している: S = X AND ( Y OR Z )
 
一般的にはラダーは左から右に、上から下に読むようにする。各々の行(ラング)の演算結果は出力コイルに格納され、その結果が後続のステップで入力として扱われることが多いためである。ラダー中に多数の「ラング」がある複雑なシステムでは、演算する順に番号を振るものもある。
 
2. ----| |-----------|---| |---|----( )--
X | Y | S
| |
|---| |---|
Z
----| |----| |-------------------( )--
S X T
 
2. T = X AND S  この X は前述の1のものと同じものである。
 
2は多少複雑にしたシステムである。1行目の演算後、出力コイル(S)がラング2に代入され、さらにその演算結果が出力コイル T に代入される。Tの値は出力デバイス(ブザー、ランプなど)反映されたり、さらに次のラングに代入される、といった具合である。
 
このシステムは非常に複雑な論理設計の分析・評価を可能にするものである。
 
より実用的な回路は下記を参照のこと。
| |
| |
|--][------------][-------------------O---|
キースイッチ1 キースイッチ2 ドアモータ
 
この回路には2個のキースイッチがあり、銀行の金庫室のドアのモータを駆動する保安装置として利用できるかもしれない。2個スイッチのの常開接点が同時に閉じたときだけ、ドアを開けるモータに電流が流れる。これは論理積回路になっている。
 
| |
164 ⟶ 88行目:
|-------| |--------------( )---|
| M始動 モータ |
 
このような [[ラッチ回路]]はラダー・ロジックでは非常によく使われる。「M始動」は実際にはコイルでは無くPLC内部の記憶ビットとして処理され、「始動」ボタンが放されても始動の状態を維持するために使われる。「'''自己保持回路'''」とも呼ばれる。
<!-- 行頭スペースでの固定幅フォント・自動改行無しモードは、InternetExplorer6では正しく表示されない。 -->