こんにちは。Yukiです。
三菱シーケンサ(FX3G)はタイマー カウンタが用意されています。
今回はそれらをST言語で使用してみようと思います。
なお使用するソフトはGX Works2 使用するシーケンサは 三菱FX3G CPU となります。
前回の① 基本編は下にリンクを張っておきます。
・タイマー
タイマーはTから始まるリレーの事です。指定時間が過ぎると接点が開きます。
例 : T001 T100
ST言語では入力リレー・出力接点・現在値に対して別々の呼び名があります。
入力リレーはTC○○○ となります。 例:TC001
出力接点はTS○○○となります。 例:TS001
現在値はTN○○○となります。 例:TN001
次のように指定できます。
タイマーを動作させるためにはOUT_T命令を使用します。
例:OUT_T(X001,TC001,K10);
上の例ではX001がONになればTC001がONになります。
指定時間(K10 = 1秒)たったらTS001がONになります。
ただし、1秒待つ前にX001がOFFになればTC001の経過時間はリセットされます。
積算させたい場合は積算タイマーを使用してください。(T250~T255)
例:
OUT_T(X001,TC001,K10);
Y001 := TS001;上の例ではX001が1秒間ONされ続けたらY001がONになります。
・カウンタ
カウンタはCから始まるリレーの事です。指定回数、入力リレーがONされると接点が開きます。
例 : T001 T100
実はカウンタを使用しなくてもST言語ではカウントできますが、今回は省略します。
ST言語ではタイマーと同じように入力リレー・出力接点・現在値に対して別々の呼び名があります。
入力リレーはCC○○○ となります。 例:CC001
出力接点はCS○○○となります。 例:CS001
現在値はCN○○○となります。 例:CN001
次のように指定できます。
カウンタを動作させるためにはOUT_C命令を使用します。
OUT_C(X001,CC001,K10);
X001がON/OFFを繰り返し、10回繰り返せばCS001接点がONします。
ただしこれでは10回押されたらそれで終了します。
それ以降はリセットするまでC001デバイスは使用できなくなります。
これを防ぐためにRST命令を使用します。
OUT_C(X001,CC001,K10);
RST(X002,C001);
Y001 := CS001;上の例ではX001をON/OFFを繰り返し、10回繰り返せばCS001がONになるため、Y001がOnになります。X002がONになればC001がリセットされます。
今回はカウンタを使用してオルタネート回路を作ってみたいと思います。
(オルタネート回路は入力接点一つでON/OFFを切り替えられる回路です)
OUT_C(X001,CC001,K1);
OUT_C(X001,CC002,K2);
Y001 := CS001;
RST(CS002,C001);
RST(CS002,C002);次のようにすることでオルタネート回路が簡単にできてしまいます。


コメント