irBoardのプロジェクトはYAMLテキストファイルで作成・編集できます。 この形式は人間にもAIにも読みやすく設計されており、プロジェクトの自動生成が可能です。
プロジェクトは編集画面の
プロジェクト設定
インスペクター、またはプロジェクト一覧画面のツールバーからインポートします。
「YAMLからインポート」を選択して、YAMLプロジェクトファイルを含むフォルダー、
またはproject.yamlファイルを直接選択してインポートしてください。
YAML(YAML Ain't Markup Language)は構造化データを表現するテキスト形式です。 インデント(スペース)で階層を表現するため、特別なツールなしで読み書きできます。
基本的なデータはキー: 値のペアで記述します:
name: "My Project" rotation_type: 1 enabled: true
ネスト構造はスペースによるインデントで表現します(1レベルにつき2スペース):
plc:
provider: KEYENCE
config:
ip_or_hostname: "192.168.0.10"
port_no: 8501
リストの各要素は-(ハイフン + スペース)で始めます:
pages:
- uuid: "page-001"
page_no: 1
title: Main
- uuid: "page-002"
page_no: 2
title: Settings
| 型 | 例 | 備考 |
|---|---|---|
| 文字列 | "Hello" または Hello |
値に:、#、特殊文字を含む場合はクォートが必要。 |
| 整数 | 42 |
クォートなしで記述。 |
| 浮動小数点 | 3.14 |
クォートなしで記述。 |
| 真偽値 | true / false |
クォートなしで記述。 |
#で始まる行はコメントとして無視されます:
# これはコメントです name: "My Project" # インラインコメントも可能
YAMLプロジェクトはproject.yamlファイルとオプションのimages/サブフォルダーを含むフォルダーです:
ProjectName/
project.yaml # プロジェクト設定(必須)
images/ # 画像ファイル(オプション)
{uuid}.png # UUIDで参照される背景画像
project.yamlファイルにはすべてのプロジェクト設定、ページ、アイテム、各種設定が含まれます。
プロジェクト、ページ、アイテムの背景画像はimages/フォルダーにUUIDで命名されたPNGファイルとして格納されます。
ラベルとボタンを1つずつ含む1ページの最小構成プロジェクトです:
uuid: "00000000-0000-0000-0000-000000000001"
name: "My Project"
screen_size_string: "768x1024"
rotation_type: 1
plc:
model: KV-8000
provider: KEYENCE
plc_channel:
config:
ip_or_hostname: "192.168.0.10"
port_no: 8501
pages:
- uuid: "00000000-0000-0000-0000-100000000001"
page_no: 1
title: Main
items:
- uuid: "00000000-0000-0000-0000-200000000001"
class: Label
frame_string: "{{50, 50}, {200, 40}}"
title: Temperature
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
- uuid: "00000000-0000-0000-0000-200000000002"
class: Button
frame_string: "{{50, 120}, {120, 50}}"
title: Start
switch_device_name: MR100
switch_mode: momentary
必須フィールド: plcとpagesは必須です。
plcセクションがないとインポート時にエラーになります。
uuid、nameは省略可能で、省略時は自動生成されます。
各ページのuuidとpage_noも省略時は自動補完されます。
各アイテムのuuidとframe_stringも省略可能(デフォルト値が適用されます)。
classは必須ですが、小文字や別名(例: gauge, slider, alarm, grid等)も使用できます。
プロジェクト全体を構成するトップレベルのプロパティ:
| プロパティ | 型 | 説明 |
|---|---|---|
uuid |
String | 自動 一意の識別子(UUID形式)。省略時は自動生成。 |
name |
String | 自動 プロジェクト名。省略時は自動生成。 |
plc |
Object | 必須 PLC設定。省略するとインポートエラー。 |
pages |
Array | 必須 ページのリスト。 |
screen_size_string |
String | 画面サイズ「幅x高さ」(例: "768x1024")。 |
rotation_type |
Integer | 画面回転。0=縦向き、1=横向き。 |
style |
String | プロジェクトスタイル。"default"または"dark"。 |
background_color_name |
String | デフォルト背景色。色形式のセクションを参照。 |
launch_page_no |
Integer | 起動時に表示するページ番号。 |
page_scale_type |
Integer | 画面スケーリング。0=中央、1=フィット、2=フィル。 |
transition |
String | ページ遷移アニメーションスタイル。 |
text_font_name |
String | デフォルトテキストフォント名。 |
text_font_size |
Float | デフォルトテキストフォントサイズ。 |
number_font_name |
String | 数値表示のデフォルトフォント。 |
number_font_size |
Float | 数値表示のデフォルトフォントサイズ。 |
grid: style: 1 enabled: 1 pixel: 10.0
| プロパティ | 型 | 説明 |
|---|---|---|
style |
Integer | グリッドスタイル。0=ドット、1=ライン。 |
enabled |
Integer | 1=グリッド表示、0=非表示。 |
pixel |
Float | グリッド間隔(ポイント)。 |
plcセクションでPLC接続を設定します。このセクションは必須です。省略するとインポートエラーになります。
対応PLCプロバイダーとモデルについては
PLC接続
のドキュメントを参照してください。
plc:
model: KV-8000
provider: KEYENCE
plc_channel:
config:
ip_or_hostname: "192.168.0.10"
port_no: 8501
plc:
model: iQ-R
provider: MITSUBISHI
plc_channel:
config:
ip_or_hostname: "192.168.0.10"
port_no: 5000
plc:
model: NJ
provider: OMRON
plc_channel:
config:
ip_or_hostname: "192.168.0.10"
port_no: 9600
self_node: 0
destination_node: 0
plc:
model: MODBUS
provider: MODBUS
plc_channel:
config:
ip_or_hostname: "192.168.0.10"
port_no: 502
unit_id: 1
| プロバイダー | モデル | デフォルトポート |
|---|---|---|
| キーエンス | KV-8000, KV-7500, KV-5500, KV-5000, KV-3000, KV-1000, KV-Nano | 8501 |
| 三菱電機 | iQ-R, iQ-F, Q, L, FX5, FX3 | 5000 |
| オムロン | NJ, NX, CJ2, CJ1, CP1, CP2 | 9600 |
| 横河電機 | FA-M3 | 12289 |
| MODBUS | MODBUS | 502 |
| プロパティ | 型 | 説明 |
|---|---|---|
monitor_interval |
Float | ポーリング間隔(秒、デフォルト: 0.5)。 |
button_default_delay |
Float | ボタン押下時のデフォルト遅延(秒)。 |
slider_default_delay |
Float | スライダー操作時のデフォルト遅延(秒)。 |
area_permission |
String | 権限領域のデバイスアドレス。 |
use_area_permission |
Boolean | 権限領域を有効にする。 |
area_to_plc_screen_no |
String | 現在の画面番号をPLCに送信するデバイスアドレス。 |
use_area_to_plc_screen_no |
Boolean | 画面番号のPLC通知を有効にする。 |
area_to_plc_status |
String | irBoardのステータスをPLCに送信するデバイスアドレス。 |
use_area_to_plc_status |
Boolean | ステータスのPLC送信を有効にする。 |
area_from_plc_screen_no |
String | PLCから画面番号を受信するデバイスアドレス。 |
use_area_from_plc_screen_no |
Boolean | PLCからの画面番号受信を有効にする。 |
area_from_plc_status |
String | PLCからステータスを受信するデバイスアドレス。 |
use_area_from_plc_status |
Boolean | PLCからのステータス受信を有効にする。 |
pages:
- uuid: "page-uuid-1"
page_no: 1
title: Main
background_color_name: "RGBA,0.95,0.95,0.95,1.0"
items:
- ...
| プロパティ | 型 | 説明 |
|---|---|---|
uuid |
String | 自動 一意の識別子。省略時は自動生成。 |
page_no |
Integer | 自動 ページ番号(1始まり)。省略時は自動補完。 |
title |
String | ページタイトル。 |
background_color_name |
String | ページ背景色。 |
locked |
Integer | 1=ロック(実行時編集不可)、0=アンロック。 |
rotation_type |
Integer | ページ固有の回転設定。 |
background_image |
Object | 背景画像参照 ({uuid, kind})。 |
items |
Array | ページアイテムのリスト。 |
ページ間のスワイプナビゲーションをUUID参照で設定できます:
| プロパティ | 型 | 説明 |
|---|---|---|
above_page_uuid |
String | 上スワイプ時のページUUID。 |
below_page_uuid |
String | 下スワイプ時のページUUID。 |
left_page_uuid |
String | 左スワイプ時のページUUID。 |
right_page_uuid |
String | 右スワイプ時のページUUID。 |
各アイテムにはclassフィールドでタイプを指定します:
| class | 説明 | 主要プロパティ |
|---|---|---|
Label |
テキスト表示 | title, text_color_name |
Button |
ランプ付きボタン | switch_device_name, switch_mode, lamp_device_name |
Button(スイッチなし) |
状態表示インジケーター | lamp_device_name, lamp_color_name |
ValueField |
数値/テキストの表示・入力 | device_name, editable, decimal_place, unit |
SteppedValueField |
+/-ボタン付き値(スライダー/進捗) | device_name, step_value, min_value, max_value |
Meter |
アナログゲージ表示 | device_name, min_value, max_value, figures |
Message |
メッセージリスト表示 | message_set_uuid |
Matrix |
表/グリッドレイアウト | matrix_rows, matrix_columns, matrix_device_offset |
WebPage |
埋め込みWebブラウザ | url |
すべてのアイテムに共通するプロパティ:
| プロパティ | 型 | 説明 |
|---|---|---|
uuid |
String | 自動 一意の識別子。省略時は自動生成。 |
class |
String | 必須 アイテムタイプ。アイテムタイプの表を参照。 小文字や別名も使用可能(例: gauge→Meter、alarm→Message、grid→Matrix、slider→Slider、progress_bar→Progress、value_field→ValueField、web_page→WebPage)。 |
frame_string |
String | 自動 位置とサイズ。省略時はクラスに応じたデフォルトサイズ。形式: "{{x, y}, {width, height}}" または "x, y, width, height" |
title |
String | 表示テキスト。 |
device_name |
String | メインPLCデバイスアドレス。 |
background_color_name |
String | 背景色。 |
line_color_name |
String | 枠線の色。 |
line_width |
Float | 枠線の幅。 |
corner_radius |
Integer | 角丸の半径。 |
style |
String | ビジュアルスタイル(アイテムタイプにより異なる)。 |
font_name |
String | フォント名のオーバーライド。 |
font_size |
Float | フォントサイズのオーバーライド。 |
alignment |
Integer | テキスト配置。0=左、1=中央、2=右。 |
padding |
Integer | 内部パディング。 |
locked_frame |
Integer | 1=フレームロック、0=編集可能。 |
visible_device_name |
String | 表示/非表示を制御するデバイス。 |
visible_negative |
Integer | 1=表示条件を反転。 |
alternate_title |
String | 代替タイトル(トグル状態用)。 |
静的テキストまたはデバイス値に基づくテキストを表示します。
- uuid: "label-uuid"
class: Label
frame_string: "{{50, 50}, {200, 40}}"
title: Temperature
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
background_color_name: "RGBA,0.9,0.9,0.9,1.0"
alignment: 1
font_size: 18.0
| プロパティ | 型 | 説明 |
|---|---|---|
text_color_name |
String | テキスト色。 |
alternate_text_color_name |
String | 代替状態でのテキスト色。 |
label_device_name |
String | ラベル状態(ON/OFF外観)を制御するデバイス。 |
label_negative |
Integer | 1=ラベルデバイス条件を反転。 |
PLCデバイスをON/OFFでき、ランプ状態を表示する対話型ボタンです。 スイッチデバイスを指定しない場合はランプインジケーターとして動作します。
- uuid: "button-uuid"
class: Button
frame_string: "{{50, 100}, {120, 50}}"
title: Start
alternate_title: Stop
switch_device_name: MR100
switch_mode: momentary
lamp_device_name: MR100
lamp_color_name: "RGBA,0.0,0.8,0.0,1.0"
style: irPanel
| プロパティ | 型 | 説明 |
|---|---|---|
switch_device_name |
String | 押下時にON/OFFするビットデバイス。 |
switch_mode |
String | "momentary"(押下中ON)または"alternate"(トグル)。 |
switch_negative |
Integer | 1=スイッチ出力を反転。 |
delay_time |
Double | コマンド送信前の遅延(秒)。 |
interlock_device_name |
String | ボタンを有効にするために必要なデバイス。 |
interlock_negative |
Integer | 1=インターロック条件を反転。 |
| プロパティ | 型 | 説明 |
|---|---|---|
lamp_device_name |
String | ランプ状態を監視するビットデバイス。 |
lamp_color_name |
String | ランプON時の色。 |
alternate_lamp_color_name |
String | ランプOFF時の色。 |
lamp_negative |
Integer | 1=ランプ条件を反転。 |
| プロパティ | 型 | 説明 |
|---|---|---|
page_uuid |
String | 押下時に遷移するページのUUID。 |
page_no |
Integer | 遷移先のページ番号。 |
| プロパティ | 型 | 説明 |
|---|---|---|
style |
String | "irPanel"、"Square"、"Circle"、"Touch"、"Plane"、"Toggle"。大文字小文字は自動補正されます。 |
PLCデバイスの数値やテキストを表示・編集するフィールドです。
- uuid: "value-uuid"
class: ValueField
frame_string: "{{300, 100}, {150, 40}}"
title: Temperature
device_name: DM100
editable: 0
decimal_place: 1
unit: "\u00B0C"
number_type: 2
min_value: 0.0
max_value: 999.0
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
field_background_color_name: "RGBA,1.0,1.0,1.0,1.0"
| プロパティ | 型 | 説明 |
|---|---|---|
device_name |
String | 値を読み書きするワードデバイス。 |
editable |
Integer | 0=読み取り専用、1=実行時に編集可能。 |
number_type |
Integer | 0=符号なし16bit、1=符号付き16bit、2=符号なし32bit、3=符号付き32bit、4=float、5=double、6=BCD、10=文字列。 |
decimal_place |
Integer | 小数点以下の桁数。 |
unit |
String | 単位(例: "\u00B0C"、"kg"、"%")。 |
coefficient |
Float | スケーリング係数(表示値 = 生値 * 係数 + オフセット)。 |
offset |
Float | 値オフセット。 |
min_value |
Double | 最小値。 |
max_value |
Double | 最大値。 |
field_background_color_name |
String | 入力フィールドの背景色。 |
text_color_name |
String | 表示値のテキスト色。 |
unit_color_name |
String | 単位テキストの色。 |
border_style |
Integer | 0=なし、1=ライン、2=ベゼル、3=丸角。 |
encoding |
Integer | 文字列型のエンコーディング。1=UTF-8。 |
text_length |
Integer | 文字列型の最大文字数。 |
secret |
Boolean | true=入力を隠す(パスワードフィールド)。 |
+/-ボタン付きの値フィールド、またはスライダーやプログレスバーとして表示されます。
- uuid: "slider-uuid"
class: SteppedValueField
frame_string: "{{50, 200}, {300, 40}}"
title: Speed
device_name: DM200
step_value: 1.0
min_value: 0.0
max_value: 100.0
style: slider
| プロパティ | 型 | 説明 |
|---|---|---|
step_value |
Double | 1ステップあたりの増減量。 |
style |
String | "default"(ボタン)、"slider"、"progress"。 |
vertical |
Boolean | true=縦方向。 |
continuous |
Boolean | true=ボタン長押し中に連続変更。 |
値フィールドのすべてのプロパティ(device_name、min_value、max_value、number_typeなど)を継承します。
PLCデバイスの値をアナログゲージで表示します。
- uuid: "meter-uuid"
class: Meter
frame_string: "{{50, 300}, {200, 200}}"
title: Pressure
device_name: DM300
min_value: 0.0
max_value: 100.0
figures: 5
major: 20
minor: 10
unit: MPa
decimal_place: 1
| プロパティ | 型 | 説明 |
|---|---|---|
min_value |
Double | スケールの最小値。 |
max_value |
Double | スケールの最大値。 |
figures |
Integer | スケールラベルの数。 |
major |
Integer | 主目盛りの間隔。 |
minor |
Integer | 副目盛りの間隔。 |
meter_zones |
Array | メーター上のカラーゾーン。 |
meter_zones:
- color_name: "RGBA,0.0,0.8,0.0,1.0"
from_value: 0.0
to_value: 60.0
- color_name: "RGBA,1.0,0.8,0.0,1.0"
from_value: 60.0
to_value: 80.0
- color_name: "RGBA,1.0,0.0,0.0,1.0"
from_value: 80.0
to_value: 100.0
スタンドアロンの状態表示インジケーター。ボタンと同じクラス(Button)で、スイッチデバイスを指定しないことでランプとして動作します。
- uuid: "lamp-uuid"
class: Button
frame_string: "{{300, 50}, {60, 60}}"
title: Running
lamp_device_name: MR200
lamp_color_name: "RGBA,0.0,0.8,0.0,1.0"
alternate_lamp_color_name: "RGBA,0.5,0.5,0.5,1.0"
style: Circle
ボタンと同じランププロパティ(lamp_device_name、lamp_color_name、lamp_negativeなど)を使用します。
switch_device_nameを省略すると、ランプインジケーターになります。
メッセージセットからのメッセージリストを表示します。メッセージはPLCデバイス値に基づいてアクティブになります。
- uuid: "message-uuid"
class: Message
frame_string: "{{50, 400}, {400, 200}}"
message_set_uuid: "msgset-uuid-1"
active_color_name: "RGBA,1.0,0.0,0.0,1.0"
inactive_color_name: "RGBA,0.9,0.9,0.9,1.0"
active_only: true
| プロパティ | 型 | 説明 |
|---|---|---|
message_set_uuid |
String | 表示するメッセージセットのUUID。 |
active_color_name |
String | アクティブメッセージの背景色。 |
inactive_color_name |
String | 非アクティブメッセージの背景色。 |
active_text_color_name |
String | アクティブメッセージのテキスト色。 |
inactive_text_color_name |
String | 非アクティブメッセージのテキスト色。 |
active_only |
Boolean | true=アクティブメッセージのみ表示。 |
row_height |
Integer | メッセージ行の高さ。 |
show_detail |
Boolean | true=詳細テキストを表示。 |
show_title |
Boolean | true=メッセージセットタイトルヘッダーを表示。 |
テンプレートアイテムを行列で繰り返し、デバイスアドレスオフセットで展開する表/グリッドレイアウトです。 詳細は マトリックス のドキュメントを参照してください。
- uuid: "matrix-uuid"
class: Matrix
frame_string: "{{50, 50}, {600, 400}}"
matrix_rows: 5
matrix_columns: 3
matrix_device_offset: 10
matrix_add_borders: true
matrix_border_color_name: "RGBA,0.7,0.7,0.7,1.0"
matrix_has_column_header: true
matrix_has_row_header: true
| プロパティ | 型 | 説明 |
|---|---|---|
matrix_rows |
Integer | データ行数。 |
matrix_columns |
Integer | データ列数。 |
matrix_device_offset |
Integer | 行間のデバイスアドレス増分。 |
matrix_add_borders |
Boolean | true=セル周りに枠線を追加。 |
matrix_border_color_name |
String | 枠線の色。 |
matrix_border_width |
Float | 枠線の幅。 |
matrix_has_column_header |
Boolean | true=列ヘッダーを含む。 |
matrix_has_row_header |
Boolean | true=行ヘッダーを含む。 |
matrix_cell_bg_color_name |
String | デフォルトセル背景色。 |
matrix_alt_bg_color_name |
String | 交互行の背景色。 |
matrix_column_header_bg_color_name |
String | 列ヘッダーの背景色。 |
matrix_row_header_bg_color_name |
String | 行ヘッダーの背景色。 |
マトリックスはセルテンプレートを定義でき、インポート時に全行列にわたって自動展開されます。 テンプレートは各セルに表示するアイテムを定義し、デバイスオフセットルールがグリッド全体のデバイスアドレスの増分を制御します。
テンプレートはmatrix_template_jsonで定義します。
YAML形式でアイテム定義の配列として直接記述できます(JSON文字列でも可)。
座標はセル原点(0, 0)からの相対位置です。
テンプレートがあるが未展開のマトリックスは、YAMLインポート時に自動的に展開されます。
- uuid: "matrix-uuid"
class: Matrix
frame_string: "{{50, 50}, {600, 300}}"
matrix_rows: 3
matrix_columns: 4
matrix_add_borders: true
matrix_border_color_name: "RGBA,0.7,0.7,0.7,1.0"
matrix_template_cell_width: 140.0
matrix_template_cell_height: 60.0
matrix_template_json:
- class: Label
uuid: "tpl-001"
frame_string: "{{2, 2}, {60, 26}}"
title: CH1
font_size: 12.0
text_color_name: "RGBA,0.3,0.3,0.3,1.0"
- class: ValueField
uuid: "tpl-002"
frame_string: "{{2, 30}, {136, 28}}"
device_name: DM100
number_type: 2
decimal_place: 1
unit: "\u00B0C"
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
field_background_color_name: "RGBA,1.0,1.0,1.0,1.0"
border_style: 3
matrix_device_offset_rules:
- id: "rule-1"
itemUUID: "*"
property: device_name
rowOffset: 10
colOffset: 1
| プロパティ | 型 | 説明 |
|---|---|---|
matrix_template_json |
配列 | 1セル分のアイテム定義の配列。通常のアイテムと同じプロパティを使用。 |
matrix_template_cell_width |
Float | テンプレートアイテムの基準セル幅。 |
matrix_template_cell_height |
Float | テンプレートアイテムの基準セル高さ。 |
matrix_device_offset_rulesは行・列間でデバイスアドレスをどのように変化させるかを制御するルールの配列です。
| プロパティ | 型 | 説明 |
|---|---|---|
id |
String | ルールの一意の識別子。 |
itemUUID |
String | 適用先のテンプレートアイテムUUID。"*"は全アイテムに適用。 |
property |
String | デバイスプロパティ名。"*"は全デバイスプロパティに適用。選択肢: device_name, switch_device_name, lamp_device_name, visible_device_nameなど。 |
rowOffset |
Integer | 行あたりのデバイスアドレス増分。 |
colOffset |
Integer | 列あたりのデバイスアドレス増分。 |
各セルのデバイスアドレスは以下の式で計算されます:
offset = row * rowOffset + col * colOffset
上記の例は3x4の温度監視グリッドを作成します:
rowOffset: 10, colOffset: 1
ページ内にWebブラウザビューを埋め込みます。
- uuid: "web-uuid"
class: WebPage
frame_string: "{{50, 50}, {600, 400}}"
url: "https://example.com"
| プロパティ | 型 | 説明 |
|---|---|---|
url |
String | 読み込むURL。 |
user_agent |
String | カスタムUser-Agent文字列。 |
アイテムテキストの翻訳はプロジェクトレベルのlocalizedStrings配列で定義します。
各エントリはアイテムUUIDとフィールドキーを特定のロケールの翻訳文字列にマッピングします。
localizedStrings:
- localeIdentifier: ja
key: "item-uuid-1.title"
text: "\u30B9\u30BF\u30FC\u30C8"
- localeIdentifier: ja
key: "item-uuid-1.alternate_title"
text: "\u30B9\u30C8\u30C3\u30D7"
- localeIdentifier: fr
key: "item-uuid-1.title"
text: "D\u00E9marrer"
| プロパティ | 型 | 説明 |
|---|---|---|
localeIdentifier |
String | ロケールコード(例: "ja"、"en"、"fr"、"de"、"zh-Hans")。 |
key |
String | 形式: "{item_uuid}.{field_name}"(例: "xxx.title"、"xxx.unit")。 |
text |
String | 翻訳テキスト。 |
title — アイテムタイトルalternate_title — 代替タイトル(ボタンのトグル状態)unit — 単位テキスト(ValueField、Meter)message_ — メッセージテキスト(MessageItem)detail_message — 詳細メッセージテキスト(MessageItem)title_ — メッセージセットタイトルメッセージセットはメッセージアイテムで表示されるメッセージのグループを定義します。 各メッセージはPLCデバイス値によってトリガーされます。
messageSets:
- uuid: "msgset-uuid-1"
no: 1
title_: Alarms
order_style: 0
messageItems:
- device_name: DM500
value: 1.0
number_type: 0
message_: "Motor overload"
detail_message: "Motor overload detected. Check motor wiring."
disabled: false
order_style: 0
- device_name: DM500
value: 2.0
number_type: 0
message_: "Temperature high"
detail_message: "Temperature exceeds the limit."
disabled: false
order_style: 1
| プロパティ | 型 | 説明 |
|---|---|---|
uuid |
String | 一意の識別子。 |
no |
Integer | メッセージセット番号。 |
title_ |
String | メッセージセットタイトル(末尾のアンダースコアは必須)。 |
order_style |
Integer | ソート順。 |
messageItems |
Array | メッセージアイテムのリスト。 |
| プロパティ | 型 | 説明 |
|---|---|---|
device_name |
String | メッセージをトリガーするデバイス。 |
value |
Double | メッセージをトリガーする値。 |
number_type |
Integer | データ型(ValueFieldと同じ)。 |
message_ |
String | メッセージテキスト(末尾のアンダースコアは必須)。 |
detail_message |
String | 詳細メッセージテキスト。 |
disabled |
Boolean | true=メッセージを無効化。 |
色はRGBA形式の文字列で指定します:
"RGBA,R,G,B,A"
R、G、B、Aは0.0から1.0の浮動小数点値です。
| 色 | 値 |
|---|---|
| 黒 | "RGBA,0.0,0.0,0.0,1.0" |
| 白 | "RGBA,1.0,1.0,1.0,1.0" |
| 赤 | "RGBA,1.0,0.0,0.0,1.0" |
| 緑 | "RGBA,0.0,0.8,0.0,1.0" |
| 青 | "RGBA,0.0,0.0,1.0,1.0" |
| 黄 | "RGBA,1.0,1.0,0.0,1.0" |
| 灰 | "RGBA,0.5,0.5,0.5,1.0" |
| 薄灰 | "RGBA,0.9,0.9,0.9,1.0" |
| 透明 | "RGBA,0.0,0.0,0.0,0.0" |
アイテムの位置とサイズはCGRect文字列形式で指定します:
"{{x, y}, {width, height}}"
値はポイント単位です。原点(0, 0)はページの左上隅です。
座標系はscreen_size_stringの寸法に対応します。
"{{0, 0}, {768, 1024}}" # フルページ(縦向き)
"{{50, 50}, {200, 40}}" # 左上付近の小さなアイテム
"{{384, 512}, {100, 50}}" # 中央付近のアイテム(概算)
screen_size_string: "768x1024"、rotation_type: 1(横向き)のプロジェクトでは、
座標空間は幅1024ポイント、高さ768ポイントになります。
プロジェクト、ページ、アイテムの背景画像を使用するには:
images/フォルダーにUUIDで命名されたPNG画像ファイルを配置します(例: abc-123.png)。background_imageオブジェクトを使って画像を参照します:
background_image: uuid: "abc-123" kind: page_background
| 種類 | 説明 |
|---|---|
page_default_background |
全ページのデフォルト背景。 |
page_background |
特定ページの背景。 |
lamp_background |
ランプ/ボタン状態の背景画像。 |
page_item_background |
ページアイテムの背景画像。 |
デバイス名はPLCプロバイダーによって異なります。各プロバイダーの一般的なデバイス名は以下の通りです:
| デバイス | 種類 | 説明 |
|---|---|---|
DM0、DM100 |
ワード | データメモリ |
MR0、MR100 |
ビット | 内部リレー |
R0、R100 |
ビット | リレー |
FM0、FM100 |
ワード | ファイルメモリ |
CM0、CM100 |
ワード | カウンター |
T0、T100 |
ワード | タイマー |
| デバイス | 種類 | 説明 |
|---|---|---|
D0、D100 |
ワード | データレジスタ |
M0、M100 |
ビット | 内部リレー |
Y0、Y10 |
ビット | 出力(16進アドレス) |
X0、X10 |
ビット | 入力(16進アドレス) |
W0、W100 |
ワード | リンクレジスタ(16進アドレス) |
R0、R100 |
ワード | ファイルレジスタ |
| デバイス | 種類 | 説明 |
|---|---|---|
D0、D100 |
ワード | DMエリア |
CIO0、CIO100 |
ワード | CIOエリア |
W0、W100 |
ワード | ワークエリア |
H0、H100 |
ワード | 保持エリア |
| デバイス | 種類 | 説明 |
|---|---|---|
HR0、HR100 |
ワード | 保持レジスタ (40001+) |
CO0、CO100 |
ビット | コイル (00001+) |
IR0、IR100 |
ワード | 入力レジスタ (30001+) |
DI0、DI100 |
ビット | ディスクリート入力 (10001+) |
注意: ビットデバイス(MR、M、COなど)はswitch_device_name、lamp_device_name、visible_device_nameに使用します。
ワードデバイス(DM、D、HRなど)はdevice_name(値の読み書き)に使用します。
KEYENCE KV-8000 PLCを使用した、2ページ、各種アイテム、メッセージセット、日本語ローカライズを含む完全なプロジェクトの例:
uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
name: "Factory Monitor"
screen_size_string: "768x1024"
rotation_type: 1
style: default
background_color_name: "RGBA,0.95,0.95,0.95,1.0"
grid:
style: 1
enabled: 1
pixel: 10.0
plc:
model: KV-8000
provider: KEYENCE
plc_channel:
config:
ip_or_hostname: "192.168.0.10"
port_no: 8501
pages:
- uuid: "page-0001"
page_no: 1
title: Main
right_page_uuid: "page-0002"
items:
- uuid: "item-0001"
class: Label
frame_string: "{{20, 20}, {300, 40}}"
title: Factory Monitor
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
font_size: 24.0
alignment: 0
- uuid: "item-0002"
class: Button
frame_string: "{{20, 80}, {150, 60}}"
title: Start
alternate_title: Stop
switch_device_name: MR100
switch_mode: alternate
lamp_device_name: MR100
lamp_color_name: "RGBA,0.0,0.8,0.0,1.0"
style: irPanel
- uuid: "item-0003"
class: Button
frame_string: "{{200, 80}, {60, 60}}"
title: Run
lamp_device_name: MR200
lamp_color_name: "RGBA,0.0,0.8,0.0,1.0"
alternate_lamp_color_name: "RGBA,0.5,0.5,0.5,1.0"
style: Circle
- uuid: "item-0004"
class: Label
frame_string: "{{20, 170}, {120, 30}}"
title: Temperature
text_color_name: "RGBA,0.3,0.3,0.3,1.0"
- uuid: "item-0005"
class: ValueField
frame_string: "{{150, 160}, {150, 50}}"
device_name: DM100
number_type: 2
decimal_place: 1
unit: "\u00B0C"
min_value: 0.0
max_value: 999.0
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
field_background_color_name: "RGBA,1.0,1.0,1.0,1.0"
border_style: 3
- uuid: "item-0006"
class: Meter
frame_string: "{{20, 230}, {280, 280}}"
title: Pressure
device_name: DM200
number_type: 2
min_value: 0.0
max_value: 100.0
figures: 6
major: 20
minor: 10
unit: MPa
decimal_place: 1
meter_zones:
- color_name: "RGBA,0.0,0.8,0.0,1.0"
from_value: 0.0
to_value: 60.0
- color_name: "RGBA,1.0,0.8,0.0,1.0"
from_value: 60.0
to_value: 80.0
- color_name: "RGBA,1.0,0.0,0.0,1.0"
from_value: 80.0
to_value: 100.0
- uuid: "item-0007"
class: SteppedValueField
frame_string: "{{350, 160}, {300, 50}}"
title: Speed
device_name: DM300
step_value: 5.0
min_value: 0.0
max_value: 100.0
number_type: 2
unit: "%"
style: slider
- uuid: "item-0008"
class: Button
frame_string: "{{850, 20}, {120, 40}}"
title: "Alarms >>"
page_uuid: "page-0002"
- uuid: "page-0002"
page_no: 2
title: Alarms
left_page_uuid: "page-0001"
items:
- uuid: "item-0009"
class: Label
frame_string: "{{20, 20}, {200, 40}}"
title: Alarm List
text_color_name: "RGBA,0.0,0.0,0.0,1.0"
font_size: 24.0
- uuid: "item-0010"
class: Message
frame_string: "{{20, 80}, {600, 400}}"
message_set_uuid: "msgset-0001"
active_color_name: "RGBA,1.0,0.9,0.9,1.0"
inactive_color_name: "RGBA,0.95,0.95,0.95,1.0"
active_text_color_name: "RGBA,0.8,0.0,0.0,1.0"
inactive_text_color_name: "RGBA,0.3,0.3,0.3,1.0"
show_detail: true
show_title: true
- uuid: "item-0011"
class: Button
frame_string: "{{850, 20}, {120, 40}}"
title: "<< Main"
page_uuid: "page-0001"
messageSets:
- uuid: "msgset-0001"
no: 1
title_: Alarms
order_style: 0
messageItems:
- device_name: DM500
value: 1.0
number_type: 0
message_: "Motor overload"
detail_message: "Motor overload detected. Check wiring."
disabled: false
order_style: 0
- device_name: DM500
value: 2.0
number_type: 0
message_: "Temperature high"
detail_message: "Temperature exceeds limit."
disabled: false
order_style: 1
- device_name: DM500
value: 3.0
number_type: 0
message_: "Emergency stop"
detail_message: "Emergency stop activated."
disabled: false
order_style: 2
localizedStrings:
- localeIdentifier: ja
key: "item-0001.title"
text: "\u5DE5\u5834\u30E2\u30CB\u30BF\u30FC"
- localeIdentifier: ja
key: "item-0002.title"
text: "\u30B9\u30BF\u30FC\u30C8"
- localeIdentifier: ja
key: "item-0002.alternate_title"
text: "\u30B9\u30C8\u30C3\u30D7"
- localeIdentifier: ja
key: "item-0003.title"
text: "\u904B\u8EE2\u4E2D"
- localeIdentifier: ja
key: "item-0004.title"
text: "\u6E29\u5EA6"
- localeIdentifier: ja
key: "item-0006.title"
text: "\u5727\u529B"
- localeIdentifier: ja
key: "item-0007.title"
text: "\u901F\u5EA6"
- localeIdentifier: ja
key: "item-0009.title"
text: "\u30A2\u30E9\u30FC\u30E0\u4E00\u89A7"
uuidは省略可能で、インポート時に自動生成されます。
name、page_no、frame_stringも省略時にデフォルト値が自動補完されます。
plcセクションは必ず指定してください。省略するとインポートエラーになります。
providerとmodelを指定すれば、PLC内部のclass_nameは自動解決されます。
classは大文字小文字を問いません。また以下の別名が使えます:
gauge→Meter、alarm→Message、grid→Matrix、slider→Slider、progress_bar→Progress、value_field→ValueField、web_page→WebPage。
message_set_uuidはmessageSets配列のUUIDと一致する必要があります。
keyは"{item_uuid}.{field_name}"形式です。
一般的なフィールド: "title"、"alternate_title"、"unit"。
YAMLプロジェクト形式を使ったインポートのデモです。 AIにYAMLファイルを生成させ、irBoardにインポートして画面を構築する流れを紹介しています。