Modbus-RTUエラーレスポンスの詳細(FC400)

■エラーレスポンスについて
Modbus-RTUではマスターからのリクエストに不具合があった場合、スレーブは指令を実行せずにエラーレスポンスを返します。
・ファンクションコードにはリクエストされたファンクションコードに0x80を加えた値を使用します。
・例外コードの判定は受信フレーム後に行なわれます。
・例外コード判定の優先順位は1→3→2となります。
FC400-Modbus-RTU例外コード
例外コード=01
 実在しないファンクションコードを指定されました。ファンクションコードを確認してください。
例外コード=02
 使用できないアドレスが指定されました。開始アドレス、または、開始アドレス+(コイル数orステータス数orレジスタ数)を確認してください。(ファンクションコード1~6、15、16)
例外コード=03
 個数の指定が範囲外になっています。
 ・コイル数orステータス数orレジスタ数は読出し範囲内か確認してください。(ファンクションコード1~4)
 ・出力値は0x0000か0xFF00になっているか確認してください。(ファンクションコード5)
 ・出力値は0x0000~0xFFFFになっているか確認してください。または、開始アドレス54までで指定していないか確認してください。(ファンクションコード6)
 ・コイル数orレジスタ数は範囲内か確認してください。(ファンクションコード15、16)
 ・バイト数はコイル数orレジスタ数から求められる値になっているか確認してください。(ファンクションコード15、16)
 ・送信したフォーマットの全バイト数が正しいかどうかを確認してください。(ファンクションコード1~6、8、15、16)

■注意点
スレーブは以下のエラーのとき、マスターからのリクエストを無視し、レスポンスを返しません。
・指定されたスレーブアドレスNo.と自アドレスが一致しないとき
・エラーチェックコードが一致しないとき
・パリティエラー等の通信エラーを検出したとき
・フレーム構成データの文字間隔が1.5文字以上空いたとき
・スレーブのアドレスNo.が0に設定されているとき