通信・制御技術・完全解説

CAN通信 × バッテリー × BMS

産業ロボットで停止を防ぐための通信・制御技術のすべて

AGV/AMR・産業ロボット・モバイル機器の電源設計において、「CAN通信 × BMS × バッテリー」の連携は最重要テーマです。
現場トラブルの多くはバッテリーではなく、CAN通信の不整合・異常フレーム・通信負荷・遅延に起因します。
本記事では、産業ロボットの安定稼働に必要な"CAN通信とBMS制御の深層技術"を専門的に解説します。

01

なぜ産業ロボットはCAN通信を使うのか

産業用途のバッテリー通信でCAN2.0A/Bが標準となる4つの理由

産業用途のバッテリー通信は、一般的にCAN2.0A/Bが採用されます。

1

ノイズ耐性が高い(Differential Signaling)

工場環境はモーター・インバータ・溶接設備などノイズ源が多い。CANの差動信号はECUとの通信を安定させる。

2

データ喪失に強い

ビット単位でエラー検出され、再送が可能。

3

1つのバスに多数デバイスを接続できる

AGVの構成例:バッテリー(BMS)、モータードライバ、SLAMユニット、LiDAR、MCU / メインECU。複数ユニットを1本のCANラインで統合できる。

4

速度と信頼性のバランスが良い

通常:250kbps、一部:500kbps。リアルタイム性と安定性を両立。

CAN vs RS485 vs Ethernet 比較

CAN

  • メリット:ノイズ耐性◎、リアルタイム性◎、複数デバイス接続◎
  • デメリット:データ量に制限(8バイト/フレーム)
  • 用途:AGV、AMR、産業ロボット

RS485

  • メリット:低コスト、シンプル
  • デメリット:マスター・スレーブ構造、リアルタイム性△
  • 用途:固定設置の産業機器

Ethernet

  • メリット:大容量データ、高速通信
  • デメリット:リアルタイム性△、ノイズ耐性△
  • 用途:上位システム連携、データロギング
02

CANフレーム構造とBMSデータ設計

効率的なデータ送信のためのフレーム設計とID割り当て戦略

CANフレームの基本構造

SOF
1ビット
フレーム開始
Identifier
11ビット
優先度 & ID
Control
6ビット
データ長指定
Data
0〜8バイト
実データ
CRC
16ビット
エラー検出
ACK
2ビット
受信確認
EOF
7ビット
フレーム終了

BMSデータのCAN ID設計例

高頻度送信データ(100ms周期推奨)

CAN ID: 0x100 - バッテリー状態

SOC(1バイト)、電圧(2バイト)、電流(2バイト)、温度(1バイト)、ステータス(2バイト)

CAN ID: 0x101 - 警告フラグ

過電流警告、高温警告、低電圧警告、セル電圧差警告など(ビットフラグ形式)

中頻度送信データ(500ms周期推奨)

CAN ID: 0x110 - 詳細情報

SOH(1バイト)、サイクル数(2バイト)、最大セル電圧(2バイト)、最小セル電圧(2バイト)

CAN ID: 0x111 - セル情報

セル1〜4の電圧(各2バイト)※複数フレームで全セル送信

低頻度送信データ(1秒周期)

CAN ID: 0x120 - システム情報

BMSバージョン、シリアル番号、製造日など

ポイント: CAN IDの下位bitは優先度が高い。緊急度の高いデータ(警告フラグ)は若いID(0x101など)を割り当てる。
03

BMS × CAN通信の統合設計

BMSとCAN通信を効果的に統合するための設計手法

BMS内部のCAN通信フロー

1

データ収集

BMSがセンサーから電圧・電流・温度を取得(ADC変換)

2

データ処理

SOC/SOH計算、セルバランシング判定、保護機能チェック

3

CANフレーム生成

データをCAN仕様に変換、ID・DLC・データフィールドを構築

4

送信

CANトランシーバ経由でバスに送信

双方向通信の実装

BMSからAGVへ(通常送信)

  • 定期送信:100ms〜1s周期でバッテリー状態を送信
  • イベント送信:警告・エラー発生時に即座に送信
  • ID優先度:警告 > 状態 > 詳細情報

AGVからBMSへ(コマンド受信)

  • 充電開始/停止コマンド
  • パラメータ読み出し要求
  • リセット・キャリブレーション
  • ファームウェア更新コマンド

通信異常時の保護動作

通信タイムアウト検知

設定例:3秒間CANフレーム受信なし → タイムアウト

動作:BMSが安全モードに移行、出力制限または停止

異常フレーム検出

検出例:CRCエラー、フォーマットエラー、連続エラー

動作:エラーカウント増加、一定回数超過で通信遮断

自動リトライ機能

実装:重要コマンド(充電停止など)は3回まで再送

間隔:100ms間隔で再送、3回失敗でエラー報告

04

現場トラブルと対策

実際の現場で発生するCAN通信トラブルと解決方法

トラブル1:通信が不安定・頻繁に切断される

原因

  • ケーブル品質不良(ツイストペアでない、シールドなし)
  • 終端抵抗の不適切な設定(120Ω必須)
  • ノイズ源が近い(モータードライバ、インバータ)
  • ケーブル長が長すぎる(250kbpsなら最大250m)

