三菱電機製シーケンサFXシリーズでは、データレジスタ(D)や拡張レジスタ(R)といった数値を格納することができるデバイスが存在します。
これらのデバイスはワードデバイスと呼ばれ、1点が16ビットで構成されます。
ワードデバイスは、ラダープログラム内で「タイマやカウンタの設定値」「アラームにするか判断する閾値」「一連動作の工程番号」などなど様々な活用方法があります。
ワードデバイスに格納した数値は、ラダープログラム内で数値を増減させるケースがよくあります。
この記事では、ワードデバイスの代表ともいえるデータレジスタに格納されたデバイスの数値を増減させるラダープログラム例を3ヶ解説します。
三菱電機製シーケンサFXシリーズにおけるデータレジスタについては以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】データレジスタ(D)の機能と動作例 【三菱FXシリーズ】データレジスタ(D)の使い方目次
1.【例題①】スイッチを押すたび数値が±1ずつ増減
下記仕様のラダープログラムを解説します。
スイッチ(X1)を押すと、データレジスタD0のデバイス値が-1される。
データレジスタのデバイス値を±1するにはインクリメント命令とデクリメント命令(※)を使用します。インクリメント命令とデクリメント命令は以下のページで解説しております。
【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例※)加算命令と減算命令を用いる方法もあります。詳細は【例題②】で解説します。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
ここでは「GOTはラダープログラムで使用されているデバイスのON/OFF状態や現在値をモニタしたり、変更することができるもの」程度の認識でOKです。
スイッチ(X0)を押すとデータレジスタD0のデバイス値が+1され、スイッチ(X1)を押すとデータレジスタD0のデバイス値が-1されます。
各々のスイッチが押されている時間は関係ありません。スイッチが押された瞬間に±1のみ増減します。
ラダープログラム
ラダープログラムは以下のようになります。
パルス実行形のインクリメント命令とデクリメント命令を使用します。
X0を入力条件とするパルス実行形のインクリメント(INCP)命令を用いることで、スイッチ(X0)を押すとデータレジスタD0が+1されます。
X1を入力条件とするパルス実行形のデクリメント(DECP)命令を用いることで、スイッチ(X1)を押すとデータレジスタD0が-1されます。
スイッチを押すたび、±1ずつ増減させるには今回のようにパルス実行形を使用するか、入力条件を1スキャンパルス化する必要があります。
仮に、↑のラダープログラムを連続実行形の命令を使用すると、スイッチが押されている間、高速でデータレジスタD0のデバイス値が増減してしまいます。
2.【例題②】スイッチを押すたび数値が±10ずつ増減
下記仕様のラダープログラムを解説します。
スイッチ(X1)を押すと、データレジスタD0のデバイス値が-10される。
【例題①】では各スイッチが押されるたび、データレジスタD0のデバイス値が±1ずつ増減しました。今回はスイッチが押されるたびに±10ずつ増減します。
インクリメント命令とデクリメント命令は、デバイス値を±1ずつ増減させる命令ですので今回は使用できません。
今回は加算命令と減算命令を使用します。三菱電機製シーケンサFXにおける加算命令と減算命令は以下のページで解説しております。
【三菱FXシリーズ】加算(ADD)命令の指令方法とラダープログラム例 【三菱FXシリーズ】減算(SUB)命令の指令方法とラダープログラム例GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押すとデータレジスタD0のデバイス値が+10され、スイッチ(X1)を押すとデータレジスタD0のデバイス値が-10されます。
【例題①】と同様、各々のスイッチが押されている時間は関係ありません。スイッチが押された瞬間に±10のみ増減します。
ラダープログラム
ラダープログラムは以下のようになります。
パルス実行形の加算命令と減算命令を使用します。
X0を入力条件とする[ADDP D0 K10 D0]は、X0がONした瞬間にD0のデバイス値と定数10を加算してその結果をD0に格納する命令です。
X1を入力条件とする[SUBP D0 K10 D0]は、X0がONした瞬間にD0のデバイス値から定数10を減算してその結果をD0に格納する命令です。
【例題①】と同様、スイッチを押した瞬間のみ命令を実行するためパルス実行形の命令を使用します。
3.【例題③】スイッチON中1秒毎に数値が±1ずつ増減
下記仕様のラダープログラムを解説します。
スイッチ(X1)を押している間、1秒毎にデータレジスタD0のデバイス値が-1される。
【例題①】と【例題②】では、スイッチが押された瞬間にデバイス値を増減していましたが、今回は押している間1秒毎に増減します。
スイッチが押されている間、1秒毎にONするデバイスを作る必要があります。色々な手法がありますが、今回はタイマを用いたクロックパルスを用います。
【ノウハウ初級】クロックパルスのラダープログラム例【三菱FX】GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押している間1秒毎にD0のデバイス値が+1され、スイッチ(X1)を押している間1秒毎にD0のデバイス値が-1されます。
ラダープログラム
ラダープログラムは以下のようになります。
X0がONしている間、1秒毎にONするタイマT0を用意します。
X0が1秒間ONし続けるとT0がONします。T0の入力条件にはT0自身のb接点が入っているため、T0は一瞬ONしてすぐにOFFします。
↓のようなイメージです。
T0のa接点はX0がONしている間1秒毎に1スキャンだけONしますので、このT0のa接点を入力条件とするインクリメント(INC)命令を用いれば「スイッチ(X0)を押している間、1秒毎にデータレジスタD0のデバイス値が+1される」ラダープログラムを作成することができます。
※X1も考え方は同じです。
4. おわりに
三菱電機製シーケンサFXシリーズで作成するデバイスの数値を増減するラダープログラム例を解説しました。
以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。
ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。
各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。
ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。
『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。
「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。