目次
前
次
制御回路の入力方式
ニモニック形式で入力するのは、アセンブリ言語での
プログラム開発経験がある技術者にとっては、苦には
ならないでしょう。
動作が一目瞭然なのは、ラダー図に軍配が挙がると思います。
そこで、ラダー図からニモニック形式に変換するコンバータを
作成します。
ラダー図記号
命令は、以下のリストで示す10個あります。
- OUT レジスタの1ビットデータ出力
- LD A接点データを入力し、レジスタに保存
- LDN B接点データを入力し、レジスタに保存
- AND A接点データとの論理積を求めレジスタに保存
- ANDN B接点データとの論理積を求めレジスタに保存
- OR A接点データとの論理和を求めレジスタに保存
- ORN B接点データとの論理和を求めレジスタに保存
- ANDB ブロック間の論理積を求めレジスタに保存
- ORB ブロック間の論理和を求めレジスタに保存
- SETC カウンタに8ビット値保存
- INC カウンタ値を+1
- DEC カウンタ値を−1
- SETT タイマーに8ビット値保存
- COND タイマー値がゼロになったとき、補助接点をONに
- JUMP 指定ステップに分岐
- JMPZ 条件成立で指定ステップに分岐
- END スキャン停止
これらの中で、ラダー図で利用するA接点、B接点
リレーコイルを記号で用意すると、次の命令は表現
できます。
OUT、LD、LDNの3命令をO、H、Nで表現します。
接続で表現する命令は、以下です。
図面展開するために、母線の間に8ユニットをおける
ようにして定めます。
上のラダー図からは、ニモニック形式に変換します。
LD X0
LD X2
ORB
LDN X1
OUT Y1
母線の間に8ユニットをおけるように、プログラマGUIを
構成すればよくなります。
ライン番号を指定後、ユニットAからHのいずれかを
選択して、コマンドに相当するA接点、B接点を
入れて行きます。
A接点、B接点は、H、Nを使い、OUTはO(オー)を利用。
途中に接続のために、+、|、-を使うことに。
入力と出力の接点番号が必要なので、入力はXを、出力はYを
使う仕様にします。
1ラインは8ユニットをおくとしたので、出力と入力の間に
接続がないときと接続があるときを指定しないと、ラダーで
回路を表現できません。
次の図の赤で示した線を引いておかないと、回路として
成立しないことがあります。
操作パネルでは、DからHにユニットとして横線を
設定できるので、接続指定は簡単。
AからHに格納するユニットを、表現しないと
ニモニックに変換できません。
表現は、次のように文字列に変換して対応します。
-H- -> LD
+ -> ORB
-N- -> LDN
--- -> con
| -> upc
-O- -> OUT
ニモニックで表現するときは、対象が必要なので
2ライン目で、対象レジスタを指定します。
1ラインには、ライン番号、コマンド、レジスタを与えられる
ように、操作パネルを次のように指定。
操作パネルの扱い方は、簡単にします。
上には、コマンドを選択できるように、リストボックスを配置
下には、レジスタを指定できるように、リストボックスを配置。
イメージが、1ラインのエリアに出てくるので
入力、出力、論理演算、ニモニックの対応が
一目で指定できます。
操作パネルのイメージから、必要なオブジェクトを抜き出して
いきます。
ボタン
ボタンを列挙すると、以下。
set number
increse line number
decrese line number
set command
set register
オブジェクトとの対応を決定。
btnSetNum : set number
btnIncNum : increse line number
btnDecNum : decrese line number
btnSetCmd : set command
btnSetReg : set register
リストボックス
リストは、コマンドとレジスタがあり、8ブロック
それぞれに用意すれば、オブジェクトとしては充分。
lbxACmd : upper A block
lbxBCmd : upper B block
lbxCCmd : upper C block
lbxDCmd : upper D block
lbxECmd : upper E block
lbxFCmd : upper F block
lbxGCmd : upper G block
lbxHCmd : upper H block
lbxAReg : lower A block
lbxBReg : lower B block
lbxCReg : lower C block
lbxDReg : lower D block
lbxEReg : lower E block
lbxFReg : lower F block
lbxGReg : lower G block
lbxHReg : lower H block
ラベル
???
(under construction)
目次
前
次