    関数の種類と数値扱い

連枝の関数命令

比較演算命令

名称 | 命令記号
16ビットデータ比較 | ＝、＜＞、＞、＜＝、＜、＞＝
32ビットデータ比較 | Ｄ＝、Ｄ＜＞、Ｄ＞、Ｄ＜＝、Ｄ＜、Ｄ＞＝

算術演算命令

名称 | 命令記号
BCD4桁加算（２） | ＋、＋Ｐ
BCD4桁減算（２） | －、－Ｐ
BCD4桁乗算 | ＊、＊Ｐ
BCD4桁除算 | ／、／Ｐ
BCD8桁加算（２） | Ｄ＋、Ｄ＋Ｐ
BCD8桁減算（２） | Ｄ－、Ｄ－Ｐ
BCD8桁乗算 | Ｄ＊、Ｄ＊Ｐ
BCD8桁除算 | Ｄ／、Ｄ／Ｐ
BIN16ビット加算（２） | B+、Ｂ＋Ｐ
BIN16ビット減算（２） | Ｂ－、Ｂ－Ｐ
BIN16ビット乗算 | Ｂ＊、Ｂ＊Ｐ
BIN16ビット除算 | Ｂ／、Ｂ／Ｐ
BIN32ビット加算（２） | ＤＢ＋、ＤＢ＋Ｐ
BIN32ビット減算（２） | ＤＢ－、ＤＢ－Ｐ
BIN32ビット乗算 | ＤＢ＊、ＤＢ＊Ｐ
BIN32ビット除算 | ＤＢ／、ＤＢ／Ｐ
16ビットBCDデータインクリメント | ＩＮＣ、ＩＮＣＰ
16ビットBCDデータデクリメント | ＤＥＣ、ＤＥＣＰ
32ビットBCDデータインクリメント | ＤＩＮＣ、ＤＩＮＣＰ
32ビットBCDデータデクリメント | ＤＤＥＣ、ＤＤＥＣＰ

BCD⇔BIN変換命令

名称 | 命令記号
BINデータ→BCD4桁変換 | ＢＣＤ、ＢＣＤＰ
DBINデータ→BCD8桁変換 | ＤＢＣＤ、ＤＢＣＤＰ
BCD4桁→BINデータ変換 | ＢＩＮ、ＢＩＮＰ
BCD8桁→DBINデータ変換 | ＤＢＩＮ、ＤＢＩＮＰ

データ転送命令

名称 | 命令記号
16ビットデータ転送 | ＭＯＶ、ＭＯＶＰ
32ビットデータ転送 | ＤＭＯＶ、ＤＭＯＶＰ
16ビットデータ否定転送 | ＣＭＬ、ＣＭＬＰ
32ビットデータ否定転送 | ＤＣＭＬ、ＤＣＭＬＰ
16ビットデータブロック転送（１） | ＢＭＯＶ、ＢＭＯＶＰ
16ビットデータブロック転送（２） | ＦＭＯＶ、ＦＭＯＶＰ
16ビットデータ交換 | ＸＣＨ、ＸＣＨＰ
32ビットデータ交換 | ＤＸＣＨ、ＤＸＣＨＰ

プログラム分岐命令

名称 | 命令記号
ジャンプ | ＣＪ

論理演算命令

名称 | 命令記号
16ビットデータ論理積（２） | ＷＡＮＤ、ＷＡＮＤＰ
32ビットデータ論理積 | ＤＡＮＤ、ＤＡＮＤＰ
16ビットデータ論理和（２） | ＷＯＲ、ＷＯＲＰ
32ビットデータ論理和 | ＤＯＲ、ＤＯＲＰ
16ビットデータ排他的論理和（２） | ＷＸＯＲ、ＷＸＯＲＰ
32ビットデータ排他的論理和 | ＤＸＯＲ、ＤＸＯＲＰ
16ビットデータ否定排他的論理和（２） | ＷＸＮＲ、ＷＸＮＲＰ
32ビットデータ否定排他的論理和 | ＤＸＮＲ、ＤＸＮＲＰ
BIN16ビットデータ2の補数（符号反転） | ＮＥＧ、ＮＥＧＰ

ローテーション命令

名称 | 命令記号
16ビットデータの右ローテーション（１） | ＲＯＲ、ＲＯＲＰ
16ビットデータの右ローテーション（２） | ＲＣＲ、ＲＣＲＰ
16ビットデータの左ローテーション（１） | ＲＯＬ、ＲＯＬＰ
16ビットデータの左ローテーション（２） | ＲＣＬ、ＲＣＬＰ
32ビットデータの右ローテーション（１） | ＤＲＯＲ、ＤＲＯＲＰ
32ビットデータの右ローテーション（２） | ＲＣＲ、ＤＲＣＲＰ
32ビットデータの左ローテーション（１） | ＤＲＯＬ、ＤＲＯＬＰ
32ビットデータの左ローテーション（２） | ＤＲＣＬ、ＤＲＣＬＰ

シフト命令

名称 | 命令記号
16ビットデータnビット右シフト | ＳＦＲ、ＳＦＲＰ
16ビットデータnビット左シフト | ＳＦＬ、ＳＦＬＰ
ビット左シフト | SFTL、SFTLP

継続命令

名称 | 命令記号
継続出力 | -->>
継続入力 | >>--
継続出力は必ず次行の継続入力につながります。番号はつきません。 | 一行だけで納まらない長いＡＮＤ回路などの時に使用します。

連枝の数値扱い

  「連枝」は  数値扱いはオムロン準拠になっています。

   オムロンでは、 ＤＭやチャンネルはすべて原則としてＢＣＤ値をそのまま入力して扱う。

  「連枝」はオムロンと同じ様に、直値オペランドはすべて、ＢＣＤ値がそのまま入っている。

  （特別、ＨＥＸ演算では、その同じ値いを、ＨＥＸＡとして扱う）

  例えば、ＭＯＶ　Ｋ１２３４　Ｄ０　とした場合　Ｄ０には１２３４Ｈ（０００１､００１０､００１１､０１００）が入る。

  もし　　　ＭＯＶ　Ｈ１２３４　Ｄ０　としても結果は　Ｄ０にはやはり同じ１２３４Ｈが入ります。

  このＤ０に入った値をＢＣＤ値と考えるか、ＢＩＮ値と考えるかはユーザの扱い方で任意となり、

  ＢＣＤ計算をすれば、ＢＣＤとして扱い、ＢＩＮ計算をすればＢＩＮ値として扱います。

  ＡＤＤ等のＢＣＤ演算は全て、システム内部で　bcd->bin して計算し再び

  bin->bcd に戻して格納している。ＢＩＮ演算であればそのまま計算し、計算結果をそのまま格納している。

   タイマ、カウンタはユーザはＢＣＤ値として扱う。

  （内部ではｂｃｄ->ｂｉｎ変換して、インクリメント、デクリメントをしている。

    値いを読む時は逆にｂｉｎ->ｂｃｄして取り出している。しかしユーザはこのことを考える必要はない）

  参考として

    三菱ＡＣＰＵは、ＢＩＮ計算がメインである。

    例えば、ＭＯＶ　Ｋ１２３４　Ｄ０　とした場合　Ｄ０には１２３４＝４Ｄ２Ｈ（００００､０１００､１１０１､００１０）が入る。

    もし　　　ＭＯＶ　Ｈ１２３４　Ｄ０　とすると結果は　Ｄ０には１２３４Ｈ（０００１､００１０､００１１､０１００）が入ります。

     ＢＩＮ計算は　ＷＯＲＤデバイスの内容をそのままＢＩＮ計算する


    基本命令と応用命令

ＰＬＣで動作する命令（ＰＬＣはＣＰＵ無選択で画面上での動作のみを前提にする場合です）

○基本命令はすべてのＣＰＵでサポートされています。

○応用命令、特殊命令は、各ＣＰＵで個別にサポートしている命令が違うので、各ＣＰＵのヘルプを参照して下さい。

基本命令

名称 | 命令
接点命令 | ＬＤ、ＬＤＩ、ＡＮＤ、ＡＮＩ、ＯＲ、ＯＲＩ
結合命令 | ＡＮＢ、ＯＲＢ
演算結果 | ＭＰＳ、ＭＲＤ、ＭＰＰ
出力命令 | ＯＵＴ、Ｔ、Ｃ
パルス命令 | ＰＬＳ、ＰＬＦ
デバイスのセット、リセット | ＳＥＴ、ＲＳＴ
シフト命令 | ＳＦＴ、ＳＦＴＰ
終了命令 | ＥＮＤ
継続命令 | －－＞＞、＞＞－－
註）継続命令は－＞＞は、次ぎの行の＞＞－－のみに継続動作します。

応用命令

名称 | 命令
比較演算命令 | ＝ ＜＞ ＞ ＜＝ ＜ ＞＝ Ｄ＝ Ｄ＜＞ Ｄ＞Ｄ＜＝ Ｄ＜ Ｄ＞＝
算術演算命令 | ＋、＋Ｐ、－、－Ｐ、＊、＊Ｐ、／、／Ｐ Ｂ＋、Ｂ＋Ｐ、Ｂ－、Ｂ－Ｐ、 Ｂ＊、Ｂ＊Ｐ、Ｂ／、Ｂ／Ｐ、Ｄ＋、Ｄ＋Ｐ、 Ｄ－、Ｄ－Ｐ、Ｄ＊、Ｄ＊Ｐ、Ｄ／、Ｄ／Ｐ、 ＤＢ＋、ＤＢ＋Ｐ、ＤＢ－、ＤＢ－Ｐ、 ＤＢ＊、ＤＢ＊Ｐ、ＤＢ／、ＤＢ／Ｐ、ＩＮＣ、ＩＮＣＰ、ＤＥＣ、ＤＥＣＰ DINC、ＤＩＮＣＰ、ＤＤＥＣ、ＤＤＥＣＰ
ＢＣＤ⇔ＢＩＮ変換命令 | ＢＣＤ、ＢＣＤＰ、ＢＩＮ、ＢＩＮＰ ＤＢＣＤ、ＤＢＣＤＰ、ＤＢＩＮ、ＤＢＩＮＰ
データ転送命令 | ＭＯＶ、ＭＯＶＰ、ＣＭＬ、ＣＭＬＰ、ＮＥＧ、ＮＥＧＰ、ＸＣＨ，ＸＣＨＰ ＤＭＯＶ、ＤＭＯＶＰ、ＤＣＭＬ、ＤＣＭＬＰ、ＤＸＣＨ、ＤＸＣＨＰ ＢＭＯＶ、ＢＭＯＶＰ、ＦＭＯＶ、ＦＭＯＶＰ
論理演算命令 | ＷＡＮＤ，ＷＡＮＤＰ、ＤＡＮＤ、ＤＡＮＤＰ ＷＯＲ，ＷＯＲＰ、ＤＯＲ、ＤＯＲＰ ＷＸＯＲ，ＷＸＯＲＰ、ＤＸＯＲ、ＤＸＯＲＰ ＷＸＮＲ，ＷＸＮＲＰ、ＤＸＮＲ、ＤＸＮＲＰ ＤＥＣＯ、ＤＥＣＯＰ
ローテーション | ＲＯＲ、ＲＯＲＰ、ＲＣＲ、ＲＣＲＰ、ＲＯＬ、ＲＯＬＰ、ＲＣＬ、ＲＣＬＰ ＳＦＲ、ＳＦＲＰ、ＳＦＬ、ＳＦＬＰ
マスタコントロール命令 | ＭＣ、ＭＣＲ
ビット操作命令 | ＳＴＣ、ＣＬＣ
ＪＭＰ命令 | ＳＣＡＬＬ、ＢＴＯＮＪ、ＣＪ、ＲＥＴＲＮ
終了命令 | ＥＮＤ、ＦＥＮＤ

各ＣＰＵのみでサポートする特殊命令

名称 | 命令
通信命令 | ＳＥＲＩ, ＳＥＲＯ、ＳＲＧＯ、ＳＲＧＯＰ（ＰＩＣ） ＳＲＩＮ、ＳＲＯＴ（Ｈ８）
エンコード命令 | ＥＮＣＯＤ（ＰＩＣ、Ｈ８）
ティーチングタイマ | ＴＴＭＲ（ＰＩＣ）
高速カウンタ | ＨＣＴＲ（ＰＩＣ）
パルス発振命令 | ＰＵＬＳＥ、ＳＴＥＰ（ＰＩＣ）
液晶表示命令 | ＬＣＤＨ、ＬＣＤＨＰ、ＬＣＤＬ、ＬＣＤＬＰ、ＢＣＤＤＡ、ＢＣＤＤＡＰ（ＰＩＣ、Ｈ８）
７セグメント表示命令 | ＳＥＧ、ＳＥＧＰ、ＤＳＥＧ、ＤＳＥＧＰ（ＰＩＣ）
Ｄ／Ａ、Ａ／Ｄ変換命令 | ＡＤＣＯ、ＡＤＣＯＰ、ＤＡＣＯ（ＰＩＣ、Ｈ８）
ソフトウエアタイマ ダイレクト出力 | ＭＣ１、ＭＣ１００（ＰＩＣ、Ｈ８） ＯＵＴＤ、ＳＥＴＤ、ＲＳＴＤ、ＭＯＶＤ、ＭＯＶＫ


間接アドレス指定

間接ｱﾄﾞﾚｽ指定

間接アドレス指定用レジスタ　ＶＢ

（ひとつのみです）

  ＭＯＶ　Ｋ２０  ＶＢ

  はＶＢをＤメモリーの20番地、つまりＤ２０を指し示していることになります。

  「連枝」ではこれを　ＭＯＶ　ＶＢ　Ｈ２０としても結果は同じになり、ＢＣＤ値の２０と解釈します。

  ＭＯＶ  Ｖ０  Ｄ５

  ＭＯＶ　Ｋ２５　Ｖ０

  ＭＯＶ　Ｖ０　Ｋ２Ｘ３０

  はいづれも、ＶＢの指定しているＤメモリーのアドレスが対象になります。

  （ＭＯＶ　ＶＢ　Ｋ２０　と指定されている場合は、Ｄ２０の値いがコピーされます）。

  ＭＯＶ  Ｖ１  Ｄ５

  ＭＯＶ　Ｋ２５　Ｖ１

  ＭＯＶ　Ｖ１　Ｋ２Ｘ３０

  はいづれも、ＶＢの指定しているＤメモリーのアドレスの値いを扱った後、アドレスを一つ増加します。

  （ＭＯＶ　ＶＢ　Ｋ２０　と指定されている場合は、Ｄ２０の値いがコピーされた後に、Ｄ２１を指定します）。

  ＭＯＶ  ＶＦ  Ｄ５

  ＭＯＶ　Ｋ２５　ＶＦ

  ＭＯＶ　ＶＦ　Ｋ２Ｘ３０

  はいづれも、ＶＢの指定しているＤメモリーのアドレスの値いを扱った後、アドレスを一つ減少します。

  （ＭＯＶ　Ｋ２０　ＶＢ　と指定されている場合は、Ｄ２０の値いがコピーされた後に、Ｄ１９を指定します）。


    ワード（16ビット）データの場合

ワードデータは、基本命令、応用命令で使用する16ビットの数値データです。

連枝で扱えるワードデータは、下記2種類です。

  • 10進定数-----K0～K9999

  • 16進定数-----H0000～HFFFF

ワードデータは、ワードデバイスおよび桁指定したビットデバイスが使用できます。

ビットデバイス使用時

  1. ビットデバイスは桁指定により、ワードデータを扱うことができます。ビットデータの桁指定は、桁数 ビットデバイスの先頭番号で指定します。桁指定は4点（4ビット）単位で、K1～K4までの場合は、桁指定ビットデバイスの先頭号で示します。たとえばX0を桁指定した場合の対象点数は、次のようになります。

  • K1X0-----X0～X3の4点が対象

  • K2X0-----X0～X7の8点が対象

  • K3X0-----X0～XBの12点が対象

  • K4X0-----X0～XFの16点が対象

                    16ビット命令時の桁指定範囲

  2. ソース(S)側に桁指定のある場合、ソースデータとして取り扱える数値は表のようになります。

                    桁指定と取り扱える数値の一覧

桁指定と取り扱える数値の一覧
指定手多数 | 10進定数 | 16進定数
K1（4点） | 0～9 | 0～F
K2（8点） | 0～99 | 0～FF
K3（12点） | 0～999 | 0～FFF
K4（16点） | 0～9999 | 0～FFFF

ワードデバイス使用時

      ワードデバイスは、1点(16ビット)単位で指定します。

ポイント

0～Fまでの数値を4つの接点（ビット）で現すと下記のようになります。


    ダブルワード(32ビット)データの場合

  ダブルワードデータは、基本命令、応用命令で使用する32ビットの数値データです。

連枝で扱えるワードデータは、下記2種類です。

  • 10進定数-----K00000000～K99999999

  • 16進定数-----H00000000～HFFFFFFFF

ダブルワードデータは、ワードデバイスおよび桁指定したビットデバイスが使用できます。

ビットデバイス使用時

  1. ビットデバイスは桁指定により、ワードデータを扱うことができます。

ビットデータの桁指定は、桁数 ビットデバイスの先頭番号で指定します。

    桁指定は4点（4ビット）単位で、K1～K8まで指定できます。

      たとえばX0を桁指定した場合の対象点数は、次のようになります。

  • K1X0-----X0～X3の4点が対象K5X0-----X0～X13の20点が対象

  • K2X0-----X0～X7の8点が対象K6X0-----X0～X17の24点が対象

  • K3X0-----X0～XBの12点が対象K7X0-----X0～X1Bの28点が対象

  • K4X0-----X0～XFの16点が対象K8X0-----X0～X1Fの32点が対象

            32ビット命令時の桁指定設定範囲

  2. （ｂ）ソース（Ｓ）側に桁指定のある場合、ソースデータとして取り扱える数値は表のようになります。

桁指定と取り扱える数値の一覧
指定桁数 | 10進定数 | 16進定数
K1（4点） | 0～9 | 0～F
K2（8点） | 0～99 | 0～FF
K3（12点） | 0～999 | 0～ＦＦＦ
K4（16点） | 0～9999 | 0～ＦＦＦＦ
K5（20点） | 0～99999 | 0～ＦＦＦＦＦ
K6（24点） | 0～999999 | 0～ＦＦＦＦＦＦ
K7（28点） | 0～9999999 | 0～ＦＦＦＦＦＦＦ
K8（32点） | 0～99999999 | 0～ＦＦＦＦＦＦＦＦ

ポイント

桁指定処理を行う場合、ビットデバイスの先頭デバイスNo．は任意の値が使用できます。

ワードデバイス使用時

    ワードデバイスは、下位16ビットで使用するデバイスを指定します。

    32ビット命令では、（指定デバイス番号）と（指定デバイス番号＋１）を使用します。

ただし、Ｈ８のＡポートからＢポートまでのＡ０～ＡＦの例外的な割り当てを除いて、各ポートは？０～？７までしか存在せず、入出力の番号が連続しないので、入力は補助リレーに変えてデータとして扱い出力も補助リレーから出力に当てはめてください。


    PICの場合

PICの数値認識

  今までの数値認識はACPUの動作確認で行われてきました。これは市販のシーケンサを対象にシーケンサはこんなに便利なものでプログラムも簡単にできるというところを述べてきましたが、実行画面において数値設定は、タッチパネルで使用するのと同じ感覚で使用できるようにしたのです。これはあくまでも市販のシーケンサを対象にしたものでPICを対象にしたものではありません。それはPICにタッチパネル用のソフトが無いからです。

  ですが、PICにも数値を認識させる方法があります。それは入力接点を使う方法です。

PIC・16F877にはPICのピンにはそれぞれの対応する入出力があります。

    入出力ビット番号　　　　対応ピックPIN名

  • X00　から　X05　　　　（　RA0　から　RA5　）

  • X10　から　X17　　　　（　RB0　から　RB7　）

  • X20　から　X27　　　　（　RC0　から　RC7　）

  • X30　から　X37　　　　（　RD0　から　RD7　）

  • X40　から　X42　　　　（　RE0　から　RE2　）

        合計　　　　33 ピン

        Xに入力のXか出力のYが入ります。

注意

出力も入力と同じPINを使用しますので、入力に使用すると出力としては使用できません。

PICでの数値認識ついては入出力が断続されるので直接認識させることができません。入力を一旦内部出力に変換してからBCDやバイナリー変換ができます。

参考回路

0から99まではBCD表示であれば直値ができます。

0からFFまでのBINの場合はBCDに変換してください。

桁入力の場合はXをMに変換して、Mのビットとして扱ってください。

3桁の出力の場合は直接Yを出さずMのビットとして扱い、MをYに変換して扱ってください。


    数値設定について

概要： データレジスタＤやビットで指定されている不確定数値に数値を入れることができます。数値設定にはシングルワードとダブルワードがあります。また数値は実数K（BCD表示）とヘキサH（BIN表示）がありKとHの見分け方も記してあります。

数値設定のメニュー

   数値設定のアイコン

数値設定の仕方

シングルワードの設定

回路の中で、Dで表示された数値を設定します。

数値設定ダイアログボックスを表示して、回路からDの付いた番号をクリックします。設定項目にD番号が表記されます。新しい数値にマウスを当て入力可能にします。数値にＫかHを付けて数値を入力してください。

4桁の数値が決められたD番号に入ります。たとえばD2に40と入れればD0は40が入ります。

HはHEXを表示しますが、Dをどの命令で使うかによってBCDでもBINでも自由に使えます。たとえば40をBIN命令で使用すれば、BCD数値をBIN数値に変換すれば、40はBCD数値として扱われ、BCD命令でBIN数値をBCD数値に変換すれば、40はBIN数値として扱われます。

保存が必要なら保存のチェックボックスにチェックを入れてからOKをクリックしてください。Dの番号の上に設定された数値が表示されます。Dの値は変更のない限り、電源ONか電源リセットされる度に設定された数値になります。

ダブルワードの設定

回路の中で、Dで表示された数値を設定します。

数値設定ダイアログボックスを表示して、DWにチェックを入れて、回路からDの付いた番号をクリックします。設定項目には選んだDしか表示されませんが、実際はDとD+1の番号が選ばれます。

新しい数値にはH0と表示されますが、DとD+1には0が入っているという意味です。この0を消してH8桁までの数値を入れてください。

このときD0は下4桁を表し、D+1は上4桁を表します。ここでもし、D0に12345678と入れた場合、D0には5678が入り、D1には1234が入ります。

HはHEXを表示しますが、DとD+1をどの命令で使うかによってBCDでもBINでも自由に使えます。たとえば12345678をBIN命令で使用すれば、12345678はBＩＮ数値として扱われ、BCD命令で使用すれば、12345678はBＣＤ数値として扱われます。ただし、表示は下4桁を表します。8桁を知るには数値設定ダイアログボックスで現値をクリックしてください。8桁ある場合は8桁の数値が表示されます。

保存が必要なら保存のチェックボックスにチェックを入れてからOKをクリックしてください。Dの番号の上に設定された数値が表示されます。Dの値は変更のない限り、電源ONか電源リセットされる度に設定された数値になります。

動作確認終了時のメッセージ

  終了時に「実行ファイルのスタート設定の変更を保存しますか？」というメッセージがでますので、保存なら「はい（Y）」を保存しないのであれば「いいえ（N）」をクリックしてください。

「はい（Y）」をクリックすると次にこのファイルの動作確認をするとき前のDの数値が読み込まれD番号に表示されます。

「いいえ（N）」を選ぶと数値設定で、保存にチェックをいれても保存されませんのでもう一度設定しなおす必要があります。

前に設定がしてあると新しく設定しても終了時に「いいえ（N）」クリックすると前の設定値に戻ります。「キャンセル」を選ぶと終了を選ぶ前の画面に戻ります。設定の時に保存のチェックを外すと終了時のメッセージはでません。

KとHの見分け方

関数のKとHの見分け方は数値にA～Fが入っているかいないかで見分けます。その理由はH（ヘキサ）は0～Fまでで0～9までを含んだ値になります（Kは0～9まで）。

