WebSocket を使用して、変数、アラーム、システムエラーの通知を受け取ることができます。通知を受け取るにはセッションを確立し、モニター対象を登録する必要があります。
WebSocket (バージョン 13) プロトコルを使用することができ、WebSocket セッションの最大数は 5 セッションです。
セキュリティーを使用する場合は、認証コマンドを送信します。承認が行われていない場合、またはセキュリティーレベルが十分でない場合は、表示器からの通知を受け取りません。
クライアントからの通信がない場合、表示器は 10 秒毎に WebSocket に Ping を送信します。5 回の Ping に応答がない場合 (つまり、Ping への対応を含むクライアントからの通信が 60 秒間ない場合)、表示器のセッションは閉じられます。
画面編集ソフトウェアで作成された変数の値およびクオリティが変更された際に、通知を受け取ることができます。
通知を受け取るには、モニターする変数を登録してください。登録された変数が外部変数である場合、表示器は接続機器からの値の読み取りを開始します。
ユーザーデータタイプ (構造体、配列) の変数はサポートしていません。
表示器でアラームまたはシステムエラーが発生/確認/復旧したときに、通知を受け取ることができます。通知を受け取るにはモニター対象を登録してください。
コマンドには以下があります。
WebSocket のセッションを確立します。
| 項目 | 値 | ||||||||||
| メソッド | GET | ||||||||||
| URL | <Base URL>/ws Base URL | ||||||||||
| パラメーター | N/A | ||||||||||
| ヘッダー |
|
||||||||||
| ボディ | N/A | ||||||||||
| 例 |
GET http://192.168.1.100:8000/api/v1/ws HTTP/1.1 Host: localhost:8082 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Version: 13 Sec-WebSocket-Key: k3CyFjeNOBNzFZx4blx9kg== Origin: ws://localhost:8082 |
| 項目 | 値 | ||||||||
| 状態コード |
セッションが確立されると、表示器は 101 (スイッチプロトコル) を送信します。
|
||||||||
| ヘッダー |
|
||||||||
| ボディ | N/A | ||||||||
| 例 |
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: WLjfOfV0ERDw6E/NUUaBpqXnHFc= |
ユーザー管理を使用する場合は、初めに認証コマンドを送信します。
| 項目 | 値 | ||||||||
| 送信元 | クライアント | ||||||||
| データ |
|
||||||||
| 例 |
{ "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlVzZXIxIiwibGV2ZWwiOjF9.eqVwAuo0KMqdggICllJVPs3IE67oHdUpo04w68md7kI " } |
登録する変数を追加します。モニター変数の数が最大数を超えた場合、切り捨てられます。変数が追加されると、すぐに初期値が送信されます。
| 項目 | 値 | ||||||||||||
| 送信元 | クライアント | ||||||||||||
| データ |
|
||||||||||||
| 例 |
{ "command": "add_monitor", "variable": ["Variable1","Variable2"] } |
登録されている変数を削除します。
| 項目 | 値 | ||||||||||||
| 送信元 | クライアント | ||||||||||||
| データ |
|
||||||||||||
| 例 |
{ "command": "remove_monitor", "variable": ["Variable1","Variable2"] } |
登録したすべての変数を置き換えます。モニター変数の数が最大数を超えた場合、切り捨てられます。
変数が追加されると、すぐに初期値が送信されます。
| 項目 | 値 | ||||||||||||
| 送信元 | クライアント | ||||||||||||
| データ |
|
||||||||||||
| 例 |
{ "command": "replace_monitor", "variable": ["Variable1","Variable2"] } |
登録したすべての変数を削除します。
| 項目 | 値 | ||||||||
| 送信元 | クライアント | ||||||||
| データ |
|
||||||||
| 例 |
{ "command": "clear_monitor" } |
アラームとシステムエラーを登録します。
| 項目 | 値 | ||||||||||||
| 送信元 | クライアント | ||||||||||||
| データ |
|
||||||||||||
| 例 |
{ "command": "subscribe", "alarm": ["alarm","error"] } |
削除するアラームの種類を配列で指定します。
| 項目 | 値 | ||||||||||||
| 送信元 | クライアント | ||||||||||||
| データ |
|
||||||||||||
| 例 |
{ "command": "unsubscribe", "alarm": ["alarm","error"] } |
登録した変数の値またはクオリティが変更されたときに、表示器から通知を受け取ります。
| 項目 | 値 | ||||||||||||||||||||||||||||
| 送信元 | サーバー (表示器) | ||||||||||||||||||||||||||||
| データ |
変数情報:
|
||||||||||||||||||||||||||||
| 例 |
{ "updated":”variable”, "data": [ { “name”: “Variable1”, “quality”: “good”, “value”: 100 }, { “name”: “Variable2”, “quality”: “bad” }, { “name”: “Variable3”, “quality”: “unknown” } ] } |
画面編集ソフトウェアと WebSocket 間でサポートされているデータタイプは次の表のとおりです。
| データタイプ | WebSocket (JSON タイプ) | WebSocket 値の範囲 |
| BOOL | boolean | true/false |
| BYTE、SINT、USINT、WORD、INT、UINT、DWORD、DINT、UDINT、LWORD、LINT、ULINT、REAL、LREAL、TIME | 数値 | 64 ビット浮動小数点値の範囲。 * LWORD、LINT、ULINT の場合、精度は 52 ビット。 * REAL または LREAL の値が NaN または INFINITY の場合は、Null。 |
| STRING、WSTRING | string | 文字は UTF-8 に対応しています。 |
| DATE、TIME_OF_DAY、DATE_AND_TIME | string | ISO 8601 フォーマット |
LWORD 値は、表示器に浮動小数点として表示されます。
表示器のアラームが発生/確認/未確認/復旧したときに、表示器から通知を受け取ります。
| 項目 | 値 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| 送信元 | サーバー (表示器) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| データ |
アラーム情報:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| 例 |
{ "updated": “alarm”, "data”:[ { "message": "BOOL_Hi", "parameter": 100, "status": "Active", "time": "2017-07-07T16:20:01", "type": "Hi", "variable": "BOOL_Internal" “groupname”: “AlarmGroup1”, “severity”: 1, “value”: true } ] } |
表示器のシステムエラーが発生/確認/復旧したときに、表示器から通知を受け取ります。
| 項目 | 値 | ||||||||||||||||||||||||||||||||
| 送信元 | サーバー (表示器) | ||||||||||||||||||||||||||||||||
| データ |
システムエラーの情報:
|
||||||||||||||||||||||||||||||||
| 例 |
{ "updated”:”error", "data": [ { "equipment": "MODBUS_Equipment", "message": "MODBUS_Equipment:TCP connection open error (IP Address:127.0.0.2)", "status": "Active", "time": “2017-07-07T16:42:00" } ] } |