説明が下手ですね…指定したデバイス値を上下限でクランプする命令です。
この記事では、三菱電機製シーケンサQシリーズにおける上下限リミット命令の指令方法とラダープログラム例について解説します。
目次
1. 上下限リミット命令の指令方法
上下限リミット命令には、4種類の指令方法があります。
- LIMIT:16ビット連続実行形
- LIMITP:16ビットパルス実行形
- DLIMIT:32ビット連続実行形
- DLIMITP:32ビットパルス実行形
LIMITは、限度・限界(Limit)からきています。
パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。
LIMIT:16ビット連続実行形(基本の形)
16ビット連続実行形の上下限リミット命令は”LIMIT”と指令します。
こちらがLIMIT命令を使用したラダープログラム例です。
このラダープログラムでは、データレジスタD0の値をD10に転送します。その際、「D0の値が-10以下であればD10には-10」を「D0の値が10以上であればD10には10」を転送します。
LIMIT命令は「連続実行形」であるため、X0がONしている間にD0の値が変わるとD10の値も追従して変わります。LIMITP:16ビットパルス実行形
16ビットパルス実行形の上下限リミット命令は”LIMITP”と指令します。
こちらがLIMITP命令を使用したラダープログラム例です。
連続実行形(LIMIT命令)との違いは、入力条件X0がONした瞬間のみ命令が実行されることです。つまりX0した瞬間に上下限リミット命令にてD0の値をD10に転送します。
DLIMIT・DLIMITP:32ビット実行形
32ビット連続実行形の上下限リミット命令は”DLIMIT”と指令します。
32ビットパルス実行形の上下限リミット命令は”DLIMITP”と指令します。
こちらがDLIMIT・DLIMITP命令のラダープログラム例です。
32ビット実行形の場合、2ワード(32ビット)長のデータを対象としています。
上のラダープログラムでは、データレジスタD0,D1の2ワード長の値を-50000~50000の間でD10,D11に転送します。
D0,D1の値が-50000以下の場合、D10,D11には-50000を転送します。
D0,D1の値が50000以上の場合、D10,D11には50000を転送します。
データレジスタ2点(32ビット)では、-2,147,483,648~2,147,483,647の数値を扱うことができます。
2. 【例題①】入力値を上下限で制限する
下記仕様のラダープログラム例について解説します。
この時、D0の値が-50以下であれば-50を、50以上であれば50をD1に転送する。
※上記処理は、常時行うものとする。
上下限リミット命令を用いて、範囲を-50~50に指定します。
処理を「常時」行うために、常時ONする接点を使用します。三菱電機製シーケンサQシリーズにおける特殊デバイスで「SM400」が常時ONするデバイスになります。
GOTの動作イメージ
GOTの動作イメージは以下のようになります。
データレジスタD0の値が-50~50の範囲内であれば、その値のままD1に転送します。-50以下・50以上の場合は上下限でリミットが掛かります。
ラダープログラム
ラダープログラムは以下のようになります。
16ビット連続実行形のLIMIT命令を使用して、データレジスタD0の値を-50~50で上下限にリミットを掛けています。リミットを掛けた結果をD1に転送します。
3. 【例題②】増減する値を上下限でクランプする
下記仕様のラダープログラム例について解説します。
スイッチ(X1)を押している間、データレジスタD0を1ずつ減算(デクリメント)する。
データレジスタD0の値を、D10に格納する。
この時D0の値が「D2以下であればD10にはD2の値」「D1以上であればD10にはD1の値」を転送する。
データレジスタ「D1を上限値」「D2を下限値」とする。
【例題①】では上下限を±50の「定数」でしたが、今回はデータレジスタD1,D2になります。
1ずつ加算するにはインクリメント(INC)命令、1ずつ減算するにはデクリメント(DEC)命令を使用します。
インクリメント・デクリメント命令については以下のページで解説しておりますので、宜しければご覧ください。
【三菱FXシリーズ】インクリメント(INC)・デクリメント(DEC)命令の指令方法とラダープログラム例GOTの動作イメージ
GOTの動作イメージは以下のようになります。
スイッチ(X0)を押している間、データレジスタD0を1ずつ加算(インクリメント)して、スイッチ(X1)を押している間、データレジスタD0を1ずつ減算(デクリメント)します。
データレジスタD0の値をD10に格納します。この時D0の値が「D2以下であればD10にはD2の値」「D1以上であればD10にはD1の値」を転送します。
ラダープログラム
ラダープログラムは以下のようになります。
X0を入力条件とするインクリメント(INC)命令でデータレジスタD0の値を加算(インクリメント)します。
X1を入力条件とするデクリメント(DEC)命令でデータレジスタD0の値を減算(デクリメント)します。
上下限リミット(LIMIT)命令でD0の値をD2~D1に上下限でクランプして、D10に値を転送しています。
4. おわりに
上下限リミット命令について解説しました。
この命令を使用することにより、接点形比較命令を複数使用せずに「上下限で値をクランプする」ことが可能になります。
三菱電機製シーケンサFXシリーズでは使用できないシーケンサがあるのでご注意ください。
以下の参考書は、シーケンス制御・ラダープログラムについて詳しく解説しているものです。
本書は私が通っていた短大のシーケンス制御の講義に教科書として使用していました。
シーケンス制御で必要なスキルはリレー回路やラダープログラムを組めることだけではなく、ソレノイドバルブやインダクションモータなどの機器を理解していなければなりません。本書では、それらの機器を実際の機構を交えて解説しています。
ラダープログラムは基礎部分から、一連動作を組むまで解説していますので中級者が読んでも意味がある内容です。