従って4桁、または8桁の内A～Fまでが含まれているとこれはH指定だとわかりますが、0～9までだとKを指定したのか、Hを指定したのか、見分けがつきません。この場合BCDとして扱えばK、BINとして扱えばHとして判断します。


    エラーフラグ（M9010）

次の場合、エラーフラグ（M9010）がONし、命令は実行しません。

  1. BCDデータの各桁に0～9以外（A～F）の値があるとき。

            次の命令は該当する命令です。

              BCD4桁加算命令　　　　　　+=、+=P、+、+P

              BCD4桁減算命令　　　　　　－=、－=P、－、－P

              BCD8桁加算命令　　　　　　D+=、D+=P、D+、D+P

              BCD8桁減算命令　　　　　　D－=、D－=P、D－、D－P

              BCD4桁乗算命令　　　　　　＊、＊P

              BCD4桁除算命令　　　　　　/、/P

              BCD8桁乗算命令　　　　　　D＊、D＊P

              BCD8桁除算命令　　　　　　D/、D/P

              INC、DEC命令　　　　　　　　INC、INCP、DEC、DECP、DINC、DINCP、DDEC、DDECP

              BIN命令　　　　　　　　　　　　BIN、BINP、DBIN、DBINP

  2. 除数に0指定したとき

              BCD4桁除算命令　　　　　　/、/P

              BCD8桁除算命令　　　　　　D/、D/P

              BIN16ビット除算命令　　　　B/、B/P

              BIN32ビット除算命令　　　　DB/、DB/P

  3. BCD、BCDP命令で9999を超えて指定することはできません。

  4. DBCD、DBCDP命令で999999995F5E0FFを超えて指定することはできません。

  5. BMOV、FMOVでS、Dからn点のデバイス範囲が該当デバイスの範囲を超えているとき。

次の命令にはエラーフラグ（M9010）はありません

    BIN（B/、DB/を除く）

    データ転送（BMOV、FMOVを除く）

    論理演算命令

    ローテーション命令

    シフト命令


    キャリーフラグ（M9012）

STC命令とCLC命令

回路

使用可能デバイス

M9012

機能-----STC

  ・M9012をONさせます。

  ・M9012の動作はCLCを実行するか、キャリーフラグ動作のある命令を実行するまでONの状態を保ちます。

機能-----CLC

        ・M9012をOFFします。

        ・キャリーフラグ動作のある命令を実行する前に、CLC命令でM9012をOFFにします。

実行条件：　STC命令、CLC命令の実行条件は次のようになります。

キャリーフラグ（M9012）の使用法

次の場合、キャリーフラグ（M9012）がONします。

  1. 算術計算で9999を超えたとき（桁上がりによるキャリーフラグON）

            BCD4桁加算　　　　　　+=、+=P、+、+P

  2. 算術計算で0以下になったとき（桁下がりによるキャリーフラグON）

            BCD4桁減算　　　　　　－=、－=P、－、－P

      BCD8桁減算　　　　　　D－=、D－=P、D－、D－P、

            BCD16ビット減算　　　 B－=、B－=P、B－、B－P

      BCD32ビット減算　　　 BD－=、BD－=P、BD－、BD－P、

  3. 算術計算でFFFFを超えたとき（桁上がりによるキャリーフラグON）

            BIN16ビット加算　　　　B+=、B+=P、B+、B+P

  4. 算術計算で99999999を超えたとき（桁上がりによるキャリーフラグON）

            BCD8桁加算　　　　　　D+=、D+=P、D+、D+P

  5. 算術計算でFFFFFFFFを超えたとき（桁上がりによるキャリーフラグON）

            BCD32ビット加算　　　 DB+=、DB+=P、DB+、DB+P

  6. ローテーションのときONビットがキャリーフラグをONさせたとき

      右ローテーション　　　　ROR、RORP、RCR、RCRP、DROR、DRORP、DRCR、DRCRP

      左ローテーション　　　　ROL、ROLP、RCL、RCLP、DROL、DROLP、DRCL、DRCLP

  7. シフトのときONビットがキャリーフラグをONさせたとき

      右シフト　　　　　　　　　 SFR、SFRP

      左シフト　　　　　　　　　 SFL、SFLP

桁上がりによるキャリーフラグ

算術演算命令では+計算の場合、16ビットでは最大桁数は4桁しかデータレジスタに格納できません。そのため上1桁は浮いてしまうことになります。どうせ上1桁は1しかありませんので、これをデータレジスタをも1個取らないで、その分キャリーフラグをONさせて置こうという訳です。これならデータレジスタの節約にもなります。32ビットの場合は最大8桁ですから9桁目はキャリーフラグで代用しても差し支えない訳です。

どうゆう時にキャリーフラグがONするかというと

  1. +、+Pの場合、答えが9999を超えたとき

  2. D+、D+Pの場合、答えが99999999を超えたとき

  3. B+、B+Pの場合、答えがFFFFを超えたとき

  4. DB+、DB+Pの場合、答えがFFFFFFFFを超えたとき

桁下がりによるキャリーフラグ

－=、－=P、B－=、B－=Pの場合、D<S、であれば答えは0以下となります。DからSは減算できませんので、10000を借りてきます。つまり、10000+DからSを引いて答えを出します。

－、－P、B－、B－Pの場合はS1＜S2であれば、10000+S1からS2を引きます。

                      10000+S1－S2=D

D－、D－P、DB－、DB－Pの場合はS1、S1+1＜S2、S2+1であれば、100000000+S1からS2を引きます。

                      100000000+S1、S1+1－S2、S2+1=D1、D1+1

連枝の数値には－（マイナス数値）がありませんので、キャリーフラグで代用します。

それでは0－1をそれぞれの命令でどうなるか見てみます。

－=、－=P、－、－Pの場合　　　　　　　　　　　0－1=9999　　　　　　　　　キャリーフラグ（M9012）ON

D－=、D－=P、D－、D－Pの場合　　　　　　　0－1=99999999　　　　キャリーフラグ（M9012）ON

B－=、B－=P、B－、B－Pの場合　　　　　　　0－1=FFFF　　　　　　　　 キャリーフラグ（M9012）ON

DB－=、DB－=P、DB－、DB－Pの場合　　　0－1=FFFFFFFF　　　キャリーフラグ（M9012）ON

これらはいずれも虚数となります。

このキャリーフラグ（M9012）を用いて、実数を求めることができます。

－=、－=P、－、－Pの場合　　　　　　　　　　　［－　K0　D　D1］

D－=、D－=P、D－、D－Pの場合　　　　　　　［D－　K0　D1　D2］

B－=、B－=P、B－、B－Pの場合　　　　　　　［B－　H0　D　D1］

DB－=、DB－=P、DB－、DB－Pの場合　　　［DB－　H0　D1　D2］

データレジスタは16ビットでは各1個、32ビットでは各2個取られます。データレジスタ番号はダブらないように付けてください。また計算実行前にキャリークリア（CLC）してもかまいません。連枝では計算前にキャリーフラグ（M9012）をOFFにしてから計算していますので、実際CLCはなくてもかまいません。

次の命令にはキャリーフラグ（M9012）はありません

16ビットデータ比較　　＝、＜＞、＞、＜＝、＜、＞＝

      32ビットデータ比較　　D＝、D＜＞、D＞、D＜＝、D＜、D＞＝

BCD4桁乗算　　　　　　＊、＊P

      BCD4桁除算　　　　　　/、/P

      BCD8桁乗算　　　　　　D＊、D＊P

      BCD8桁除算　　　　　　D/、D/P

      BIN16ビット乗算　　　　B＊、B＊P

      BIN16ビット除算　　　　B/、B/P

      BIN32ビット乗算　　　　DB＊、DB＊P

      BIN32ビット除算　　　　DB/、DB/P

      INC、DEC命令　　　　　全部

      BCD、BIN変換命令　　全部

      転送命令　　　　　　　　 全部

論理演算命令　　　　　 全部

      シフト命令　　　　　　　　SFTR、SFTRP、SFTL、SFTLP


    ゼロフラグ（M9013）

次の場合、ゼロフラグ（M9013）がONします。

  1. 算術計算で9999を超えて10000になったとき

            BCD4桁加算　　　　　　+=、+=P、+、+P

  2. 算術計算で0になったとき

            BCD4桁減算　　　　　　－=、－=P、－、－P

      BCD8桁減算　　　　　　D－=、D－=P、D－、D－P、

            BCD16ビット減算　　　 B－=、B－=P、B－、B－P

      BCD32ビット減算　　　 BD－=、BD－=P、BD－、BD－P、

  3. 算術計算でFFFFを超えて10000になったとき

            BIN16ビット加算　　　　B+=、B+=P、B+、B+P

  4. 算術計算で99999999を超えて100000000になったとき

            BCD8桁加算　　　　　　D+=、D+=P、D+、D+P

  5. 算術計算でFFFFFFFFを超えて100000000になったとき

            BCD32ビット加算　　　 DB+=、DB+=P、DB+、DB+P

  6. ローテーションでは、ビットが全てOFFのとき

      右ローテーション　　　　ROR、RORP、RCR、RCRP、DROR、DRORP、DRCR、DRCRP

      左ローテーション　　　　ROL、ROLP、RCL、RCLP、DROL、DROLP、DRCL、DRCLP

  7. シフトのでは、ビットが全てOFFのとき

      右シフト　　　　　　　　　 SFR、SFRP

      左シフト　　　　　　　　　 SFL、SFLP

次の命令にはゼロフラグ（M9013）はありません

      16ビットデータ比較　　＝、＜＞、＞、＜＝、＜、＞＝

            32ビットデータ比較　　D＝、D＜＞、D＞、D＜＝、D＜、D＞＝

      シフトレジスタ　　　　　 SFTR、SFTRP、SFTL、SFTLP

註）[動作画面]の画面上のゼロフラグ表示は、ＥＮＤまでの１クールが終わった時点での値いですので、

途中で何回か使用すると途中段階では正しい値いが表示されないことがあります（これは二重コイルの時と同じです）。


ダイレクト接点

「連枝」（れんり）では、通常はＸ、Ｙの入出力は、リフレッシュ方式で、ワンクールの開始時点の一回だけ、実際のピン上の入出力を行っていますが、この他ダイレクト方式による入出力を得る方法もあります。

◎ＰＩＣの場合

ＰＩＣについては、ＰＩＣ１８Ｆ４５２シリーズのみ、以下のダイレクト接点の扱い、及びダイレクト命令をサポートしています。

（ＰＩＣ１８Ｆ４５２シリーズ　＝　ＰＩＣ１８Ｆ４５２（２５２）、ＰＩＣ１８Ｆ４５２０（２５２０）、ＰＩＣ１８Ｆ４５８（２５８）、ＰＩＣ１８Ｆ４５２５（２５２５）　）

○ダイレクト命令

  通常ループ中にダイレクト出力する命令があり、特に周辺ＬＳＩのモードセットの時に必要になります。

  ＯＵＴＤ、ＳＥＴＤ、ＲＳＴＤ、ＭＯＶＤ命令があり、各々ＯＵＴ、ＳＥＴ、ＲＳＴ、ＭＯＶ命令のダイレクト版になっています。

  ダイレクト命令は、通常のループ中で実行され接点論理にも影響を与えます。

註）ダイレクト命令は現在ＰＩＣ１８Ｆ４５２（２５２） ＰＩＣ１８Ｆ４５２５（２５２５）シリーズでのみサポートされています。

    その他のＰＩＣ１６Ｆ８７７（８７６）、ＰＩＣ１６Ｆ８８等ではダイレクト接点はサポートしていません。

○ＭＯＶＫ命令

  ＭＯＶＫ命令は、Ｘ，Ｙで指定されるピンにダイレクトに入出力する命令です。

  （割込み中でも通常ループ中でも使用可能です）。

  出力の場合、第１オペランドは出力する値い、第２オペランドは出力ビット数と、出力開始ビットです。

  例えばＭＯＶＫ　Ｈ３４　Ｂ６Ｙ１２はＨ３４の値いをＹ１２～Ｙ１７まで、６ビット出力します。Ｙ１０～Ｙ１１には影響しません。

  以下のような場合、Ｄ６の内容をＹ３１から７ビット出力します。Ｄ６中のビット０～６が出力され、ビット７は無視されます。

○ＭＩＶＫ命令

第１オペランドがＢで始まるビット指定の場合のＭＩＶＫ命令は以下のようになります。

  この命令は、Ｘ１０から４ビットをＭ８からのチャンネル接点に入れるという命令ですが、この場合Ｘ１０からの４ビットは１時的に入力接点モードになります（方向性レジスタが切り替わる）。

  このことによって、双方向性の必要な周辺ＬＳＩ（機器）を利用することができます。但し、第一オペランドが必ず０ビットを起点としなくてはならないので注意が必要です（もしＸ１０に当たる接点を全く別のＹ１０として出力に使用しているとすると、この命令の実行時、瞬間的に出力がフロートになってしまいます）。

  ＭＩＶＫ命令は、通常ループの接点論理ににも影響を与えます。第２ｵﾍﾟﾗﾝﾄﾞは直値になりませんし無関係な上位ﾋﾞｯﾄも入力の同ﾋﾞｯﾄの値いに影響されます。

  〇周辺機器のモード設定等に使用します。


16ビットデータ比較

    16ビットデータ比較-----＝、＜＞、＞、＜＝、＜、＞＝

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ、Ｈ、K1～K4

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ、Ｈ、K1～K4

設定データ

    S1：比較データまたは比較データの格納されているデバイスの先頭番号

    S2：比較データまたは比較データの格納されているデバイスの先頭番号

機能-----＝、＜＞、＞、＜＝、＜、＞＝

  1. S1で指定されたデバイスのBIN16ビットデータとS2で指定されたデバイスのBIN16ビットデータをa接点扱いで比較演算を行います。

  2. 命令毎の比較演算結果は次のようになります。　≠　　　　≦　　≧　　◯　　　Ｘ

命令記号 | 条件 | 比較演算結果 | 命令記号 | 条件 | 比較演算
＝ | S1＝S2 | 導通状態 | ＝ | S1≠S2 | 非導通状態
<> | S1≠S2 |  | ＜＞ | S1＝S2
＞ | S1＞S2 |  | ＞ | S1≦S2
＜＝ | S1≦S2 |  | ＜＝ | S1＞S2
＜ | S1＜S2 |  | ＜ | S1≧S2
＞＝ | S1≧S2 |  | ＞＝ | S1＜S2

比較の導通、非導通
= S1 S2 | S1=S2のとき導通、それ以外非導通（S1<>S2のとき非導通）
<> S1 S2 | S1=S2のとき非導通、それ以外導通
> S1 S2 | S1>S2のとき導通、それ以外非導通（S1<S2、S1=S2のとき非導通）
>= S1 S2 | S1>S2とS1=S2のとき導通、それ以外非導通（S1<S2のとき非導通）
< S1 S2 | S1<S2のとき導通、それ以外非導通（S1>S2、S1=S2のとき非導通）
<= S1 S2 | S1<S2とS1=S2のとき導通、それ以外非導通（S1>S2のとき非導通）

実行条件：　LD比較命令、AND比較命令、OR比較命令の実行条件は次のようになります。

命令 | 実行条件
ＬＤ比較命令 | 毎スキャン実行
ＡＮＤ比較命令 | 前の接点がＯＮ時のみ実行
ＯＲ比較命令 | 毎スキャン実行

演算エラー：16ビットデータ比較命令での演算エラーはありません。

16ビット比較回路

この回路はS1にK12、S2にD0を指定した比較回路です。

数値設定によりD0にそれぞれK11、K12、K13を与え、それぞれの命令の導通、非導通の結果を表示しています。D0の上の数値は数値設定により指定した数値です。

注意：回路の１行目に比較をプログラムする場合は必ず比較の前に接点を入れてください。２行目以下は母線に比較から始めてもかまいません。（NICに変換をするときにプログラム名を入れるため、始めから比較を入れるとエラーになります。）

比較回路1　D0=K11の時の実行回路

比較回路2　D0=K12の時の実行回路

比較回路3　D0=K13の時の実行回路


32ビットデータ比較

    32ビットデータ比較-----D＝、D＜＞、D＞、D＜＝、D＜、D＞＝

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ、Ｈ、K1～K8

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ、Ｈ、K1～K8

設定データ

    S1：比較データまたは比較データの格納されているデバイスの先頭番号

    S2：比較データまたは比較データの格納されているデバイスの先頭番号

機能-----D＝、D＜＞、D＞、D＜＝、D＜、D＞＝

  1. S1で指定されたデバイスのBIN32ビットデータとS2で指定されたデバイスのBIN32ビットデータをa接点扱いで比較演算を行います。

  2. それぞれの命令ごとの比較演算結果は次のようになります。　≠　　　　≦　　≧　　◯　　　Ｘ

命令記号 | 条件 | 比較演算結果 | 命令記号 | 条件 | 比較演算
D＝ | S1＝S2 | 導通状態 | D＝ | S1≠S2 | 非導通状態
D<> | S1≠S2 |  | D＜＞ | S1＝S2
D＞ | S1＞S2 |  | D＞ | S1≦S2
D＜＝ | S1≦S2 |  | D＜＝ | S1＞S2
D＜ | S1＜S2 |  | D＜ | S1≧S2
D＞＝ | S1≧S2 |  | D＞＝ | S1＜S2

比較の導通、非導通
D= S1 S2 | S1=S2のとき導通、それ以外非導通（S1<>S2のとき非導通）
D<> S1 S2 | S1=S2のとき非導通、それ以外導通
D> S1 S2 | S1>S2のとき導通、それ以外非導通（S1<S2、S1=S2のとき非導通）
D>= S1 S2 | S1>S2とS1=S2のとき導通、それ以外非導通（S1<S2のとき非導通）
D< S1 S2 | S1<S2のとき導通、それ以外非導通（S1>S2、S1=S2のとき非導通）
D<= S1 S2 | S1<S2とS1=S2のとき導通、それ以外非導通（S1>S2のとき非導通）

実行条件：LD比較命令、AND比較命令、OR比較命令の実行条件は次のようになります。

命令 | 実行条件
ＬＤ比較命令 | 毎スキャン実行
ＡＮＤ比較命令 | 前の接点がＯＮ時のみ実行
ＯＲ比較命令 | 毎スキャン実行

演算エラー：32ビットデータ比較命令での演算エラーはありません。

32ビット比較回路

この回路はS1にK123456、S2にD0を指定した比較回路です。

数値設定によりDWをクリックして、D0にそれぞれK123455、K123456、K123457を与え、それぞれの命令の導通、非導通の結果を表示しています。D0の上の数値は数値設定により指定した数値です。

注意：回路の１行目に比較をプログラムする場合は必ず比較の前に接点を入れてください。２行目以下は母線に比較から始めてもかまいません。（NICに変換をするときにプログラム名を入れるため、始めから比較を入れるとエラーになります。）

比較回路1　D0=K123455の時の実行回路

比較回路2　D0=K123456の時の実行回路

比較回路3　D0=K123457の時の実行回路

注意：３２ビット命令はPICではサポートしていません。


BCD4桁加算

    BCD4桁加算-----＋、＋Ｐ

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）（Kの直値は指定できません。）

設定データ

    S1：被加算データまたは被加算データの格納されているデバイスの先頭番号

    S2：加算データまたは加算データの格納されているデバイスの先頭番号

    D1：被加算データの格納されているデバイスの先頭番号

機能　＋、＋P

  1. S1で指定されたBCD4桁データとS2で指定されたBCD4桁ビットデータの加算を行い、加算結果をD1で指定されたデバイスに格納します。

  2. S1、S2には0～9999（BCD4桁）が指定できます。

  3. 加算結果が9999を超えた場合は、キャリーフラグ（M9012）がONします。

  4. 加算結果D1が0の場合は、ゼロフラグ（M9013）がONします。

実行条件：加算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

+の回路

S1（D0）の値とS2（D2）の値を加算して、D1（D4）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00のONがONの間、S1（D0）、S2（D2）が変化しなければD1（D4）も変化しません。

計算の実行

スキャン毎の実行画面

D0に2、D2に9990を設定、X00をONします。D4の値は9992となります。X00をONのまま、D0またはD2が変化するとD4の計算値も変化します。

キャリーフラグ（M9012）のON

D0+D2の計算結果、D4が9999を超えると、キャリーフラグ（M9012）がONします。

D0＋D2の計算結果D4の値が9999を超えるとD4の値はD0+D2から10000を引いた数値となります。

ゼロフラグ（M9013）のON

D0+D2の計算結果、D4が0になった場合、ゼロフラグ（M9013）がONします。

キャリー（M9012）とゼロフラグ（9013）ONの実行画面

D0に10、D2に9990を設定、X00をONします。D4の値は0となりますが、9999を超えて桁上がりしますので、キャリーフラグ（M9012）をONさせます。また、D4の値は0になりましたので、同時にゼロフラグ（M9013）もONさせます。

エラーフラグ（M9010）のON

D0、D2の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M901O）ONの実行画面

D0に10、D2に9A90を設定、X01をONします。9A90はBCDでないので、エラーフラグ（M9010）がONします。エラーフラグはX00がONの間はONしています。

+Pの回路

S1（D0）の値とS2（D2）の値を加算して、D1（D4）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0に25、D2に56を設定、X00ONします。D4の値は61となります。

+ではスキャン毎に計算していましたので、D0またはD2の値が変わると、D4の値も変わりましたが+Pでは微分命令なので、計算は1回しか行いません。D0またはD2の値が変わってもD4の値は変化しません。

計算の実行2

微分による回路の実行画面

D0はそのまま25、D2の値を56に変えます。X00はONのままにします。D4の値は61で前のままです。もう1度X00をONすればD4の値を知ることができます。

キャリーフラグ（M9012）のON

D0＋D2の計算結果D4が9999を超えると、キャリーフラグ（M9012）がONします。

D0＋D2の計算結果D4の値が9999を超えるとD4の値はD0+D2から10000を引いた数値となります。

ゼロフラグ（M9013）のON

D0＋D2の計算結果D4が0になった場合、ゼロフラグ（M9013）がONします。

キャリーフラグ（M9012）とゼロフラグ（9013）ONの実行画面

D0に25、D2に9975を設定、X00をONします。D4の値は9999を超えて桁上がりしましたので、キャリーフラグ（M9012）をONさせます。また、D4の値は0になりますので、同時にゼロフラグ（M9013）もONさせます。

エラーフラグ（M9010）のON

D0、D2の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に25、D2に9A75を設定、X01をONします。9A75はBCDでないので、エラーフラグ（M9010）がONします。この場合、+Pは微分命令のため、エラーフラグも微分動作しますので、エラーフラグを使用のときは、M101のように自己保持を取ってください。


BCD4桁減算

    BCD4桁減算-----－、－P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）（Kの直値は指定できません。）

設定データ

    S1：被減算データまたは被減算データの格納されているデバイスの先頭番号

    S2：減算データまたは減算データの格納されているデバイスの先頭番号

    D1：被減算データの格納されているデバイスの先頭番号

機能　－、－P

  1. S1で指定されたBCD16ビットデータとS2で指定されたBINビットデータの減算を行い、加算結果をD1で指定されたデバイスに格納します。

  2. S1、S2には0～9999（BCD4桁）が指定できます。

  3. 減算結果にアンダーフロー生じた場合は、キャリーフラグ（M9012）がONします。

  4. 減算結果D1が0の場合は、ゼロフラグ（M9013）がONします。

実行条件：減算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

－の回路

S1（D0）の値から、S2（D2）の値を減算して、D1（D4）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00のONの間、S1（D0）、S2（D2）の値が変化すれば、D1（D4）も変化します。

計算の実行

スキャン毎の実行画面

D0に9999、D2に9990を設定、X00をONします。D4の値はD0－D2で9となります。D0または、D2の値が変わらなければ、D4の値も変わりません。

キャリーフラグ（M9012）のON

D0＜D2の場合、M9012のキャリーフラグ（M9012）がONします

