EtherNet/IP・CIP ステータスコード(General Status)一覧と対処方法
EtherNet/IP(CIPメッセージ)で返ってくるGeneral Status(一般ステータス)と追加ステータスの意味、よくある原因・対処をまとめました。
KEYENCE KVシリーズやOMRON NJ/NXシリーズのタグ(変数)の読み書きで、05、04、08、1Eなどが返ってきたときに確認してください。
ステータスの見方
CIPの応答は、応答サービスコード(要求のサービスコード+80h)、予約(1バイト)、General Status(1バイト)、追加ステータスのサイズ(ワード数)、追加ステータスの順に並びます。General Statusが00なら正常終了です。
これとは別に、EtherNet/IPのカプセル化ヘッダ(24バイト)にもステータス欄があります。セッションの登録やコマンドの形式の誤りは、こちらで返ります(下の「カプセル化ヘッダのステータス」を参照)。
よく出るステータスと対処
| ステータス | 意味 | よくある原因と対処 |
|---|---|---|
| 05 | Path destination unknown | 指定したクラス・インスタンス・タグ(変数)が存在しない。タグ名の綴りや、PLC側でEtherNet/IPに公開しているかを確認します |
| 04 | Path segment error | パス(EPATH)の形式が正しくない。パスのサイズ(ワード数)やセグメントの書き方を確認します |
| 08 | Service not supported | そのオブジェクトが対応していないサービスを要求した |
| 14 | Attribute not supported | 指定したアトリビュートがない |
| 0E | Attribute not settable | 書込みできないアトリビュートにSet_Attributeを送った |
| 13 / 15 | Not enough data/Too much data | 書込みのデータが足りない・多すぎる。データ型とサイズを確認します |
| 01 | Connection failure | 接続関連のサービス(Forward Openなど)の失敗。追加ステータスで原因が分かります(下表) |
| 1E | Embedded service error | Multiple Service Packetの中のサービスがエラーになった。中の各サービスのステータスを確認します |
タグ(変数)の読み書きで 05 や 04 になるときは、PLC側の公開設定を確認してください。KEYENCE KVシリーズではEtherNet/IPのタグの設定、OMRON NJ/NXシリーズでは変数のネットワーク公開の設定が必要です。
CipMes2026で応答の意味をすぐ確認
EtherNet/IP・CIPの通信解析ツールです。Free版でCIPオブジェクトやタグ・変数の読み書きと、送受信データの確認ができます。
- KEYENCE KVシリーズとOMRON NJ/NXシリーズの違いを自動判別
- UCMM/Class3に対応、CIPメッセージのログを保存
- Pro版はタグ・変数を一定周期で読み出してCSVに記録
General Status一覧
| ステータス | 名前 | 内容 |
|---|---|---|
| 00 | Success | 正常終了 |
| 01 | Connection failure | 接続関連のサービスが接続経路のどこかで失敗した |
| 02 | Resource unavailable | サービスの実行に必要なリソースが使えない |
| 03 | Invalid parameter value | パラメータの値が不正(現在は 20 を使用) |
| 04 | Path segment error | パスのセグメントの形式が正しくない、または解釈できない |
| 05 | Path destination unknown | パスで指定したオブジェクトのクラス・インスタンス・要素が存在しない |
| 06 | Partial transfer | データの一部だけを転送した |
| 07 | Connection lost | メッセージ接続が切れた |
| 08 | Service not supported | そのクラス・インスタンスでは、要求したサービスに対応していない |
| 09 | Invalid attribute value | アトリビュートのデータが不正 |
| 0A | Attribute list error | Get_Attribute_List/Set_Attribute_Listの中に、ステータスが0以外のアトリビュートがある |
| 0B | Already in requested mode/state | すでに要求したモード・状態になっている |
| 0C | Object state conflict | オブジェクトの現在の状態では、サービスを実行できない |
| 0D | Object already exists | 作成しようとしたオブジェクトがすでにある |
| 0E | Attribute not settable | 書込みできないアトリビュートに書込みを要求した |
| 0F | Privilege violation | 権限のチェックに失敗した |
| 10 | Device state conflict | 機器の現在のモード・状態では、サービスを実行できない |
| 11 | Reply data too large | 応答のデータが応答バッファより大きい |
| 12 | Fragmentation of a primitive value | 基本データ型の値が分割されてしまう要求 |
| 13 | Not enough data | サービスの実行に必要なデータが足りない |
| 14 | Attribute not supported | 指定したアトリビュートに対応していない |
| 15 | Too much data | サービスのデータが多すぎる |
| 16 | Object does not exist | 指定したオブジェクトが存在しない |
| 17 | Service fragmentation sequence not in progress | 分割転送の途中ではないのに、分割データを受信した |
| 18 | No stored attribute data | 保存されたアトリビュートのデータがない |
| 19 | Store operation failure | アトリビュートのデータの保存に失敗した |
| 1A | Routing failure (request packet too large) | 要求の電文が大きすぎて、経路の途中で転送できない |
| 1B | Routing failure (response packet too large) | 応答の電文が大きすぎて、経路の途中で転送できない |
| 1C | Missing attribute list entry data | アトリビュートリストに必要なデータがない |
| 1D | Invalid attribute value list | 不正なアトリビュートの値を含むリストを返した |
| 1E | Embedded service error | 埋め込まれたサービス(Multiple Service Packetの中など)がエラーになった |
| 1F | Vendor specific error | ベンダー固有のエラー。追加ステータスの内容は各メーカーの資料を参照 |
| 20 | Invalid parameter | 要求のパラメータが不正 |
| 21 | Write-once value or medium already written | 一度だけ書込める値・媒体に、すでに書込まれている |
| 22 | Invalid reply received | 不正な応答を受信した |
| 23 | Buffer overflow | バッファのオーバーフロー |
| 24 | Message format error | メッセージの形式が正しくない |
| 25 | Key failure in path | パスの電子キー(Electronic Key)が一致しない |
| 26 | Path size invalid | パスのサイズが正しくない(大きすぎる・小さすぎる) |
| 27 | Unexpected attribute in list | 現在は設定できないアトリビュートを設定しようとした |
| 28 | Invalid member ID | メンバーIDが不正 |
| 29 | Member not settable | 書込みできないメンバーに書込みを要求した |
| 2A | Group 2 only server general failure | DeviceNetのGroup 2専用サーバーの一般エラー |
Connection failure(01)の追加ステータス
General Statusが 01 のときは、追加ステータスに接続マネージャ(Connection Manager)のエラーコードが入ります。Forward Openの失敗の原因は、ここで分かります。
| 追加ステータス | 内容 |
|---|---|
| 0100 | コネクションが使用中、またはForward Openの重複 |
| 0103 | トランスポートクラスとトリガの組合せに対応していない |
| 0106 | オーナーシップの競合(ほかの機器がすでに排他接続している) |
| 0107 | Forward Closeで、対象のコネクションが見つからない |
| 0108 | ネットワーク接続パラメータが不正 |
| 0109 | コネクションサイズが不正(大きいデータは Large_Forward_Open が必要) |
| 0110 | ターゲットの設定がされていない |
| 0111 | RPIに対応していない |
| 0113 | コネクション数の上限を超えている |
| 0114 | ベンダーIDまたはプロダクトコードが一致しない(電子キー) |
| 0115 | デバイスタイプが一致しない(電子キー) |
| 0116 | リビジョンが一致しない(電子キー) |
| 0117 | 生産・消費アプリケーションパスが不正 |
| 0118 | コンフィグレーションパスが不正または矛盾している |
| 011A | ターゲットのオブジェクトのコネクションが上限 |
| 0203 | コネクションのタイムアウト |
| 0204 | Unconnected Sendのタイムアウト |
| 0205 | Unconnected Sendのパラメータエラー |
| 0206 | Unconnected Sendのメッセージが大きすぎる |
| 0301 | バッファメモリが足りない |
| 0302 | ネットワークの帯域が足りない |
| 0311 | ポートが不正 |
| 0312 | リンクアドレスが不正 |
| 0315 | コネクションパスのセグメントが不正 |
カプセル化ヘッダのステータス
EtherNet/IPのカプセル化ヘッダ(24バイト)のステータス欄(4バイト)で返るエラーです。CIPの応答そのものが返らないときに確認してください。
| ステータス | 内容 |
|---|---|
| 0000 | 正常 |
| 0001 | 無効または未対応のカプセル化コマンド |
| 0002 | コマンドを処理するメモリが足りない |
| 0003 | データ部の形式が正しくない |
| 0064 | セッションハンドルが無効(RegisterSessionで取得したハンドルを使っていない) |
| 0065 | 長さ(Length)が正しくない |
| 0069 | 対応していないプロトコルのリビジョン |
よくある質問
CIPのGeneral Status 05は何のエラーですか?
Path destination unknownです。パスで指定したクラス・インスタンス・タグ(変数)が存在しません。タグ名の綴りと、PLC側でタグ(変数)をEtherNet/IPに公開しているかを確認してください。
Forward Openがステータス01で失敗するのはなぜですか?
General Status 01はConnection failureで、追加ステータスに原因が入ります。0109はコネクションサイズが不正、0113はコネクション数の上限、0114〜0116は電子キーの不一致などです。
カプセル化ヘッダのステータス0064は何ですか?
セッションハンドルが無効です。RegisterSessionで取得したセッションハンドルを、以降の要求のヘッダに入れているか確認してください。
※ステータスの意味は、ODVAの「The CIP Networks Library(Volume 1, Volume 2)」に基づいています。ベンダー固有のエラー(1F)や追加ステータスの詳細は、各メーカーのマニュアルを参照してください。
