【三菱FXシリーズ】減算(SUB)命令の指令方法とラダープログラム例 |
您所在的位置:网站首页 › 三菱指令ddiv › 【三菱FXシリーズ】減算(SUB)命令の指令方法とラダープログラム例 |
「減算命令」とは、三菱電機製シーケンサFXシリーズにおける2ヶの定数またはデバイス値を減算して結果を求めるラダープログラム命令です。(A-B=C) この記事では、三菱電機製シーケンサFXシリーズにおける減算命令の指令方法とラダープログラム例について解説します。 注意 この記事中のラダープログラムはGX Works2で作成しており、PCタイプはFX3G/FX3GCに設定してあります。三菱電機製シーケンサFXシリーズにおいて、減算命令は以下のシーケンサ・バージョンで使用することが可能です。 FX3S:Ver1.00以降FX3G:Ver1.00以降FX3GC:Ver1.40以降FX3U:Ver2.20以降FX3UC:Ver1.00以降他の四則演算(加算・乗算・除算)については以下のページで解説しておりますので、宜しければご覧ください。 ![]() ![]() ![]() ![]() 目次 1. 減算命令の指令方法減算命令には、4種類の指令方法があります。 SUB:16ビット連続実行形SUBP:16ビットパルス実行形DSUB:32ビット連続実行形DSUBP:32ビットパルス実行形SUBは、減算(Subtraction)の略です。 メモ 連続実行形は、入力条件がONしている間、毎スキャン実行される命令です。 パルス実行形は、入力条件がONしたときの1スキャンのみ実行される命令です。 SUB:16ビット連続実行形(基本の形)16ビット連続実行形の減算命令は”SUB”と指令します。 こちらがSUB命令を使用したラダープログラム例です。 ![]() このラダープログラムは、入力条件であるX0がONしている間、データレジスタD0からD1を引いた結果をD2に格納するものです。 ![]() SUB命令は連続実行形であるため、X0がON中にD0またはD1の値が変わるとD2の値も追従して変わります。 先ほどのラダープログラムはGX Works2の回路上で SUB D0 D1 D2 と入力してEnterキーを押すと挿入されます。(小文字でもOKです。) ![]() 16ビットパルス実行形の減算命令は”SUBP”と指令します。 こちらがSUBP命令を使用したラダープログラム例です。 ![]() 連続実行形(SUB命令)との違いは、入力条件X0がON中にD0またはD1の値が変わってもD2の値は追従して変化しないことです。 X0がONした瞬間のD0からD1を引いた結果をD2に格納します。 メモ 入力条件がOFF→ONしたときに減算命令が1スキャンだけ実行します。 DSUB・DSUBP:32ビット実行形32ビット連続実行形の減算命令は”DSUB”と指令します。 32ビットパルス実行形の減算命令は”DSUBP”と指令します。 こちらがDSUB・DSUBP命令を使用したラダープログラム例です。 ![]() ![]() 32ビット実行形の場合、指定されたデバイスを若番とする2ワード(32ビット)長として扱われます。↑のラダープログラムの場合、D0・DからD2・D3を引いた結果をD4・D5に格納します。 ![]() 下記仕様のラダープログラムを減算命令を用いて解説します。 仕様 スイッチ(X0)を押すと、データレジスタD0に定数8を転送する。 スイッチ(X1)を押すと、データレジスタD1に定数3を転送する。 スイッチ(X2)を押すと、データレジスタD2にD0からD1を引いた結果を転送する。 スイッチ(X7)を押すと、データレジスタD0とD1に定数0を転送する。 ※スイッチが同時に複数ONすることはないとする。データレジスタに定数を転送するため、今回は転送(MOV)命令を使用します。 転送(MOV)命令については以下のページで解説しておりますので、宜しければご覧ください。 ![]() タイムチャートは以下のようになります。 ![]() 入力リレーX0がONすると、データレジスタD0に定数8を転送します。入力リレーX1がONすると、データレジスタD1に定数3を転送します。 入力リレーX2がONすると、データレジスタD0からD1を引いた結果をD2に転送します。 入力リレーX7がONすると、データレジスタD0とD1に定数0を転送します。(リセット的な意味) GOTの動作イメージGOTの動作イメージは以下のようになります。 ![]() スイッチ(X0)を押すとデータレジスタD0に定数8を、スイッチ(X1)を押すとデータレジスタD1に定数3を転送します。 スイッチ(X2)を押すとデータレジスタD2にD0からD1を引いた結果を転送します。 スイッチ(X7)を押すと、データレジスタD0とD1に定数0を転送します。 ラダープログラムラダープログラムは以下のようになります。 ![]() D0に定数8、D1に定数3を転送するために転送(MOV)命令を使用します。 X2がONすると、減算(SUB)命令が実行されてD0からD1を引いた結果をD2に転送します。 X7がONすると、D0とD1に定数0を転送しています。D0とD1で分けましたが、32ビット形(DMOV)でまとめても問題ありません。 注意 X7がONしただけでは、D2は”0”になりません。 D2を”0”にするためには、D0とD1が”0”の状態でX2をONさせる(減算させる)必要があります。 3.【例題②】2ワード長の減算値を求める下記仕様のラダープログラムを減算命令を用いて解説します。 仕様 スイッチ(X0)を押すと、データレジスタD0,D1に定数70,000を転送する。 スイッチ(X1)を押すと、データレジスタD2,D3に定数20,000を転送する。 スイッチ(X2)を押すと、データレジスタD4,D5にD0,D1からD2,D3を引いた結果を転送する。 スイッチ(X7)を押すと、データレジスタD0~D3に定数0を転送する。 ※スイッチが同時に複数ONすることはないとする。【例題①】と考え方は同じですが、扱う定数の値が大きいのでデータレジスタは2ワード(32ビット)長で使用します。 メモ データレジスタ1点(16ビット)では、-32,768~32,767の数値を扱うことができ、データレジスタ2点(32ビット)では、-2,147,483,648~2,147,483,647の数値を扱うことができます。 GOTの動作イメージ![]() 扱う数値が大きいためデータレジスタは32ビットとして扱いますが、動作としては【例題①】と同様です。 ラダープログラムラダープログラムは以下のようになります。 ![]() 32ビット実行形を使用するために、DSUB命令を使用します。 転送命令も同様に32ビット実行形であるDMOV命令を使用する必要があります。 三菱電機製シーケンサFXシリーズでは、32ビット実行形の命令のほとんどが頭文字に”D”が付きます。(すべてかもしれません。) X7でDMOV命令を2ヶ使用しましたが、多点転送(FMOV)命令という便利な命令も存在します。この命令を用いることで、1ヶの命令でまとめて定数を転送することができます。 多点転送(FMOV)命令については以下のページで解説しておりますので、宜しければご覧ください。 ![]() 三菱電機製シーケンサFXシリーズにおける減算命令について解説しました。 以下の参考書はラダープログラムの色々な「定石」が記載されており、実務で使用できるノウハウが多く解説されています。私がラダープログラムの参考書として自信をもってオススメできるものです。 ただし、ラダープログラムやPLCといった電気・制御設計は参考書やWebサイトのみでの学習には必ずどこかで限界が来ます。 各メーカが販売しているPLCやプログラム作成のアプリケーションを揃えるには安くても十万円以上の大きな費用が掛かり、独学は現実的ではありません。 ラダープログラムの一番現実的な学習方法は「実務で経験を積む」ことです。電気・制御設計者はこれから更に必要な人材になり続けますので、思い切って転職する選択肢もあります。 『doda』といった大手求人(転職)サイトには電気・制御設計の求人が数多く紹介されています。※登録は無料です。 「スキルこそ今後のキャリアを安定させる最も大切な材料」と考える私にとって電気・制御設計はとても良い職業だと思います。キャリアの参考になれば幸いです。 スポンサードリンク |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |