命令後、桁あふれが発生した場合は、システム変数(ビット)の#L_CalcCarry がONになります。
オペランドS1、S2に表現できない数値(無限大や非数)の場合は、命令を実行されません。
エラーの確認として、#L_CalcErrCodeにエラーコード“6706”がセットされます。
出力結果D1には、正常に命令が実行された前回値のままとなります。
エラーが発生すると#L_ErrorがONになります。
実行結果が0の場合は、システム変数の#L_CalcZeroがONします。
実行結果をシステム変数で確認する場合は必ず命令実行後に、システム変数で確認してください。 複数の命令実行後に状態を確認すると、最後に処理した命令の結果が反映されるのでご注意ください。
プログラム例
SUB
2個の定数を減算し、結果を整数変数に格納します。
演算開始の立ち上がり検出接点命令がONすることによって、SUB命令が実行されます。SUB命令が実行されるとD1に設定している結果データ(整数変数)に25-15=10の結果値10が格納されます。
演算開始がa接点命令の場合は、演算開始がONの間、常にSUB命令が実行されます。
SUBP
演算開始のa接点命令がONすることによって、SUBP命令が実行されます。SUBP命令が実行されるとD1に設定している結果データ(整数変数)に25-15=10の結果値10が格納されます。
演算開始がa接点命令の場合でも、演算開始のONの立ち上がりのみを検出して、SUBP命令が実行されます。
よって、演算開始がONし続けても、SUBP命令は1スキャンのみ実行されます。