- OBCon Proxy
- Proxy 운영 현황
- config
- Device to SCADA
- SCADA to Proxy
- SCADA에서 Proxy로 전송
- Proxy to Customer
- Customer
- Test
- To-Do
OBCon Proxy
Proxy 운영 현황
- 피지에스코리아
- OBCon Proxy
- 예스코 (10) : MSSQL 연동
- Socket 통신 (Deprecated)
- 삼천리 (8)
- JBC (14)
- 대성에너지(5)의 원격TB
- OBCon Proxy
config
- cluster
- worker_count_proxy : OBCon Proxy의 worker 갯수
- proxy
- use
- proxies
- use
- protocol
- type
- host
- port
- server
- host
- port
- onlineTime
- onlineCount
- batchTime
- batchCount
- siteList : OBCon SCADA에서 OBCon Proxy로 데이터를 전송하는 사이트 정보
- sitesInfo : OBCon Proxy를 사용하는 사이트 정보
Device to SCADA
- modules/clients/tcp_client_1.js : 장비 애뮬레이터
#--- OBCon Device 실행
cd /work/OBCon_Service
node bin/scada_device.js --conf config_scada_device_override.js
# pm2 start --only SCADADevice
#--- 로그 확인
pm2 log OBConDevice
pm2 log OBConSCADA
SCADA to Proxy
#--- OBCon Proxy 실행
cd /work/OBCon_Service
node bin/proxy.js --conf config_proxy_override.js
# pm2 start --only OBConProxy
#--- 장비에서 받은 데이터를 OBCon Proxy로 잘 전송하는지 확인
# pm2 log OBConSCADA | grep sendData
pm2 log OBConProxy
# https://local.obcon.biz/scada/proxies
config_scada_override.js
- conf.proxy.proxies.siteList
화면
- 실시간 연동 현황 (/scada/proxies?action=list)
- 배치 연동 현황 (/scada/proxies?action=list2)
- "작업 생성" 버튼
- "작업 취소" 버튼
- modules/proxies/view.js
- getHandler(siteKey) : siteKey에 해당하는 핸들러 반환
modules/proxy_client.js : 과거에 사용하는 모듈 (삭제 예정)
infoOfData 생성
- interfaces/v10?/request/request_G_1.js
- handleServer() 함수에서 infoOfData 반환
- interfaces/v10?/request/request_G_[2345...].js
- _updateData() 함수에서 infoOfData 반환
- interfaces/v10?/request/request_G_1.js
interfaces/v100/request/request.js
- handleProxyServerBefore(data)
- handleProxyServer(infoOfData)
SCADA에서 Proxy로 전송
- modules/proxies/proxy_client.js
- init()
- sendData(site, device, infoOfData, socketData)
- modules/proxies/internal_tcp_client.js
- 데이터 송신: sendData(site, device, infoOfData, socketData)
Proxy to Customer
pm2 start --only OBConProxy
config_proxy_override.js
- conf.proxy.proxies.sitesInfo
modules/proxies/proxy_app.js
modules/proxies/internal_tcp_server.js
modules/proxies/internal_tcp_server_client.js
- 데이터 수신: ondata()
modules/proxies/view.js
- sendDataOnline() : Online 방식으로 Proxy에서 고객사로 데이터 전송
- sendDataBatch() : Batch 방식으로 Proxy에서 고객사로 데이터 전송
- getHandler(siteKey)
modules/proxies/database/proxy_${type}.js
- 실시간 연동 진행
- sendData(devicedata)
- 데이터 송신: _insertData(model, devicedata)
- 테이블 레이아웃
- modules/proxies/database/tables/proxydata?s.js
- 테스트 완료된 프로그램
- proxy_mariadb.js
- proxy_mysql.js
- proxy_oracle.js
배치 연동
- include/Applications.js
- watchDogTimer()를 사용
- modules/proxies/view.js
- 주기적으로 sendData() 호출
- include/Applications.js
Customer
- MariaDB (MySQL 포함)
- modules/proxies/database/
- mariadb.md
- mariadb_ver001.xlsx : 테이블 레이아웃
- mariadb.sql
- modules/proxies/database/
- MSSQL (Reserved)
- modules/proxies/database/
- mssql.md : 설치와 환경 구성 등
- mssql.sql
- modules/proxies/database/
- Oracle
- modules/proxies/database/
- oracle.md : 설치와 환경 구성 등
- oracle.sql : sqlplus 명령어로 접속하여 설정
- 주의 : CentOS에 Oracle Client와 oracledb 모듈 설치 검증 필요
- modules/proxies/database/
- Tibero (Reserved)
- modules/proxies/database/
- tibero.md : 설치와 환경 구성 등
- tibero.sql
- modules/proxies/database/
Test
--- 테스트 초기화
--- site id : 1, siteKey : 01
delete from devicedata101s where siteKey = '01';
delete from proxies;
delete from proxydata1s;
-- logs/ 폴더의 로그 파일 삭제
-- 실시간/배치 연동 현황 조회
-- https://local.obcon.biz/scada/proxies
-- https://local.obcon.biz/scada/proxies?action=list2
--- 전송 건수가 일치하는지 확인
select count(*) from devicedata101s where siteKey = '01';
select count(*) from proxydata1s;
select id from devicedata101s where siteKey = '01' order by id;
select id from proxydata1s order by id;
update proxies set sendId = 6771;
To-Do
- 오류
- 장비와 SCADA간의 통신이 끊어지는 경우
- SCADA와 OBCon Proxy간의 통신도 끝어져서 Proxy에서 데이터 저장을 완료하지 못하는 문제가 발생 한다.
- 대체로 오류가 발생하지는 않는다.
- 장비와 SCADA간의 통신이 끊어지는 경우
- tcp 방식의 OBCon Proxy의 문제점
- tcp 연결이 계속 유지되므로 Proxy cluster 개수만큼 사용되지 못한다.
- OBCon SCADA와 OBCon Proxy 연동 방식에 database 추가
- 중개 테이블 생성 (ProxyPipe)
- id
- siteKey
- type
- deviceKey
- json
- 등록일 : 오래된 데이터 삭제
- 전송 실패 횟수 : 여러번 오류가 발생한 데이터 삭제
- 중개 테이블 생성 (ProxyPipe)
최종 수정일: 2024-06-21 22:51:05
이전글 :
다음글 :