ホーム ソリューション スマートディスプレイUARTプロトコルの紹介

スマートディスプレイUARTプロトコルの紹介

October 18,2024

イントロダクション

Smart Display UARTプロトコルは、ホストコントローラーとWINSTAR Smart Display間の通信および制御をUARTインターフェース経由で行うために、WINSTARが開発した独自の通信プロトコルです。WINSTAR GUI Builderと組み合わせることで、ユーザーインターフェースの設計からデバイスとの通信・制御まで、HMI開発を効率的に進めることができます。

GUI Builderでは、基本的なButtonやTextからGauge、Keypadまで、さまざまなWidgetを使用してHMI画面を作成できます。用途に応じたインターフェースを視覚的に設計できるため、UI開発を簡素化しながら、アプリケーションごとの要件にも柔軟に対応できます。

ユーザーインターフェースの作成後は、ホストコントローラーからUART経由でSmart Displayと通信し、WINSTAR独自の通信プロトコルとコマンドを使用してデバイスを制御できます。UI設計とUART通信を組み合わせることで、HMI開発やシステム統合を効率化できます。

WINSTARでは、Smart Displayを使用した開発をより効率的かつ柔軟に行えるよう、GUI Builderの継続的な機能改善に取り組んでいます。

Smart Display GUI Builder – UARTプロジェクト設定手順

Smart Display GUI Builderは、直感的で使いやすい操作環境を備えており、HMIプロジェクトを効率的に作成できます。GUI Builder上で各種Widgetをページにドラッグ&ドロップするだけで、Smart Display上にオブジェクトを表示し、操作することができます。シンプルな操作性と柔軟な機能により、さまざまなアプリケーション要件に対応し、開発作業の効率化に貢献します。

ここでは、Smart Display GUI Builderを使用してUARTプロジェクトを作成し、UART経由でオブジェクトを制御する方法を説明します。

UARTプロトコルプロジェクトの作成

UARTプロジェクトを作成するには、プロジェクト名を入力し、用途に応じてSmart Displayのデバイスタイプを選択した後、Protocolの項目で "SmartDisplay protocol (UART)" を選択します。

メインページにGaugeとHorizontal Slider Widgetを追加

Widgetを追加すると、各オブジェクトには固有のIndex IDが割り当てられ、Page IndexとObject IDが設定されます。Hostはこれら2つの設定を使用して、UARTコマンドで対象のオブジェクトを制御できます。

UARTとWidget間の動作をシミュレーション

"Simulator With GUI" アイコンをクリックしてシミュレーターを起動します。

シミュレーターの起動後、画面下部のGAUGE_0と表示されたスライダーを操作すると、HostからGAUGE_0へデータを送信する動作をシミュレーションできます。シミュレーター上のGaugeの変化を確認するとともに、右側のMessage LogでUARTコマンドのログを確認できます。また、シミュレーター上のHorizontal Sliderを操作することで、Device側からデータを送信する動作もシミュレーションできます。

Smart Displayのデバイス設定を更新

シミュレーターで動作を確認し、問題がなければデバイスを接続し、プロジェクト設定を Smart Display にアップロードします。

アップロードと更新が完了するまで待ちます。

DeviceとWidget間の動作を確認

プロジェクトをデバイスへアップロードした後、Smart Display 実機でさらに動作を確認できます。GUI Builderでデバイスに接続し、"Test Device" をクリックすると、HostとDevice間の動作をテストできます。

Test Deviceウィンドウ

このテスト画面では、Hostからオブジェクトの値を変更する動作をシミュレーションできます。画面下部のGAUGE_0と表示されたスライダーを操作して、HostからObject 0の値を送信し、デバイス上のGaugeの変化を確認します。また、画面下部のMessage LogではSend commandとResponse commandを確認できます。さらに、デバイス上のHorizontal Sliderを操作することで、Device側から送信されるEvent commandを確認できます。

上記のTest Deviceウィンドウでは、HostからUARTコマンドを送信してSmart Displayを制御する動作をシミュレーションできます。Smart Display上で実行結果を確認し、Touch PanelからSmart Displayを操作することで、Hostが対応するEvent commandを受信していることを確認できます。

Smart Display GUI Builder – カスタムWidget

Smart Display GUI Builderに用意されている標準Widgetではデザイン要件を満たせない場合、対応する画像を差し替えることでWidgetアイコンをカスタマイズし、用途に合わせたインターフェースを作成できます。シンプルなボタンやトグルボタンであれば、On/Off画像を変更することでカスタマイズできます。より複雑なWidgetでは、正しく表示するために、画像の差し替えに加えて関連パラメータの調整が必要になる場合があります。

