私たちはあなたのプライバシーを大切にします
「すべてのクッキーを許可」をクリックすると、サイトのナビゲーションを向上させ、サイト使用状況を分析し、マーケティングおよびパフォーマンスの取り組みを支援するために、クッキーをデバイスに保存することに同意したことになります。この件に関する詳細情報は、ポリシーをご覧ください。プライバシーポリシー
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は、直感的で使いやすい操作環境を備えており、HMIプロジェクトを効率的に作成できます。GUI Builder上で各種Widgetをページにドラッグ&ドロップするだけで、Smart Display上にオブジェクトを表示し、操作することができます。シンプルな操作性と柔軟な機能により、さまざまなアプリケーション要件に対応し、開発作業の効率化に貢献します。
ここでは、Smart Display GUI Builderを使用してUARTプロジェクトを作成し、UART経由でオブジェクトを制御する方法を説明します。
UARTプロジェクトを作成するには、プロジェクト名を入力し、用途に応じてSmart Displayのデバイスタイプを選択した後、Protocolの項目で "SmartDisplay protocol (UART)" を選択します。

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

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

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

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

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

プロジェクトをデバイスへアップロードした後、Smart Display 実機でさらに動作を確認できます。GUI Builderでデバイスに接続し、"Test Device" をクリックすると、Hostと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ではデザイン要件を満たせない場合、対応する画像を差し替えることでWidgetアイコンをカスタマイズし、用途に合わせたインターフェースを作成できます。シンプルなボタンやトグルボタンであれば、On/Off画像を変更することでカスタマイズできます。より複雑なWidgetでは、正しく表示するために、画像の差し替えに加えて関連パラメータの調整が必要になる場合があります。
画像を変更し、対応する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通信で使用するコマンドプロトコルについて説明します。これらのコマンドを使用することで、HostからSmart Displayのページ切り替え、バックライト輝度の調整、ブザーの動作などを制御できます。
Default baud rate: 115200 (GUIビルダーを通じて変更可能)
Parity Bit: None
Data Bit: 8
Stop Bit: 1
| 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種類のコマンドがあります:送信コマンド、応答コマンド、イベントコマンドであり、それぞれのフォーマットは以下の通りです。
送信コマンドは、ホスト側が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 |
応答コマンドは、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 |
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ユーザーガイドドキュメントを参照してください。
以下に、各コマンドペイロードのデータフォーマットと例を順に示します。
送信コマンド (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

送信コマンド (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

送信コマンド (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.

送信コマンド (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

送信コマンド (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に設定して、ページ変更操作を完了します。関連コマンドの順序は以下の通りです:

送信コマンド (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
イベントコマンド (Event Command)
| Event Code | 1 Byte | 0x01 |
| Parameter data | 2 Byte | Uint16 PageIndex |
例: SmartDisplay switches to Page 1.

イベントコマンド (Event Command)
| Event Code | 1 Byte | 0x02 |
| Parameter data | N +2 Byte | Uint16 ObjectId N byte Unicode Text |
例: Keypad widget sends the text "1234"

イベントコマンド (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のダウンロードを申し込む — オンラインフォームに必要事項をご入力いただくと、ダウンロードリンクをお送りします。
「すべてのクッキーを許可」をクリックすると、サイトのナビゲーションを向上させ、サイト使用状況を分析し、マーケティングおよびパフォーマンスの取り組みを支援するために、クッキーをデバイスに保存することに同意したことになります。この件に関する詳細情報は、ポリシーをご覧ください。プライバシーポリシー