고급 개발자로 가는 길

키오스크 모드 웹 어플리케이션

키오스크 모드 웹 어플리케이션 개발

다크엔지니어 2020. 11. 29. 11:38
반응형

시스템 모니터링 인터페이스 줄여서 SMI 를 개발하였다. 흔히 HMI 랑 비슷한 개념이라고 보면 될거같다.

우선 보드는 Raspberry Pi 4 model B 시리즈를 선택하였다. RAM 4GB 스펙이다.

보드에 ubuntu OS 를 Fusing, 그리고 크로미움에 웹 어플리케이션을 통해 키오스크 모드로 모니터링 시스템을 제공한다. ~는 컨셉이다.

 

Rsap 에서는 아래 명령어를 통해 config 설정을 할 수 있다.

sudo raspi-config

 

IP 설정과 키오스크 이미지를 올려 키오스크 환경을 만들어야 한다.

•	vi ~/.xsession

 

NodeRed 를 설치해 준다. NodeRed 는 영국서 만들어진 NodeJS 기반의 JavaScript 개발 도구이다.

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

 

키오스크 환경이 만들어지면, NodeRed 자동시작을 위해 설정을 해준다.

sudo systemctl enable nodered.service

 

실제 사용하다보면 Node Red 에서 Log Message 를 남기기 때문에 장시간 사용 시 log 도 비워줘야 메모리 공간이 확보

된다. 

 

나머지는 Node Red JavaScript 로 코딩만 잘하면되는데 관련 내용으로는~

우선 모니터링 하기 위한 데이터는 Motion Board 의 메모리맵에 존재한다. 그러므로 Modbus TCP 통신을 통해

보드에 접근하여 FuncCode 를 통해 라운드 로빈 방식(우선순위 동일)으로 해당 어드레스에 접근하여 데이터를 인터페이

스 한다.

 

홈화면에서 접속 가능한 페이지가 2 페이지가 존재하고 홈에서 8개가 가능하기 때문에 총 17개가 필요로 한다.

하지만 , Raspberry Pi CPU 와 MEM 가 성능이 좋지는 않기 때문에. 그 점을 고려하여

 

Connection을 확인하여 Connection 시 에만 2페이지를 통신하여 제공한다. 이럼으로써 CPU 사용량을 줄일 수 있고~

생산량 관련 차트 NodeRed 에서 제공하는 File Write 모듈이 문제점이 많았다. 그래서 Check Sum 기능과 유사한 방식

을 통해 생산량 Data 를 CheckSum 확인한 후 백업 해 놓고 그 데이터를 기반으로 데이터 파싱하는 방식을 결정하였다.

 

아래는 웹 어플리케이션 결과물이다. 실제 수주가 나가는 단계이기 때문에 블러 처리하였다.

 

내용을 많이 생략하기는 했지만..

애초에 Raspberry Pi 가 아닌 STM 시리즈의 보드로 제작하여 진행한다면 Modbus TCP 통신을 통해 

모션보드에 Write 하는 기능들도 추가하여 실제 모션을 조작할 수 있게 하면 진정한 모니터링에 가까운 시스템이 되지

않을까 하는 생각을 해본다.

 

현재 통신 상태는 동일 이더넷 망에 유선으로 연결되어 있어 Modbus TCP 통신이 가능하다.

실제 공정에서 사용하기 위해선 몇가지 선택지가 있다.

1. 각 취출로봇의 공유기를 설치한다. (MAC Adress 가 동일하기 떄문에 공유기가 필요하다) 그리고 허브를 SMI 에 연결     하여 유선으로 통신망을 구성한다. 그럼 허브를 통해 SMI 가 각 취출로봇의 외부 IP 로 접근이 가능할 것이다.

2. 각 취출로봇에 WiFi 리피터를 설치한다. 그리고 SMI 에서는 WiFi 공유기를 설치하여 외부 IP 로 각 취출로봇과 통신       을 한다. 

 

크게 2가지로 분류 할 수 있을것 같다. 허브의 사용과 WiFi 공유기의 사용.. 그리고 WiFi 리피터

또한 한기종의 취출로봇 뿐만 아니라 다른 취출로봇과의 연동을 위해서는 Modbus TCP 뿐만 아니라 Modbus RTU ASCII

통신을 위한 Converter 또한 필요하다.

 

반응형