• 検索結果がありません。

通信オブジェクト

ドキュメント内 1 (ページ 95-106)

4 CANopen

4.3 ネットワーク通信

4.3.1 通信オブジェクト

4.3.1.1 PDO(Process Data Object-プロセスデータ・オブジェクト)

PDOは優先度の高いIDを持った実時間データが入っています。データ電文は最大8バイト で構成され、要求に応じて個々のサブアセンブリの間(プロデューサとコンシューマ間)で 交換することができます。このデータ交換はイベントコントロールで任意に行うことができ るか、または同期方式で実行することができます。イベントコントロールモードではバスの 付加を大幅に下げることができ、低いボーレートでも大きな容量の通信が可能になります。

一方、様々なモードを混合して処理することもできます(4.3.4.2.20節「オブジェクト0x1400

〜0x141F、受信PDO通信パラメータ」参照)。

4.3.1.1.1 PDOプロトコル

このプロトコルはバスコントローラに対し、プロトコルのオーバーヘッドなしにデータを送 受信するのに用いられます。PDOはCAN識別子とデータ領域からのみ構成されます。他の プロトコル情報は一切PDOに含まれていません。PDOデータの内容はマッピングパラメー タと通信パラメータの送信タイプで定義されています。

RxPDO(受信PDO)とTxPDO(送信PDO)は区別して用いられます。

4-5:RxPDO g012403x

4-6:TxPDO g012404x

受信PDO(RxPDO)

クライアント サーバ

サーバ 送信PDO(TxPDO)

クライアント

  通信オブジェクト

4.3.1.2 SDO(Service Data Object-サービスデータ・オブジェクト)

SDOはオブジェクトディクショナリの各入力値に対し、読み出しまたは書き込みをするのに 用いることができます。これを利用することでCANopenノードデバイスを完全にコンフィ グレーションすることができます。

デフォルトのSDOは、優先度の低いIDで予め割り当てられています。送信するデータは4 バイトを超えた場合、幾つかのメッセージに分けなければなりません。

4.3.1.2.1 SDOプロトコル

SDO は送信に不可欠な特定のプロトコル用オーバーヘッドを持っており、コマンド指定子、

インデックスおよびリード/ライトされる入力項目のサブインデックで構成されます。

4.3.1.2.1.1 基本手順

モジュール

モジュール コマンド

指定子

コマンド 指定子

データ

データ

4-7:SDOプロトコル g012405x 受信 SDO(RxSDO) 

送信 SDO(TxSDO) 

クライアント

クライアント

サーバ

サーバ

(10進値)

4.3.1.2.1.2 SDOダウンロード・プロトコル

このプロトコルは、マスタからバスコントローラにデータを書き込むときに用いられます。

4.3.1.2.1.2.1 SDOダウンロードの開始

このプロトコルは、マスタからバスコントローラへのデータ送信を開始するときに用いられ ます。4 バイト以内のデータを送信するときは、データはこのプロトコルの中で送信できま す。

91 通信オブジェクト   

データ

データ

要求 指示

確認 応答

サーバ

サーバ クライアン

クライアン

SDOダウンロードの開始

SDOダウンロードの開始

4-8:SDOダウンロードの開始 g012406x

ccs: クライアント・コマンド指定子 1:ダウンロード開始の要求

scs: サーバ・コマンド指定子 3:ダウンロード開始の応答

n: e=1およびs=1のときのみ有効 nが有効の場合データを含まないバイト数

他の場合は0 を表示。例:データ=3バイト、

e=1およびs=1:n=4−3=1

e: 転送タイプ 0:標準転送、書き込むバイト数

≧5バイトのとき

1:急送。書き込むバイト数

< 5バイトのとき

s: サイズ指定 0:データセットのサイズは表示しない

1:データセットのサイズを表示する

sは常に1

m: マルチプレクサ オブジェクトディクショナリのインデッ クスとサブインデックス

インデックス、下位バイト:バイト1 インデックス、上位バイト:バイト2 サブインデックス:バイト3

d: データ e=0、s=0:dはCiAで使用予約

e=0、s=1:dにはダウンロードのバイト数 が入る

バイト4はLSB、バイト7はMSBが入る e=1:dにはデータが入る

