Common Industrial Protocol (CIP)

変数の読み書きサービス

変数にアクセスするメッセージの内容を説明します

変数の読出し
リクエスト
名称 バイト数 データ
Common Industrial Protocol
Service Code 1 0x4c
Request Path
Length 1 5 (word)
ANSI Extended
Symbol Segment
10 0x9107+"testInt"+0x00
(奇数byteのときは0パディング)
CIP Class Generic
Request Service Data
Num of Element 2 0x0100 (配列の要素数)

レスポンス
名称 バイト数 データ
Common Industrial Protocol
Service 1 0xcc (最上位ビットON + 0x4c)
(Fixed) 1 0x00 (固定値)
Status
General Status 1 0x00
Additional Status 1 0x00
CIP Class Generic
Responce Service Data
Data Type 1 0xc3
AddInfoLength 1 0x00 (構造体の時0x02)
(AddInfo) (2) 構造体の時のみCRCコードが入る
Data 2 0x3412
(変数の型によってサイズが変わる)

変数の書込み
リクエスト
名称 バイト数 データ
Common Industrial Protocol
Service Code 1 0x4d
Request Path
Length 1 5 (word)
ANSI Extended
Symbol Segment
10 0x9107+"testInt"+0x00
(奇数byteのときは0パディング)
CIP Class Generic
Request Service Data
Data Type 1 0xc3
AddInfo Length 1 0x00 (構造体の時0x02)
(AddInfo) (2) 構造体の時のみCRC値
Num of Element 2 0x0100
Write Data 2 0x3412
(変数の型によってサイズを変える)

レスポンス
名称 バイト数 データ
Common Industrial Protocol
Service 1 0xcd (最上位ビットON + 0x4d)
Fixed 1 0x00 (固定値)
Status
General Status 1 0x00
Additional Status 1 0x00


RequestPathで変数名の指定の仕方
名称 データ 説明
Segment Type 0x91
(0b10010001)
Data Segment (0b100) +
ANSI Ectended Symbol Sengment (0b10001)
Segment Sub Type
Length 7 変数名のバイト数
変数名 "testInt" EncodingはUTF-8
(pad) (0x00) 変数名のバイト数が奇数なら0x00を追加


CIPオブジェクトの指定の仕方
  • NJ/NX 内臓EtherNet/IPポート宛てCIPオブジェクト


  • リクエストパスの詳細


    General Status 内容 Additional Status 説明
    0x00 SUCCESS 正常終了
    0x02 RESOURCE_UNAVAILABLE 内部処理⽤バッファが現在利⽤できない
    0x04 PATH_SEGMENT_ERROR Request Path 指定が間違っている
    0x05 PATH_DESTINATION_UNKNOWN 変数の宛先指定が誤っている
    0x0c OBJECT_STATE_CONFLICT 0x8010 ダウンロード中、起動中
    0x8011 タグメモリ異常中
    0x11 REPLY_DATA_TOO_LARGE 応答(レスポンス)が最大応答長を超えている
    0x13 NOT_ENOUGH_DATA 指定サービスのデータ長が不足している
    0x15 TOO_MUCH_DATA 指定サービスのデータ長が多すぎる
    0x1F VENDOR_SPECIFIC_ERROR 0x0102 0x2104 読み出し対象が、読み出し不可の変数I/O である
    0x0104 0x1103 セグメント領域を超えるアドレス、サイズが指定されている
    0x8001 内部異常
    0x8007 アクセス不可の変数が指定された
    0x8029 SimpleDataSegment で一括アクセスできない領域が指定された
    0x8031 内部異常(メモリアロケーションエラー)
    0x20 INVALID_PARAMETER 0x8009 セグメントタイプ異常
    0x800F リクエストデータ中のデータ長情報矛盾
    0x8017 単体データに対して、1 要素以外を要求
    0x8018 配列データに対して、0 要素、又は範囲を超えてデータ要求
    0x8021 AddInfo エリアに0,2 以外の値が指定された
    0x8022 Request Service Data のData TypeがTAG 情報の型と一致しない
    Request Service Data のAddInfo Length が0 でない
    0x8023 内部異常(コマンドフォーマット不正)
    0x8024 内部異常(コマンド長不正)
    0x8025 内部異常(パラメータ不正)
    0x8027 内部異常(パラメータ異常)
    0x8028 サブレンジ指定された変数に対して範囲外の値を書き込んだ
    Enum 型変数に対して定義されていな い値を書き込んだ


    DataType VariableType Size
    0xc1 BOOL ビット
    0xc2 SINT 1byte
    0xc3 INT 2byte
    0xc4 DINT 4byte
    0xc5 LINT 8byte
    0xc6 USINT 1byte
    0xc7 UINT 2byte
    0xc8 UDINT 4byte
    0xc9 ULINT 8byte
    0xca REAL 4byte
    0xcb LREAL 8byte
    0xd0 STRING
    0xd1 BYTE 1byte
    0xd2 WORD 2byte
    0xd3 DWORD 4byte
    0xd4 LWORD 8byte
    0xdb TIME 8byte
    0xa0 Abbreviated STRUCT
    0xa2 STRUCT
    0xa3 ARRAY


    この記事へのコメント