WebSocket을 사용하여 변수, 알람 및 시스템 에러의 알림을 받을 수 있습니다. 알림을 받으려면 세션 설정 및 알림 등록이 필요합니다.
WebSocket (버전 13) 프로토콜이 사용될 수 있고 WebSocket 세션의 최대 수는 5입니다.
보안을 사용하는 경우 승인 명령을 전송합니다. 승인이 이루어지지 않거나 보안 레벨이 충분하지 않으면 표시기에서 알림을 받을 수 없습니다.
클라이언트로부터 통신이 없는 경우 표시기에서 WebSocket에 10초마다 Ping을 보냅니다. 5개의 Ping에 대한 응답이 없으면 (즉, 60초 동안 Ping을 포함하여 클라이언트로부터 통신이 없는 경우) 세션이 표시기에서 닫힙니다.
화면 편집 소프트웨어에서 생성된 변수의 값 및/또는 특징이 변경되면 알림을 받을 수 있습니다.
알림을 받으려면 변수를 모니터에 등록해야 합니다. 등록된 변수가 외부 변수인 경우 표시기가 외부 장치에서 값을 읽기 시작합니다.
사용자 데이터 유형 (구조체, 배열) 변수는 지원되지 않습니다.
표시기에서 알람 또는 시스템 에러가 발생/확인/복구되는 경우 알람을 받을 수 있습니다. 알람을 받으려면 등록해야 합니다.
다음은 명령입니다.
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 | number | 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" } ] } |