x: 未使用、常に0

  通信オブジェクト

4.3.1.2.1.2.2 SDOセグメントのダウンロード

このプロトコルは4バイト以上のデータを送信するのに用いられます。すなわち、データ送 信を開始する「SDOダウンロード開始プロトコル」を完全に処理した後に実行されます。

クライアン

クライアン

サーバ

サーバ 要求

確認

指示

応答 SDOセグメントのダウンロード

SDOセグメントのダウンロード セグメントデータ

予  約

4-9:SDOセグメントのダウンロード g012409x

ccs: クライアント・コマンド指定子 0:セグメント・ダウンロードの要求

scs: サーバ・コマンド指定子 1:セグメント・ダウンロードの応答

セグメントデータ: 送信データが入る データの中身はアプリケーションで判断 される

n: データを含まないバイト数を示す。

セグメント・サイズが示されない場合、

n=0

c: ダウンロードするデータがまだ 0:ダウンロードするデータがまだある あるかどうかを示す 1:ダウンロードするデータはもうない t: トグルビット このビットはセグメントのダウンロード

が行われる毎に切り替わるものとする。

最初のセグメントのトグルビットは0に する。トグルビットは要求と応答メッセー ジにおいて同じ値である。

x: 未使用、常に0

予約: CiAにより予約

4.3.1.2.1.3 SDOアップロード・プロトコル

このプロトコルはバスコントローラからデータを読み出すのに用いられます。

93 通信オブジェクト   

4.3.1.2.1.3.1 SDOアップロードの開始

このプロトコルにより、バスコントローラからマスタへのデータ送信が開始します。4 バイ ト以内のデータを送信するときは、データはこのプロトコルの中で送信できます。

データデータ

クライアント

クライアント

サーバ

サーバ

要求 指示

確認 応答

予約

データ SDOアップロードの開始

SDOアップロードの開始

図4-6:SDOアップロードの開始 g012410x

ccs: クライアント・コマンド指定子 2:アップロード開始の要求

scs: サーバ・コマンド指定子 2:アップロード開始の応答

n: e=1およびs=1のときのみ有効 nが有効の場合データを含まないバイト数

他の場合は0 を表示。バイト[8-n、7]にはセグメントデ ータはない。

e=1およびs=1、n=4−3=1

e: 転送タイプ 0:標準転送、書き込むバイト数

≧5バイトのとき

1:急送。書き込むバイト数

< 5バイトのとき

s: サイズ指定 0:送信するバイト数は表示しない

1:送信するバイト数は表示する

(バイト数に依存する)

m: マルチプレクサ オブジェクトディクショナリのインデッ クスとサブインデックス

インデックス、下位バイト:バイト1 インデックス、上位バイト:バイト2 サブインデックス:バイト3

d: データ e=0、s=0:dはCiAで使用予約

c=0、s=1:dはダウンロードのバイト数が

入る

バイト4はLSB、バイト7はMSBが入る e=1:dはデータが入る

x: 未使用、常に0

予約: CiA用に予約

  通信オブジェクト

4.3.1.2.1.3.2 SDOセグメントのアップロード

このプロトコルは4個以上のデータを送信するのに用いられます。すなわち、データ送信を 開始する「SDOアップロード開始プロトコル」を完全に処理した後に実行されます。

SDOセグメントのアップロード

SDOセグメントのアップロード クライアント

クライアント

  サーバ

  サーバ     要求

    確認

  指示

応答 予  約

セグメントデータ

4-11:SDOセグメントのアップロード g012411x

ccs: クライアント・コマンド指定子 3:セグメント・アップロードの要求

scs: サーバ・コマンド指定子 0:セグメント・アップロードの応答

t: トグルビット このビットはセグメントのアップロード が行われる毎に切り替わるものとする。

最初のセグメントのトグルビットは0に する。トグルビットは要求と応答メッセー ジにおいて同じ値である。

c: アップロードするセグメントが 0:アップロードするセグメントがまだ まだあるかどうかを示す ある

1:アップロードするデータはもうない

セグメントデータ: 送信データを含む データの中身はアプリケーションで判断 される

n: データを含まないバイト数を示す。

バイト[8-n、7]にはデータはない。

セグメント・サイズが示されない場合、

n=0

