WebSocket 정보

WebSocket을 사용하여 변수, 알람 및 시스템 에러의 알림을 받을 수 있습니다. 알림을 받으려면 세션 설정 및 알림 등록이 필요합니다.

WebSocket (버전 13) 프로토콜이 사용될 수 있고 WebSocket 세션의 최대 수는 5입니다.

보안을 사용하는 경우 승인 명령을 전송합니다. 승인이 이루어지지 않거나 보안 레벨이 충분하지 않으면 표시기에서 알림을 받을 수 없습니다.

클라이언트로부터 통신이 없는 경우 표시기에서 WebSocket에 10초마다 Ping을 보냅니다. 5개의 Ping에 대한 응답이 없으면 (즉, 60초 동안 Ping을 포함하여 클라이언트로부터 통신이 없는 경우) 세션이 표시기에서 닫힙니다.

변수

화면 편집 소프트웨어에서 생성된 변수의 값 및/또는 특징이 변경되면 알림을 받을 수 있습니다.

알림을 받으려면 변수를 모니터에 등록해야 합니다. 등록된 변수가 외부 변수인 경우 표시기가 외부 장치에서 값을 읽기 시작합니다.

메모:

  • 사용자 데이터 유형 (구조체, 배열) 변수는 지원되지 않습니다.

  • 변수의 최대 수는 세션당 100입니다.

알람/시스템 에러

표시기에서 알람 또는 시스템 에러가 발생/확인/복구되는 경우 알람을 받을 수 있습니다. 알람을 받으려면 등록해야 합니다.

명령

다음은 명령입니다.

세션 설정

WebSocket에 대해 세션을 설정하려면 다음을 수행하십시오.

요청

항목
방법 GET
URL <Base URL>/ws Base URL
파라미터 N/A
머리글
머리글
Upgrade websocket
Connection Upgrade
Sec-WebSocket-Version 13
Sec-WebSocket-Key WebSocket Handshake Key
바디 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 (스위칭 프로토콜) 을 전송합니다.

코드 참고

101 Switching Protocols

세션 설정에 성공했습니다.

429 Too Many Requests

세션의 최대 수에 도달했기 때문에 세션을 설정하지 못했습니다.

400 Bad Request

세션 설정에 실패했습니다. 사유는 위와 다릅니다.
머리글
머리글
Upgrade websocket
Connection Upgrade
Sec-WebSocket-Accept WebSocket Handshake
바디 N/A

HTTP/1.1 101 Switching Protocols

Upgrade: websocket

Connection: Upgrade

Sec-WebSocket-Accept: WLjfOfV0ERDw6E/NUUaBpqXnHFc=  

승인

사용자 관리를 사용하는 경우 먼저 승인 명령을 보냅니다.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
Authorization string "Bearer <token>" 로그인 API에서 토큰 회신을 사용합니다.

{

"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlVzZXIxIiwibGV2ZWwiOjF9.eqVwAuo0KMqdggICllJVPs3IE67oHdUpo04w68md7kI "

}

모니터링 변수 추가

등록할 변수 추가 최대 수를 초과하는 모니터링 변수는 자동으로 잘립니다. 변수가 추가되면 초기값 알림이 즉시 전송됩니다.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
command string "add_monitor" 모니터링 변수를 추가합니다.
variable array of string - 변수명의 배열

{

"command": "add_monitor",

"variable": ["Variable1","Variable2"]

}

모니터링 변수 제거

등록 해제할 변수를 제거합니다.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
command string "remove_monitor" 모니터링 변수를 제거합니다.
variable array of string - 변수명의 배열

{

"command": "remove_monitor",

"variable": ["Variable1","Variable2"]

}

모니터링 변수 교체

등록된 모든 변수를 교체하려면 다음을 수행하십시오. 최대 수를 초과하는 모니터링 변수는 자동으로 잘립니다.

변수가 추가되면 초기값 알림이 즉시 전송됩니다.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
command string "replace_monitor" 모니터링 변수를 교체합니다.
variable array of string - 변수명의 배열

{

"command": "replace_monitor",

"variable": ["Variable1","Variable2"]

}

모니터링 변수 지우기

등록된 모든 변수를 제거하려면 다음을 수행하십시오.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
command string "clear_monitor" 모니터링 변수를 지웁니다.

{

"command": "clear_monitor"

}

알람 및 시스템 에러 등록

알람 및 시스템 에러를 등록하려면 다음을 수행하십시오.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
command string "subscribe" 등록
alarm array of string -

등록할 알람 이름의 배열

알람: “alarm”

시스템 에러: “error”

{

"command": "subscribe",

"alarm": ["alarm","error"]

}

알람 및 시스템 에러 등록 해제

알람 및 시스템 에러를 등록 해제하려면 다음을 수행하십시오.

항목
발신자 클라이언트
데이터
필드 데이터 타입 참고
command string "unsubscribe" 등록 해제
alarm array of string -

등록 해제할 알람 이름의 배열입니다.

알람: “alarm”

시스템 에러: “error”

{

"command": "unsubscribe",

"alarm": ["alarm","error"]

}

변수 등록

등록된 변수의 값 및/또는 특징이 변경된 경우 표시기에서 알림을 받으려면 다음을 수행하십시오.

항목
발신자 서버 (표시기)
데이터
필드 데이터 타입 참고
updated string "variable" 변수
data array of object -

변수 정보의 배열

변수 정보:

필드 데이터 타입 참고
name string 변수명 화면 편집 소프트웨어에 설정된 변수명
quality string 특징

“good”: 좋음

"invalid": 값이 유효하지 않습니다

“bad”: 에러

“unknown”: 읽지 않음

Value boolean, number, string 변수값

특징이 ”good”일 때만 이 필드를 사용할 수 있습니다.

JSON의 이터 유형은 변수의 데이터 유형에 따라 다릅니다.

{

"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 string "alarm" 알람(알람 그룹)
data array of object -

알람 정보의 배열

알람 정보:

필드 데이터 타입 참고
message string 메시지 화면 편집 소프트웨어에 설정된 메시지입니다.
parameter number 파라미터 화면 편집 소프트웨어에 설정된 파라미터입니다.
status string 상태

“Active”: 발생

“Ack”: 승인됨

“Return”: 복구됨

“UnACK”: 승인 안 됨

time string Time ISO-8601 형식
type string 유형 “HiHi”/”Hi”/”Lo”/”LoLo”
variable string 변수명 알람과 관련된 변수명
groupname string 그룹 이름 알람의 그룹 이름입니다.
severity number 중요도 화면 편집 소프트웨어에 설정된 중요도입니다.
value boolean, number 변수값 JSON의 데이터 유형은 변수의 데이터 유형에 따라 다릅니다.

{

"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

string

"error"

시스템 에러

data

array of object -

시스템 에러 정보의 배열

시스템 에러 정보:

필드 데이터 타입 참고

message

string 메시지 시스템 에러 메시지

status

string 상태

“Active”: 발생

“Ack”: 승인됨

“Return”: 복구됨

time

string 시각 ISO-8601 형식

equipment

string 기기 이름 에러가 발생한 외부 장치 이름이 기기 이름에 설정됩니다.

{

"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"

}

]

}