D0＜D2の場合、D4の値はD0+10000からD2を引いた数値（補数）となります。

キャリーフラグ（M9012）のON の実行画面

D0に0、Ｄ2に9990を設定、X00をONします。D4の値は10となりますが、このときD4は桁下がりをしますので、キャリーフラグ（M9012）がONします。

ゼロフラグ（M9013）のON

D0－D2の計算結果、D4が0になった場合ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に9990、D2に9990設定、X00をONします。計算の結果、D4は0になりますので、ゼロフラグ（M9013）をONします。

エラーフラグ（M9010）のON

D0、D2の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に9990、D2に9A90を設定、X00をONします。この場合、D2にBCDでないので、エラーフラグをONします。計算はしませんのでD4は元のままの0です。

真数を求める計算

D0＜D2の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0に9876、D2に9877を設定、X00をONします。D4は9999となりキャリーフラグ（M9012）します。9999は補数となり、2行目が真数を求める回路です。K0からD4を引くことによってD6は真数になります。この場合、0から9999を引くことになりますが、0は桁下がりをして10000で、10000－9999となりD6は1で真数になります。

－Pの回路

S1（D0）の値から、S2（D2）の値を減算して、D1（D4）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0に5678、D2に110を設定、X00をONします。D4の値は5568になります。

計算の実行2

微分による回路の実行画面

D2が変化してもX00がONのままだとD4は変化しません。D4の結果を再度求めるときは、もう1度X00をONしてください。

キャリーフラグ（M9012）のON

D0＜D2の場合、M9012のキャリーフラグ（M9012）がONします

D0＜D2の場合、D4の値はD0+10000からD2を引いた数値（補数）となります。

キャリーフラグ（M9012）のON の実行画面

D0に5678、D2に5679を設定、X00をONします。D4は9999になりますが、桁下がりになりますのでキャリーフラグ（M9012）がONします。

ゼロフラグ（M9013）のON

D0、D2の計算結果が0になった場合ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に5678、D2に5678を設定、X00をONします。D4は0になりますので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D2の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に5678、D2に5A78を設定、X00をONします。D2はBCDではありませんので、エラーフラグ（M9010）がONします。D4の値はそのままになります。

真数を求める計算

D0＜D2の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0に9876、D2に9877を設定、X00をONします。D4は9999となりキャリーフラグ（M9012）します。9999は補数となり、2行目が真数を求める回路です。K0からD4を引くことによってD6は真数になります。この場合、0から9999を引くことになりますが、0は桁下がりをして10000で、10000－9999となり、D6は1で真数になります。


BCD4桁乗算

    BCD4桁乗算-----＊、＊P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（Kの直値は指定できません。）

設定データ

    S1：被乗算データまたは被乗算データの格納されているデバイスの先頭番号

    S2：乗算データまたは乗算データの格納されているデバイスの先頭番号

    D1：被乗算データの格納されているデバイスの先頭番号

機能　＊、＊P

  1. S1で指定されたデバイスのBCD16データとS2で指定されたデバイスのBCDデータの乗算を行い、D1で指定されたデバイスに格納します。

  2. D1で指定されたデバイスがビットデバイスの場合、乗算結果は下位４桁（下位１６ビット）までが対象となり上位４桁（上位１６ビット）を指定することができません。

        K1---下位1桁（b0～3）、　 K4---下位4桁（b0～15）

  3. S1、S2には0～9999（BCD4桁）が指定できます。

  4. 乗算結果D1、D1+1が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

  註）ＰＩＣの場合、乗算結果は９９９９までで、結果はＤ１に格納されＤ１+1は使用されません。

実行条件：乗算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

＊の回路

S1（D0）の値とS2（D2）の値の掛け算を行い、D1（D4、D5）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行

スキャン毎の実行画面

D0=1234、D2=764を設定、X01をONします。計算の結果、D4、D5は942776となります。このときの答の読み方は、D4の値が下4桁、D5の値が上4桁となります。ここではD4の値に2776、D5の値は94となります。

この命令はX00がONの間スキャンのたびに計算を行います。

ゼロフラグ（M9013）のON

D0＊D2の計算結果D4、D5が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に1234、D2に0を設定、X00をONします。計算の結果、D4、D5の値が0になったので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D2が0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

D0=1234、D2=7A4を設定、X01をONします。D2はBCDでないので、エラーフラグ（M9010）がONします。

＊キャリーフラグ（M9012）はありません。

＊Ｐの回路

S1（D0）の値とS2（D2）の値の掛け算を行い、D1（D4、D5）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0=1234、D2=764を設定、X01をONします。計算の結果、D4、D5の値は942776となります。このときの答の読み方は、D4の値が下4桁、D5の値が上4桁となります。ここではD4の値に2776、D5の値は94となります。

計算の実行2

微分による回路の実行画面

D2の値が764より2456に変化してもX00がONのままだと、＊Pは計算の命令を出しませんので、結果は変化ありません。

ゼロフラグ（M9013）のON

D0＊D2の計算結果D4、D5の値が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0=1234、D2=0を設定、X01をONします。計算の結果、D4、D5の値は0となります。このときゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D2が0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

D0= 1234、D2=7A4を設定、X01をONします。D2はBCDでないので、エラーフラグ（M9010）がONします。D4の値の変化はありません。

＊キャリーフラグ（M9012）はありません。


BCD4桁除算

    BCD4桁除算-----／、／P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）（Kの直値は指定できません。）

設定データ

    S1：被除算データまたは被除算データの格納されているデバイスの先頭番号

    S2：乗算データまたは乗算データの格納されているデバイスの先頭番号

    D1：被除算データの格納されているデバイスの先頭番号

機能　／、／P

  1. S1で指定されたBCD16ビットデータとS2で指定されたBINビットデータの減算を行い、加算結果をD1で指定されたデバイスに格納します。

  2. 除算結果は32ビットを使用して商と余りを格納します。

        商　　（BCD4桁）-----下位16ビットに格納されます。

        余り　（BCD4桁）-----上位16ビットに格納されます。

  3. D1をビットデバイスで指定した場合、除算の結果の余りは格納されません。

  4. 除算結果D1、D1+1が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

実行条件：除算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • 　S1、S2の各桁のBCDデータに0～9以外の値があるとき。

  • 　除数S2が0のとき。

／の回路

S1（D0）の値をS2（D2）の値で割算を行い、D1（D4、D5）に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行

スキャン毎の実行画面

D0に9876、D2に123を設定、X00をONします。これによりD4、D5を求めることができます。読み方はD4が割り算の答（ただし、整数）、D5が余りとなります。ここではD4に80、D5が36となります。

ゼロフラグ（M9013）のON

割り算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に0、D2に123を設定、X00をONします。X00をONします。D0/D2の計算結果D4、D5が0になった場合、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON1

除数D2が0のとき、計算をしないでゼロフラグ（M9013）がONします。

エラーフラグ（M9010）ONの実行画面

D0に9876、D2に0を設定、X00をONします。9876/0は無限大になるため、エラーフラグ（M9010）がONします。このとき/は計算を停止します。

エラーフラグ（M9010）のON2

D0、D2が0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

 D0に9876、D2に1A3を設定、X00をONします。D2にBCDでないのが含まれているため、エラーフラグ（M9010）がONします。

＊キャリーフラグ（M9012）はありません。

／Ｐの回路

S1（D0）の値をS2（D2）の値で割算を行い、D1（D4、D5）に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0に9876、D2に123を設定、X00をONします。これによりD4、D5を求めることができます。読み方はD4が割り算の答（ただし、整数）、D5が余りとなります。ここではD4に80、D5が36となります。

この命令はONの間スキャンのたびに計算を行います。

計算の実行2

微分による回路の実行画面

D0を9876のまま、D2を123から321に変更、X00はONのままだとD4、D5の値は変わりません。もう1度X00をONしてください。D4、D5の値が変わります。

ゼロフラグ（M9013）のON

D0/D2の計算結果D4、D5が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に0、D2に123を設定、X00をONします。X00をONします。D0/D2の計算結果D4、D5が0になった場合、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON1

除数D2が0のとき、計算をしないでゼロフラグ（M9013）がONします。

エラーフラグ（M9010）ONの実行画面

D0に9876、D2に0を設定、X00をONします。9876/0は無限大になるため、エラーフラグ（M9010）がONします。このとき/は計算を停止します。

エラーフラグ（M9010）のON2

D0、D2が0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

 D0に9876、D2に1A3を設定、X00をONします。D2にBCDでないのが含まれているため、エラーフラグ（M9010）がONします。

＊キャリーフラグ（M9012）はありません。


BCD8桁加算

    BCD8桁加算-----D＋、D＋P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（Kの直値は指定できません。）

設定データ

    S1：被加算データまたは被加算データの格納されているデバイスの先頭番号

    S2：加算データまたは加算データの格納されているデバイスの先頭番号

    D1：被加減算データの格納されているデバイスの先頭番号

機能　D＋、D＋P

  1. S1で指定されたBCD8桁データとS2で指定されたBCD8桁データの加算を行い、加算結果をD1で指定されたデバイスに格納します。

  2. S1、S2には0～99999999（BCD8桁）が指定できます。

  3. 加算結果が99999999を超えた場合は、キャリーフラグ（M9012）がONします。

  4. 加算結果D1、D1+1が0の場合は、ゼロフラグ（M9013）がONします。

    註）ＰＩＣでは８桁計算はサポートされていません。

実行条件：加算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

D+の回路

S1（D0、D1）の値とS2（D1+D2）の値を加算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00のONの間、S1（D0、D1）、S2（D1+D2）が変化しなければD1（D4、D5）も変化しません。

D0、D1+D2、D3の8桁の結果は、D4、D5に表示されます。D4は下位4桁、D5が上位4桁となります。

計算の実行

スキャン毎の実行画面

D0、D1に1234、5678をD2、D3に54324321を設定、X00をON、D4、D5は66669999となります。

キャリーフラグ（M9012）のON

D0、D1+D2、D3の計算結果、D4、D5の値が99999999を超えたとき、キャリーフラグ（M9012）がONします。

D0、D1+D2、D3の計算結果、D4、D5が99999999を超えるとD4、D5の値はD0、D1+D2、D3から100000000を引いた数値となります。

ゼロフラグ（M9013）のON

D0、D1+D2、D3の計算結果、D4、D5の両方が0になった場合、ゼロフラグ（M9013）がONします。

キャリー（M9012）とゼロフラグ（9013）ONの実行画面

D0、D1に12345678、D2、D3に87654322を設定、D4、D5は0、M9010、M9013がONする。

D0、D1+D2、D3の計算結果、D4、Ｄ５の値が99999999を超えたので、キャリーフラグ（M9012）ONし、D4、D5が0になったので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D1、D2、D3の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に12345678、D2、D3に8765432A、X00をON、D2、D3の内容がBCDでないため、エラーフラグ（M9010）がON、 D4、D5は前の数値を維持します。

D+Pの回路

S1（D0、D1）の値とS2（D1+D2）の値を加算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

D0、D1+D2、D3の8桁の結果は、D4、D5に表示されます。D4は下位4桁、D5が上位4桁となります。

計算の実行1

微分による回路の実行画面

D0、D1に12345678D2、D3に54324321を設定、X00をON、D4、D5は66669999となります。

X00がONのまま、D2、D3が変化してもD4、D5は変化ありません。X00もう1度ONさせるとD4、D5は計算しなおします。

計算の実行2

微分による回路の実行画面

D0、D1に12345678、D2、D3を34521865に変更、X00をONのまま、D4、D5は66669999となります。

キャリーフラグ（M9012）のON

D0、D1+D2、D3の計算結果、D4、D5の値が99999999を超えたときは、キャリーフラグ（M9012）がONします。

D0、D1+D2、D3の計算結果、D4、D5の値が99999999を超えるとD4、D5の値はD0、D1+D2、D3から100000000を引いた数値となります。

ゼロフラグ（M9013）のON

D0、D1+D2、D3の計算結果、D4、D5の両方が0になった場合、ゼロフラグ（M9013）がONします。

キャリー（M9012）、ゼロフラグ（9013）ONの実行画面

D0、D1に12345678、D2、D3に87654322を設定、D4、D5は0、M9010、M9013がONする。

D0、D1+D2、D3の計算結果、D4、Ｄ５の値が99999999を超えたので、キャリーフラグ（M9012）ONし、D4、D5が0になったので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D1、D2、D3の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に12345678、D2、D3に8765432A、X00をON、M9010がON、D2、D3の内容がBCDでないため、エラーフラグ（M9010）がON、 D4、D5は前の数値を維持します。


BCD8桁減算

    BCD8桁減算-----D－、D－P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（Kの直値は指定できません。）

設定データ

    S2：減算データまたは減算データの格納されているデバイスの先頭番号

    S1：被減算データまたは被減算データの格納されているデバイスの先頭番号

    D1：被減算データの格納されているデバイスの先頭番号

機能　Ｄ－、Ｄ－Ｐ

  1. S1で指定されたBCD8桁データとS2で指定されたBCD8桁データの加算を行い、減算結果をD1で指定されたデバイスに格納します。

  2. S1、S2には0～99999999（BCD8桁）が指定できます

  3. 加減算結果にアンダーフロー生じた場合は、キャリーフラグ（M9012）がONします。

  4. 減算結果D1、D1+1が0の場合は、ゼロフラグ（M9013）がONします。

    註）ＰＩＣでは８桁計算はサポートされていません。

実行条件：減算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

D－の回路

S1（D0、D1）の値からS2（D2、D3）の値を減算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00のONの間、S1（D0、D1）、S2（D2、D3）が変化しなければ、D1（D4、D5）の値は変化しません。

計算の実行

スキャン毎の実行画面

D0に12345678、D2に4574292を設定、X00をONします。D4は7771386になります。D－命令はスキャン毎に計算します。

キャリーフラグ（M9012）のON

D0、D1＜D2、D3の場合、キャリーフラグ（M9012）がONします。

D0、D1＜D2、D3の場合、D4、D5の値はD0、D1+100000000からD2、D3を引いた数値（補数）となります。このときD4、D5の値は補数となり、キャリーフラグ（M9012）がONします。

キャリーフラグ（M9012）のON の実行画面

D0、D1に12345678、D2、D3に12345679を設定、X00をON、計算結果D4、D5は99999999（補数）となります。99999999は補数ですので、真数を求める回路入れます。K0からD4、D5の値を引くことによってD6、D7の値は1となります。

ゼロフラグ（M9013）のON

D0、D1－D2、D3の計算結果、D4、D5の値が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に6545678、D2、D3に6545678を設定、X00をON、計算結果D4、D5の値は0となり、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D1、D2、D3が0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に6545678、D2、D3に654567Aを設定、X00をON、D2、D3の内容がBCDでないため、エラーフラグ（M9010）がONします。

真数を求める計算

D0、D1＜D2、D3の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0、D1に12345678、D2、D3に12345679を設定、X00をONします。D4、Ｄ５は99999999となりキャリーフラグ（M9012）します。99999999は補数となり、2行目が真数を求める回路です。K0からD4、D5を引くことによってD6、D7は真数になります。この場合、0から99999999を引くことになりますが、0は桁下がりをして100000000で、100000000－99999999となり、D6、D7は1で真数になります。

D－Pの回路

S1（D0、D1）の値からS2（D2、D3）の値を減算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行

微分による回路の実行画面

D0に12345678、D2に4574292を設定、X00をONします。D4は7771386になります。D－P命令は微分命令ですので1度しかに計算します。

キャリーフラグ（M9012）のON

D0、D1＜D2、D3の場合、キャリーフラグ（M9012）がONします。

D0、D1＜D2、D3の場合、D4、D5はD0、D1+100000000からD2、D3を引いた数値（補数）となります。このときD4、D5は補数となり、キャリーフラグ（M9012）がONします。

キャリーフラグ（M9012）のON の実行画面

D0、D1に6545678、D2、D3に6545679を設定、X00をON、計算結果D4、D5の値は99999999となり、キャリーフラグ（M9012）がONします。2行目はM9012を利用して真数を求める計算式です。この場合、K0からD4、D5を引くとD6、D7は1となります。

ゼロフラグ（M9013）のON

D0、D1－D2、D3の計算結果D4、D5の値が0になった場合ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に6545678、D2、D3に6545678を設定、X00をON、計算結果D4、D5は0となり、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D1、D2、D3、の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に6545678、D2、D3に654567Aを設定、X00をON、D2、D3の内容にAが含まれるため、エラーフラグ（M9010）がONします。

真数を求める計算

D0、D1＜D2、D3の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0、D1に12345678、D2、D3に12345679を設定、X00をONします。D4は99999999となりキャリーフラグ（M9012）します。99999999は補数となり、2行目が真数を求める回路です。K0からD4、D5を引くことによってD6、D7は真数になります。この場合、0から99999999を引くことになりますが、0は桁下がりをして100000000で、100000000－99999999はD6、D7は1で真数になります。


BCD8桁乗算

    BCD8桁乗算-----D＊、D＊P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（Kの直値は指定できません。）

設定データ

    S1：被乗算データまたは被乗算データの格納されているデバイスの先頭番号

    S2：乗算データまたは乗算データの格納されているデバイスの先頭番号

    D1：被乗算データの格納されているデバイスの先頭番号

機能　D＊、D＊P

  1. S1指定されたBCD8桁データとS2で指定されたBCD8桁データの乗算を行い、乗算結果をD1で指定されたデバイスに格納します

  2. D1で指定されたデバイスがビットデバイスの場合、乗算結果は下位8桁（下位32ビット）までが対象となり上位8桁（上位32ビット）を指定することができません。

        K1---下位1桁（b0～3）、　 K4---下位4桁（b0～15）、　 K8---下位8桁（b0～31）

  3. S1、S2には0～99999999（BCD8桁）が指定できます。

  4. 乗算結果D1、D1+1、D1+2、D1+3が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

    註）ＰＩＣでは８桁計算はサポートされていません。

実行条件：乗算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

D＊の回路

S1（D0、D1）の値とS2（D2、D3）の値で掛け算を行い、D1（D4、D5、D6、D7）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行

スキャン毎の実行画面

  D0、D1に12345、D2、D3に67890、を設定、X01をONします。D4、D5、D6、D7を求めることができます。

D4、D5、D6、D7を知るには、数値設定のダイアログボックスでWDにチェックしてD4またはD6を入力することでD4、D5の値、D6、D7の値が表示されます。このときの読み方は、D4、D5が下8桁、D5、D6が上8桁の答となります。ここではD4、D5に38102050、D6、D7に8となりD7、D6、D5、D4と並べれば838102050となります。

ゼロフラグ（M9013）のON

D0、D1＊D2、D3の計算結果D4、D5、D6、D7の全てが0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に12345、D2、D3に0を設定、X00をON、D4、D5、D6、D7は0となり、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D1またはD2、D3の各桁のBCDデータに0～9以外を指定した場合、計算をしないでエラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に12345、D2、D3に6789Aを設定、X00をON、D2、D3の内容にBCDでないため 、エラーフラグ（M9010）をONします。

＊キャリーフラグ（M9012）はありません。

D＊Ｐの回路

S1（D0、D1）の値とS2（D2、D3）の値で掛け算を行い、D1（D4、D5、D6、D7）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1に123456、D2、D3に67、8980を設定しています。X1をクリックすることで答のD4、D5、D6、D7を求めることができます。

D4、D5、D6、D7を知るには、数値設定のダイアログボックスで、WDにチェックしてD4またはD6を入力することでD4、D5の値、D6、D7の値が表示されます。このときの答の読み方は、D4、D5が下8桁、D5、D6が上8桁の答となります。ここではD4、D5に24154880、D6、D7に838となりD7、D6、D5、D4と並べれば83824154880となります。

計算の実行2

微分による回路の実行画面

D2、D3の値が67、8980より659780に変化してもX00がONのままですと、＊Pは計算の命令を出しませんので、結果は変化ありません。

ゼロフラグ（M9013）のON

D0、D1＊D2、D3の計算結果D4、D5、D6、D7が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に123456、D2、D3に0を設定、X00をON、D4、D5、D6、D7は0となり、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

D0、D1またはD2、D3の各桁のBCDデータに0～9以外を指定した場合、計算をしないでエラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に123456、D2、D3に56978Aを設定、X00をON、D2、D3のデータにBCDでないため、エラーフラグ（M9010）をONします。D4、D5、D6、D7は変化ありません。

＊キャリーフラグ（M9012）はありません。


BCD8桁除算

    BCD8桁除算-----D／、D／P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（Kの直値は指定できません。）

設定データ

    S1：被除算データまたは被除算データの格納されているデバイスの先頭番号

    S2：除算データまたは除算データの格納されているデバイスの先頭番号

    D1：被除算データの格納されているデバイスの先頭番号

機能　D／、D／P

  1. S1で指定されたBCD8桁データとS2で指定されたBCD8桁データの除算を行い、除算結果をD1で指定されたデバイスに格納します。

  2. 除算結果は64ビットを使用して、商と余りを格納します。

        商　（BCD8桁）-----下位32ビットに格納されます。

        余り（BCD8桁）---上位32ビットに格納されます。

  3. D1をビットデバイスで指定した場合、除算結果の余りは格納されません。

  4. 除算結果D1、D1+1、D1+2、D1+3が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

    註）ＰＩＣでは８桁計算はサポートされていません。

実行条件：除算命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • S1、S2の各桁のBCDデータに0～9以外の値があるとき。

  • 除数S2が0のとき。

Ｄ／の回路

S1（D0、D1）の値からS2（D2、D3）の値で割算を行い、D1（D4、D5、D5、D7）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

D4、D5は商、D6、D7は余りとなります。

計算の実行

スキャン毎の実行画面

D0、D1に87654321、D2、D3=1234、を設定しています。X00をONでD4、D5、D6、D7を求めることができます。

D4、D5、D6、D7を知るには、数値設定でDWにチェックを入れてD4をクリックすればD4、D5の値を表示します。D6、D7はキーインで求めることができます。このときの答の読み方はD4、D5が割り算の答（商）、D6、D7が余りとなります。ここではD4、D5に71032、D6、D7に833となります。

また、この命令はONの間スキャンのたびに計算を行います。D0、D1、D2、D3の変化に対しても即座に計算してD4、D5、D6、D7に反映しますので刻々変わる変化に対応します。

ゼロフラグ（M9013）のON

割り算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に87654321、D2、D3に0を設定、計算結果D4、D5、D6、D7の値が0になったのでゼロフラグ（M9013）がONした画面です。

エラーフラグ（M9010）のON1

除数D2が0のとき、計算をしないでゼロフラグ（M9013）がONします。

エラーフラグ（M9010）ONの実行画面

D2、D3が0の場合、D0、D1の87654321を0で割ると答は無限大となり、このときD＊は計算を停止し、エラーフラグ（M9010）をONします。

エラーフラグ（M9010）のON2

D0、D1、D2、D3の各桁のBCDデータに0～9以外を指定した場合、計算をしないでエラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D2、D3に123Aを設定、X00をONで計算命令をしても、D2に123Aを指定したので、D2はBCDでないために、エラーフラグ（M9010）をONします。

＊キャリーフラグ（M9012）はありません。

D／Ｐの回路

S1（D0、D1）の値からS2（D2、D3）の値で割算を行い、D1（D4、D5、D5、D7）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1に87654321、D2、D3に1234、を設定しています。X00でD4、D5、D6、D7を求めることができます。

D4、D5、D6、D7を知るには数値設定でDWにチェックを入れてD4をクリックすればD4、D5の値を表示します。D6、D7はキーインで求めることができます。このときの答の読み方はD4、D5が割り算の答（商）、D6、D7が余りとなります。ここではD4、D5に7、1032、D6、D7に833となります。

計算の実行2

微分による回路の実行画面

D2の値が1234より4321に変化してもX00がONのままだと＊Pは計算の命令を出しませんので、結果は変化ありません。結果を知るにはもう1度X00をONしてください。

ゼロフラグ（M9013）のON

D0、D1/D2、D3計算の結果（この場合D0、D1が0）、掛け算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に0、D2、D3に1234を設定、X00をON、D4、D5、D5、D7は0になり、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON1

