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