[AI 자동화] 생산현장 장비(Moxa) 초기화 스크립트 개발기

화장품 제조업 IT팀으로 근무하며 현업의 문제들을 AI, 자동화로 해결하고 있다. 이런 과정을 하나씩 기록 해볼려고 한다 ! 


첫번째 기록. "생산현장 Moxa 장비 초기화 자동화"


1. 기존 상황 

- 생산현장의 구조 

현재 회사의 생산 칭량실은 이탈리아 본사에 있는 서버(VM)에 원격으로 접속해 칭량시스템을 사용을 한다. 

저울로 칭량을 하는데, 저울에 나오는 값을 네트워크를 통해 PC의 칭량시스템과 통신을 해야한다. 

저울 자체만으로는 통신 기능을 가질 수 없기에 Moxa라는 통신 중계 장비를 부착해 사용하고 있다. 


- 문제점 

여기서 문제는,, 이 생산 구조는 10년전에 구축되었으며 장비 변경 없이 그대로 사용하고 있어 매우 노후화가 되었다는 것이다. 

그로인해 저울과 회사 네트워크를 연결하는 Moxa 장비가 간헐적으로 느려지기 때문에, 칭량실에서 생산하다가 너무 느려지면 그때마다 IT팀에게 Moxa 장비를 재부팅 해달라고 요청하는 것이다. 

물리적으로 장비를 재부팅하는게 아니라, Moxa의 관리 웹페이지에 접속해서 재부팅을 클릭하면 되는 단순한 일이었다. (Moxa 관리 페이지에서 재부팅을 하면 통신 상태가 초기화되서 통신 속도가 느려지는 게 해결이 된다. )


IT팀에서 겪는 문제는 아래 2가지 였고, 

문제1) Moxa는 총 23개가 있어서 수동으로 일일이 재부팅을 진행하면 다소 시간이 걸림 

문제2) 재부팅을 정기적으로 하지 않으면 통신 속도 문제가 언제 생길지 모르는 것


생산 현장에서는 "Moxa가 느려져 IT팀에서 재부팅을 하지 않으면 그때까지 생산에 차질"이 생기는 큰 문제가 있었다. 


- 해결방법 

이 문제들은 자동으로 Moxa 통신값을 초기화하는 스크립트 정기실행으로 충분히 가능해보였다. 

자동화 프로세스가 실행되게 하는 시간적 제약을 줄이기 위해 항상 켜져있는 이 VM 을 활용했다. 

직원 개인의 PC에서 실행되게 하면, 그 컴퓨터가 꺼져있을때 Fail이 되기 때문이다. 

칭량시스템 있는 본사 VM은 계속 켜져있는 상태이기 때문에 생산을 하지 않는 주말 새벽에 자동으로 초기화가 가능하게 된다. 


자동화 스크립트를 개발할 때 판단한 부분은 아래의 조건들이다. 

조건1) 일요일 01:00AM에 Moxa 재부팅이 자동 실행되게 할 것 

조건2) VM 안에서 실행되게 할 것 

조건3) Moxa 계정 비밀번호는 암호화가 필요

조건3) 실행 전 후에 Ping 테스트를 해서 해당 Moxa가 정상적인지 확인할 것 

조건4) 실패/성공에 대한 로그를 남겨 이력 관리를 할 것 



2. 개발 과정 

- 판단과 AI 활용 부분 

웹사이트에 접속해서 재부팅을 하는 방식 외에도 Moxa 관리툴이나 자동화에 연계할 수 있는 API 등 기술이 있는 지 확인을 먼저했다. 

Moxa 공식에서 제공하는 'MCC Tool' 프로그램을 AI (Codex)가 찾아줬다.

장비를 명령줄로 조회, 관리하는 Windows 도구이고, Moxa 지원 페이지에서 다운로드 받아서 사용 가능한걸 확인했다. 


- 해결 방법과 도구 선택

수동으로 처리하던 방식처럼 Moxa 관리 웹페이지에 접속해 재부팅하는 방식이라면 Power Automation를 선택했겠지만, 

Moxa 회사에서 제공하는 공식 프로그램인 MCC Tool을 사용하면 명령어로 제어가 가능하기에 자동화 스크립트로 선택했다. 

그리고 사용한 프로그래밍언어는 PowerShell. Windows Server라서 별도의 Python 설치없이 PowerShell 만으로도 처리가 가능하다. 


- 제작 과정과 주요 수정

> VM 환경 확인: 이탈리아에 있는 VM이라 시간대가 한국시간으로 설정되어있는지, 운영체제 버전(windows 2012)를 확인했고, Moxa 공식 프로그램인 MCC Tool를 다운로드 함  

> Moxa 장비와 대상 IP 확인: 총 23개 IP와 전부 동일한 NPort 5150A 모델명 


> 자동화 파일

스크립트를 3개로 나눠서 서로 다른 일을 분리하고 실수를 줄이도록 했다. 

1) 암호관리용: Moxa 계정 정보를 한 번 입력받아 현재 Windows 사용자용으로 암호화 저장

2) 재부팅 작업 담당: 기본 실행은 미리보기이며, -Execute 옵션이 있을 때만 실제 재부팅

재부팅을 진행하기 전에 전체 Moxa 장비의 Ping을 확인하고, 응답하지 않는 장비가 있으면 작업을 진행하기 않고 로그로 기록하도록 함 

장비를 하나씩 재부팅하면 Ping 이 끊긴 뒤에 다시 Ping이 응답해야 다음 장비로 넘어가도록 구성했음

3) 정기작업: 매주 월요일 오전 1시(KST)에 실행하도록 작업 스케줄러에 등록



3. 결과와 확인된 효과

자동화 프로세스를 만들기 전에는 월별 최소 2회 이상은 요청했으나, 도입 후에는 수개월간 초기화 요청을 0회 받았다. 



4. 총정리 

- 배운 점


- 앞으로 개선할 점




댓글

이 블로그의 인기 게시물

KT 에이블스쿨 : 6-7차 미니프로젝트 - 제안서 기반 솔류션 기획 및 설계

KT 에이블스쿨 : 핀테크 아이디어 공모전

쿠팡 제품