除数D2が0のとき、計算をしないでエラーフラグがONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に87654321、D2、D3に0を設定、X00をON、D4、D5の値は無限大となりエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のON2

D0、D1、D2、D3の各桁のBCDデータに0～9以外を指定した場合、計算をしないでエラーフラグがONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に87654321、D2、D3に123Aを設定、D2、D3にBCDでないため、エラーフラグ（M9010）がONします。

＊キャリーフラグ（M9012）はありません。


BIN16ビット加算

    BIN16ビット加算-----B＋、B＋P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）、K1～K8（8桁）（H、Kの直値は指定できません。）

設定データ

    S1：被加算データまたは被加算データの格納されているデバイスの先頭番号

    S2：加算データまたは加算データの格納されているデバイスの先頭番号

    D1：被加算データの格納されているデバイスの先頭番号

機能　B＋、B＋P

  1. S1で指定されたBIN16ビットデータとS2で指定されたBINビットデータの加算を行い、加算結果をD1で指定されたデバイスに格納します。

  2. S1、S2には0～FFFF（BIN16ビット）が指定できます。

  3. 加算結果がFFFFを超えた場合は、キャリーフラグ（M9012）がONします。

  4. 加算結果D1が0の場合は、ゼロフラッグ（M9013）がONします。

実行条件：加算命令の実行条件は次のようになります。

演算エラー：B+、B+P命令での演算エラーはありません。

B+の回路

S1（D0）の値とS2（D2）の値を加算して、D1（D4）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00のONが持続されても、S1（D0）、S2（D2）が変化しなければD1（D4）も変化しません。

計算の実行

スキャン毎の実行画面

D0に9876、D2に1A2Bを設定、X00をONします。D4はB2A1となります。

キャリーフラグ（M9012）のON

D0+D2の計算結果、D4がFFFFを超えると、キャリー（M9012）がONします。

D0+D2の計算結果、D4が10000を超えるとD4の表示は10000を引いた数値となります。

ゼロフラグ（M9013）のON

D0+D2の計算結果、D4が0になった場合、ゼロフラグ（M9013）がONします。

キャリーフラグ（M9012）とゼロフラグ（9013）ONの実行画面

D0に9876、D2に678Aを設定、X00をONします。D4は0ですので、桁上がりのキャリーフラグ（M9013）と同時に、エラーフラグ（M9010）がONします。

B+Pの回路

S1（D0）の値とS2（D2）の値を加算して、D1（D4）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0に9876、D2に1A2Bを設定、X00をONします。D4はB2A1となります。この命令は微分命令なので1度しか計算しません。

計算の実行2

微分による回路の実行画面

D0は9876のまま、D2に1A2Bから3C4Dに変更します、X00はONのままですと、D4はB2A1と元のまま変更はありません。もう1度計算するにはX00を再びONしてください。

キャリーフラグ（M9012）のON

D0+D2の計算結果、D4がFFFFを超えると、キャリー（M9012）がONします。

D0+D2の計算結果、D4が10000を超えるとD4の表示は10000を引いた数値となります。

ゼロフラグ（M9013）のON

D0+D2の計算結果、D4が0になった場合、ゼロフラグ（M9013）がONします。

キャリーフラグ（M9012）とゼロフラグ（M9013）のON実行画面

D0に9876、D2に678Aを設定、X00をONします。D4は0ですので、桁上がりのキャリーフラグ（M9013）と同時に、エラーフラグ（M9010）がONします。

＊B+、B+Pにはエラーフラグ（M9010）はありません。


BIN16ビット減算

    BIN16ビット減算-----B－、B－P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）（H、Kの直値は指定できません。）

設定データ

    S1：被減算データまたは被減算データの格納されているデバイスの先頭番号

    S2：減算データまたは減算データの格納されているデバイスの先頭番号

    D1：被減算データの格納されているデバイスの先頭番号

機能　B－、B－P

  1. S1で指定されたBIN16ビットデータとS2で指定されたBINビットデータの減算を行い、減算結果をD1で指定されたデバイスに格納します。

  2. S1、S2には0～FFFF（BIN16ビット）が指定できます。

  3. 減算結果にアンダーフロー生じた場合は、キャリーフラッグ（M9012）がONします。

  4. 減算結果D1が0の場合は、ゼロフラッグ（M9013）がONします。

実行条件：減算命令の実行条件は次のようになります。

演算エラー：B－、B－P命令での演算エラーはありません。

B－の回路

S1（D0）の値から、S2（D2）の値を減算して、D1（D4）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

D0またはD2が変わったときは、D4の値も変わります。

計算の実行

スキャン毎の実行画面

D0にDE45、D2に876を設定、X00をONします。D4はD5CFとなります。

キャリーフラグ（M9012）のON

D0＜D2の場合、キャリーフラグ（M9012）がONします。

D0＜D2の場合、D4の表示はS1+10000からS2を引いた数値（補数）となります。

キャリーフラグ（M9012）ONの実行画面

D0にDE45、D2にDE46を設定、X00をONします。D4はFFFFとなります。D4は桁下がりのため、キャリーフラグ（M9012）がONします。

ゼロフラグ（M9013）のON

D0－D2の計算結果、D4が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0にDE45、D2にDE45を設定、X00をONします。D4は0となります。D4は0なので、ゼロフラグ（M9013）がONします。

真数の求め方

D0＜D2の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0に100、D2に1AFを設定、X00をONします。D4はFF51となります。このときキャリーフラグ（M9012）がONしますので、K0からD4減算することで、D6の真数の求めることができます。D6はAFとなります。

B－Pの回路

S1（D0）の値から、S2（D2）の値を減算して、D1（D4）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0にDE45、D2に876を設定、X00をONします。D4はD5CFとなります。

計算の実行2

微分による回路の実行画面

D0にDE45、D2に34A6を設定、X00をONのままだと、D4はD5CFで変わりません。

D4の結果を再度求めるときはもう1度X00をONしてください。

キャリーフラグ（M9012）のON

D0＜D2の場合、キャリー（M9012）がONします。

D0＜D2の場合、D4の表示はS1+10000からS2を引いた数値（補数）となります。

キャリーフラグ（M9012）ONの実行画面

D0にDE45、D2にDE46を設定、X00をONします。D4はFFFFとなります。D4は桁下がりのため、キャリーフラグ（M9012）がONします。

ゼロフラグ（M9013）のON

D0－D0の計算結果、D4が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0にDE45、D2にDE45を設定、X00をONします。D4は0となります。D4は0なので、ゼロフラグ（M9013）がONします。

＊B－=、B－=Pにはエラーフラグ（M9010）はありません。

真数の求め方

D0＜D2の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0に100、D2に1AFを設定、X00をONします。D4はFF51となります。このときキャリーフラグ（M9012）がONしますので、H0からD4減算することで、D6の真数の求めることができます。D6はAFとなります。


BIN16ビット乗算

    BIN16ビット乗算-----B＊、B＊P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）（H、Kの直値は指定できません。）

設定データ

    S1：被乗算データまたは被乗算データの格納されているデバイスの先頭番号

    S2：乗算データまたは乗算データの格納されているデバイスの先頭番号

    D1：被乗算データの格納されているデバイスの先頭番号

機能　B＊、B＊P

  1. S1で指定されたBIN16ビットデータとS2で指定されたBINビットデータの乗算を行い、乗算結果をD1で指定されたデバイスに格納します。

  2. D1がビットデバイスの場合には、下位のビットからの指定になります。

    例 　K1------下位の4ビット（b0～3）

          K4------下位の16ビット（b0～15）

          K8------32ビット（b0～31）

  3. S1、S2にはO～FFFF（BIN16ビット）が指定できます。

  4. 乗算結果D1、D1+1が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

  註）ＰＩＣ１８４５２シリーズでは結果がＤ１、Ｄ１+1に入る３２ビットになります。

      （バイナリー計算のみです）。

      他のＰＩＣでは結果Ｄ１のみの１６ビットになります。

実行条件：乗算命令の実行条件は次のようになります。

演算エラー：B＊、B＊P命令での演算エラーはありません。

B＊の回路

S1（D0）の値とS2（D2）の値の掛け算を行い、D1（D4、D5）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行

スキャン毎の実行画面

D0=1A2B、D2=3C4Dを設定、X01をONします。D4、D5は629、F2EFとなります。このときの答の読み方は、D4の値が下4桁、D5の値が上4桁となります。ここではD4の値にF2EF、D5の値は629となります。

この命令はX00がONの間スキャンのたびに計算を行います。

ゼロフラグ（M9013）のON

計算の結果、掛け算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0=1A2B、D2=0を設定、X01をONします。D4、D5は0になります。D4、D5は0ですので、ゼロフラグ（M9013）がONします。

B＊Ｐの回路

S1（D0）の値とS2（D2）の値の掛け算を行い、D1（D4、D5）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0に1A2B、D2に3C4Dを設定、X01をONします。D4、D5は629F2EFとなります。このときは、D4の値が下4桁、D5の値が上4桁となります。ここではD4の値にF2EF、D5の値は629となります。

計算の実行2

微分による回路の実行画面

D0は1A2Bのまま、D2の3C4Dを2B6Dに変更、X01のONはそのままだと、D4、D5は629F2EFと変化はありません。

ゼロフラグ（M9013）のON

計算の結果、掛け算をして0になった場合ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0=1A2B、D2=0を設定、X01をONします。D4、D5は0になります。D4、D5は0ですので、ゼロフラグ（M9013）がONします。

＊B＊、B＊Pにはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


BIN16ビット除算

    BIN16ビット除算-----B／、B／P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K4（4桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K4（4桁）（H、Kの直値は指定できません。）

設定データ

    S1：被除算データまたは被除算データの格納されているデバイスの先頭番号

    S2：乗算データまたは乗算データの格納されているデバイスの先頭番号

    D1：被除算データの格納されているデバイスの先頭番号

機能　B／、B／P

  1. S1で指定されたBIN16ビットデータとS2で指定されたBINビットデータの除算を行い、除算結果をD1で指定されたデバイスに格納します。

  2. 除算結果はワードデバイスの32ビットを使用して商と余りを格納し、ビットデバイスの16ビットを使用して商のみが格納されます。

        商　------下位16ビットに格納されます。

        余り------上位16ビットに格納されます。

  3. S1、S2にはO～FFFF（BIN16ビット）が指定できます。

  4. 除算結果D1、D1+1が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

実行条件：除算命令の実行条件は次のようになります。

演算エラー：次の場合には演算エラーとなりエラーフラグ（M9010）がONします。

  • 除数S2が0のとき

B／の回路

S1（D0）の値をS2（D2）の値で割算を行い、D1（D4、D5）に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行

スキャン毎の実行画面

D0に9876、D2に1A2を設定、X00をONします。このときは、D4が商5D、D5が余り9Cになります。

ゼロフラグ（M9013）のON

割り算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0に0、D2に1A2を設定、X00をONします。D4、D5は0になります。D4、D5は0ですので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）

除数に0を指定した場合、計算をしないで、エラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D0に9876、D2に0を設定、X00をONします。除数に0を指定したので、D4は計算をしないで、エラーフラグ（M9010）をONします。

B/Ｐの回路

S1（D0）の値をS2（D2）の値で割算を行い、D1（D4、D5）に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0に9876、D2に1A2を設定、X00をONします。このときは、D4が商5D、D5が余り9Cになります。

計算の実行2

微分による回路の実行画面

D0を9876のままに、D2を1A2から3B2に変えても、X00がONままだと、D4、D5は変わりません。

ゼロフラグ（M9013）のON

計算の結果、掛け算をして0になった場合ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0に0、D2に1A2を設定、X00をONします。D4、D5は0になります。D4、D5は0ですので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）のON

除数に0を指定した場合、計算をしないでエラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D0に9876、D2に0を設定、X00をONします。除数に0を指定したので、D4は計算をしないで、エラーフラグ（M9010）をONします。M9010は瞬時ですので、自己保持を取ってください。

＊B/、B/Pにはキャリーフラグ（M9012）はありません。


BIN32ビット加算

    BIN32ビット加算-----DB＋、DB＋P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（H、Kの直値は指定できません。）

設定データ

    S1：被加算データまたは被加算データの格納されているデバイスの先頭番号

    S2：加算データまたは加算データの格納されているデバイスの先頭番号

    D1：被加減算データの格納されているデバイスの先頭番号

機能　DB＋、DB＋P

  1. S1で指定されたBIN32ビットデータとS2で指定されたBINビットデータの加算を行い、加算結果をD1で指定されたデバイスに格納します。

  2. S1、S2にO～FFFFFFFF（BIN32ビット）が指定できます。

  3. 加算結果がFFFFFFFFを超えた場合は、キャリーフラッグ（M9012）がONします。

  4. 加算結果D1、D1+1が0の場合は、ゼロフラッグ（M9013）がONします。

    註）ＰＩＣでは３２ビット加算はサポートされていません。

実行条件：加算命令の実行条件は次のようになります。

演算エラー：DB+、DB+P命令での演算エラーはありません。

DB+の回路

S1（D0、D1）の値とS2（D1+D2）の値を加算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00がONの間、S1（D0、D1）、S2（D1+D2）が変化しなければD1（D4、D5）も変化しません。

D0、D1+D2、D3の8桁の結果はD2、D3に表示されます。D3は下位4桁、D4が上位4桁となります。

計算の実行

スキャン毎の実行画面

D0、D1に12345678、D2、D3にEDC45321を設定、X00をON、D4、D5はFFF8A999となります。これはD0、Dまたは、D2、D3が変化しなければそのままの値を示します。

キャリーフラグ（M9012）のON

D0、D1+D2、D3の計算結果D4、D5がFFFFFFFFを超えたとき、キャリー（M9012）がONします

D0、D1+D2、D3の計算結果D4、D5がFFFFFFFFを超えるとD4、D5の表示はD0、D1+D2、D3から100000000を引いた数値となります。

ゼロフラグ（M9013）のON

D0、D1+D2、D3の計算結果D4、D5の両方が0になった場合、ゼロフラグ（M9013）がONします。

キャリー（M9012）とゼロフラグ（9013）ONの実行画面

D0、D1に12345678、D2、D3にEDCBA988を設定、X00をON答えは100000000となりD4、D5は0であるためD4、D5は桁上がりとなり、M9012とM9013がONします。

DB+Pの回路

S1（D0、D1）の値とS2（D2、D3）の値を加算して、D1（D4、D5）に格納します。

D0、D1+D2、D3の8桁の結果はD4、D5に転送されます。D4は下位4桁、D5が上位4桁となります。

D0、Dまたは、D2、D3が変化しなければそのままの値を示します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1に12345678、D2、D3にEDC45321を設定、X00をON、D4、D5はFFF8A999となります。

計算の実行2

微分による回路の実行画面

D2、D3の値をEDC45321からEDC48ED5に変化しても、X00がONのまま変化したのではD4、D5の値は変化しません。

キャリーフラグ（M9012）のON

D0、D1+D2、D3の計算結果、（D4、D5）がFFFFFFFFを超えたときはキャリー（M9012）がONします。

D0、D1+D2、D3の計算結果D4、D5がFFFFFFFFを超えるとD4、D5の表示はD0、D1+D2、D3から1、0000、0000を引いた数値となります。

ゼロフラグ（M9013）のON

D0、D1+D2、D3の計算結果D4、D5の両方が0になった場合、ゼロフラグ（M9013）がONします。

キャリー（M9012）とゼロフラグ（9013）ONの実行画面

D0、D1に12345678、D2、D3にEDCBA988を設定、X00をONすると100000000となりD4、D5は0であるためD4、D5は桁上がりとなり、M9012とM9013がONします。

＊DB+、DB+Pにはエラーフラグ（M9010）はありません。


BIN32ビット減算

    BIN32ビット減算-----DB－、DB－P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（H、Kの直値は指定できません。）

設定データ

    S2：減算データまたは減算データの格納されているデバイスの先頭番号

    S1：被減算データまたは被減算データの格納されているデバイスの先頭番号

    D1：被減算データの格納されているデバイスの先頭番号

機能　DB－、DB－P

  1. S1で指定されたBIN32ビットデータとS2で指定されたBINビットデータの減算を行い、減算結果をD1で指定されたデバイスに格納します。

  2. S1、S2にはO～FFFFFFFF（BIN32ビット）が指定できます。

  3. 加減算結果にアンダーフロー生じた場合は、キャリーフラッグ（M9012）はONします。

  4. 減算結果D1、D1+1が0の場合は、ゼロフラッグ（M9013）がONします。

    註）ＰＩＣでは３２ビット減算はサポートされていません。

実行条件：減算命令の実行条件は次のようになります。

演算エラー：DB－、DB－P命令での演算エラーはありません。

DB－の回路

S1（D0、D1）の値からS2（D2、D3）の値を減算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

X00がONの間、S1（D0、D1）、S2（D2、D3）が変化しなければ、D1（D4、D5）の値は変化しません。

計算の実行1

スキャン毎の実行画面

D0、D1に654、3210、 D2、D3に5643710を設定、X00をON、D5、D6はEFFB00となります。

計算の実行2

スキャン毎の実行画面

D0、D1はそのまま、D2、D3を3576438に変更、X00そのまま、D5、D6は2FCCDD8に変化します。

キャリーフラグ（M9012）のON

D0、D1＜D2、D3の場合、キャリー（M9012）がONします。

D0、D1＜D2、D3の場合、D4、D5はD0、D1+100000000からD2、D3を引いた数値（補数）となります。

キャリーフラグ（M9012）ONの実行画面

D0、D1に6543210、D2、D3に8684320を設定、X00をON、D4、D5はＦでFDEBEEF0となりますが、D0、D1＜D2、D3のためキャリー（M9012）がONします。

ゼロフラグ（M9013）のON

D0、D1－D2、D3の計算結果、D4、D5が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に6543210、 D2、D3に6543210、X00をON、D4、D5は0となり、ゼロフラグ（M9013）がONします。

真数を求める回路

D0、D1＜D2、D3の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0、D1に6543210、 D2、D3に6543211、X00をON、D4、D5はＦＦＦＦＦＦＦＦ（補数）となります。

このときキャリーフラグ（M9012）ONしますので、K0からD4、D5を引くと真数が求められます。

0からFFFFFFFFを引くことになりますが、0は桁下がりをして100000000で、100000000－FFFFFFFFとなりD6、D7は1で真数となります。

DB－Pの回路

S1（D0、D1）の値からS2（D2、D3）の値を減算して、D1（D4、D5）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1に6543210、 D2、D3に5643710を設定、X00をON、D5、D6はEFFB00となります。

計算の実行2

微分による回路の実行画面

D0、D1はそのまま、D2、D3は3576438に変化、X00はそのままだと、D5、D6は変化ありません。

D2、D3が変化してもX00がONのままだとD4は変化しません。D4、D5の結果を再度求めるときはもう1度X00をONしてください。

キャリーフラグ（M9012）のON

D0、D1＜D2、D3の場合、キャリー（M9012）がONします。

D0、D1＜D2、D3の場合、D4、D5はD0、D1+100000000からD2、D3を引いた数値（補数）となります。

キャリーフラグ（M9012）ONの実行画面

D0、D1に6543210、D2、D3に8684320を設定、X00をON、D4、D5はFDEBEEF0となりますが、D0、D1＜D2、D3のためキャリー（M9012）がONします。

ゼロフラグ（M9013）のON

D0、D1－D2、D3の計算結果、D4、D5が0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に6543210、 D2、D3に6543210、X00をON、D4、D5は0となり、ゼロフラグ（M9013）がONします。

＊DB－、DB－Pにはエラーフラグ（M9010）はありません。

真数を求める回路

D0、D1＜D2、D3の場合、キャリーフラグ（M9012）のONを利用して、真数の求めることができます。

真数を求める回路の実行画面

D0、D1に6543210、 D2、D3に6543211、X00をON、D4、D5はＦＦＦＦＦＦＦＦ（補数）となります。

このときキャリーフラグ（M9012）ONしますので、K0からD4、D5を引くと真数が求められます。

0からFFFFFFFFを引くことになりますが、0は桁下がりをして100000000で、100000000－FFFFFFFFとなりD6、D7は1で真数となります。


BIN32ビット乗算

    BIN32ビット乗算-----DB＊、DB＊P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（H、Kの直値は指定できません。）

設定データ

    S1：被乗算データまたは被乗算データの格納されているデバイスの先頭番号

    S2：乗算データまたは乗算データの格納されているデバイスの先頭番号

    D1：被乗算データの格納されているデバイスの先頭番号

機能　DB＊、DB＊P

  1. S1で指定されたBIN32ビットデータとS2で指定されたBINビットデータの乗算を行い、乗算結果をD1で指定されたデバイスに格納します。

  2. D1がビットデバイスの場合には、下位のビットからの指定になります。

    例　 K1------下位の4ビット（b0～3）

          K4------下位の16ビット（b0～15）

          K8------32ビット（b0～31）

  3. S1、S2にはO～FFFFFFFF（BIN32ビット）が指定できます。

  4. 乗算結果D1、D1+1、D1+2、D1+3が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

    註）ＰＩＣでは３２ビット乗算はサポートされていません。

実行条件：乗算命令の実行条件は次のようになります。

演算エラー：DB＊の計算において演算エラーはありません。

DB＊の回路

S1（D0、D1）の値とS2（D2、D3）の値で掛け算を行い、D1（D4、D5、D6、D7）の値に格納します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行1

スキャン毎の実行画面

D0、D1 に21415642、D2、D3に1AF57F65を設定、X00をONします。D4にC60A、D5にC9BB、D6に86D6、D7に380となります。その結果、D7、D6、D5、D4の順に並べれば38086D6C9BBC60Aとなります。

計算の実行2

スキャン毎の実行画面

D0、D1は元のまま、D2、D3を8705FA6Dに変更、X00はONのままでも、D4、D5、D6、D7の値はF048E50974582E1Aに変化します。

ゼロフラグ（M9013）のON

  D0、D1＊D2、D3の計算結果、0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に21415642、D2、D3に0を設定、X00をONします。D4、D5、D6、D7は0となり、ゼロフラグ（M9013）がONします。

DB＊Ｐの回路

S1（D0、D1）の値とS2（D2、D3）の値で掛け算を行い、D1（D4、D5、D6、D7）の値に格納します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1 に21415642、D2、D3に1AF57F65を設定、X00をONします。D4にC60A、D5にC9BB、D6に86D6、D7に380となります。その結果、D7、D6、D5、D4の順に並べれば38086D6C9BBC60Aとなります。

計算の実行2

微分による回路の実行画面

D0、D1は元のまま、D2、D3を8705FA6Dに変更、X00はONのままだと、D4、D5、D6、D7の値は元のまま、変化はありません。

ゼロフラグ（M9013）のON

D0、D1＊D2、D3の計算結果、0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0、D2、D3に1AF57F65を設定、X00をONします。D4、D5、D6、D7は0となり、ゼロフラグ（M9013）がONします。

＊DB＊、DB＊Pにはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


BIN32ビット除算

    BIN32ビット除算-----DB／、DB／P

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    S2：Ｘ、Ｙ、Ｍ、Ｄ、H（直値）、Ｋ（直値）、K1～K8（8桁）

    D1：Ｙ、Ｍ、Ｄ、K1～K8（8桁）（H、Kの直値は指定できません。）

設定データ

    S1：被除算データまたは被除算データの格納されているデバイスの先頭番号

    S2：除算データまたは除算データの格納されているデバイスの先頭番号

    D1：被除算データの格納されているデバイスの先頭番号

機能　DB／、DB／P

  1. S1で指定されたBIN16ビットデータとS2（D2、D3）で指定されたBINビットデータの除算を行い、除算結果をD1で指定されたデバイスに格納します。

  2. 結果はワードデバイスの64ビットを使用して商と余りを格納し、ビットデバイスの32ビットを使用して商のみが格納されます。

        商　------下位32ビットに格納されます。

        余り------上位32ビットに格納されます。

  3. S1、S2にはO～FFFF、FFFF（BIN32ビット）が指定できます。

  4. 除算結果D1、D1+1、D1+2、D1+3が0の場合は、ゼロフラグ（M9013）がONします。

  5. キャリーフラグ（M9012）はありません