カスタムGaugeの設定例

画像を変更し、対応するGaugeパラメータを調整することで、カスタムGaugeを作成できます。

多言語テキスト

Smart DisplayのText WidgetはUnicodeに対応しており、複数言語のテキストを表示できます。以下の手順に従って、表示する言語のテキストを設定します。

1. Custom Fontを追加し、使用するフォントとサイズを選択したうえで、表示に必要なUnicode文字範囲を指定します(Unicode範囲の確認には Unicode Character Blocks を参照できます)。漢字など必要な文字範囲が広く、Flash容量が不足する場合は、Custom Charactersに実際に使用する文字のみを登録することで、フォントに必要な保存容量を抑えることができます。

2. Text Widgetのフォントを設定します。フォント設定を変更するText Widgetを選択します。

3. Text Widgetを追加し、シミュレーター上でテキストが正しく表示されることを確認します。

カスタムUARTコマンドの概要

ここからは、UART通信で使用するコマンドプロトコルについて説明します。これらのコマンドを使用することで、HostからSmart Displayのページ切り替え、バックライト輝度の調整、ブザーの動作などを制御できます。

デフォルトのUART設定は以下のとおりです:

Default baud rate: 115200 (GUIビルダーを通じて変更可能)
Parity Bit: None
Data Bit: 8
Stop Bit: 1

UARTの主なデータフォーマットは以下の通りです:

