1. TOP
  2. OMRON
  3. 上位アプリケーション
  4. CIPメッセージ通信 UCMM
  5. CIP Explicit メッセージ

変数の読み書きサービス

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

変数の読出し

リクエスト

名称バイト数データ
Common Industrial Protocol
Service Code10x4c
Request Path
Length15 (word)
ANSI Extended
Symbol Segment
100x9107+"testInt"+0x00
(奇数byteのときは0パディング)
CIP Class Generic
Request Service Data
Num of Element20x0100 (配列の要素数)
Encapsulation HeaderのCommandにListservice,RegisterSession,SendRRData,UnRegisterSessionをセットして送信します

レスポンス

名称バイト数データ
Common Industrial Protocol
Service10xcc (最上位ビットON + 0x4c)
(Fixed)10x00 (固定値)
Status
General Status10x00
Additional Status10x00
CIP Class Generic
Responce Service Data
Data Type10xc3
AddInfoLength10x00 (構造体の時0x02)
(AddInfo)(2)構造体の時のみCRCコードが入る
Data20x3412
(変数の型によってサイズが変わる)

変数の書込み

リクエスト

名称バイト数データ
Common Industrial Protocol
Service Code10x4d
Request Path
Length15 (word)
ANSI Extended
Symbol Segment
100x9107+"testInt"+0x00
(奇数byteのときは0パディング)
CIP Class Generic
Request Service Data
Data Type10xc3
AddInfo Length10x00 (構造体の時0x02)
(AddInfo)(2)構造体の時のみCRC値
Num of Element20x0100
Write Data20x3412
(変数の型によってサイズを変える)

レスポンス

名称バイト数データ
Common Industrial Protocol
Service10xcd (最上位ビットON + 0x4d)
Fixed 10x00 (固定値)
Status
General Status10x00
Additional Status10x00

RequestPathで変数名の指定の仕方

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

CIPオブジェクトサービス

CIPオブジェクトの指定の仕方

NJ/NX 内臓EtherNet/IPポート宛てCIPオブジェクト

リクエストパス

リクエストパスの詳細

Statusの内容

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

DataTypeの内容

DataTypeVariableTypeSize
0xc1BOOLビット
0xc2SINT1byte
0xc3INT2byte
0xc4DINT4byte
0xc5LINT8byte
0xc6USINT1byte
0xc7UINT2byte
0xc8UDINT4byte
0xc9ULINT8byte
0xcaREAL4byte
0xcbLREAL8byte
0xd0STRING
0xd1BYTE1byte
0xd2WORD2byte
0xd3DWORD4byte
0xd4LWORD8byte
0xdbTIME8byte
0xa0Abbreviated STRUCT
0xa2STRUCT
0xa3ARRAY

この記事へのコメント