註）ＰＩＣ１８Ｆ４５２シリーズでは被除数はＳ１とＳ１+1の３２ビットになり、

     除数はＳ２の１６ﾋﾞｯﾄのみになります。結果は、Ｄ１とＤ１+1に入り、

    余りはＤ１+2に入ります、余りの５桁目以上は無視されます。

     （バイナリー計算のみ、頭にＤのつく３２ﾋﾞｯﾄ命令があります）。

実行条件：除算命令の実行条件は次のようになります。

演算エラー：次の場合には演算エラーとなりエラーフラッグ（M9010）がONします。

  • S1、S2にA1がD1にA0、A1が指定されているとき。

  • 除数S2が0のとき

ＤＢ／の回路

S1（D0、D1）の値からS2（D2、D3）の値で割算を行い、D1（D4、D5、D5、D7）の値に格納します。

D4、D5は商、D6、D7は余りとなります。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行1

スキャン毎の実行画面

D0、D1に98765432、 D2、D3に1234を設定、X00をONします。D4、D5は86027、D6、D7はE46となります。この場合、86027は商、E46は余りとなります。

計算の実行2

スキャン毎の実行画面

D0、D1をそのままで、D2、D3を2345に変化します。X00をONします。D4、D5は52A1、D6、D7はBCDに変化します。

ゼロフラグ（M9013）のON

計算の結果、掛け算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0、D2、D3に1234を設定、X00をONします。D4、D5は0、D6、D7も0になるため、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）

除数に0を指定した場合、計算をしないでエラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に98765432、 D2、D3に0を設定、X00をONします。D4、D5は無限大となり、エラーフラグ（M9010）をONします。

ＤＢ／Ｐの回路

S1（D0、D1）の値からS2（D2、D3）の値で割算を行い、D1（D4、D5、D5、D7）の値に格納します。

D4、D5は商、D6、D7は余りとなります。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1に98765432、 D2、D3に1234を設定、X00をONします。D4、D5は86027D6、D7はE46となります。この場合、86027は商、E46は余りとなります。

計算の実行2

微分による回路の実行画面

D0、D1をそのままで、D2、D3を2345に変化します。X00をONします。D4、D5は86027、D6、D7はE46と変化はありません。結果を求めるためにはもう1度、X00をONします。

ゼロフラグ（M9013）のON

計算の結果、掛け算をして0になった場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1を0にし、D2、D3を2345にします。X00をONします。D0、D1の分母は0ですので、D4、D5は0になりますので、ゼロフラグ（M9013）がONします。

エラーフラグ（M9010）

除数に0を指定した場合、計算をしないでエラーフラグ（M9010）をONします。

エラーフラグ（M9010）ONの実行画面

D0、D1に98765432、 D2、D3に0を設定、X00をONします。D4、D5は無限大となり、エラーフラグ（M9010）をONします。

＊DB/、DB/Pにはキャリーフラグ（M9012）はありません。


16ビットBCDデータインクリメント

    16ビットBCDデータインクリメント-----INC、INCP

回路

使用可能デバイス

    D：Ｄ

設定データ

    D：INC（+1）を行うデバイス先頭番号

機能　INC、INCP

  1. D で指定したデバイス（16ビットデータ） +1を行います。

  2. Dで指定されたデバイスの内容が9999の場合に、INC、INCPを実行した場合0がD で指定されたデバイスに格納されます。この場合キャリーフラグはONしません。

  3. 加算結果Dが0の場合は、ゼロフラグ（M9013）がONします。

  4. キャリーフラグ（M9012）はありません

実行条件：INC、INCP命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • DのBCDデータに0～9以外の値があるとき。

INCの回路

X00をONすると指定されたデバイスD0に+1を加算します。

この命令はX00がONの間、スキャンの度に計算を行います。

計算の実行1

スキャン毎の実行画面

Ｄ0に0を設定X00ONします。INC命令はスキャンの度に計算を行いますので、D0はX00がONの間、加算されることになります。

計算の実行2

スキャン毎の実行画面

スキャンの度に加算されないためには、入力をPLS化しなければなりません。ＰＬＳ入力は1パルスしか発生しませんので、1しか増加しません。

ゼロフラグ（M9013）のON

加算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D2に9999を設定、X01をONします。D0は0となります。この場合、ゼロフラグ（M9013）がONしますが、INCにはキャリーフラグ（M9012）はありませんので、桁上がりがあったとしても、M9012はONしません。

エラーフラグ（M9010）のON

D0の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に99Aを設定、X00をONします。INC命令はBCDに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

INCPの回路

D0に0を設定、X00をONすると指定されたデバイスD0に+1を加算します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行

微分による回路の実行画面

Ｄ0に0を設定X00ONします。INCP命令はX00がONの間、1回のみの+1されます。

ゼロフラグ（M9013）のON

加算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に9999を設定、X00をONします。D0は0となります。この場合、ゼロフラグ（M9013）がONしますが、INCPにはキャリーフラグ（M9012）はありませんので、桁上がりがあったとしても、M9012はONしません。

エラーフラグ（M9010）のON

D0の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に9Aを設定、X00をONします。INC命令はBCDに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

＊INC、INCPにはキャリーフラグ（M9012）はありません。


16ビットBCDデータデクリメント

    16ビットBCDデータデクリメント-----DEC、DECP

回路

使用可能デバイス

    D：Ｄ

設定データ

    D：DEC（-1）を行うデバイス先頭番号

機能　DEC、DECP

  1. Dで指定したデバイス（16ビットデータ） -1を行います。

  2. Dで指定されたデバイスの内容が0の場合に、DEC、DECPを実行した場合は9999がDで指定されたデバイスに格納されます

  3. 減算結果Dが0の場合は、ゼロフラグ（M9013）がONします。

  4. キャリーフラグ（M9012）はありません

実行条件：DEC、DECP命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • DのBCDデータに0～9以外の値があるとき。

DECの回路

X00をONすると指定されたデバイスD0に-1を減算します。

スキャンのたびに-1されるのでD0の値はX00がONの間は減算されます。

計算の実行

スキャン毎の実行画面

D0に0を設定、X00をONします。D0はスキャンのたびに-1されるのでD0の値はX00がONの間は減算されます。

ゼロフラグ（M9013）のON

減算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D2に1を設定、X01をONします。D0は0となります。この場合、ゼロフラグ（M9013）がONしますが、INCPにはキャリーフラグ（M9012）はありませんので、桁下がりがあったとしても、M9012はONしません。

エラーフラグ（M9010）のON

D0の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に98Aを設定、X00をONします。INC命令はBCDに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

DECPの回路

X00をONすると指定されたデバイスD0に-1を減算します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行

微分による回路の実行画面

D0に9800を設定、X00をONします。D0は－1されて9799になります。

ゼロフラグ（M9013）のON

減算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に1を設定、X01をONします。D0は0となります。この場合、ゼロフラグ（M9013）がONしますが、INCPにはキャリーフラグ（M9012）はありませんので、桁下がりがあったとしても、M9012はONしません。

エラーフラグ（M9010）のON

D0の各桁のBCDデータに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

エラーフラグ（M9010）のONの実行画面

D0に98Aを設定、X00をONします。INC命令はBCDに0～9以外の数値（A～F）があれば、計算をしないでエラーフラグ（M9010）がONします。

アップダウンカウンタ

INCP、DECPを用いてアップダウンカウンタを作ることができます。

出力は比較命令の=を持ちます。D0の値が20になったとき比較命令=ON出力となります。

D0は20以上9999まで行きますが、それ以上はまた0から始まります。しかし減算はDECPにM9013（ゼロフラグ）のＢ接点がありますので0より減算されることはありません。

＊DEC、DECPにはキャリーフラグ（M9012）はありません。


32ビットBCDデータインクリメント

    32ビットBCDデータインクリメント-----DINC、DINCP

回路

使用可能デバイス

    D：D

設定データ

    D：DINC（+1）を行うデバイス先頭番号

機能　DINC、DINCP

  1. Dで指定したデバイス（32ビットデータ） +1を行います。

  2. Dで指定されたデバイスの内容が99999999の場合にINC、DECを実行した場合0がDで指定されたデバイスに格納されます。この場合キャリーフラッグはONしません。

  3. 加算結果D、D+1が0の場合は、ゼロフラグ（M9013）がONします。

  4. キャリーフラグ（M9012）はありません

実行条件：DINC、DINCP命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • D、D+1のBCDデータに0～9以外の値があるとき。

DINCの回路

X00をONすると指定されたデバイスD0に+1を加算します。

スキャンのたびに+1されるのでD0の値はX00がONの間は加算されます。

計算の実行

スキャン毎の実行画面

D0、D1に0を指定、X00をONします。D0、D1はスキャンのたびに+1されます。このままX00をONしていると、スキャンされた分加算されます。

  DDECで1パルスには入力のX01をPLS出力にします。こうすればX00をON/OFFすることで加算されて行きます。スキャンによる増加がなくなります。

ゼロフラグ（M9013）のON

加算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に99999999を設定、X01をONします。D0、D1は0となりますが、D0、D1は桁上がりをしますので、ゼロフラグ（M9013）がONします。ただし、桁上がりによるキャリーフラグ（M9012）のONはありません。

エラーフラグ（M9010）のON

D0、D1のデータの中にBCDデータ以外の数値があるとき。

エラーフラグ（M9010）のONの実行画面

D0、D1に23D5を設定、X01します。23D5はBIN値ですので、エラーフラグ（M9010）がONします。

DINCPの回路

X00をONすると指定されたデバイスD0に+1を加算します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行

微分による回路の実行画面

D0、D1に99999997を設定、X00を1回ONします。D0、D1は99999998になります。

ゼロフラグ（M9013）のON

加算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1をそのまま、X00を2回ONします。D0、D1は桁上がりをして0になります。このときゼロフラグ（M9013）がONします。しかし、桁上がりによるキャリーフラグ（M9012）のONはありません。

エラーフラグ（M9010）のON

D0、D1のデータの中にBCDデータ以外の数値があるとき。

エラーフラグ（M9010）のONの実行画面

D0、D1に99999A97を設定、9A97はBIN値ですので、エラーフラグ（M9010）のONします。

＊DINC、DINCPにはキャリーフラグ（M9012）はありません。


32ビットBCDデータデクリメント

    32ビットBCDデータデクリメント-----DDEC、DDECP

回路

使用可能デバイス

    D：Ｄ

設定データ

    D：DDEC（-1）を行うデバイス先頭番号

機能　DDEC、DDECP

  1. Ｄで指定したデバイスINC、DEC（32 ビットデータ） -1を行います。

  2. Dで指定されたデバイスの内容が0の場合にDEC、DECP を実行した場合は9999、9999がDで指定されたデバイスに格納されます。

  3. 減算結果D、D+1が0の場合は、ゼロフラグ（M9013）がONします。

  4. キャリーフラグ（M9012）はありません

実行条件：DDEC、DDECP命令の実行条件は次のようになります。

演算エラー：次の場合は演算エラーとなりエラーフラグ（M9010）がONします。

  • DのBCDデータに0～9以外の値があるとき。

DDECの回路

X00をONすると指定されたデバイスD0に-1を減算します。

スキャンのたびに-1されるので、D0の値はX00がONの間は減算されます。

計算の実行

スキャン毎の実行画面

D0、D1に12340000を設定、X00をONします。D0、D1はスキャンの度に1を減算します。

D0、D1に3を設定、X01を4回ONします。D0、D1は0を過ぎて99999999になります。0から99999999になるとき、D0、D1は桁下がりを行いますが、キャリーフラグ（M9012）はONしません。

ゼロフラグ（M9013）のON

減算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に3を設定、X00を3回ONします。D0、D1は0になります。このときゼロフラグ（9013）がONします。

エラーフラグ（M9010）のON

D0、D1のデータの中にBCDデータ以外の数値があるとき。

エラーフラグ（M9010）のONの実行画面

D0、D1に12340Aを設定、X00をONします。340AはBCD以外の数値なので、エラーフラグ（M9010）がONします。

DDECPの回路

X00をONすると指定されたデバイスD0に-1を減算します。

この命令はX00がONの間、1回のみの実行となります。

計算の実行1

微分による回路の実行画面

D0、D1に3を設定、X00をONします。D0、D1は-1されますので、2となります。

計算の実行2

微分による回路の実行画面

D0、D1に3を設定、X00を4回ONします。D0、D1は0を過ぎて99999999になります。0から99999999になるとき、D0、D1は桁下がりを行いますが、キャリーフラグ（M9012）はONしません。

ゼロフラグ（M9013）のON

減算結果D0が0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に3を設定、X00を3回ONします。D0、D1は-3されますので、0となります。このときゼロフラグ（M9013）をONします。

エラーフラグ（M9010）のON

D0、D1のデータの中にBCDデータ以外の数値があるとき。

エラーフラグ（M9010）のONの実行画面

D0、D1にA3、X00をONします。A3は BCD以外の数値なので、エラーフラグ（M9010）がONします。

＊DDEC、DDECPにはキャリーフラグ（M9012）はありません。


範囲クリア命令

    データの範囲クリア命令-----ZCLR、ZCLRP

回路

使用可能デバイス

    D：Ｄのみ指定可能

設定データ

    D：クリアするデータレジスタの開始番号

    D：クリアするデータレジスタの終了番号

機能　ZCLR

  1. Dで指定されたデバイスで囲われるデバイスすべてに０を代入します。開始番号と終了番号の大きさはどちらが小さくても構いません。

実行条件：ＺＣＬＲ変換命令の実行条件は次のようになります。


BINデータ→BCD4桁変換

    BINデータ→BCD4桁変換-----BCD、BCDP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、K1～K4

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S：BINデータまたはBINデータの格納されているデバイスの先頭番号

    D：BCDデータの格納するデバイスの先頭番号

機能　BCD、BCDP

  1. Sで指定されたデバイスのBINデータ（0～270F）をBCD変換して、Dで指定されたデバイスに格納します。

  2. SのBINの値は270Fを超えて指定することはできません。（BINの270FはBCDでは9999になりますのでそれ以上はBCDの範囲を超えてしまいます。）

  3. 変換の結果Dが0の場合は、ゼロフラグ（M9013）がONします。

  4. キャリーフラグ（M9012）はありません

    註）ＰＩＣ１８４５２シリーズでは、結果がＤ１と万（０～６）のくらいがＤ１+1に入ります。

        他のＰＩＣでは結果が９９９９までの１６ビットがＤ１に入ります。

実行条件：BCD、BCDP変換命令の実行条件は次のようになります。

エラー：BCD、BCDP変換命令では次の場合はエラーとなりエラーフラグ（M9010）がONします。

  • BCD命令時Sのデータが9999を超えたとき。

  • このとき命令は実行されません。

BCD変換

ＢＩＮ値の0～270FまでをBCD値に変換します。

BCD変換はスキャンの度に変換を実行します。X00がONのまま、D0が変化するとD2も変化します。

変換の実行

スキャン毎の実行画面

D0に270Fを設定、X00をONします。X2は9999になります。命令はスキャン毎に行います。

ゼロフラグ（M9013）のON

BCD変換のときBINの値が0であれば、BCDも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0に0を設定、X00をONします。X2は0になるため、ゼロフラグ（M9013）のONします。

エラーフラグ（M9010）のON

BIN数値が2710以上の変換はBCD数値が9999を超えるためBCDには変換できません。この場合は変換エラーとしてエラーフラグ（M9010）がONし、命令は実行しません。

エラーフラグ（M9010）のONの実行画面

D0に2710を設定、X00をONします。D0は270Fを超えるため、BCD命令は計算をしないで、X2は9999のまま、エラーフラグ（M9010）がONになります。

BCDP変換

ＢＩＮ値の0～270FまでをBCD値に変換します。

BCDPはBCD変換の微分命令ですので、1スキャンのみの実行となり、D0が変化してもD2は変化しません。

変換の実行1

微分による回路の実行画面

D0にA70を設定、X00をONします。X2は2672になります。

変換の実行2

微分による回路の実行画面

X00をONのまま、D0を32Aに変えても、D2の値は変化しません。

BCDPは微分命令なので、D2の変化を知るには、もう1度X00をONさせてください。

ゼロフラグ（M9013）のON

BCD変換のときBINの値が0であれば、BCDも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0に0を設定、X00をONします。X2は0になるため、ゼロフラグ（M9013）のONします。

エラーフラグ（M9010）のON

BIN数値が2710以上の変換はBCD数値が9999を超えるためBCDには変換できません。この場合は変換エラーとしてエラーフラグ（M9010）がONし、命令は実行しません。

エラーフラグ（M9010）のONの実行画面

BCDPは微分扱いですので、BIN値2710を超えるとエラーフラグがONします。命令は1スキャンしか動作しません。M9010を利用のときは、回路のようにM0受けしてM0の自己保持を取ってください。


DBINデータ→BCD8桁変換

    DBINデータ→BCD8桁変換-----DBCD、DBCDP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、K1～K8

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S：BINデータまたはBINデータの格納されているデバイスの先頭番号

    D：BCDデータの格納するデバイスの先頭番号

機能　DBCD、DBCDP

  1. Sで指定されたデバイスのBINデータ（0～5F5E0FF）をBCD変換して、Dで指定されたデバイスに格納されます。

  2. SのDBINの値は5F5E0FFを超えて指定することはできません。この場合DBCD命令時S+1、Sのデータが99999999となり、それ以上はDBCDの範囲を超えてしまいます。）

  3. 変換の結果D、D+1が0の場合は、ゼロフラグ（M9013）がONします。

  4. キャリーフラグ（M9012）はありません

実行条件：DBCD、DBCDP変換命令の実行条件は次のようになります。

エラー：DBCD、DBCDP変換命令では次の場合はエラーとなりエラーフラグ（M9010）がONします。

  • BCD命令時Sのデータが99999999を超えたとき。

  • このとき命令は実行されません。

DBCD変換

DBIN値0～5F5E0FFまでDBCD値に変換します。

DBCD変換はスキャンの度に変換を実行します。X00がONのまま、D0が変化するとD2も変化します。

変換の実行

スキャン毎の実行画面

D0、D1に5F5E0FFを設定、X00をONします。D2、D3DはBCDコードに変換して、99999999になります。DBCD変換はDBIN数値の0～5F5E0FFまで変換可能です。

ゼロフラグ（M9013）のON

DBCD変換のときDBINの値が0であれば、DBCDも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0を設定、X00をONします。D2、D3は0になります。変換されるＢＩＮ数値が0の場合、DBCD変換が実行されても変換結果が0であるため、D2、D3には変化がありません。このときゼロフラグ（M9013）をONさせます。

エラーフラグ（M9010）のON

DBIN数値が5F5E100以上の変換はDBCD数値が99999999を超えるためDBCDには変換できません。この場合は変換エラーとしてエラーフラグ（M9010）がONし、命令は実行しません。したがって、D2、D3の値は変化ありません。エラーフラグはDBCD命令に入力がなくなればOFFします。

エラーフラグ（M9010）のONの実行画面

D0、D1に5F5E100を設定、X00をONさせます。D0、D1は5F5E100を超えるためエラーフラグ（M9010）をONさせます。D2の値はエラーのため計算はされず、前のままになります。

DBCDP変換

DBIN0～5F5E0FFまでBCD値に変換します。

DBCDPはDBCD変換の微分命令ですので、1スキャンのみの実行となり、D0が変化してもD2は変化しません。

変換の実行1

微分による回路の実行画面

D0、D1に1A3B5C7を設定、X00をONします。D2、D3は変換により27506119になります。

変換の実行2

微分による回路の実行画面

X00をそのままにして、D0、D1を2D2、C3B4に変更します。D2、D3の値は変わりませが、X00をもう1度ONさせるとD2、D3は47367092になります。

ゼロフラグ（M9013）のON

BIN数値0をBCD数値に変換したとき、BCD数値は0になりますので、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0を設定、X00をONします。D2、D3は0になるため、ゼロフラグ（M9013）のONします。

エラーフラグ（M9010）のON

D0、D1の値がDBIN値5F5E100を超えるとエラーフラグ（M9010）がONします。D2、D3の値は前と同じです。命令は1スキャンしか動作しません。

エラーフラグ（M9010）のONの実行画面

D0、D2に5F5E100を設定、X00をONさせます。D2、D3は99999999を超えるためエラーフラグ（M9010）をONさせます。D2、D3の値はエラーのため計算はされず前のままになります。DBCDPは微分命令のためエラーフラグも微分になるためM9010を使用するとき、上の回路のようにM0受けしてM0の自己保持を取ってください。M0がエラーフラグとして働きます。


BCD4桁→BINデータ変換

    BCD4桁→BINデータ変換-----BIN、BINP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、K1～K4

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S：BCDデータまたはBCDデータの格納されているデバイスの先頭番号

    D：BINデータの格納するデバイスの先頭番号

機能　BIN、BINP

  1. Sで指定されたデバイスのBCDデータ（0～9999）をBIN変換して、Dで指定されたデバイスに格納します。

  2. 変換の結果Dが0の場合は、ゼロフラグ（M9013）がONします。

  3. キャリーフラグ（M9012）はありません

実行条件：BIN、BINP変換命令の実行条件は次のようになります。

エラー：BIN、BINP変換命令では次の場合はエラーとなりエラーフラグ（M9010）がONします。

    Sの各桁に0～9（BCDの値）以外（A～F）の値があるとき。

    このとき命令は実行されません。

BIN変換

BCD値をBIN値に変換します。BCD値の0～9999まで、BINに変換が可能です。

BIN変換はスキャンのたびに変換を実行します。X00がONのまま、D0が変化するとD2も変化します。

変換の実行

スキャン毎の実行画面

D0に9999を設定、X00をONします。D2はBIN変換の結果270Fになリます。

ゼロフラグ（M9013）のON

BIN変換のときBCDの値が0であれば、BINも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0に0を設定、X00をONします。D2は変換されるBCD数値が0の場合、BIN変換が実行されても変換結果、D2は0になります。このときBCD命令はゼロフラグ（M9013）をONさせます。

エラーフラグ（M9010）がON

BCD数値に各桁に0～9以外の値（A～F）があるときはエラーとなりエラーフラグ（M9010）がONし、命令は実行されません。

エラーフラグ（M9010）のONの実行画面

D0に9F2を設定、X00をONします。9F2はBIN数値なので、エラーフラグ（M9010）がONします。

BINP変換

BCD値をBINに変換します。BCD値の0～9999まで、BINに変換が可能です。

BINPはBIN変換の微分命令ですので、1スキャンのみの実行となり、D0が変化してもD2は変化しません。

変換の実行1

微分による回路の実行画面

D0に2710を設定、X00をONさせます。D2はA96になります。

変換の実行2

微分による回路の実行画面

X00をそのままにD0を8570に変更します。BINPは微分命令ですので、D2の値に変化ありません。

X00をもう1度ONさせれば、D2は217Aになります。

ゼロフラグ（M9013）のON

BIN変換のときBCDの値が0であれば、BINも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0に0を設定、X00をONさせます。変換されるBCD数値が0の場合、BIN変換が実行されても変換結果が0であるためD2には変化がありません。このときゼロフラグ（M9013）をONさせます。

エラーフラグ（M9010）がON

BCD数値に各桁に0～9以外の値（A～F）があるときはエラーとなりエラーフラグ（M9010）がONし、命令は実行されません。

エラーフラグ（M9010）のONの実行画面

D0にA70を設定、X00をONさせます。この場合、A70はBIN数値なので、改めてBINに変換はできません。その代わりエラーフラグ（M9010）がONします。


BCD8桁→DBINデータ変換

    BCD8桁→DBINデータ変換-----DBIN、DBINP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、K1～K8

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S：BCDデータまたはBCDデータの格納されているデバイスの先頭番号

    D：BINデータの格納するデバイスの先頭番号