対策

  • ツイストペア+シールド付きケーブルを使用
  • 両端に120Ω終端抵抗を確実に接続
  • 電源ラインとCANラインを物理的に分離
  • ケーブル長を規定内に収める
  • フェライトコアを追加してノイズ対策

トラブル2:特定の状況で通信エラーが発生

原因

  • CANバスの負荷過多(同時送信デバイスが多い)
  • 優先度設計の不備(重要データが遅延)
  • 送信周期が短すぎる(バス占有率が高い)

対策

  • バス占有率を30%以下に抑える
  • ID設計を見直し、優先度を適切に設定
  • 低頻度データは送信周期を長く(1s以上)
  • 通信速度を500kbpsに上げる(可能な場合)

トラブル3:BMSデータが正しく読めない

原因

  • エンディアン(Byte Order)の不一致
  • データ形式の解釈ミス(符号付き/なし、単位、スケール)
  • BMSとAGVのプロトコルバージョン違い

対策

  • データシートでエンディアンを明記(Big/Little)
  • データ形式・単位・スケールを文書化
  • 実機テストで数値を照合(電圧計で実測値と比較)
  • プロトコルバージョン管理を徹底

トラブル4:AGVが突然停止する

原因

  • BMS通信タイムアウトによる安全停止
  • ハートビート信号の欠落
  • 異常フレーム連続検出によるバス切断

対策

  • ハートビート信号を100ms周期で確実に送信
  • タイムアウト時間を適切に設定(3〜5秒推奨)
  • ログ機能でエラー発生時の状態を記録
  • 復旧手順を自動化(リセット、再初期化)

現場トラブル診断ツール

  • CANアナライザ:バスの状態をリアルタイム監視
  • オシロスコープ:信号波形を確認(電圧レベル、立ち上がり時間)
  • ログ機能:BMSとAGV側の通信ログを同時記録
  • 負荷テスト:バス占有率を測定
05

ベストプラクティス

産業ロボットのCAN通信設計で押さえるべき重要ポイント

1

ID設計を最初に決める

プロジェクト開始時にCAN IDマップを作成し、全デバイスで共有。途中変更は極力避ける。

推奨:Excelでマスター管理、バージョン管理、変更履歴記録
2

データ仕様書を詳細に作成

各CANフレームのデータフォーマット、単位、エンディアン、更新周期を明記。

必須項目:CAN ID、DLC、Byte0〜7の内容、単位、スケール、送信周期
3

バス占有率は30%以下に

通信速度250kbpsの場合、バス占有率30%を目安に。余裕を持った設計で突発的な負荷に対応。

計算例:250kbps × 0.3 = 75kbps → 約100フレーム/秒(標準フレーム想定)
4

ハードウェアの信頼性を確保

ツイストペア+シールドケーブル、120Ω終端抵抗、適切な配線経路で物理層の安定性を確保。

ケーブル例:DeviceNet規格準拠ケーブル、CAN専用ケーブル
5

テストを段階的に実施

①単体テスト(BMS単独)、②ペアテスト(BMS + AGV)、③実機統合テスト、④長時間稼働テスト

チェック項目:通信エラー率、タイムアウト発生、異常フレーム、負荷テスト
6

ログ・診断機能を実装

トラブル発生時に原因を特定できるよう、BMSとAGV両側に通信ログ機能を実装。

記録推奨:タイムスタンプ、CAN ID、データ、エラーフラグ、送受信方向
7

フェイルセーフ設計

通信異常時の安全動作を定義。BMSが通信断を検知したら出力停止、AGVは安全な場所に移動。

例:3秒通信なし → BMS出力遮断、AGV緊急停止 → 手動復旧
8

プロトコルバージョン管理

BMSファームウェア更新時にプロトコル仕様も変わる可能性。バージョン情報を送信し互換性を確認。

実装例:CAN ID 0x120でバージョン情報送信、AGV側で互換性チェック

まとめ:CAN通信×BMS設計の成功の鍵

産業ロボットの安定稼働を実現するには、CAN通信とBMSの統合設計が不可欠です。 単にデータを送受信するだけでなく、エラー処理・タイムアウト対策・フェイルセーフ設計まで考慮することで、現場トラブルを未然に防ぎ、長期安定稼働を実現できます。

重要ポイント

1

ID設計とバス占有率管理

優先度を考慮したID割り当て、30%以下の占有率維持

2

データ仕様の文書化

フォーマット・単位・エンディアンの明記

3

ハードウェアの信頼性

ツイストペア・シールド・終端抵抗

4

エラー処理とフェイルセーフ

タイムアウト検知、リトライ、安全停止

5

段階的テストとログ

単体→ペア→統合→長時間、ログで原因特定

6

バージョン管理と互換性

プロトコル仕様のバージョン管理、互換性確認

本記事で解説した設計手法・トラブル対策・ベストプラクティスを実践することで、産業ロボットの安定稼働と長寿命化を実現できます。

CAN通信×BMS設計でお困りの際は、ぜひ弊社の技術サポートをご活用ください。

お問い合わせ

技術相談・カスタム設計

お客様の用途に合わせたCAN通信設計、BMS仕様、バッテリーシステムをご提案いたします。

お問い合わせフォーム
お電話でのお問い合わせ

046-239-4771(平日 9:00〜18:00)

メールでのお問い合わせ

info@shinseisangyo.co.jp