PLCReport 작업의뢰
2015년 여름 가끔 같이 일을 했던 사장님한테 아르바이트 의뢰가 들어옵니다. PLC랑 통신을 해서 리포트를 생성해 주는 프로그램 작업 의뢰가 들어왔는데 저한테 할 수 있는지 물어보시더군요.
그 사장님이 지금 하는 일이 HMI(설비 모니터링) 작업을 하고 있는데 의로 처에서 기존에 있던 리포트 작업까지 추가해 달라고 해서 리포트 프로그램을 저에게 맡기고 싶다는 의뢰였습니다.
제가 회사를 다니기 때문에 평일에는 힘들고 주말에 가서 해도 되면 해드리겠다고 이야기를 하고 (계약서나 그런 거 작성을 하지 않고) 주말에 일하는 부분이 OK 되어서 일을 시작했습니다. 금액은 처음에 간단한 거라 생각하고 적게 불렀는데 생각보다 많이 주신다고 하여 이걸로 무엇을 할까 하는 생각도 했었죠
주말에 인천에서 만나 차를 타고 현장으로 갔습니다. 이미 PLC랑 통신해서 HMI 작업은 거의 마무리 단계이고 기존에 리포트 출력해 주는 프로그램이 있는데 이거랑 똑같이 만들어 주면 된다고 하시면서 리포트 프로그램을 열어서 조회하는 부분이랑 엑셀로 다운로드하는 기능을 보여주셨습니다.
프로그램을 보니 VB 6.0으로 제작되어 있는 거 같았습니다. 오래된 프로그램의 느낌이 들었어요! 제작사가 연락이 안 돼서 수정도 안되고 PLC가 변경되었는데 반영도 안되고 같았습니다. 그래서 저에게 의뢰가 들어오게 된 거겠지요
프로그램작업
리포트 프로그램 화면 캡처해서 USB에 담아오고 PLC 어드레스 정리된 엑셀을 받아서 우선 집으로 왔습니다. 오는 길에 전기 공사하시는 분의 차를 얻어 타고 오는데 “이런 일 많이 해봤느냐.. 나한테 이런 일이 많이 들어오는데 해줄 수 있느냐 ” 그런 이야기를 들었습니다.
집에 오면서 아! 이렇게 투잡을 시작하는구나 하는 생각이 들었습니다.
그렇게 해서 회사를 다니면서 주중에는 회사일을 하고 퇴근 후 아르바이트 일을 했습니다. 간단히 PLC랑 통신하는 데몬을 만들고 데몬에서 일정 시간 혹은 특정 어드레스 값이 1이 될 경우 CSV 파일로 저장하는 기능을 만들었습니다.
그리고 그 CSV 값을 조회하는 프로그램도 만들고요. 나중에 PLC 어드레스가 바뀔 경우 프로그램 수정하면 귀찮을 거 같아서 어드레스를 INI에 저장해 놓고 불러다 사용하게 만들었습니다. 물론 PLC 주요 어드레스는 코딩을 노 처리했고요.
테스트
그렇게 약 2주가 지나 프로그램 설치 테스트를 하러 주말에 갔습니다. 데몬을 실행해 보니 PLC 값을 잘 읽어 옵니다. CSV 값을 저장을 못하는데 드라이브 경로 설정이 잘못돼서 INI에 경로설정하는 부분도 포함해서 수정합니다. 현장에 가보니 잘못 정리된 어드레스가 있어서 PLC 어드레스 다시 정리해서 주면 바꿔 주기로 하고 나머지 조회하는 프로그램을 잘 되는 것 같다면서 점심을 얻어먹고 집으로 갔습니다.
집에 와서 프로그램을 수정해서 수정본을 메일로 발송하였습니다.
그렇게 현장에는 가지 않고 퇴근 후 몇 가지 추가사항을 수정한 후 메일로 전달하였습니다. 전화 통화로 잘 되는지 확인하여 프로그램을 완성하였습니다.
프로그램 스크린샷 및 정보


- PLC에서 정보를 받아(어드레스 값들) 특정 비트의 신호가 오면 가지고 있던 값을 CSV 파일에 저장해서 리포트 프로그램에서 날짜별로 조회가 가능한 프로그램입니다.
- PLC에서 받는 어드레스 값은 약 620태그
- 저장 비트 PLC1.B1B5에 값이 살면 620개 태그에 저장된 값을 CSV 파일 형태로 저장합니다.
- 데몬이 OPC 클라이언트 역할을 하기 때문에 어떤 OPC서버에 접속이 가능합니다.
- 처음에 태그 정보들을 DB에 저장하려고 했지만 큰 시스템도 아닌데 DB 까지는 필요 없을 거 같아서 파일로 저장을 합니다.
- 날짜별로 태그 값을 바꿔야 하면 INI 파일을 바꾸면 되고 리포트 타이틀도 바꾸고 싶으면 INI를 바꾸면 되도록 프로그램을 만들어 놨습니다.