機能　DBIN、DBINP

  1. Sで指定されたデバイスのBCDデータ（0～99999999）をBIN変換して、Dで指定されたデバイスに格納します。

  2. 変換の結果D、D+1が0の場合は、ゼロフラグ（M9013）がONします。

  3. キャリーフラグ（M9012）はありません

実行条件：DBIN、DBINP変換命令の実行条件は次のようになります。

エラー：DBIN、DBINP変換命令では次の場合はエラーとなりエラーフラグ（M9010）がONします。

  • Sの各桁に0～9（DBCDの値）以外（A～F）の値があるとき。

  • このとき命令は実行されません。

DBIN変換

DBCD値をDBIN値に変換します。BCD値の0～99999999まで、DBINに変換が可能です。

DBIN変換はスキャンのたびに変換を実行します。X00がONのまま、D0が変化するとD2も変化します。

変換の実行

スキャン毎の実行画面

D0、D1に99999999を設定、D2、D3はBINコードに変換して5F5E0FFになります。DBCDコードの数値は0～99999999までが変換可能です。

ゼロフラグ（M9013）のON

DBIN変換のときDBCDの値が0であれば、DBINも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0を設定、X00をONします。BINに変換されたD2、D3は0となり、このときBCD命令はゼロフラグ（M9013）をONします。

エラーフラグ（M9010）がON

BCD数値に各桁に0～9以外の値（A～F）があるときはエラーとなりエラーフラグ（M9010）がONし、命令は実行されません。

エラーフラグ（M9010）のONの実行画面

D0、D1に30647F3Aを設定、X00をONします。この場合、30647F3AはBCD数値でないのでエラーになります。このときエラーフラグ（M9010）がONします。エラーの場合D2、D3はそのままです。

DBINP変換

DBCD値をDBIN値に変換します。DBCD値の0～99999999まで、DBINに変換が可能です。

DBINPはDBIN変換の微分命令ですので、1スキャンのみの実行となり、D0が変化してもD2は変化しません。

変換の実行1

微分による回路の実行画面

D0、D1を99999999に設定、X00をONします。D2、D3は5F5E0FFになります。

変換の実行2

微分による回路の実行画面

X00をONのまま、D0、D1を88888888変化させたとき、DBINPは微分命令なので、D2、D3の値に変化はありません。もう1度X00をONすれば、D2、D3は54C5638になります。

ゼロフラグ（M9013）のON

DBIN変換のときDBCDの値が0であれば、DBINも0となるため、ゼロフラグ（M9013）のONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0を設定、X00をONします。BINに変換されたD2、D3は0となり、このときBCD命令はゼロフラグ（M9013）をONします。

エラーフラグ（M9010）がON

BCD数値に各桁に0～9以外の値（A～F）があるときはエラーとなりエラーフラグ（M9010）がONし、命令は実行されません。

エラーフラグ（M9010）のONの実行画面

D0、D1を30647F3Aに設定、X00をONします。30647F3AはBCD数値ではありませんので、エラーフラグ（M9010）がONし、命令は実行されません。D2、D3の値は前のままです。

エラーフラグは1スキャンしか実行しません。M9010を利用するには回路のようにM0受けして、M0の自己保持を取ってください。


16ビットデータ転送

    16ビットデータ転送-----MOV、MOVP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、Ｋ（直値）、K1～K4

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S：転送元のデータまたはデータの格納されているデバイスの先頭番号

    D：転送先のデバイスの先頭番号

機能　MOV、MOVP

  1. Sで指定されたデバイスの16ビットデータをDで指定されたデバイスへ転送します。

  2. 転送の結果Dが0の場合は、ゼロフラグ（M9013）がONします。

実行条件：MOV、MOVP転送命令の実行条件は次のようになります。

エラー：MOV、MOVP転送命令でのエラーはありません。

MOVの回路

D0の値をK4Y0に転送します。MOV転送はスキャンの度に転送を実行します。

X00がONのまま、D0が変化するとK4Y0も変化します。

転送の実行

スキャン毎の実行画面

D0に1F34を設定、X00をONします。K4Y0は同じ値を転送しますので1F34になります。K4Y0はビットですのでY0～Y0Fまで転送します。

Y0～Y0FまでのONビットはY02、Y04、Y05、Y8、Y09、Y0A、Y0B、Y0Cです。

ゼロフラグ（M9013）のON

転送の結果、0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0に0を指定、X00をONします。K4Y0への転送結果が0になったのでゼロフラグ（M9013）がONします。

Y0～Y0FまでビットのONはありません。

MOVPの回路

D0の値をK4Y0に転送します。

この命令はX00がONの間、1回のみの実行となります。

転送の実行1

微分による回路の実行画面

D0に3A4Fを設定、X00をONします。K4Y0は同じ値を転送しますので3A4Fになります。K4Y0はY0～Y0Fまでのビットとして扱います。

Y0～Y0FまでのONビットはY0、Y1、Y2、Y3、Y6、Y9、YB、YC、YDです。

転送の実行2

微分による回路の実行画面

X00がONのまま、D0が4D3Aに変化しても、MOVPはMOV転送命令の微分命令ですので、1スキャンのみの命令になり、D0が変化してもK4Y0は変化しません。もう1度X00をONさせるとK4Y0は4D3Aになります。

ゼロフラグ（M9013）のON

転送の結果、0の場合、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0に0を設定、X00をONします。K4Y0は0を転送しますので、Y0～Y0FまでのビットONはありません。転送結果が0ですのでゼロフラグ（M9013）がONします。

＊MOV、MOVPにはエラーフラグ（M9010）はありません。


32ビットデータ転送

    32ビットデータ転送-----DMOV、DMOVP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S：転送元のデータまたはデータの格納されているデバイスの先頭番号

    D：転送先のデバイスの先頭番号

機能　DMOV、DMOVP

  1. Sで指定されたデバイスの32ビットデータをDで指定されたデバイスへ転送します。

  2. 転送の結果D、D+1が0の場合は、ゼロフラグ（M9013）がONします。

実行条件：DMOV、DMOV変換命令の実行条件は次のようになります。

エラー：DMOV、DMOVP命令でのエラーはありません。

DMOVの回路

D0、D1の値をK8M0に転送します。DMOV転送はスキャンの度に転送を実行します。

X00がONのまま、D0、D1が変化するとK8M0も変化します。

転送の実行

スキャン毎の実行画面

D0、D1のデバイスを出力K8M0に転送する回路です。M0～M31が対象ビットになります。

D0、D1に12345678を設定、X00をONにします。12345678はそのままK8M0に転送されます。

M0～M31までのONビットはM3、M4、M5、M6、M9、M10、M12、M14、M18、M20、M21、M25、M28です。

ゼロフラグ（M9013）のON

転送の結果、0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0を指定、X00をONします。K8M0は0になりますので、M0～M31までのビット中のONはありません。

これによりゼロフラグ（M9013）がONします。

DMOVPの回路

D0、D1の値をK8M0に転送します。

この命令はX00がONの間、1回のみの実行となります。

転送の実行1

微分による回路の実行画面

D0、D1のデータを出力K8M0に転送する回路です。M0～M31が対象ビットになります。

D0、D1に1A2B3C4Dを設定、X00をONにします。1A2B3C4DはそのままK8M0に転送されます。

M0～M31までのONビットはM0、M2、M3、M6、M10、M11、M12、M14、M18、M20、M21、M25、M28です。

転送の実行2

微分による回路の実行画面

X00をONのままD0、D1を4E3D2C1Bに変更します。K8M0は1A2B3C4Dと変わりません。X00再びONするとK8M0は4E3D、2C1Bになります。

ゼロフラグ（M9013）のON

転送の結果、0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1に0を指定、X00をONします。K8M0は0になりますので、M0～M31までのビット中のONはありません。

これによりゼロフラグ（M9013）がONします。

＊DMOV、DMOVPにはエラーフラグ（M9010）はありません。


16ビットデータ否定転送

    16ビットデータ否定転送-----CML、CMLP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S：反転させるデータまたはデータの格納されているデバイスの先頭番号

    D：反転結果を格納するデバイスの先頭番号

機能　CML、CMLP

  1. Sで指定された16ビットデータをビットごとに反転し、その結果をDで指定されたデバイスへ転送します。

  2. 否定転送の結果Dが0の場合は、ゼロフラグ（M9013）がONします。

実行条件：CML、CMLP変換命令の実行条件は次のようになります。

エラー：CML、CMLP命令でのエラーはありません。

CMLの回路

CML否定転送は第1オペランドのビットデバイスをビットごとに反転して、第2オペランドのビットデバイスに転送をします。

第2オペランドのデバイスに入力デバイス（X）を指定することはできません。

CMLはスキャンの度に否定転送を行います。

転送の実行

スキャン毎の実行画面

K4M0のビットデバイスを出力K4Y0に転送する回路です。

K4M0に4AE3を数値設定から入力し、入力接点X00をONします。K4Y0にはK4M0のビット反転した結果、B51Cとして転送します。

M0～M15までのONビットはM0、M1、M5、M6、M7、M9、M11、M14です。

Y0～Y0FまでのONビットはY2、Y3、Y4、Y8、YA、YC、YD、YFです。

ゼロフラグ（M9013）のON

転送の結果、0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

K4M0にFFFFを指定、否定転送した結果K4Y0が0になりますので、ゼロフラグ（M9013）がONします。

K4M0ではM0～M15まで全てONです。

K4Y0ではY0～Y0Fまで全てOFFです。

CMLPの回路

CML否定転送は第1オペランドのビットデバイスをビットごとに反転して、第2オペランドのビットデバイスに転送をします。第2オペランドのデバイスに入力デバイスを指定することはできません。

この命令はX00がONの間、1回のみの実行となります。

転送の実行1

微分による回路の実行画面1

K4M0のビットデバイスを出力K4Y0に転送する回路です。

K4M0に3A5Fを数値設定から入力し、入力接点X00をONします。K4Y0にはK4M0のビット反転した結果、C5A0として転送します。

M0～M15までのONビットはM0、M1、M2、M3、M4、M6、M9、M11、M12、M13です。

Y0～Y0FまでのONビットはY5、Y7、Y8、YA、YC、YEです。

転送の実行2

微分による回路の実行画面2

X00をONのまま、K4M0を4A6Fに変更します。K4M0のビットは変化しますが、K4Y0は1度しか計算しませんのでK4Y0の変化はありません。

M0～M15までのONビットはM1、M3、M5、M6、M8、M9、M10、M11、M14です。

Y0～Y0FまでのONビットはY5、Y7、Y8、YA、YC、YEです。

ゼロフラグ（M9013）のON

転送の結果、0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

K4M0にFFFFを指定、否定転送した結果K4Y0が0になりますので、ゼロフラグ（M9013）がONします。

K4M0ではM0～M15まで全てONです。

K4Y0ではY0～Y0Fまで全てOFFです。

＊CML、CMLPにはエラーフラグ（M9010）はありません。


32ビットデータ否定転送

    32ビットデータ否定転送-----DCML、DCMLP

回路

使用可能デバイス

    S：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S：反転させるデータまたはデータの格納されているデバイスの先頭番号

    D：反転結果を格納するデバイスの先頭番号

機能　DCML、DCMLP

  1. Sで指定された32ビットデータをビットごとに反転し、その結果をDで指定されたデバイスへ転送します。

  2. 否定転送の結果D、D+1が0の場合は、ゼロフラグ（M9013）がONします。

実行条件：DCML、DCMLP変換命令の実行条件は次のようになります。

エラー：DCML、DCMLP命令でのエラーはありません。

DCMLの回路

DCML否定転送は第1オペランドのビットデバイスをビットごとに反転して、第2オペランドのビットデバイスに転送をします。第2オペランドのデバイスに入力デバイスを指定することはできません。

DCMLはスキャンの度に否定転送を行います。

転送の実行

スキャン毎の実行画面

D0、D1のデータ出力を反転して、K8M0のビットデバイスに転送する回路です。

D0、D1に1A2B3C4D を数値設定から入力し、入力接点X00をONします。K8M0にはD0のデータ反転した結果、E5D4C3B2のビットとして転送されます。

M0～M31までのONビットはM1、M4、M5、M7、M8、M14、M15、M18、M20、M22、M23、M24、M26、M29、M30、M31です。

ゼロフラグ（M9013）のON

転送の結果0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1K8M0にFFFFFFFFを設定、X00をONします。否定転送した結果、K8M0が0になるのでゼロフラグ（M9013）がONします。

DCMLPの回路

DCML否定転送は第1オペランドのビットデバイスをビットごとに反転して、第2オペランドのビットデバイスに転送をします。第2オペランドのデバイスに入力デバイスを指定することはできません。

この命令はX00がONの間、1回のみの実行となります。

転送の実行1

微分による回路の実行画面1

D0、D1に3B4D2E1Fを設定、X00をONします。K8M0はビット反転した結果、C4B2D1E0になります。

M0～M31までのONビットはM5、M6、M7、M8、M12、M14、M15、M17、M20、M21、M23、M26、M30、M31です。

転送の実行2

微分による回路の実行画面2

X00をONのまま、D0、D1を3B4DF42Cに変更します。K8M0はC4D2、D1E0と変化はありません。

もう1度X00をONさせるとK8M0は3B4D、F42Cになります。

ゼロフラグ（M9013）のON

転送の結果、0の場合は、ゼロフラグ（M9013）がONします。

ゼロフラグ（M9013）ONの実行画面

D0、D1K8M0にFFFFFFFFを設定、X00をONします。否定転送した結果、K8M0が0になるのでゼロフラグ（M9013）がONします。

＊DCML、DCMLPにはエラーフラグ（M9010）はありません。


16ビットデータブロック転送（１）

    16ビットデータブロック転送（１）-----BMOV、BMOVP

回路

使用可能デバイス

    S：Ｄ

    D：Ｄ

    n：K

設定データ

    S：転送するデータまたはデータの格納されているデバイスの先頭番号

    D：転送先のデバイスの先頭番号

    n：転送数

機能　BMOV、BMOVP

  1. Sで指定されたデバイスからn点の16ビットデータをDで指定されたデバイスからn点へ一括転送します。

  2. 転送元と転送先のデバイスが重複している場合も転送を行うことができます。　デバイス番号の小さい方への転送の場合はSから、デバイス番号の大きい方への転送の場合はＳ＋（n-1）から転送します。

  3. SがワードデバイスでDがビットデバイスの場合、ワードデバイスはビットデバイスの桁指定で指定されたビット数が対象になります。DにK1Y30を指定した場合は、Sで指定のワードデバイスの下位4ビットが対象になります。

  4. S、Dにビットデバイスを指定する場合、必ずS、Dの桁数は同一にしてください。

実行条件：BMOV、BMOVP変換命令の実行条件は次のようになります。

エラー：BMOV、BMOVP変換命令では次の場合はエラーとなりエラーフラグ（M9010）がONします。

  • S、Dからn点のデバイス範囲が該当デバイスを超えるとき。

BMOVの回路

D0、D1、D2、D3、D4の値をD10、D11、D12、D13D14に転送します。MOV転送はスキャンの度に転送を実行します。

X00がONのまま、D0、D1、D2、D3、D4が変化するとD10、D11、D12、D13D14も変化します。

転送の実行

スキャン毎の実行画面

D0に1234、D1に3456、D2にABCD、D3にCDEF、D4に67ACを設定します。

転送の実行

スキャン毎の実行画面

X00をONします。D0－>D10、D1－>D11、D2－>D12、D3－>D13、D4－>D14に転送します。その結果、D10が1234、D11が3456、D12がABCD、D13がCDEF、D14が67ACになります

BMOVPの回路

D0、D1、D2、D3、D4の値をD10、D11、D12、D13D14に転送します。MOV転送はスキャンの度に転送を実行します。

この命令はX00がONの間、1回のみの実行となります。

転送の実行1

微分による回路の実行画面

D0に1234、D1に3456、D2にABCD、D3にCDEF、D4に67ACを設定します。

転送の実行2

微分による回路の実行画面

X00をONします。D0－>D10、D1－>D11、D2－>D12、D3－>D13、D4－>D14に転送します。その結果、D10が1234、D11が3456、D12がABCD、D13がCDEF、D14が0になりますD14の0は転送数がn4のためD4は転送されません。

転送の実行3

微分による回路の実行画面

X00をONのまま、D1を6789にD3を8D4Aに変更します。FMOVPは微分命令のためD1、D3の値は変化ありません。


16ビットデータブロック転送（２）

    16ビットデータブロック転送（２）-----FMOV、FMOVP

回路

使用可能デバイス

    S：Ｄ

    D：Ｄ

    n：K

設定データ

    S：転送するデータまたはデータの格納されているデバイスの先頭番号

    D：転送先のデバイスの先頭番号

    n：転送数

機能　FMOV、FMOVP

  1. Sで指定されたデバイスから16ビットデータをDで指定されたデバイスからn点へ一括転送します。

  2. SがワードデバイスでDがビットデバイスの場合、Sのワードデバイスはビットデバイスの桁指定で指定されたビット数が対象になります。DにK1Y30を指定した場合は、Sのワードデバイスの下位4ビットが対象になります。

  3. S、Dにビットデバイスを指定する場合、必ずS、Dの桁数は同一にしてください。

実行条件：FMOV、FMOVP変換命令の実行条件は次のようになります。

エラー：FMOV、FMOVP変換命令では次の場合はエラーとなりエラーフラグ（M9010）がONします。

  • Dからn点のデバイス範囲が該当デバイスを超えるとき。

FMOVの回路

D0の値をD10、D11、D12、D13に転送します。D14には転送しません。MOV転送はスキャンの度に転送を実行します。

X00がONのまま、D0が変化するとD10、D11、D12、D13も変化します。

転送の実行1

スキャン毎の実行画面

D0に1234を設定します。

転送の実行2

スキャン毎の実行画面

X00をONします。D0はD10、D11、D12、D13に1234が転送されます。D14は転送数がn4のため転送されません。

FMOVPの回路

D0の値をD10、D11、D12、D13に転送します。D14には転送しません。MOV転送はスキャンの度に転送を実行します。

この命令はX00がONの間、1回のみの実行となります。

転送の実行1

微分による回路の実行画面

D0に1234を設定します。

転送の実行2

微分による回路の実行画面

X00をONします。D0はD10、D11、D12、D13に1234が転送されます。D14は転送数がn4のため転送されません。

転送の実行3

微分による回路の実行画面

X00をONのまま、D0を5678に変更します。FMOVPは微分命令ですので、D10、D11、D12、D13の値は変わりません。


16ビットデータ交換

    16ビットデータ交換-----XCH、XCHP

回路

使用可能デバイス

    D1：Ｙ、Ｍ、Ｄ、K1～K4

    D2：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D1：交換するデータの格納されているデバイスの先頭番号

    D2：交換するデータの格納されているデバイスの先頭番号

機能　XCH、XCHP

  1. D1とD2の16ビットデータの交換を行います。

実行条件：XCH、ＸＣＨＰ変換命令の実行条件は次のようになります。

エラー：XCH、XCHP命令でのエラーはありません。

XCHの回路

XCHのデータ交換は第1オペランドのビットデバイスのデータと第2オペランドのビットデバイスのデータを交換します。

XCHはスキャンの度にデータ交換を行います。

データ交換の実行1

スキャン毎の実行画面

D0に4D6A、D2に7D5Aを設定、X00をONします。D0に7D5AがD2に4D6Aになります。XCH命令はスキャンごとに実行しますので、D0、D2はそれぞれ4D6Aと7D5Aが交互にデータ変換が行われます。

データ交換の実行2

スキャン毎の実行画面

K4M0に4D6A、K4Y0に7D5Aを設定します。XCHはスキャン毎に交換が行われますので、X00はM100でPLS化してありますので、1パルスしか発生しませんのでスキャン毎の実行はしなくなります。これにより1パルスづつのデータ交換が行われ、K4M0は7D5A、K4Y0は4D6Aになります。

M0～M15までのONビットはM1、M3、M5、M6、M8、M10、M11、M14です。

Y0～Y0FまでのONビットはY1、Y3、Y4、Y6、Y8、YA、YB、YC、YD、YEです。

データ交換の実行3

スキャン毎の実行画面

X01もう1度ONさせると、K4M0は7D5Aとなり、K4Y0は4D6Aとなります。

X01をONOFFするたびに、K4M0は4D6Aと7D5Aを繰り返します。

M0～M15までのONビットはM1、M3、M4、M6、M8、M10、M11、M12、M13、M14です。

Y0～Y0FまでのONビットはY1、Y3、Y5、Y6、Y8、YA、YB、YEです。

XCHPの回路

XCHのデータ交換は第1オペランドのビットデバイスのデータと第2オペランドのビットデバイスのデータを交換します。

XCHPはデータ交換の微分命令ですので、1スキャンのみの実行となります。

データ交換の実行1

微分による回路の実行画面1

D0に4DA6、K4M0に7D5Aを設定します。7D5AをK4M0のビットで表すと下記のようになります。

M0～M15までのONビットはM1、M3、M4、M6、M8、M10、M11、M12、M13、M14です。

データ交換の実行2

微分による回路の実行画面2

X00をONすると、D0に7D5A、K4M0に4DA6に変化します。4D6AをK4M0のビットで表すと下記のようになります。

M0～M15までのONビットはM1、M2、M5、M7、M8、M10、M11、M14です。

＊XCH、XCHPにはゼロフラグ（M9013）、エラーフラグ（M9010）はありません。


32ビットデータ交換

    32ビットデータ交換-----DXCH、DXCHP

回路

使用可能デバイス

    D1：Ｙ、Ｍ、Ｄ、K1～K8

    D2：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    D1：交換するデータの格納されているデバイスの先頭番号

    D2：交換するデータの格納されているデバイスの先頭番号

機能　DXCH、DXCHP

  1. D1+1、D1とD2+1、D2の32ビットデータの交換を行います。

実行条件：DXCH、DXCH変換命令の実行条件は次のようになります。

エラー：DXCH、DXCHP命令でのエラーはありません。

DXCHの回路

DXCHのデータ交換は第1オペランドのビットデバイスのデータと第2オペランドのビットデバイスのデータを交換します。

DXCHはスキャンの度にデータ交換を行います。

データ交換の実行1

スキャン毎の実行画面1

D0、D1に12345678、D2、D3をFEDC、BA98を設定、X00をONします。D0、D1がFEDCBA98、D2、D3が12345678になりますが、スキャンの度に交換を実行しますので、実際はFEDCBA98と12345678を交互に表示します。

データ交換の実行2

スキャン毎の実行画面2

D0、D1に13579BDF、D2にECA86420を設定、X00をONします。D0、D1はECA86420になりK8M0は1357、9BDFとなりD0、D1とK8M0のデータの交換がなされました。

このときD2は13579BDFであるから、これをK8M0に変換して、M0～M31のビットのON/OFFで表示すると下記のようになります。

M0～M31までのONビットはM0、M1、M2、M3、M4、M6、M7、M8、M9、M11、M12、M15、M16、M17、M18、M20、M22、M24、M25、M28です。

データ交換の実行3

スキャン毎の実行画面3

X00をもう1度ONするとD0、D1は13579BDFにD2はECA86420となり元の値に戻ります。

このときのD2はECA86420であるから、これをK8M0に変換して、M0～M31のビットのON/OFFで表示すると下記のようになります。

M0～M31までのONビットはM5、M10、M13、M14、M19、M21、M23、M26、M27、M29、M30、M31です。

DXCHPの回路

DXCHのデータ交換は第1オペランドのビットデバイスのデータと第2オペランドのビットデバイスのデータを交換します。

DXCHPはデータ交換の微分命令ですので、1スキャンのみの実行となります。

データ交換の実行1

微分による回路の実行画面

D0、D1に87654321、D2に9ABCDEFを設定、X00をONします。D0、D1は9ABCDEFになりD2は87654321となりD0、D1とD2、D3のデータの交換がなされました。

このときD2は87654321であるから、これをK8M0に変換して、M0～M31のビットのON/OFFで表示すると下記のようになります。

