例外コード

スレーブが通信エラーなしでクエリを受信したが、それに応答できない場合、スレーブは例外コードを発行して、マスターが正しく応答しなかった理由を通知します。例外コードの一般的な理由の1つは、Modbusがアドレス指定できるすべてのコイル、ステータス入力、およびレジスタがスレーブデバイスにない場合です。

スレーブからの例外コードの応答は、機能コードが次の値に等しいことで示されます。

80Hex + Function Code from the Master

例として、マスターがModbus RTUネットワーク上のスレーブデバイス18のコイル4096〜4111を読み取ろうとする場合があります。

スレーブアドレス12
機能01
開始アドレスHi0F
開始アドレスLoFF
ポイント数Hi00
ポイント数Lo10
エラーチェック(LRCまたはCRC)LRCまたはCRCHi、CRCLo

スレーブからの例外コードの応答は次のようになります。

スレーブアドレス12
機能81
例外コード02
エラーチェック(LRCまたはCRC)LRCまたはCRCHi、CRCLo
例外コード01:不正な機能

マスターからのクエリで受信した機能コードは、スレーブでは実行できません。

例外コード02:不正なデータアドレス

マスターからのクエリで受信したデータアドレスは、スレーブの有効なアドレスではありません。たとえば、スレーブには8つのコイル出力しかない場合がありますが、マスターはコイル56に対して読み取りまたは書き込みを試みています。

例外コード03:不正なデータ値

マスターからのクエリで受信したデータ値は、スレーブで許容される値ではありません。たとえば、スレーブには0?100の値しか持てない保持レジスタしかない場合がありますが、マスターは456の値を書き込もうとしています。

例外コード04:スレーブデバイスの障害

スレーブが要求されたアクションを実行しようとしたときに、回復不能なエラーが発生しました。

例外コード05:確認

スレーブはマスターからの要求を受信し、それを処理しています。

例外コード06:スレーブデバイスがビジー

スレーブはビジーであり、マスターからの要求に応答しません。マスターは後日クエリを再試行する必要があります。

例外コード07:否定的な承認

スレーブは、マスターからのクエリで受信したプログラム機能を実行できません。

例外コード08:メモリパリティエラー

スレーブは拡張メモリを読み取ろうとしましたが、メモリでパリティエラーを検出しました。

例外コード10:ゲートウェイパスが利用できません

Modbus TCPからシリアルゲートウェイへは、要求されたスレーブデバイスへの接続を確立できません。

例外コード11:ターゲットデバイスが応答しませんでした

シリアルゲートウェイへのModbusTCPは、スレーブデバイスから応答を取得できませんでした。