Smart Display カスタム CAN プロトコルの概要
序文
現在Smart Display はCAN bus ハードウェア通信インターフェイスをサポートして、CAN open ソフトウェア通信プロトコルを使用します。 CAN open はCAN バスをベースとした業界標準の通信プロトコルとして広く使用されて、医療機器、車両、鉄道アプリケーション、ビルオートメーション等の様々な分野で使用されております。但し、CAN openプロトコルを使用する場合、ノード間の通信であるため、クライアントはホスト側でプロトコルを実装する必要が有って、単純にCAN busを使用したい人にとっては負担になる可能性が有ります。従って、クライアントの使用を簡素化するために、クライアントが CAN open プロトコルを実装する必要が無い新しいカスタム CAN プロトコルを設計しました。 代わりにカスタム DBC ファイルを通じてデータを設定するだけで済んで、CAN ID/データをディスプレイ上のウィジェットに簡単にリンクできるため、リアルタイムの対話が実現します。この対話方法により、クライアントはシステム内のデータをよりよく理解して、制御できるようになって、高い柔軟性と便利なメンテナンスを実現できます。
概要
カスタム CAN プロトコルの主な機能は、DBC (CAN データベース) ファイルを使用して CAN ID/データをディスプレイ上のウィジェットに接続することです。 DBC ファイルはCAN ID やメッセージ フォーマットのデコード等、システム内の関連情報を定義する重要なデータです。ユーザー定義の DBC ファイルを使用すると、様々な CAN ID/データをディスプレイ上のウィジェットに関連付けることが容易になって、リアルタイムの対話が可能になります。 例えばディスプレイ上のグラフィックスやテキストは CAN ID/データを通じて制御できて、ディスプレイ上のボタンやスライダーを使用して CAN データを制御できます。 この相互作用によって、顧客はシステム内のデータをよりよく理解して、制御できるようになって、柔軟でメンテナンスが容易なソリューションが実現します。
DBC ファイルの紹介
DBC ファイルは通常CAN ID、名前、スケール比、信号の定義等及びCAN バス上で送信される物理信号に関する情報を含む ASCII プレーン テキスト ファイルです。このファイルは生の CAN データを意味のある値にデコードして、様々な CAN ID を対応する信号にマッピングするために使用されます。 DBC ファイルはCAN メッセージ ペイロードを物理信号値に変換するために必要な情報を提供します。
生のCANデータのテストデータの例
CAN DBC ファイルが有って、ファイルにこの CAN ID (0x181) に設定されたデコード ルールが含まれている場合はDBC ファイル内の情報から次の情報をデコードできます。
DBC ファイルの主な機能は、CAN メッセージと信号をデコードするためのルールを記述することです。 以下は、DBC ファイルから抜粋したテスト データの説明です。
ファイルの抜粋からの情報に基づいて、次のデコードされた情報を取得できます:
上記のデコードルール設定により、以前に取得した Raw CAN データを以下の情報にデコードできます。
上記の説明により、DBC ファイルの設定により、CAN ID と CAN データによって表される実際の値を正しくデコードできます。 DBC ファイルにはメッセージと信号のレイアウトが含まれており、データを解析して生データを物理値に変換できるため、システムは CAN 経由で送信された実際のメッセージを理解できるようになります。
DBC編集者
DBC ファイルは通常、CAN バス上で送信される物理信号に関する情報を含む ASCII テキスト ファイルです。 これらのファイルは、その形式のせいで読み取りや編集が困難ですが、この問題に対処するために利用できる DBC エディタ ソフトウェアが多数有ります一般的に使用される DBC エディタの 1 つは、Vector Informatik GmbH によって開発された Vector CANdb++ です。このソフトウェアは、ユーザーがカスタム DBC ファイルを簡単に作成及び編集するのに役立ちます。メッセージ、信号の追加、メッセージ ID、開始ビット、長さ、スケール、オフセットなどのメッセージ及び信号の属性の定義のためのユーザーフレンドリーなインターフェイスを提供します。
SmartDisplay GUI Builder –カスタムCAN構成の説明
SmartDisplay GUI Builder は、独自のカスタム CAN プロジェクトを簡単に作成するための直感的でユーザーフレンドリーなインターフェイスを提供します。 DBC ファイルをインポートし、信号/メッセージを対応するウィジェットにマッピングするだけで、SmartDisplay デバイス上でウィジェットを表示して操作できるようになります。操作は簡単かつ柔軟で、様々なニーズを満たして、作業を効率化します。以下では、SmartDisplay GUI Builder がカスタム CAN プロジェクトを作成して、DBC とウィジェット間の関係を設定する方法を段階的に紹介します。
● カスタム CAN プロジェクトの作成
カスタム CAN プロジェクトを作成するには、プロジェクト名を入力して、SmartDisplay デバイス タイプを選択して、プロトコル セクションでカスタム CAN ID (CANbus) を選択します。
● カスタム DBC ファイルをインポートする
● メインページにゲージと水平スライダーウィジェットを追加
ゲージ オブジェクトを選択して、Gauge プロパティ ページで、CAN Signal フィールドの Message を EEC1 に、Signal を EngSpeed に設定して、この Gauge オブジェクトが EngSpeed にバインドされていることを示して、表示変化は EngSpeed 値によるものです。
水平スライダー オブジェクトを選択して、水平スライダー プロパティ ページの CAN 信号フィールドで、メッセージを horizontalSliderMessage に設定して、信号を horizontalSliderSignal1 に設定します。これはこの水平スライダー オブジェクトと horizontalSliderSignal1 の間の関係を表します。このゲージ オブジェクトの表示の変化は、horizontalSliderSignal1 の値から派生します。
● CAN ID / CAN データとウィジェット間の相互作用をシミュレートする
アイコン「Simulator With GUI」をクリックしてシミュレータを起動します。
シミュレーターを起動した後、下部にある EngSpeed スライダーをドラッグして、EngSpeed データを送信するホストをシミュレートできます。シミュレーターでゲージの変化を観察して、右側のメッセージ ログから CAN ID と CAN データの変化も確認します。シミュレーターの水平スライダーを操作して、デバイスから送信されるデータをシミュレートすることもできます。
● Smart Display デバイスの設定を更新します。
シミュレーターで機能を確認して、問題がなければ、デバイスに接続して、プロジェクト設定を SmartDisplay デバイスにアップロードできます。
アップロードとアップデートが終了するまで待ちます。
● デバイスの CAN ID/CAN データとウィジェット間の相互作用を確認します。
プロジェクトをデバイス側にアップロードした後、SmartDisplay デバイスの機能を確認できます。GUI ビルダーを使用してデバイス側に接続し、[デバイスのテスト] をクリックしてホストとデバイス側の間の対話をテストします。
デバイスのテストウィンドウ
このテスト ウィンドウを通じて、DBC 設定に従って対応する CAN ID と CAN データを送信するホストをシミュレートできます。EngSpeed スライダーを引き下げて、EngSpeed データを送信するホストをシミュレートして、デバイス ゲージの変化を観察して、右側のメッセージ ログから CAN ID と CAN データの変化も確認します。デバイスの水平スライダーを操作して、デバイスから送信されたデータが要件を満たしているかどうかを確認することもできます。
Smart Display デバイスの実際の表示
カスタムCANコマンドの紹介
以下にカスタム CAN で使用されるコマンド プロトコルについて説明します。 これらのコマンドを通じて、ホスト デバイスは、ページの切り替えて、明るさの調整、ブザーの鳴動など、SmartDisplay を簡単に制御できます。
コマンド プロトコルで使用される CAN ID 設定は次のとおりです:
- CAN Id フォーマット:29 bit
CAN Id:0xEF0000 + 0x7B00 (デフォルトのチャンネルIDで、これは GUI ビルダーを通じて変更できます。)
送信コマンドの基本データ形式は以下の通りです。
Header Byte (1 Byte) | Length (1 Byte) | Payload (N byte) | CRC (2 Byte) |
---|---|---|---|
Fixed value:0x53 (S) | Value = 4 + Payload length Payload max size: 250 |
データの内容と長さについては、送信コマンド ペイロードを参照してください。 | Modbus CRC16 |
応答コマンドの基本データフォーマットは下表の通りです。
Header Byte (1 Byte) | Length (1 Byte) | Payload (N byte) | CRC (2 Byte) |
---|---|---|---|
Fixed value:0x52 (R) | Value = 4 + Payload length Payload max size: 250 |
データの内容と長さについては、応答コマンドのペイロードを参照してください。 | Modbus CRC16 |
● コマンドペイロード
以下に各コマンドペイロードについて説明します。
- 輝度の設定:0x6
送信コマンド
コマンドコード | 1 Byte | 0x6 |
輝度 | 1 Byte | 輝度値 |
応答コマンド
コマンドコード | 1 Byte | 0x6 |
エラーコード | 1 Byte | 0:Success 1:Failed |
- ブザーの設定: 0x7
送信コマンド
コマンドコード | 1 Byte | 0x7 |
サイクル | 1 Byte | Cycle value |
高 | 1 Byte | High value |
低 | 1 Byte | Low value |
応答コマンド
コマンドコード | 1 Byte | 0x7 |
エラーコード | 1 Byte | 0:Success 1:Failed |
- ページ索引の設定:0x8
送信コマンド
コマンドコード | 1 Byte | 0x8 |
Page Index | 1 Byte | Page Index value |
応答コマンド
コマンドコード | 1 Byte | 0x8 |
エラーコード | 1 Byte | 0:Success 1:Failed |
- ページ数の取得: 0xA
送信コマンド
コマンドコード | 1 Byte | 0xA |
応答コマンド
コマンドコード | 1 Byte | 0xA |
エラーコード | 1 Byte | 0:Success 1:Failed |
ページ数 | 1 Byte | Page Count value |
- 現在のページ索引を取得:0xF
送信コマンド
コマンドコード | 1 Byte | 0xF |
応答コマンド
コマンドコード | 1 Byte | 0xF |
エラーコード | 1 Byte | 0:Success 1:Failed |
ページ索引 | 1 Byte | Page Index value |
- デバイス状態の設定:0x20
送信コマンド
コマンドコード | 1 Byte | 0x20 |
デバイスの状態 | 1 Byte | 0: ConfigMode 1: DisplayMode |
応答コマンド
コマンドコード | 1 Byte | 0x20 |
エラーコード | 1 Byte | 0:Success 1:Failed |
● 送信例
- 輝度を 90 に設定します。
- ページ索引を 1 に切り替えます。
ページを切り替える場合は、まず Device State を ConfigMode に設定してから、ページ切り替えコマンドを送信する必要が有ります。 ページ切り替えコマンドが完了したら、デバイス状態を再度表示モードに設定してページ切り替えコマンドを完了します。 コマンドシーケンスは次の通りです。
結論
カスタム CAN プロトコルを使用すると、顧客は標準 DBC ファイルを通じて CAN ID と CAN データの設定を自由かつ無制限に定義できます。次に、Smart Display GUI Builder を使用して、メッセージ/信号とウィジェットの間の関係をバインドできます。非常に簡単で、カスタム CAN HMI が完成します。Smart Display デバイスとのシームレスな統合には、複雑な CAN プロトコル (CAN open、J1939 等) や設定は必要有りません。. 上記の説明が印象的でしたでしょうか。急いで、Smart Display GUI Builder をダウンロードしてください。 Smart Display を購入する前に、シミュレータを試してニーズを満たすかどうかを確認できます。