M0～M31までのONビットはM0、M5、M8、M9、M14、M16、M18、M21、M22、M24、M25、M26、M31です。

データ交換の実行2

微分による回路の実行画面

X00をもう1度ONするとD0、D1は87654321にD2は9ABCDEFとなり元の値に戻ります。

このときのD2は9ABCDEFであるから、これをK8M0に変換して、M0～M31のビットのON/OFFで表示すると下記のようになります。

M0～M31までのONビットはM0、M1、M2、M3、M5、M6、M7、M8、M10、M11、M14、M15、M16、M17、M19、M21、M23、M24、M27です。

＊DXCH、DXCHPにはゼロフラグ（M9013）、エラーフラグ（M9010）はありません。


条件ジャンプとＣＡＬＬ命令

    条件ジャンプとＣＡＬＬ命令------------ＳＣＡＬＬ、CJ、ＢＴＯＮＪ，ＲＥＴＲＮ

◎ＳCALL命令

    回路例

使用可能デバイス

    P：P(ポインタ)

設定データ

    P**：コール先ポインタ番号(P0～P255)

  • ＳＣＡＬＬに対する、Ｐ（ポインタ）は必ずＦＥＮＤ命令のあとに置く必要があります

  • ＳＣＡＬＬ命令は、コールされるサブルーチン内でも使用できます。つまり、多重コールが可能です。

  • Ｐ（ポインタ）後のラダーはサブルーチンになりますが、最後に必ずＲＥＴＲＮ命令つけて、コールした次の行に戻ります。

  • Ｐ（ポインタ）は必ず、区切り点に置かなくてはなりません。分岐点には置けません。

    • 注意：P255はENDを示し、ラベルとして使用できません。

機能　ＳＣＡＬＬ

  1. SCALL指令がONのとき、同一プログラムファイル内の指定されたポインタ番号のプログラムを実行します。

  2. ジャンプ指令がOFFのときは、次のステップのプログラムを実行します

  3. ＰＩＣ１６Ｆ８７７シリーズに関しては、ＳＣＡＬＬ命令内で微分命令やタイマ、カウンタは使用できません。

  4. ＰＩＣ１８Ｆ４５２シリーズでは、ＳＣＡＬＬ内で微分命令やタイマ、カウンタ命令を随意に使用できます。


    リターン命令とＥＮＤ命令

◎ＲＥＴＲＮ命令

  ＲＥＴＲＮ（リターン）命令はＳＣＡＬＬによるサブルーチン（頭にＰ？のポイント番号を持つ）からのリターンです。

  呼んだＳＣＡＬＬ命令の次の命令の実行に戻ります。

  上図のように必ず頭に接点が必要です。

◎ＦＥＮＤ命令

  この命令の後に、ＳＣＡＬＬによるサブルーチンを置きます。

◎ＥＮＤ命令

  全ラダー回路の最後の命令です。この命令は新規作成の時から生成されています。もし存在しないとエラーファイルとなり正常に保存等ができません。

  これらのＥＮＤ命令は、もし全部有るとすると、この並びの通り、ＩＥＮＤ、ＳＥＮＤ、ＦＥＮＤ，ＥＮＤの順に置かれます。


ステップリレー

    ステップ･リレー（Ｊ）

◎ステップ･リレー（Ｊ）

  ① チャンネル部分とステップ部分に分かれ各々０～９９までのＢＣＤ値（普通の数字）で表示され、3、４桁目チャンネル部分になり、１，２桁目がステップ数を表わします。

  ② 同一のチャンネル内で一つのステップリレーのみがオンになっていす。 つまりあるステップリレーが最後にオンになれば、他の同一チャンネル内のリレーは自動的にオフになります。

  ③ チャンネルが違うステップリレーは同時にオンが可能です。 このことはチャンネルを替えれば、各々のチャンネルで個別のステップ動作による並列動作が可能になることを意味しています。

１）ステップリレーはLD,LDI,AND,ANI,OR,ORI,OUT命令のみで扱えます。

２）ステップリレーにはLD J100ｰ103　と言う設定（表示）がある。これはJ100～03の範囲のどれかが１であれば=１という意味である。

その点、ステップリレーによる方法によれば、工程の進みとＪが頭につくステップリレーの番号を常に対応させて考えることができます。

◎ステップリレーによる工程進行の基本

  ステップリレーの回路例として以下の回路図が考えられます。

  上図の最上段の回路は、立ち上がり時にステップリレーの値いをJ０００に設定するためのものです。Ｊ０００によるステップから始まって最後にＪ００３によるステップに行き、またＪ０００に戻ります。そのために立ち上がり時のＪ０００リレーのオンはは是非必要です。

  この回路ではステップリレーはその担当するステップがオンの間だけオンで、その間他の同一チャンネルのステップリレーは自動的にオフになります。

  下段の６行目から始まる、出力回路ではその出力が必要なステップを担当するステップリレーのオア回路により出力することになりますが、ここではＪ００１からＪ００２という意味でオアの替わりにＪ０００１－０２という表記ができるようになっています。

  加工についてはステップ２でのみ出力するので、Ｊ２のみによる出力になります。

  この方法のバリエーションの例としては次のような、異なったチャンネルによる並列動作が考えられます。

  例　　　　位置移動　　　　　上部バリ取り　　　　　 冷却　　　　　　　　 下部塗装

        （Ｊ１チャンネル）　　　（Ｊ２チャンネル）　 　（Ｊ３チャンネル）　（Ｊ４チャンネル）

  ◎ 信号機回路

  これは普通の道路（十字路ではない）で押し釦を押して渡る信号です。

  押し釦を押さなければ、ある一定の時間が経過したあと歩行者用信号は青になります。

  押し釦はこの時間を早めるためのものです。

    車道側が赤に転換中は押し釦を押しても無視されます。押し釦が意味を持つのは車道側が緑の時だけです（図Ｍ）。

                                                                            図Ｍ

  ステップリレーによる方法ではまず、動作の工程別の順序を整理して設計にかかります。

  それを表にまとめたものが以下の表１で、これを状態遷移表と呼びます。

  この表の車道側の信号と歩道側の信号の色の変化を順序を追って見ると、私達が日常見なれている信号の色の変化であることが解ります。そしてその色の変化は原則として、すべてタイマによっていますが、例外としてステップ０から１への変化を押し釦でもできるようにしています。これも普通に良くみる歩道側で青を催促するためにある押し釦です。

  ステップ６からステップ０へ遷移しますが、最下段で車道と歩道がともに赤になってタイマ６によって、最上段のステップ０に遷移します。

  この遷移表に従って、回路を組みます。


16ビットデータ論理積

    16ビットデータ論理積-----WAND、WANDP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ、K1～K4

    D1：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S1：論理積を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：論理積を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：論理積の結果を格納するデバイスの先頭番号

機能　WAND、WANDP

  1. S1で指定されたデバイスの16ビットデータとS2で指定されたデバイスの16ビットデータをビット毎に論理積を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 論理積演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：WAND、WANDPの実行条件は次のようになります。

演算エラー：WAND、WANDP命令での演算エラーはありません。

WANDの回路

WANDはD0の値とD2の値の論理積計算を行い、D4にその値を格納します。

WAND命令は、X00がONするとスキャンのたびに論理積計算を行います。

論理計算の実行1

スキャン毎の実行画面

上の回路でD0に643A、D2に86D4を数値設定より指定、X00をONすることで、論理積を計算によりD4を求めることができます。この場合、D4は410になります。WANDはスキャン毎に行いますが、D0、D2の値は変わりません。D4の表示は410のままです。

論理計算の実行2

スキャン毎の実行画面

上の回路はX00をそのままで、D2の値を86D4に変えると、D4の答も4432に変わります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

上の回路ではD2の値を86D4から5に変えるとD4の回答は4432から0に変化します。このときD4の計算結果が0になり、ゼロフラグ（M9013）がONします。

WANDPの回路

WANDはD0の値とD2の値の論理積計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

上の回路でD0に5AD3、D2に4EADを数値設定より指定、X00をONするで論理積計算によりD4を求めることができます。この場合、D4は4A81となります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D0の値を5AD3から8DA7に変更しても、D4の値は4A81と変わりません。WANDPが微分命令ですので、X00がONのままでは、最初の1度しか計算しません。

論理計算の実行3

微分による回路の実行画面

X00を一旦OFFにして再びX00をONにすると、WANDPは1スキャン計算を行います。その結果D4はCA5になります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D2の値を4EADから0変更して、X00をもう1度ONします。D4は計算の結果0になり、ゼロフラグ（M9013）をONさせます。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


32ビットデータ論理積

    32ビットデータ論理積-----DAND、DANDP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    D1：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S1：論理積を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：論理積を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：論理積の結果を格納するデバイスの先頭番号

機能　DAND、DANDP

  1. S1で指定されたデバイスの32ビットデータとS2で指定されたデバイスの32ビットデータをビット毎に論理積を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 論理積演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：DAND、DANDPの実行条件は次のようになります。

演算エラー：DAND、DANDP命令での演算エラーはありません。

DANDの回路

DANDはD0の値とD2の値の論理積計算を行い、D4にその値を格納します。

DAND命令は、X00がONするとスキャンのたびに論理積計算を行います。

論理計算の実行1

スキャン毎の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は論理積計算により10304220になります。

論理計算の実行２

スキャン毎の実行画面

X00をONのまま、D2、D3を34567891に変更します。DAND命令はスキャン毎の実行ですので、D4、D5の値は論理積計算により10145010に変わります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になれば、ゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に12345678、D2、D3に7を設定、X00をONします。D4、D5は論理積計算により0になります。この結果ゼロフラグ（M9013）がONします。

DANDPの回路

DANDはD0の値とD2の値の論理積計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は論理積計算により10304220になります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2、D3を34567891に変更します。DANDP命令は1スキャンの実行ですので、D4、D5の値は10304220と変わりません。

論理計算の実行3

微分による回路の実行画面

DANDP命令はもう1度X00をONすることにより、D4、D5の値は10145010になります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に12345678、D2、D3に7を設定、X00をONします。D4、D5は論理積計算により0になります。この結果ゼロフラグ（M9013）がONします。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


16ビットデータ論理和

    16ビットデータ論理和-----WOR、WORP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｋ、Ｈ（直値）、K（直値）、K1～K4

    D1：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S1：論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：論理和の結果を格納するデバイスの先頭番号

機能　WOR、WORP

  1. S1で指定されたデバイスの16ビットデータとS2で指定されたデバイスの16ビットデータをビット毎に論理和を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 論理和演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：WOR、WORPの実行条件は次のようになります。

演算エラー：WOR、WORP命令での演算エラーはありません。

WORの回路

WORはD0の値とD2の値の論理和計算を行い、D4にその値を格納します。

WOR命令は、X00がONするとスキャンのたびに論理和計算を行います。

論理計算の実行1

スキャン毎の実行画面

上の回路でD0に1234、D2に7890を数値設定より指定、X00をONすることで、論理和を計算によりD4を求めることができます。この場合、D4は7AB4となります。WORはスキャン毎に行いますが、D0、D2の値は変わりませんので、D4の表示は7AB4のままです。

論理計算の実行2

スキャン毎の実行画面

上の回路はX00をそのままで、D2の値を1234から4567に変えると、D4の答も5777と変わります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

上の回路でD0に0、D2に0に変えるとD4の回答は4432から0に変化します。このときD4の計算結果が0になり、ゼロフラグ（M9013）がONします。

WORPの回路

WORはD0の値とD2の値の論理和計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

上の実行画面でD0に1234、D2に7890を数値設定より指定、X00をONすることによりD4に論理和を計算により求めることができます。この場合、D4は7AB4となります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2の値を7890から5678に変更しても、D4の値は7AB4と変わりません。それはWANDPが微分命令なので、X00がONのままでは、最初の1度しか計算しません。

論理計算の実行3

微分による回路の実行画面

X00を一旦OFFにして、再びX00をONにするとWORPは1スキャン計算を行います。その結果D4は567Cとなります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に0、D2を0に変更して、X00をもう1度ONします。D4は計算の結果0になり、ゼロフラグ（M9013）をONさせます。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


32ビットデータ論理和

    32ビットデータ論理和-----DOR、DORP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    D1：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S1：論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：論理和の結果を格納するデバイスの先頭番号

機能　DOR、DORP

  1. S1で指定されたデバイスの32ビットデータとS2で指定されたデバイスの32ビットデータをビット毎に論理和を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 論理和演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：DOR、DORPの実行条件は次のようになります。

演算エラー：DOR、DORP命令での演算エラーはありません。

DORの回路

DORはD0の値とD2の値の論理和計算を行い、D4にその値を格納します。

DOR命令は、X00がONするとスキャンのたびに論理和計算を行います。

論理計算の実行1

スキャン毎の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は論理和計算により56365779になります。

論理計算の実行2

スキャン毎の実行画面

X00をONのまま、D2、D3を34567891に変更します。DAND命令はスキャン毎の実行ですので、D4、D5の値は論理和計算により26622EE9に変わります。

ゼロフラグ（M9013）のON

論理和計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に0、D2、D3に0を設定、X00をONします。D4、D5は論理和計算により0になります。この結果ゼロフラグ（M9013）がONします。

DORPの回路

DORはD0の値とD2の値の論理和計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は論理和計算により56365779になります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2、D3を34567891に変更します。DANDP命令は1スキャンの実行ですので、D4、D5の値は56365779と変わりません。

論理計算の実行3

微分による回路の実行画面

DANDP命令はもう1度X00をONすることにより、D4、D5の値は3676、7EF9になります。

ゼロフラグ（M9013）のON

論理和計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に12345678、D2、D3に7を設定、X00をONします。D4、D5は論理和計算により0になります。この結果ゼロフラグ（M9013）がONします。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


16ビットデータ排他的論理和（２）

    16ビットデータ排他的論理和-----WXOR、WXORP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    D1：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S1：排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：排他的論理和の結果を格納するデバイスの先頭番号

機能　WXOR、WXORP

  1. S1で指定されたデバイスの16ビットデータとS2で指定されたデバイスの16ビットデータをビット毎に排他的論理和を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 排他的論理和演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：WXOR、ＷＸＯＲＰの実行条件は次のようになります。

演算エラー：WXOR、WXORP命令での演算エラーはありません。

WXORの回路

WXORはD0の値とD2の値の排他的論理和計算を行い、D4にその値を格納します。

WXOR命令は、X00がONするとスキャンのたびに排他的論理和計算を行います。

論理計算の実行1

スキャン毎の実行画面

上の回路でD0に5432、D2に6789を数値設定より指定、X00をONすることで、排他的論理和計算によりD4を求めることができます。この場合、D4は33BBとなります。WXORはスキャン毎に行いますが、D0、D2は変わりませんので、D4の表示は33BBのままです。

論理計算の実行2

スキャン毎の実行画面

上の回路はX00をそのままで、D2の値を9876に変えるとD4の答もCC44に変わります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

上の回路ではD0に0、D2に0に変えるとD4の回答はCC44から0に変化します。このときD4の計算結果が0になり、ゼロフラグ（M9013）がONします。

WXORPの回路

WXORはD0の値とD2の値の排他的論理和計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

上の実行画面でD0に5432、D2に6789を数値設定より指定、X00をONすることで、排他的論理和を計算によりD4を求めることができます。この場合、D4は33BBとなります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2の値を6789から9876に変更しても、D4の値は33BBと変わりません。それはWXORPが微分命令なので、X00がONのままでは、最初の1度しか計算しないからです。

論理計算の実行3

微分による回路の実行画面

X00を一旦OFFにして再びX00をONにするとWXORPは1スキャン計算を行います。その結果D4はCC44となります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に0、D2を0に変更して、X00をもう1度ONします。D4は0になり、ゼロフラグ（M9013）をONさせます。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


32ビットデータ排他的論理和

    32ビットデータ排他的論理和-----DXOR、DXORP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    D1：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S1：排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：排他的論理和の結果を格納するデバイスの先頭番号

機能　DXOR、DXORP

  1. S1で指定されたデバイスの32ビットデータとS2で指定されたデバイスの32ビットデータをビット毎に排他的論理和を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 排他的論理和演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：DXOR、DXORPの実行条件は次のようになります。

演算エラー：DXOR、DXORP命令での演算エラーはありません。

DXORの回路

DXORはD0の値とD2の値の排他的論理和計算を行い、D4にその値を格納します。

DXOR命令は、X00がONするとスキャンのたびに排他的論理和計算を行います。

論理計算の実行1

スキャン毎の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は排他的論理和計算により46061559になります。

論理計算の実行2

スキャン毎の実行画面

X00をONのまま、D2、D3を34567891に変更します。DAND命令はスキャン毎の実行ですので、D4、D5の値は排他的論理和計算により26622EE9に変わります。

ゼロフラグ（M9013）のON

排他的論理和計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に0、D2、D3に0を設定、X00をONします。D4、D5は排他的論理和計算により0になります。この結果ゼロフラグ（M9013）がONします。

DXORPの回路

DXORはD0の値とD2の値の排他的論理和計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は排他的論理和計算により46061559になります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2、D3を34567891に変更します。DANDP命令は1スキャンの実行ですので、D4、D5の値は46061559と変わりません。

論理計算の実行3

微分による回路の実行画面

DANDP命令はもう1度X00をONすることにより、D4、D5の値は26622EE9になります。

ゼロフラグ（M9013）のON

排他的論理和計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に0、D2、D3に0を設定、X00をONします。D4、D5は排他的論理和計算により0になります。この結果ゼロフラグ（M9013）がONします。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。]


16ビットデータ否定排他的論理和（２）

    16ビットデータ否定排他的論理和-----WXNR、WXNRP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K4

    D1：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    S1：否定排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：否定排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：否定排他的論理和の結果を格納するデバイスの先頭番号

機能　WXNR、WXNRP

  1. S1で指定されたデバイスの16ビットデータとS2で指定されたデバイスの16ビットデータをビット毎に否定排他的論理和を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 否定排他的論理和演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：WXNR、WXNRPの実行条件は次のようになります。

演算エラー：WXNRWXNRP命令での演算エラーはありません。

WXNRの回路

WXNRはD0の値とD2の値の否定排他的論理和計算を行い、D4にその値を格納します。

WXNR命令は、X00がONするとスキャンのたびに否定排他的論理和計算を行います。

論理計算の実行1

スキャン毎の実行画面

上の回路でD0に2340、D2に7650を数値設定より指定、X00をONすることで、否定排他的論理和計算によりD4を求めることができます。この場合、D4は8ACFとなります。WXNRはスキャン毎に行いますが、D0、D2は変わりませんので、D4の表示は8ACFのままです。

論理計算の実行2

スキャン毎の実行画面

上の回路はX00をそのままで、D2の値を7650に変えると、D4の答はAAEFになります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

上の回路ではD0に0、D2に0に変えるとD4の回答はAAEFから0になります。このときD4の計算結果が0になりゼロフラグ（M9013）がONします。

WXNRPの回路

WXNRはD0の値とD2の値の否定排他的論理和計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

上の回路でD0に2340、D2に5670を数値設定より指定、X00をONすることで否定排他的論理和を計算によりD4を求めることができます。この場合、D4は8ACFになります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2の値を5670から7650に変更しても、D4の値は4A81と変わりません。それはWXORPが微分命令なので、X00がONのままでは、最初の1度しか計算しないからです。

論理計算の実行3

微分による回路の実行画面

X00を一旦OFFにして再びX00をONにするとWXNRPは1スキャン計算を行います。その結果D4はAAEFとなります。

ゼロフラグ（M9013）のON

論理計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0に0、D2を0に変更して、X00をもう1度ONします。D4は0になり、ゼロフラグ（M9013）をONさせます。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


32ビットデータ否定排他的論理和

    32ビットデータ否定排他的論理和-----DXNR、DXNRP

回路

使用可能デバイス

    S1：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    S2：Ｘ、Ｙ、Ｍ、Ｄ、Ｈ（直値）、K（直値）、K1～K8

    D1：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    S1：否定排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    S2：否定排他的論理和を行うデータまたはデータの格納されているデバイスの先頭番号

    D1：否定排他的論理和の結果を格納するデバイスの先頭番号

機能　DXNR、DXNRP

  1. S1で指定されたデバイスの32ビットデータとS2で指定されたデバイスの32ビットデータをビット毎に否定排他的論理和を行い、結果をD1で指定されたデバイスに格納します。

  2. ビットデバイスの場合、桁指定以上は0として演算を行います。

  3. 否定排他的論理和演算の結果0の場合、ゼロフラグ（M9013）がONします。

実行条件：DXNR、DXNRPの実行条件は次のようになります。

演算エラー：DXNR、DXNRP命令での演算エラーはありません。

DXNRの回路

DXNRはD0の値とD2の値の否定排他的論理和計算を行い、D4にその値を格納します。

DXNR命令は、X00がONするとスキャンのたびに否定排他的論理和計算を行います。

論理計算の実行1

スキャン毎の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は否定排他的論理和計算によりB9F9EAA6になります。

論理計算の実行2

スキャン毎の実行画面

X00をONのまま、D2、D3を34567891に変更します。DAND命令はスキャン毎の実行ですので、D4、D5の値は否定排他的論理和計算によりD99D、D116に変わります。

ゼロフラグ（M9013）のON

否定排他的論理和計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に12345678、D2、D3にEDCB、A987を設定、X00をONします。D4、D5は否定排他的論理和計算により0になります。この結果ゼロフラグ（M9013）がONします。

DXNRPの回路

DXNRはD0の値とD2の値の否定排他的論理和計算を行い、D4にその値を格納します。

この命令はX00がONの間、1回のみの実行となります。

論理計算の実行1

微分による回路の実行画面

D0、D1に12345678、D2、D3に54324321を設定、X00をONします。D4、D5は否定排他的論理和計算によりB9F9EAA6になります。

論理計算の実行2

微分による回路の実行画面

X00をONのまま、D2、D3を34567891に変更します。DANDP命令は1スキャンの実行ですので、D4、D5の値はB9F9EAA6と変わりません。

論理計算の実行3

微分による回路の実行画面

DANDP命令はもう1度X00をONすることにより、D4、D5の値はD99DD116になります。

ゼロフラグ（M9013）のON

否定排他的論理和計算の結果、出力のデバイスが0になればゼロフラグ（M9010）がONします。

ゼロフラグ（M9013）のONの実行画面

D0、D1に12345678、D2、D3にEDCBA987を設定、X00をONします。D4、D5は否定排他的論理和計算により0になります。この結果ゼロフラグ（M9013）がONします。

＊論理計算にはキャリーフラグ（M9012）、エラーフラグ（M9010）はありません。


BIN16ビットデータ2の補数（符号反転）

    BIN16ビットデータ2の補数（符号反転）-----NEG、NEGP

回路

使用可能デバイス

    Ｄ：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：2の補数を行うデータを格納しているデバイスの先頭番号

機能　NEG、NEGP

  1. Dで指定された16ビットデバイスの符号を反転して、Dで指定されたデバイスに格納します。

実行条件：NEG、NEGの実行条件は次のようになります。

演算エラー：NEG、NEG命令での演算エラーはありません。

ＮＥＧ符号反転

D0で指定された16ビットデバイスの符号を反転して、D0で指定されたデバイスに格納します。

NEG命令は、X00がONするとスキャンのたびに符号反転を行います。

この命令はX00がONの間、スキャン毎に実行致します。

符号反転の実行1

スキャン毎の実行画面

D0にAAAAを設定、X00をONします。D0は符号反転してD0に格納します。NEG命令はスキャン毎に符号反転を行いますので、D0は5556とAAAAを交互にD0に格納します。

符号反転の実行2

スキャン毎の実行画面

X00をPLS化してONします。PLS命令は微分命令ですのでNEG命令は1スキャン命令になります。

D0は5556になります。D0をM0～M16までのビットで表示すると

M1、M2、M4、M6、M8、M10、M12、M14となります。

符号反転の実行3

スキャン毎の実行画面

もう1度X00をONするとD0はAAAAに戻ります。

D0のAAAAをM0～M15までをビットで表示すると、

