Skip to end of metadata
Go to start of metadata
You are viewing an old version of this content. View the current version.
Compare with Current
View Version History
« Previous
Version 16
Next »
Modbus Taglet
modbusTCP taglet은 modbus TCP /IP 연결을 지원하고 modbus client 역할을 하며 modbus server와 통신한다.
1) Taglet 등록
① taglet 등록 창에서 'modbusTCP'을 선택한다.
② Settings에서 아래의 값들을 입력한다.
항목 | 설명 | 비고 |
---|
IP & Port | Modbus server의 IP 주소와 Port 번호 |
|
server ID | Modbus server의 고유 아이디 |
|
Device Name | Modbus server의 장치 이름 |
|
readPeriod | 데이터를 읽어오는 주기(second) |
|
timeout | Modbus server와 연결 시도 제한 시간 |
|
ByteOrder | 바이트 배열 방법 (BIG Endian or LITTLE Endian) |
|
use EMC time | 데이터 발생 시간을 Modbus register에 저장된 값으로 사용할 것인지 EMC의 시간을 사용할 것인지 선택한다. |
|
Address | 데이터가 저장되어 있는 server의 주소 |
|
size | 입력한 주소에서부터 몇 개의 word(2byte) 혹은 몇 개의 bit를 가져올 것인지 입력 |
|
Function Code | 값을 읽어오기위해 사용하는 Function Code 입력 예) 4개의 Function Code 지원 01 readCoils 02 readDiscreateInputs 03 readHoldingRegisters 04 readInputRegisters |
|
value type | 데이터 type 선택 예) int16, uint16, int32, uint32, int64, uint64, float32, float64 |
|
③ Tags에 저장할 tag를 입력한다. Settings에서 입력한 modbus tag와 1:1 매칭이 되기 때문에 modbus tag와 tag의 갯수가 같아야 한다.
2) 사용시 주의사항
① modbus register에 저장된 시간값을 사용하는 경우 시간값의 type은 int64이고 nano timestamp로 저장되어야 한다.
MQTT Taglet
MQTT taglet은 MQTT Client 역할을 하며 MQTT broker 와 통신한다.
1) Taglet 등록
① taglet 등록 창에서 'mqtt'을 선택한다.
② Settings에서 아래의 값들을 입력한다.
항목 | 설명 | 비고 |
---|
Broker Address | broker의 주소를 입력한다. 예) 보안 옵션 없이 통신 : tcp://192.168.0.1:1883 보안 통신 : ssl://192.168.0.1:1883 |
|
Security | 보안 옵션 - Anonymous : 보안옵션을 사용하지 않음
- User : broker에서 설정한 UserID와 password로 보안 접속
- Certificate : broker에서 설정한 인증서 정보로 보안 접속
- CaCert : CA 인증서 경로
- Cert : 위의 CA로 만들어진 인증서 경로
- Private Key : 위 인증서의 개인키 경로
|
|
Topic | - MQTT topic 설정.
- 2개의 data type 사용 가능
- 2개의 wildcard 사용 가능
- QoS설정 : 서비스의 질을 보장해주는 레벨 (0, 1, 2)
- Tag Name or Json Value Name
|
|
| use "#" wildcard | use "+" wildcard | use not wildcard |
---|
JSON | - topic 설정 값이 /seoul/series/# 이고 발행되는 topic이 /seoul/series/sensor-1 일 때, 저장되는 tag name은 topic 설정시 입력한 tagName 유무에 따라 다르다.
tagName 미입력 : _seoul_series_sensor-1 tagName "S1" 입력 : S1_sensor-1 - 값이 {"tagName" : "s1", "value" : 123} 일 때, "Json Value Name" 입력칸에 "${value}" 을 입력하여 해당 키의 값을 가져올 수 있다.
| - topic 설정 값이 /seoul/+/series 이고 발행되는 topic이 /seoul/seonsor-1/series 일 때, 저장되는 tag name은 "seonsor-1" 이다.
"+" wildcard 에 들어오는 하나의 문자열이 tag name이 된다. - 값이 {"tagName" : "s1", "value" : 123} 일 때, "Json Value Name" 입력칸에 "${value}" 을 입력하여 해당 키의 값을 가져올
수 있다.
| - topic 설정 값이 /seoul/sensor-1 이고 발행되는 topic이 /seoul/sensor-1 이고 설정한 tagName이 sensor1 일 때, tag name 은 sensor1 이다.
- 값이 {"tagName" : "s1", "value" : 123} 일 때, "Json Value Name" 입력칸에 "${value}" 을 입력하여 해당 키의 값을 가져올 수 있다.
"tagName" 입력칸에 "${tagName}" 을 입력하여 해당 키의 값을 tag name으로 사용할 수 있다.
|
raw | - topic 설정 값이 /seoul/series/# 이고 발행되는 topic이 /seoul/series/sensor-1 일 때, 저장되는 tag name은 topic 설정시 입력한 tagName 유무에 따라 다르다.
tagName 미입력 : _seoul_series_sensor-1 tagName "S1" 입력 : S1_sensor-1
| - topic 설정 값이 /seoul/+/series 이고 발행되는 topic이 /seoul/seonsor-1/series 일 때, 저장되는 tag name은 "seonsor-1" 이다.
"+" wildcard 에 들어오는 하나의 문자열이 tag name이 된다.
| - topic 설정 값이 /seoul/sensor-1 이고 발행되는 topic이 /seoul/sensor-1 이고 설정한 tagName이 sensor1 일 때, tag name 은 sensor1 이다.
|
③ ALL TAG 선택 시 MQTT 설정탭에서 설정한 또는 설정된 tag name을 사용한다.
④ Warning 또는 Error Range 사용 시 MQTT 설정탭에서 설정한 또는 설정된 tag name을 Tags 탭에 설정해줘야 한다.
2) 사용시 주의사항
① Subscribe 기능만 제공한다.
RestAPI Taglet
RestAPI는 Taglet을 사용하지 않고 EMC에 API를 이용하여 Data를 전송하여 Machbase에 저장하는 방법이다.
1) Taglet 등록
① taglet 등록 창에서 'directAPI' 선택
② Date Format 입력. 입력하지 않으면 nano second timestamp를 사용하는 것으로 판단한다.
③ Tags에 저장할 Tag 입력. 등록되지 않은 Tag는 데이터를 전송해도 저장되지 않는다.
2) 사용 방법
- URL : 등록한 EMC의 host + "/api/v1/edge/direct" ( ex. http://192.168.0.1:50001/api/v1/edge/direct )
- Method : POST
- Data Format : json 형식
{
"date_format" : date Format ( ex. "YYYY-MM-DD HH24:MI:SS" ),
"data" : [
{
"name": Tag명,
"time": datetime ( timestamp의 경우 문자열로 변환 ),
"value": value
},
...
{}
]
}
Json 예시
{
"date_format": "YYYY-MM-DD HH24:MI:SS",
"data": [
{
"name": "X1",
"time": "2020-09-23 18:28:30",
"value": 3125.5
},
{
"name": "X1",
"time": "2020-09-23 18:28:31",
"value": 3125.3
},
{
"name": "X1",
"time": "2020-09-23 18:28:32",
"value": 3126.1
}
]
}
{
"date_format": "",
"data": [
{
"name": "X2",
"time": "1599199851564",
"value": 3631
},
{
"name": "X2",
"time": "1599199851565",
"value": 3778
},
{
"name": "X2",
"time": "1599199851566",
"value": 2453
}
]
}
{
"date_format": "",
"data": [
{
"name": "X3",
"value": 3125
},
{
"name": "X3",
"value": 3126
},
{
"name": "X3",
"value": 3127
}
]
}
2) 사용시 주의사항
① RestAPI Taglet은 하나의 EMC 당 1개씩만 사용 가능하다.
② name, value은 값이 반드시 존재해야 한다.
③ time의 경우는 없으면 등록할 때 저장한 Date Format에 맞춰 API가 도착한 시간으로 저장한다.
④ time 값은 반드시 문자열이어야 한다. timestamp 의 경우에도 문자열로 변환하여 전송해야 정상적으로 저장이 가능하다.
⑤ value의 경우 숫자형 데이터여야 한다. ( int, float )