x: 未使用、常に0

予約: CiAにより予約

95 通信オブジェクト   

4.3.1.2.1.4 SDO転送のアボート

このプロトコルは送信中にエラーが起きた場合に用いられます。

まだあるかどうかを示す

クライアント サーバ

  要求   指示

データ   SDA 転送のアボート 

4-12:SDO転送のアボート g012412x

cs: コマンド指定子 4:ドメイン転送のアボート

m: マルチプレクサ オブジェクトディクショナリのインデッ クスとサブインデックス

x: 未使用、常に0

データ: 4バイト、エラーコード アボートの理由を示すアプリケーション 固有のデータ

ドメイン転送アボートメッセージは以下のような構造になっています。

構造

バイト 意味

0 コマンド指定子 1

2 インデックス 3 サブインデックス 4

5 追加コード 6 エラーコード 7 エラークラス

  通信オブジェクト

エラーの中の追加コード、エラーコードおよびエラークラスは、以下の表に示すように UNSIGNED32値としてコード化されます。

バイト 7−6 バイト 5  バイト 4

追加コード  エラーコード  エラークラス 意 味 

05  03  00  00  トグルビットが切り替わらない  05  04  00  00  SDO プロトコルがタイムアウト 

05  04  00  01  クライアント/サーバ・コマンド指定子が無効または不明  05  04  00  02  無効ブロック・サイズ(ブロック・モードのみ) 

05  04  00  03  無効シーケンス番号(ブロック・モードのみ) 

05  04  00  04  CRC エラー(ブロック・モードのみ) 

05  04  00  05  メモリ不足 

06  01  00  00  オブジェクトに対するサポートされていないアクセス  06  01  00  01  ライト・オンリー・オブジェクトをリードしようとした  06  01  00  02  リード・オンリー・オブジェクトをライトしようとした  06  02  00  00  オブジェクトディクショナリにないオブジェクト  06  04  00  41  PDO にマッピングできないオブジェクト 

06  04  00  42  マッピング対象オブジェクトの数および長さが PDO 長を超える  06  04  00  43  一般的なパラメータ不一致 

06  04  00  47  デバイス内の一般的な内部不一致 

06  06  00  00  ハードウェア・エラーによるアクセス失敗 

06  07  00  10  データタイプ不一致、サービスパラメータ長の不一致  06  07  00  12  データタイプ不一致、サービスパラメータが長すぎる  06  07  00  13  データタイプ不一致、サービスパラメータが短すぎる  06  09  00  11  サブインデックスが存在しない 

06  09  00  30  パラメータの値範囲を超えた(ライトアクセスのみ) 

06  09  00  31  書き込まれたパラメータ値が大きすぎる  06  09  00  32  書き込まれたパラメータ値が小さすぎる  06  09  00  36  最大値が最小値より小さい 

08  00  00  00  一般エラー 

08  00  00  20  データをアプリケーションに転送または保存できない 

08  00  00  21  ローカル制御が原因で、データをアプリケーションに転送または 保存できない 

08  00  00  22  現在のデバイス状態が原因で、データをアプリケーションに転送 または保存できない 

08  00  00  23  オブジェクトディクショナリの動的生成に失敗、またはオブジェ クトディクショナリが存在しない(例えば、オブジェクトディク ショナリをファイルから生成しようとしたが、ファイルエラーの ために生成できなかった) 

4.3.1.2.2 SDO使用例

以下に4種類のSDO使用例を掲げます。データは16進で表されます。この例ではCANメ ッセージレベルでのSDOの処理を示しており、SDOプロトコルがCANカードに実装され ていれば利用できます。

欄1 方向 M→BC=マスタからバスコントローラにメッセージ送信

BC→M=バスコントローラからマスタにメッセージ送信

欄2 CAN-ID CAN識別子

R=RTRフレーム(RTR:Remote Transmit)

欄4 データ CANメッセージのデータバイト

CANメッセージでは最大8バイトのデータを送信できます。

個々のデータはスペースで分割されます。XX値の項目は意味 1つのメッセージに対し、4項目の欄に分けて説明します。

欄3 フレームタイプ D=データフレーム

を持ちませんが、場所は確保されます。この値は’0’にしてお

ドキュメント内 1 (ページ 95-106)