ホーム / 技術ガイド / CANopen 入門 — CiA 301 / 302 / 402 と機器開発の進め方

CANopen 入門 — CiA 301 / 302 / 402 と機器開発の進め方

CANopen は、CAN の物理層・データリンク層の上に、オブジェクトディクショナリ(OD)という共通のデータモデルを載せた産業用ネットワーク規格です。メーカーが異なる機器でも、同じ手順で設定・監視・制御できることが最大の利点です。ここでは、機器を CANopen 対応にする際に最初に理解しておくべき構造を説明します。

目次

オブジェクトディクショナリが中心にある

CANopen 機器は、自分が持つすべてのパラメータ・プロセス値・状態をインデックス(16bit)とサブインデックス(8bit)で番地付けされた表として公開します。これが OD です。

通信も設定も診断も、すべて「OD のどのエントリを読み書きするか」に還元されます。この一点を押さえると、以下の通信サービスの役割が整理しやすくなります。

3つの通信サービス(PDO・SDO・NMT)

PDO(Process Data Object)は、周期的またはイベント駆動でプロセスデータを送る仕組みです。あらかじめ「どの OD エントリを、CAN フレームの何バイト目に載せるか」をマッピングしておき、実行時はデータだけを送ります。最大8バイト、確認応答なし。制御ループはこれを使います。

SDO(Service Data Object)は、OD の任意のエントリを確認応答つきで読み書きする仕組みです。8バイトを超えるデータも分割転送できます。設定・診断に使いますが、1回のやり取りに往復が必要なため、周期的なデータ取得には向きません。

NMT(Network Management)は、ノードの状態(Initialising / Pre-operational / Operational / Stopped)を遷移させる仕組みです。Operational にならないと PDO は流れません。立ち上げでつまずく原因の多くはここにあります。

CiA の主な仕様

CiA 301:通信プロファイル。OD の構造、PDO/SDO/NMT、ハートビート、エマージェンシーメッセージ、SYNC など、CANopen の基本がすべてここにあります。

CiA 302:追加機能。NMT マスタ、ネットワークブート(構成マネージャによる設定配信)、Flying Master によるマスタ冗長化(302-2)、CANopen 経由のプログラム更新(302-3)、多階層ネットワーク(302-7)などを規定します。

CiA 402:モーション制御のデバイスプロファイル。サーボ・ステッピング・インバータのステートマシンと運転モードを標準化しています。

CiA 304:安全関連通信(SRDO)。CiA 309:TCP/IP など他ネットワークとのインタフェース。

自社機器がどこまで必要かは、「スレーブとして動けばよいのか」「マスタを実装するのか」「モーション制御か汎用 I/O か」「安全機能を担うか」で決まります。

EDS / XDD / DCF の関係

EDS(Electronic Data Sheet)は、機器が何をできるかを記述したファイルです。XML 形式にしたものが XDD です。機器メーカーが提供します。

DCF(Device Configuration File)は、そのネットワークで実際にどう設定したかを保存したものです。構成ツールが EDS を読み込み、設定値を入れて DCF として書き出す、という関係になります。

この3つの関係を理解しないまま進めると、「手元のツールでは動くが、構成マネージャ経由の起動では動かない」という切り分けの難しい問題に当たります。

機器開発で最初に決めること

① マスタかスレーブか(両方必要か) ② 使用するデバイスプロファイル(汎用 I/O か CiA 402 か) ③ PDO の点数と更新周期 ④ 必要な追加機能(SRDO、MPDO、Bootloader、Flying Master 等) ⑤ ビットレートとノード ID の割り当て方式(固定か LSS か) ⑥ EDS の提供方法。

これらが決まれば、スタックをソースから移植するか、CANopen 対応モジュールを実装するか、外付けゲートウェイで後付けするか、という実装方式の判断もできます。

立ち上げ時の切り分け手順

実機がつながらないときは、次の順に確認するのが定石です。

ビットレートとノード ID の一致 → NMT で Pre-operational に入るか → SDO で OD が読めるか → PDO マッピングが期待どおりか → ハートビート/ノードガーディングの設定 → SYNC の周期。

上流でつまずいているのに下流を疑うと時間を失います。順序を守ってください。

よくある質問

CANopen と CAN は何が違いますか?
CAN はフレームをどう送るかを決めた規格で、中身の意味は決めていません。CANopen は、その上にオブジェクトディクショナリという共通のデータモデルと、PDO/SDO/NMT という通信サービスを載せた上位層です。「メーカーが違っても同じ手順で扱える」という価値は、この上位層があって初めて生まれます。
既存機器を CANopen 対応にする方法は?
3通りあります。自社 MCU にスタックをソースから移植する、CANopen 機能を持つモジュール/チップを実装する、外付けゲートウェイで後付けする。開発工数・BOM コスト・量産数量・将来の仕様変更のしやすさで最適解が変わります。
導入を相談できますか?
はい。デバイスプロファイル、PDO 点数、必要なアドオン、対象MCU、想定数量をお知らせいただければ、構成のご提案と概算をご回答します。スタックの移植・立ち上げの受託も承ります。

関連する製品カテゴリ・ソリューション

ほかの技術ガイド

構成のご相談

本ガイドの内容に沿ってご要件を整理いただければ、構成案と概算を早い段階でご回答します。部分的なご相談だけでも構いません。

見積もり・技術相談へ → 03-3256-3933