回路の基礎

GX Works3のADD・SUB命令とは?
数値を足す・引く基本

ADD/SUBを「計算して結果を入れる」と読むコツを中心に、計算元・結果格納先・実行条件の見方を現場目線で整理します。

向いている人

  • GX Works3でADD/SUB命令の読み方を覚えたい人
  • Dレジスタの値を増減させる場面で迷いやすい人
  • 毎スキャン計算の注意点を現場目線で知りたい人

今回は深掘りしない範囲

  • ADDP / SUBPの厳密仕様の深掘り
  • 32ビット演算・_U付き命令の詳細設計
  • 桁あふれフラグやCPU差分の完全網羅

先に結論

  • ADD/SUBは数値を計算して結果を格納する命令
  • 初心者はどの値同士を計算し、結果がどこへ入るかを読む
  • まずは実行条件・計算元・結果格納先・上書きを追う

この記事のポイント

1. GX Works3のADD・SUB命令とは?

ADD系は指定したデータ同士を加算して結果を指定デバイスへ格納する命令、SUB系は指定したデータ同士を減算して結果を指定デバイスへ格納する命令として整理されます。MELSEC iQ-F系の算術演算命令でも、加算・減算の基本として扱われます。

GX Works3のADD・SUB命令の全体像

2. 先に結論:ADD/SUBは「数値を計算して結果を入れる」命令

初心者向けには、ADD/SUBを「計算する命令」と読むと実務で追いやすくなります。ラダーでは条件がONのときに演算が実行され、結果格納先が更新される流れで理解します。

基本の考え方

まず「どの値とどの値を計算して、結果がどこに入るか」を分けて読む。CPUシリーズや表示形式で命令名の見え方が異なる可能性があるため、プロジェクトのヘルプ確認も前提にします。

3. ADD D10 K1 D10 の読み方

ADD D10 K1 D10 は「D10の値に1を足し、結果をD10へ戻す」イメージです。計数や段階管理で値を1ずつ増やすときの基本形としてよく見ます。

現場での読み方

計算元1=D10、計算元2=K1、結果格納先=D10。毎回同じ場所に戻す回路なので、条件が続くと連続で加算される点を先に意識します。

4. SUB D20 K1 D20 の読み方

SUB D20 K1 D20 は「D20から1を引き、結果をD20へ戻す」イメージです。在庫数や残量の減算処理など、現場の減算ロジックで基本的に使われます。

後輩
ADDとSUBって、結局どこを見れば読み間違えませんか?
先輩
最初に「計算元2つ」と「結果格納先」を分離して見ること。特に格納先が同じDか別Dかで挙動の印象が変わるよ。

5. 計算元と結果格納先の見方

計算元を見る

  • 定数(K)かデバイス(Dなど)かを確認
  • 値が実際に更新されているかモニタする
  • 比較命令やMOVの結果を参照していないか確認

結果格納先を見る

  • 同じデバイスへ戻すか、別デバイスへ出すか
  • 他ネットワークで上書きされないか
  • 後段ロジックがその値をどう使うか追う

ADD/SUBは「計算した結果を入れる命令」です。ラダーを読むときは、式の正しさより先にデータの流れを追うとミスが減ります。

6. どこで使う?現場でよくある使い方

  • トリガ入力ごとに数量を+1 / -1する
  • 比較命令のしきい値判定前に内部値を更新する
  • カウンター・タイマー周辺で補正値を加減算する

既存記事とのつながり

MOV記事の「値を入れる」、比較命令記事の「値を判定する」、カウンター記事の「現在値を見る」の間を埋めるのがADD/SUBです。今回を押さえると「値を計算してから判定する」流れが一気に読みやすくなります。

7. 毎スキャン実行に注意する

条件がONし続ける回路でADD/SUBを置くと、PLCスキャンごとに連続実行される可能性があります。期待は1回の加算でも、実際は短時間で大きく増減してしまう失敗が起こります。

よくある失敗例

「ボタン1回のつもりで+1したかったのに、押している間ずっと加算」「減算後に別回路が同じDを上書きして戻る」が典型です。

後輩
1回だけ計算したいならどうしますか?
先輩
立上り条件を作るか、パルス実行形のADDP/SUBPを検討する。今回は基本優先だから、まずは毎スキャン実行を疑えるようになるのが大事だよ。

8. ADD/SUBとADDP/SUBPの違い

ADDP/SUBPはパルス実行形として扱われることが多く、常時ON条件でも毎スキャン連続計算を避けたい場面で検討されます。CPUシリーズ・命令体系・GX Works3の表示形式で見え方が異なる可能性があるため、実機対象のマニュアルとヘルプを併読してください。

ADD/SUBとADDP/SUBPの使い分けイメージ

発展項目の位置づけ

_U付き命令、32ビット演算、符号あり/なし、桁あふれフラグは応用範囲です。初心者はまず16ビットのADD/SUBでデータの流れを安定して読めるようになるのが近道です。

9. ADD/SUB命令が効かない時の確認手順

  1. 実行条件が本当にONしているか(前段条件)
  2. 計算元の値が期待どおりか(定数/デバイス)
  3. 結果格納先が別ネットワークで上書きされていないか
  4. 毎スキャン実行になっていないか
  5. 1回実行が必要なのに連続実行命令を使っていないか
ADD/SUB命令の確認フロー

10. GX Works3でモニタするときのポイント

ADD/SUBの前後で「実行条件」「計算元」「結果格納先」を同時監視します。1点だけ見ると誤判定しやすいため、最低3点セットで時系列確認するのが現場向きです。

現場で見るポイント

どのスキャンで値が変化したか、変化後に別回路で上書きされていないか、比較命令の判定にどう影響したかまで追うと、原因切り分けが速くなります。

11. 初心者が間違えやすいポイント

  • ADD/SUBを1回実行と思い込み、毎スキャン加減算を見落とす
  • 計算元と結果格納先を混同し、値の流れを逆に読む
  • 表示名の違いだけで別命令と誤解する
  • 応用機能(32ビットやフラグ)を先に追って基礎が崩れる

12. まとめ

ADD/SUBは、数値を計算して結果をデバイスへ格納する基本命令です。まずは「どの値を使い、どこへ結果を入れ、いつ実行されるか」を読むことに集中すると、GX Works3のラダー理解が安定します。次はMOV・比較命令・カウンター記事とつなげて読むと、実務での判断がさらに速くなります。

GX Works3のADD・SUB命令記事まとめ

今回の内容とつながる基礎・周辺テーマです。