Header Byte(1 Byte) Length(1 Byte) Payload(N Byte) CRC(2 Byte)
Command Header Value: 4 + Payload length
Payload max size: 250
Payload data max size: 250 Modbus CRC16
(Calculate Modbus CRC16
https://www.modbustools.com/modbus_crc16.html)

UARTプロトコルには主に3種類のコマンドがあります:送信コマンド、応答コマンド、イベントコマンドであり、それぞれのフォーマットは以下の通りです。

(1) 送信コマンドフォーマット (Send Command format)

送信コマンドは、ホスト側がSmartDisplay側にコマンドを送信するために使用されます。

Header Byte(1 Byte) Length(1 Byte) Payload(N byte) CRC(2 Byte)
Start with 0x53 (S) Value: 4 + Payload length
Payload max size: 250
Command code: 1 byte
Command parameter: 0 ~ N bytes
Modbus CRC16
 

(2) 応答コマンドフォーマット (Response command format)

応答コマンドは、SmartDisplay側がホスト側に送信コマンドの結果を返すために使用されます。

Header Byte(1 Byte) Length(1 Byte) Payload(N byte) CRC(2 Byte)
Start with 0x52 (R) Value: 4 + Payload length
Payload max size: 250
Command Code: 1 byte
Error Code: 1 byte
Response Data: 0 ~ N bytes
Modbus CRC16
 

(3) イベントコマンド (Event Command)

SmartDisplay側がデータを積極的に報告する必要がある場合、このコマンドを使用します。例えば、ボタンがトリガーされたときなどです。

Header Byte(1 Byte) Length(1 Byte) Payload(N byte) CRC(2 Byte)
Start with 0x45 (E) Value: 4 + Payload length
Payload max size: 250
Event Command Code: 1 byte
Event Data: 0 ~ N bytes
Modbus CRC16

* 詳細な送信コマンドコードおよびイベントコマンドコードについては、SmartDisplay UARTユーザーガイドドキュメントを参照してください。

送信/応答コマンドプロトコルの説明と例

以下に、各コマンドペイロードのデータフォーマットと例を順に示します。

Set Object Value: 0x3

送信コマンド (Send Command)

Command Code 1 Byte 0x3
Parameter data 8 Byte uint16 PageIndex;
uint16 ObjectId;
int32 value;

応答コマンド (Response Command)

Command Code 1 Byte 0x3
Error Code 1 Byte 0: Success
1: Failed

例:Set Object value

Set Object Buffer Data: 0x5

送信コマンド (Send Command)

Command Code 1 Byte 0x5
Parameter data N Byte uint16 PageIndex;
uint16 ObjectId;
uint8 [] data (max 100 bytes)
// Unicode String for Text
// Clock setting for Digital Clock

応答コマンド (Response Command)

Command Code 1 Byte 0x5
Error Code 1 Byte 0: Success
1: Failed

例:Example: Set Object Text: test

例: Set Clock Widget date time: 2024/09/01 04:05:06

Set Brightness: 0x6

送信コマンド (Send Command)

Command Code 1 Byte 0x6
Brightness 1 Byte Brightness value

応答コマンド (Response Command)

Command Code 1 Byte 0x6
Error Code 1 Byte 0: Success
1: Failed

: Set brightness to 90.

Set Buzzer: 0x7

送信コマンド (Send Command)

Command Code 1 Byte 0x7
Cycle 1 Byte Cycle value
High 1 Byte High value (Unit: 10 ms)
Low 1 Byte Low value (Unit: 10 ms)

応答コマンド (Response Command)

Command Code 1 Byte 0x7
Error Code 1 Byte 0: Success
1: Failed

: Emitting buzzer: Cycle:1, High: 200 ms, Low: 0 ms

Set Page Index: 0x8

送信コマンド (Send Command)

Command Code 1 Byte 0x8
Page Index 1 Byte Page Index value

応答コマンド (Response Command)

Command Code 1 Byte 0x8
Error Code 1 Byte 0: Success
1: Failed

: Switching Page Index to 1.
ページを切り替えるには、まずデバイスの状態をConfigModeに設定する必要があります。次に、ページ変更コマンドを送信します。ページ変更コマンドが完了したら、デバイスの状態モードをDisplay Modeに設定して、ページ変更操作を完了します。関連コマンドの順序は以下の通りです:

Set Device State: 0x20

送信コマンド (Send Command)

Command Code 1 Byte 0x20
Device State 1 Byte 0: ConfigMode
1: DisplayMode
 

応答コマンド (Response Command)

Command Code 1 Byte 0x20
Error Code 1 Byte 0: Success
1: Failed

: Refer to the example of switching pages

イベントコマンドプロトコルの説明と例

Page change event: 0x1

イベントコマンド (Event Command)

Event Code 1 Byte 0x01
Parameter data 2 Byte Uint16 PageIndex

: SmartDisplay switches to Page 1.

Object Text change event: 0x2

イベントコマンド (Event Command)

Event Code 1 Byte 0x02
Parameter data N +2 Byte Uint16 ObjectId
N byte Unicode Text
 

: Keypad widget sends the text "1234"

Object Value change event: 0x3

イベントコマンド (Event Command)

Event Code 1 Byte 0x03
Parameter data 6 Byte Uint16 ObjectId
int32 value

: Object value change event.

GUI Builderでは、Widgetをドラッグ&ドロップしてUIを作成でき、WYSIWYG(What You See Is What You Get)による直感的で効率的なUI開発が可能です。内蔵シミュレーターを使用すれば、実機を使用する前に画面をプレビューし、UIデザインを確認できます。

UIの作成後は、ホストコントローラーからUART経由でSmart Displayと通信し、WINSTAR独自の通信プロトコルを使用してデバイスの制御やデータ交換を行えます。UI設計、シミュレーション、デバイス通信までを一連のワークフローで行うことで、HMI開発とシステム統合を効率化できます。

UART Smart Displayの導入前に、GUI Builderと内蔵シミュレーターを使用して、UIデザインや機能が用途に適しているかをご確認いただけます。

GUI Builderのダウンロードを申し込む — オンラインフォームに必要事項をご入力いただくと、ダウンロードリンクをお送りします。

ディスプレイ ソリューションについてのご質問はあるのでしょうか。 お問合わせ!

配信申し込み

Winstar からの最新情報を受け取ります。

お問合わせ

価格/データシート/一般的なお問合せ

技術的なサポート

技術情報についてはお問合せください。

go top
お問合わせ
close

私たちはあなたのプライバシーを大切にします

「すべてのクッキーを許可」をクリックすると、サイトのナビゲーションを向上させ、サイト使用状況を分析し、マーケティングおよびパフォーマンスの取り組みを支援するために、クッキーをデバイスに保存することに同意したことになります。この件に関する詳細情報は、ポリシーをご覧ください。プライバシーポリシー

私たちはあなたのプライバシーを大切にします

Winstarおよび特定の第三者は、www.winstar.com.twでクッキーを使用しています。クッキーの種類、目的、および関与する第三者に関する詳細は、以下および当社のクッキーポリシーに記載されています。「すべて許可」をクリックして、当社のクッキー使用に同意し、ウェブサイトでの最良の体験を得てください。また、設定を変更するか、必要なクッキーを除きクッキーを拒否することもできます。

同意設定の管理

常にアクティブ
必須なクッキー

これらのクッキーは、ウェブサイト内を移動したり、プライバシーの設定、ログイン、フォームの記入などの機能を使用できるようにするために不可欠です。

分析用クッキー

「統計クッキー」とも呼ばれるこれらのクッキーは、ウェブサイトの使用方法に関する情報を収集します。たとえば、どのページを訪れ、どのリンクをクリックしたかなどです。詳細を確認してください。