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 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 | ||
| 名称 | データ | 説明 |
|---|---|---|
| Segment Type |
0x91 (0b10010001) |
Data Segment (0b100) + ANSI Ectended Symbol Sengment (0b10001) |
| Segment Sub Type | ||
| Length | 7 | 変数名のバイト数 |
| 変数名 | "testInt" | EncodingはUTF-8 |
| (pad) | (0x00) | 変数名のバイト数が奇数なら0x00を追加 |
| 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 |