M1、M3、M5、M7、M9、M11、M13、M15がONしています。

ＮＥＧＰ符号反転

D0で指定された16ビットデバイスの符号を反転して、D0で指定されたデバイスに格納します。

この命令はX00がONの間、1回のみの実行となります。

符号反転の実行1

微分による回路の実行画面

D0にAAAAを設定します。X01をONします。

D0のAAAAをM0～M15までをビットで表示すると、

M1、M3、M5、M7、M9、M11、M13、M15がONしています。

符号反転の実行2

微分による回路の実行画面

X00をONにします。NEGP命令は1スキャン命令ですのでD0は5556になります。

D0をM0～M16までのビットで表示すると

M1、M2、M4、M6、M8、M10、M12、M14となります。

符号反転の実行2

微分による回路の実行画面

もう1度X00をONするとD0はAAAAに戻ります。

D0のAAAAをM0～M15までをビットで表示すると、

M1、M3、M5、M7、M9、M11、M13、M15がONしています。


16ビットデータの右ローテーション（１）

    16ビットデータの右ローテーション（１）-----ROR、RORP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

ｎ：回数K1～15

機能　ROR、RORP

  1. Dのデータキャリーフラグを含まないでｎビット右へ回転させます。

  ・キャリーフラグはROR実行前の状態により1または0のどちらかになっています。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：右ローテーション命令の実行条件は次のようになります。

エラー：ROR、RORP命令でのエラーはありません。

RORの回路

右回転のビットをK4M0（M0～M15まで）で表示するとM15、M14、M13－>M2、M1、M0－>M15、M14、M13－>M2、M1、M0というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に1234を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号に移動した時、M15がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを3回右にローテーションさせると8246になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM1、M2、M6、M9、M15、M9012がONします。

これはM2－>M15（このときM9012がON）、M4－>M1、M5－>M2、M9－>M6、M12－>M9にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

RORPの回路

右回転のビットをK4M0（M0～M15まで）で表示すると

M15、M14、M13－>M2、M1、M0－>M15、M14、M13－>M2、M1、M0というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に1234を設定、X00をOFF、X01をONにします。これをM0からM15まで接点のON/OFFで表示したものです。これをK4M0のビットで表示すると

M0～M15までのONビットはM2、M4、M5、M9、M12がONします。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M15がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のビットを3回右にローテーションさせると8246になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM1、M2、M6、M9、M15、M9012がONします。

これはM2－>M15（このときM9012がON）、M4－>M1、M5－>M2、M9－>M6、M12－>M9にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


16ビットデータの右ローテーション（２）

    16ビットデータの右ローテーション（２）-----RCR、RCRP、ＳＦＲ、ＳＦＲＰ

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～15

機能　RCR、RCRP、ＳＦＲ、ＳＦＲＰ

  1. Dのデータキャリーフラグを含んでｎビット右へ回転させます。

  ・ＲＣＲ命令ではキャリーフラグはRCR実行前の状態により1または0のどちらかになっています。

  ・ＳＦＬ命令はローテート数が指定できます。　例　ＳＦＬ　Ｄ０　Ｋ３

    ＳＦＲ命令ではキャリーフラグは実行中は必ず０で、ｂ１５以下に次々とローテート数だけ０が入ります。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：右ローテーション命令の実行条件は次のようになります。

エラー：RCR、RCRP、ＳＦＲ、ＳＦＲＰ命令でのエラーはありません。

RCRの回路

キャリーフラグを含む右回転のビットをK4M0（M0～M15まで）で表示すると

M15、M14、M13－>M2、M1、M0、M9012－>M15、M14、M13－>M2、M1、M0というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に1234を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M0の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを3回右にローテーションさせると8246になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM1、M2、M6、M9、M15、M9012がONします。

これはM2－>M9012、M4－>M1、M5－>M2、M9－>M6、M12－>M9にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

RCRPの回路

キャリーフラグを含む右回転のビットをK4M0（M0～M15まで）で表示すると

M15、M14、M13－>M2、M1、M0、M9012－>M15、M14、M13－>M2、M1、M0というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に1234を設定、X00をOFF、X01をONにします。これをM0からM15まで接点のON/OFFで表示したものです。これをK4M0のビットで表示すると

M0～M15までのONビットはM2、M4、M5、M9、M12がONします。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M0の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のビットを3回右にローテーションさせると8246になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM1、M2、M6、M9、M15、M9012がONします。

これはM2－>M9012、M4－>M1、M5－>M2、M9－>M6、M12－>M9にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


16ビットデータの左ローテーション（１）

    16ビットデータの左ローテーション（１）-----ROL、ROLP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～15

機能　ROL、ROLP

  1. Dのデータキャリーフラグを含まないでｎビット左へ回転させます。

  ・キャリーフラグはROL実行前の状態により1または0のどちらかになっています。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：左ローテーション命令の実行条件は次のようになります。

エラー：ROL、ROLP命令でのエラーはありません。

ROLの回路

左回転のビットをK4M0（M0～M15まで）で表示すると

M0、M1、M2－>M13、M14、M15－>M0、M1、M2－>M13、M14、M15というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に1234を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

左回りの時はMの小さい番号からMの大きい番号にローテーションした時、M0がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを4回左にローテーションさせると2341になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM0、M6、M8、M9、M13、M9012がONします。

これはM2－>M6、M4－>M8、M5－>M9、Ｍ9－>M13、M12－>M0（このときM9012がON）にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

ROLPの回路

左回転のビットをK4M0（M0～M15まで）で表示すると

M0、M1、M2－>M13、M14、M15－>M0、M1、M2－>M13、M14、M15というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に1234を設定、X00をOFF、X01をONにします。これをM0からM15まで接点のON/OFFで表示したものです。これをK4M0のビットで表示すると

M0～M15までのONビットはM2、M4、M5、M9、M12がONします。

キャリーフラグ（M9012）のON

左回りの時はMの小さい番号からMの大きい番号にローテーションした時、M0がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のビットを4回左にローテーションさせると2341になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM0、M6、M8、M9、M13、M9012がONします。

これはM2－>M6、M4－>M8、M5－>M9、Ｍ9－>M13、M12－>M0（このときM9012がON）にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


16ビットデータの左ローテーション（２）

    16ビットデータの左ローテーション（２）-----RCL、RCLP、ＳＦＬ、ＳＦＬＰ

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～15

機能　RCL、RCLP、ＳＦＬ、ＳＦＬＰ

  1. Dのデータキャリーフラグを含んでｎビット左へ回転させます。

  ・ＲＣＬ命令ではキャリーフラグはRCＬ実行前の状態により1または0のどちらかになっています。

  ・ＳＦＬ命令はローテート数が指定できます。　例　ＳＦＬ　Ｄ０　Ｋ３

    キャリーフラグは実行中は必ず０で、ｂ０以上に次々とローテート数だけ０が入ります。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：左ローテーション命令の実行条件は次のようになります。

エラー：RCL、RCLP命令でのエラーはありません。

RCLの回路

キャリーフラグを含む左回転のビットをK4M0（M0～M15まで）で表示すると

M0、M1、M2－>M13、M14、M15、M9012－>M0、M1、M2－>M13、M14、M15、Ｍ9012というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に1234を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

右回りの時はMの小さい番号からMの大きい番号にローテーションした時、M15の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを4回左にローテーションさせると2340になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM6、M8、M6、M9、M13、M9012がONします。

これはM2－>M6、M4－>M8、M5－>M9、M9－>M13、M12－>M9012にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

RCLPの回路

キャリーフラグを含む左回転のビットをK4M0（M0～M15まで）のビットで表示すると

M0、M1、M2－>M13、M14、M15、M9012－>M0、M1、M2－>M13、M14、M15、Ｍ9012というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に1234を設定、X00をOFF、X01をONにします。これをM0からM15まで接点のON/OFFで表示したものです。これをK4M0のビットで表示すると

M0～M15までのONビットはM2、M4、M5、M9、M12がONします。

キャリーフラグ（M9012）のON

右回りの時はMの小さい番号からMの大きい番号にローテーションした時、M15の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のビットを4回左にローテーションさせると2340になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM6、M8、M6、M9、M13、M9012がONします。

これはM2－>M6、M4－>M8、M5－>M9、M9－>M13、M12－>M9012にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K4M0はM0～M15までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


32ビットデータの右ローテーション（１）

    32ビットデータの右ローテーション（１）-----DROR、DRORP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～31

機能　DROR、DRORP

  1. D、D+1のデータキャリーフラグを含まないでｎビット右へ回転させます。

  ・キャリーフラグはDROR実行前の状態により1または0のどちらかになっています。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：右ローテーション命令の実行条件は次のようになります。

エラー：DROR、DRORP命令でのエラーはありません。

DRORの回路

右回転のビットをK8M0（M0～M31まで）で表示すると

M31、M30、M29－>M2、M1、M0－>M31、M30、M29－>M2、M1、M0というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に12345678を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M31がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。X00はPLS命令にします。D0は12345678のビットを4回右にローテーションさせると81234567になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM0、M1、M2、M5、M6、M8、M10、M14、M16、M17、M21、M24、M31、M9012がONします。

これはM3－>M31（このときM9012がON）、M4－>M0、M5－>M1、M6－>M2、M9－>M5、M10－>M6、M12－>M8、M14－>M10、M18－>M14、M20－>M16、M21－>M17、M25－>M21、M28－>M24にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットの移動はありません。このときキャリーフラグ（M9012）がONします。

DRORPの回路

右回転のビットをK8M0（M0～M31まで）で表示すると

M31、M30、M29－>M2、M1、M0－>M31、M30、M29－>M2、M1、M0というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に12345678を設定、X00をOFF、X01をONにします。これをM0からM31まで接点のON/OFFで表示したものです。これをK8M0のビットで表示すると

M0～M31までのONビットはM3、M4、M5、M6、M9、M10、M12、M14、M18、M20、M21、M5、M28がONします。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M31がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。D0は12345678のビットを4回右にローテーションさせると81234567になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM0、M1、M2、M5、M6、M8、M10、M14、M16、M17、M21、M24、M31、M9012がONします。

これはM3－>M31（このときM9012がON）、M4－>M0、M5－>M1、M6－>M2、M9－>M5、M10－>M6、M12－>M8、M14－>M10、M18－>M14、M20－>M16、M21－>M17、M25－>M21、M28－>M24にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


32ビットデータの右ローテーション（２）

    32ビットデータの右ローテーション（２）-----DRCR、DRCRP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～31

機能　DRCR、DRCRP

  1. D、D+1のデータキャリーフラグを含んでｎビット右へ回転させます。

  ・キャリーフラグはDRCR実行前の状態により1または0のどちらかになっています。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：右ローテーション命令の実行条件は次のようになります。

エラー：DRCR、DRCRP命令でのエラーはありません。

DRCRの回路

キャリーフラグを含む右回転のビットをK8M0（M0～M31まで）で表示すると

M31、M30、M29－>M2、M1、M0、M9012－>M31、M30、M29－>M2、M1、M0、M9012というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に12345678を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M0の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。X00はPLS命令にします。D0は12345678のビットを4回右にローテーションさせると1234567になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM0、M1、M2、M5、M6、M8、M10、M14、M16、M17、M21、M24、M9012がONします。

これはM3－>M9012、M4－>M0、M5－>M1、M6－>M2、M9－>M5、M10－>M6、M12－>M8、M14－>M10、M18－>M14、M20－>M16、M21－>M17、M25－>M21、M28－>M24にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときゼロフラグ（M9012）がONします。

DRCRPの回路

キャリーフラグを含む右回転のビットをK8M0（M0～M31まで）で表示すると

M31、M30、M29－>M2、M1、M0、M9012－>M31、M30、M29－>M2、M1、M0、M9012というように大きいビットから小さいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に12345678を設定、X00をOFF、X01をONにします。これをM0からM31まで接点のON/OFFで表示したものです。これをK8M0のビットで表示すると

M0～M31までのONビットはM3、M4、M5、M6、M9、M10、M12、M14、M18、M20、M21、M5、M28がONします。

キャリーフラグ（M9012）のON

右回りの時はMの大きい番号からMの小さい番号にローテーションした時、M0の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。D0は12345678のビットを4回右にローテーションさせると1234567になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM0、M1、M2、M5、M6、M8、M10、M14、M16、M17、M21、M24、M9012がONします。

これはM3－>M9012、M4－>M0、M5－>M1、M6－>M2、M9－>M5、M10－>M6、M12－>M8、M14－>M10、M18－>M14、M20－>M16、M21－>M17、M25－>M21、M28－>M24にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときゼロフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


32ビットデータの左ローテーション（１）

    32ビットデータの左ローテーション（１）-----DROL、DROLP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～31

機能　DROL、DROLP

  1. D、D+1のデータキャリーフラグを含まないでｎビット左へ回転させます。

  ・キャリーフラグはDROL実行前の状態により1または0のどちらかになっています。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：左ローテーション命令の実行条件は次のようになります。

エラー：DROL、DROLP命令でのエラーはありません。

DROLの回路

左回転のビットをK8M0（M0～M31まで）で表示すると

M0、M1、M2－>M29、M30、M31－>M0、M1、M2－>M29、M30、M31というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に12345678を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

左回りの時はMの小さい番号からMの大きい番号にローテーションした時、M0がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。X00はPLS命令にします。D0は12345678のビットを4回右にローテーションさせると23456781になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM0、M7、M8、M9、M10、M13、M14、M16、M18、M22、M24、M25、M29、M9012がONします。

これはM3－>M7、M4－>M8、M5－>M9、M6－>M10、M9－>M13、M10－>M14、M12－>M16、M14－>M18、M18－>M22、M20－>M24、M21－>M25、M25－>M29、M28－>M0（このときM9012がON）にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

DROLPの回路

左回転のビットをK8M0（M0～M31まで）で表示すると

M0、M1、M2－>M29、M30、M30－>M0、M1、M2－>M29、M30、M31というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に12345678を設定、X00をOFF、X01をONにします。これをM0からM31まで接点のON/OFFで表示したものです。これをK8M0のビットで表示すると

M0～M31までのONビットはM3、M4、M5、M6、M9、M10、M12、M14、M18、M20、M21、M5、M28がONします。

キャリーフラグ（M9012）のON

左回りの時はMの小さい番号からMの大きい番号にローテーションした時、M0がONのときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。D0は12345678のビットを4回右にローテーションさせると23456781になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM0、M7、M8、M9、M10、M13、M14、M16、M18、M22、M24、M25、M29、M9012がONします。

これはM3－>M7、M4－>M8、M5－>M9、M6－>M10、M9－>M13、M10－>M14、M12－>M16、M14－>M18、M18－>M22、M20－>M24、M21－>M25、M25－>M29、M28－>M0（このときM9012がON）にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときキャリーフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


32ビットデータの左ローテーション（２）

    32ビットデータの左ローテーション（２）-----DRCL、DRCLP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K8

設定データ

    D：ローテーション行うデータまたはデータの格納されているデバイスの先頭番号

    ｎ：回数K1～31

機能　DRCL、DRCLP

  1. D、D+1のデータキャリーフラグを含んでｎビット左へ回転させます。

  ・キャリーフラグはDRCL実行前の状態により1または0のどちらかになっています。

  2. ローテーション実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：左ローテーション命令の実行条件は次のようになります。

エラー：DRCL、DRCLP命令でのエラーはありません。

DRCLの回路

キャリーフラグを含む左回転のビットをK8M0（M0～M31まで）で表示すると

M0、M1、M2－>M29、M30、M30、M9012－>M0、M1、M2－>M29、M30、M31、M9012というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、スキャン毎に実行致します。

ローテーションの実行

スキャン毎の実行画面

D0に12345678を設定、X00をONします。D0はスキャンの度にローテーションします。X00をOFFにすると停止します。

キャリーフラグ（M9012）のON

右回りの時はMの小さい番号からMの大きい番号にローテーションした時、M31の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。X00はPLS命令にします。D0は12345678のビットを4回右にローテーションさせると23456780になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM7、M8、M9、M10、M13、M14、M16、M18、M22、M24、M25、M29、M9012がONします。

これはM3－>M7、M4－>M8、M5－>M9、M6－>M10、M9－>M13、M10－>M14、M12－>M16、M14－>M18、M18－>M22、M20－>M24、M21－>M25、M25－>M29、M28－>M9012にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときゼロフラグ（M9012）がONします。

DRCLPの回路

キャリーフラグを含む左回転のビットをK8M0（M0～M31まで）で表示すると

M0、M1、M2－>M29、M30、M30、M9012－>M0、M1、M2－>M29、M30、M31、M9012というように小さいビットから大きいビットにローテーションを行います。

この命令はX00がONの間、1回のみの実行となります。

ローテーションの実行

微分による回路の実行画面

D0に12345678を設定、X00をOFF、X01をONにします。これをM0からM31まで接点のON/OFFで表示したものです。これをK8M0のビットで表示すると

M0～M31までのONビットはM3、M4、M5、M6、M9、M10、M12、M14、M18、M20、M21、M5、M28がONします。

キャリーフラグ（M9012）のON

右回りの時はMの小さい番号からMの大きい番号にローテーションした時、M31の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に12345678を設定、X00をONします。X00はPLS命令にします。D0は12345678のビットを4回右にローテーションさせると23456780になります。K8M0はそれをビットで表示したものです。X01をONします。

M0～M31までのONビットはM7、M8、M9、M10、M13、M14、M16、M18、M22、M24、M25、M29、M9012がONします。

これはM3－>M7、M4－>M8、M5－>M9、M6－>M10、M9－>M13、M10－>M14、M12－>M16、M14－>M18、M18－>M22、M20－>M24、M21－>M25、M25－>M29、M28－>M9012にローテーションします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に0を設定、X00をONします。K8M0はM0～M31までのONビットがありませんので、ビットのローテーションはありません。このときゼロフラグ（M9012）がONします。

＊ローテーション命令にはエラーフラグ（M9010）はありません。


16ビットデータnビット右シフト

    16ビットデータnビット右シフト-----SFR、SFRP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：シフトデータを格納されているデバイスの先頭番号

    n：シフト数

機能　SFR、SFRP

  1. Dで指定されたデバイスの16ビットデータを右へnビットシフトします。

  2. 最上位からnビット分は0になります。

  3. シフト実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：nビット右シフト命令の実行条件は次のようになります。

エラー：SFR、SFRP命令でのエラーはありません。

SFRの回路

右シフトのビットをK4M0（M0～M15まで）で表示すると

M15、M14、M13－>M2、M1、M0、M9012というように大きいビットから小さいビットへシフトます。

この命令はX00がONの間、スキャン毎に実行致します。

シフトの実行

スキャン毎の実行画面

D0に1234を設定、X00をONします。D0はスキャンの度にシフトします。

キャリーフラグ（M9012）のON

右シフトの時はMの大きい番号からMの小さい番号に移動した時、M0の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを3回右にシフトさせると246になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM1、M2、M6、M9、M9012がONします。

これはM2－>M9012、M4－>M1、M5－>M2、M9－>M6、M12－>M9にシフトします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のx00をONする毎にビットを3回右にシフトさせます。これを5回ほど繰り返すと、M0～M15までの全てビットがOFFして、ゼロフラグ（M9013）がONします。

SFRPの回路

右シフトのビットをK4M0（M0～M15まで）で表示すると

M15、M14、M13－>M2、M1、M0、M9012というように大きいビットから小さいビットにシフトします。

この命令はX00がONの間、1回のみの実行となります。

シフトの実行

微分による回路の実行画面

D0に1234を設定、X00をOFF、X01をONにします。これをM0からM15まで接点のON/OFFで表示したものです。これをK4M0のビットで表示すると

M0～M15までのONビットはM2、M4、M5、M9、M12がONします。

キャリーフラグ（M9012）のON

右シフトの時はMの大きい番号からMの小さい番号に移動した時、M0の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のビットを3回右に移動させると246になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM1、M2、M6、M9、M9012がONします。

これはM2－>M9012、M4－>M1、M5－>M2、M9－>M6、M12－>M9にシフトします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のx00をONする毎にビットを3回右にシフトさせます。これを5回ほど繰り返すと、M0～M15までの全てビットがOFFして、ゼロフラグ（M9013）がONします。

＊シフト命令にはエラーフラグ（M9010）はありません。


16ビットデータnビット左シフト

    16ビットデータnビット左シフト-----SFL、SFLP

回路

使用可能デバイス

    D：Ｙ、Ｍ、Ｄ、K1～K4

設定データ

    D：シフトデータを格納されているデバイスの先頭番号

    n：シフト数

機能　SFL、SFLP

  1. Dで指定されたデバイスの16ビットデータを左へnビットシフトします。

  2. 最上位からnビット分は0になります。

  3. シフト実行後、全てのビットがOFFのときゼロフラグ（M9013）がONします。

実行条件：nビット左シフト命令の実行条件は次のようになります。

エラー：SFL、SFLP命令でのエラーはありません。

SFLの回路

左シフトのビットをK4M0（M0～M15まで）で表示すると

M0、M1、M2－>M13、M14、M15、M9012というように小さいビットから大きいビットにシフトします。

この命令はX00がONの間、スキャン毎に実行致します。

シフトの実行

スキャン毎の実行画面

D0に1234を設定、X00をONします。D0はスキャンの度にシフトします。

キャリーフラグ（M9012）のON

左シフトの時はMの小さい番号からMの大きい番号に移動した時、M15の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを4回左にシフトさせると2340になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM6、M8、M6、M9、M13、M9012がONします。

これはM2－>M6、M4－>M8、M5－>M9、M9－>M13、M12－>M9012にシフトします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のx00をONする毎にビットを4回左にシフトさせます。これを4回ほど繰り返すと、M0～M15までの全てビットがOFFして、ゼロフラグ（M9013）がONします。

SFLPの回路

左シフトのビットをK4M0（M0～M15まで）で表示すると

M0、M1、M2－>M13、M14、M15、M9012というように小さいビットから大きいビットにシフトします。

この命令はX00がONの間、1回のみの実行となります。

シフトの実行

微分による回路の実行画面

D0に1234を設定、X00をOFF、X01をONにします。これをM0からM15まで接点のON/OFFで表示したものです。これをK4M0のビットで表示すると

M0～M15までのONビットはM2、M4、M5、M9、M12がONします。

キャリーフラグ（M9012）のON

左シフトの時はMの小さい番号からMの大きい番号に移動した時、M15の次に来たときキャリーフラグ（M9012）がONします。

キャリー（M9012）ONの実行画面

D0に1234を設定、X00をONします。X00はPLS命令にします。D0は1234のビットを4回左にシフトさせると2340になります。K4M0はそれをビットで表示したものです。X01をONします。

M0～M15までのONビットはM6、M8、M6、M9、M13、M9012がONします。

これはM2－>M6、M4－>M8、M5－>M9、M9－>M13、M12－>M9012にシフトします。

ゼロフラグ（M9013）のON

データが0のときか、ビットが全てOFFのときゼロフラグ（M9013）がONします。

ゼロフラグ（9013）ONの実行画面

D0に1234を設定、X00をONします。D0は1234のx00をONする毎にビットを4回左にシフトさせます。これを4回ほど繰り返すと、M0～M15までの全てビットがOFFして、ゼロフラグ（M9013）がONします。

＊シフト命令にはエラーフラグ（M9010）はありません。


ビット左シフト

    ビット左シフト----------SFT、SFTP

回路

使用可能デバイス

    D：Ｙ、Ｍ、

設定データ

    D：シフトデータを格納されているデバイスの先頭番号

機能　SFT、SFTP

  1. Ｄで指定されたデバイスより一つ若いデバイスのＯＮ／ＯＦＦ状態を指定されたデバイスにシフトし、１つ若いデバイスをＯＦＦします

  2. 連続でＳＦＴ、ＳＦＴＰを用いる場合はデバイス番号の大きいものからプログラムします。

SFTの回路

上図のシフトを実行する回路は以下のようになります。

  上回路にＳＦＴ命令を使用すると１スキャンに１回のシフトになりますので注意が必要です。