Ⅰ. 서론
제조업의 생산 방법은 점차 노동집약적인 방법에서 제조설비 중심의 기술집약적인 방법으로 변경되어가고 있다. 사람의 노동력을 제조설비가 대체하게 되면서 제조설비의 모니터링과 관리의 중요성이 증대하게 되었다[1]. 또한, 최근 빅데이터 기술은 한정된 데이터에서 새로운 가치를 찾아내는 중요한 기술로 등장하였다. 따라서 제조업의 변화는 기존 제조 공장에 사물인터넷(IoT, Internet of Things), 정보통신기술(ICT, Information Communication Technology), 센서 데이터(Sensor Data), 빅데이터를 융합한 스마트팩토리의 필요성을 증대시켰다.
주변 제조업 강국들은 노동 비중의 저하 및 물류비 감소를 위해 리쇼어링(Reshoring) 등의 방법을 통해 제조업 경쟁력을 확보하고 있으며, 우리나라 또한 제조업 경쟁력 확보를 위해 많은 정책 및 연구가 진행 중이다. 하지만 선진국과의 격차를 줄이기 위해 경쟁력 강화를 위한 차별화된 기술력 확보가 필요하다. 또한, 스마트팩토리는 대기업 위주로 진행 중이며 영세 중소기업의 경우 비용적인 측면으로 도입이 힘든 상태이다. 저비용․고가용성의 특징을 갖는 빅데이터를 도입하여 기업 간 격차를 완화할 수 있다.
변화되는 제조업 환경은 글로벌 제조 기업(Siemens, Rockwell, General Electronics, Mitsubishi etc.)들에 비해 부족한 상태이며, 이를 극복하기 위한 국가 차원의 전략육성이 필요하다. 빅데이터 기반의 스마트팩토리 인프라는 제조설비의 제어에서 기업의 전략 수립을 도울 수 있다.
산업 비중의 30%를 차지하는 국내 상황에 맞추어 정부에서는 2020년까지 1만 개 이상의 스마트팩토리 건설을 추진하는 ‘제조업 혁신 3.0’정책을 진행하고 있다. 표 1은 국내 여러 기업 들에서 빅데이터 기반의 스마트팩토리 구축 사례이다.
제 4차 산업혁명에 발맞춰 국외에서는 Industry 4.0(독일), AMP 2.0(미국), IoTUK(영국), Industry Revitaliztion Plan(일본) 등의 정책을 발표하였다. 표 2는 국외 여러 기업 들에서 빅데이터 기반 스마트팩토리 구축 사례이다.
본 논문의 구성은 다음과 같다. 2장에서는 빅데이터 기반의 실시간 제조설비 데이터 처리 및 분석 시스템과 관련된 기술들에 대하여 설명하고, 3장에서는 빅데이터 기반의 실시간 제조설비 데이터 처리 및 분석 시스템의 설계 및 구현내용에 대하여 설명한다. 4장에서는 본 논문의 내용을 정리하며 기대 효과와 활용 방안에 대하여 설명하고 마친다.
Ⅱ. 관련 기술
1. 빅데이터(Big Data)
빅데이터란 기존 데이터베이스가 다루는 정형 데이터뿐만 아니라 xml, html 문서와 같은 반정형 데이터와 음성, 이미지, 동영상과 같은 멀티미디어 데이터인 비정형 데이터를 관리하고, 이러한 데이터로부터 가치를 창출하고 결과를 분석하는 기술을 의미한다. 빅데이터의 특징으로는 데이터의 양(Volume), 데이터의 종류(Variety), 데이터의 속도(Velocity)를 갖는다[2]. 국가별 빅데이터 동향은 미국, EU, 영구, 싱가포르, 호주 등 주요 선진국에서 중요성을 인식하고 있으며, 빅데이터 활성화를 위한 다양한 노력을 기울이고 있다. UN도 정책의 수립 및 집행에 빅데이터를 활용하고 있다[3].
2. MongoDB
10gen에서 개발한 대표적인 NoSQL(Not Only SQL)로MongoDB는 BSON 형식으로 데이터를 관리하는 문서기반 데이터 저장소로써 RDBMS의 확장성 문제를 해결할 수 있으며, SQL 서버 대신 로그 포맷 저장 방식의 제약이 적고 대용량 데이터를 다루기 적합하다. MongoDB는 입출력 성능이 우수하며 비정형 데이터뿐만 아니라 다양한 데이터를 수용할 수 있다[4]. 문서지향 데이터베이스인 MongoDB는 기존 RDBMS의 행 개념 대신 문서를 사용한다는 의미로 최근 빅데이터 처리에 사용되는 유연한 데이터 처리 모델이다. 또한, MongoDB는 문서와 키 값을 미리 정의하지 않으며 고정된 형태의 스키마가 존재하지 않는다. 따라서 필요할 경우 필드의 추가, 제거가 간단하며 이로 인해 개발자의 개발 속도가 향상된다[5].
3. R programming
R 프로그래밍 언어(이하 R)는 통계 계산과 그래픽을위한 프로그래밍 언어이자 소프트웨어 환경이다. R은 통계 소프트웨어 개발과 자료 분석에 널리 사용되고 있으며, 패키지 개발이 쉽기 때문에 통계학자들 사이에서 통계 소프트웨어 개발에 많이 쓰이고 있다. R은 사용자가 제작한 패키지를 추가하여 확장 기능을 사용할 수 있다. R의 또 다른 특징은 그래픽 기능으로 다양한 그래프로 표현할 수 있다. R은 통계 계산과 소프트웨어 개발을 위한 환경이 필요한 통계학자와 연구자들뿐만 아니라 행렬 계산을 위한 도구로도 사용될 수 있으며, 이 부분에서 GNU Octave나 MATLAB과 비슷한 결과를 보여준다. R은 Windows, Mac OS 및 리눅스를 포함한 UNIX 플랫폼에서 이용할 수 있다[6].
4. IoT(Internet of Things)
사물인터넷(IoT)이라는 용어는 애쉬턴이 처음 사용하였고 2013년 8월에 옥스퍼드 영어사전에 공식 등재되었다. 사물인터넷의 사전적 의미는 ‘일상의 사물들이 네트워크에 연결되어 데이터를 주고받을 수 있는 인터넷의 한 형태’라고 정의하고 있다[7]. IoT가 스마트 혁명을 일궈 낼 중요 기술과 서비스로 주목받으면서 기업 간 경쟁도 치열해지고 있다. IT와 비IT 산업을 연결하거나 일상생활에 IT를 융합시키는 연결고리로 활용되면서 다양한 서비스가 출현하고 있다[8]. IoT 기기들의 데이터를 효율적으로 처리하기 위하여 CoAP(Constrained Application Protocol), XMPP(Extensible Messaging and Presence Protocol), MQTT(Message Queue Telemetry Transport)와 같은 다양한 통신 수단이 등장하였다[9].
5. 스마트팩토리(Smart Factory)
스마트팩토리는 ICT(Information and Communication Technology)와 제조업이 융합하여 산업기기와 생산과정이 모두 네트워크로 연결되고 IoT, CPS(Cyber-Physical System), 빅데이터, 클라우드 등의 ICT 기술을 통해 기계 간 데이터를 주고받으며 생산 방식의 전 과정이 자동화 및 정보화되어 여러 공장이 하나의 공장처럼 실시간 연동 및 통합되는 생산 체계이다[10].
Ⅲ. 설계 및 구현
본 논문은 제조설비에서 실시간으로 발생하는 데이터들을 수집 및 저장하고 실시간으로 데이터를 처리 및 분석하여 시각화하는 것을 목표로 한다. 그림 1은 전체 시스템 개념도이며, 실시간으로 제조설비 데이터를 수집하여 분산 저장 및 처리하는 프로세스와 실시간 설비 데이터를 분석 및 시각화하는 프로세스를 포함한다.
그림 1. 전체 시스템 개념도
Fig. 1. System concept diagram
MTConnect는 공장 설비의 다양한 장비를 모니터링하기 위한 소프트웨어 도구이다. 다양한 공장 설비 데이터를 Agent를 통하여 합치고, 이것을 사용자에게 보여주어 상호운용성을 높일 수 있다. MTConnect는 실시간으로 이기종 설비 로그 데이터를 모니터링할 수 있지만, 내부 자료구조가 큐의 구조로 되어있으며, 과거의 데이터는 삭제되기 때문에 로그 데이터 저장을 위한 구조가 필요하다.
그림 3에서 보는 것과 같이 MTConnect로부터 수집한 로봇 데이터를 CSV 파일 형태로 저장하였다. MongoDB를 사용하면 데이터를 원본 그대로 저장할 수 있으며, MySQL과 같은 RDBMS와 달리 테이블 스키마가 없기 때문에 MTConnect가 사용하는 SNMP 프로토콜을 저장하는데 유리하다.
그림 3. 로봇 팔 데이터
Fig. 3. Robot Arm data
그림 2에서 보는 것과 같이 MTConnect에서 수집한 CSV 파일을 mongoimport 명령어를 사용하여 MongoDB 에 저장하였다.
그림 2. 로봇 팔에서 생성된 CSV 데이터 Import
Fig. 2. Import CSV data generated from Robot Arm
그림 4에서 보는 것과 같이 MongoDB에 정상적으로 데이터가 저장된 것을 확인할 수 있다. _id는 MongoDB에서 사용되는 고유키 값으로, 데이터가 생성될 때 자동 으로 생성이 되며, Time은 설비 데이터가 센싱되는 시점이며, Goods는 설비의 ID를 의미한다. Exevution_Mode는 동작 모드, Load는 로봇 팔이 물건을 운반 중인 상태에 관한 여부를 나타낸다. Vechicle_Position은 로봇 팔을 운반하고 있는 기계의 위치 값을 의미하고, Vechicle_Direction은 로봇 팔을 운반하고 있는 기계가 바라보는 방향을 의미한다. J1~J6은 로봇 팔의 관절을 나타내며, Angle은 관절의 각도, Direction은 관절에달린 모터의 회전 방향, Speed는 모터의 회전 속도를 의미한다.
그림 4. MongoDB에서 확인한 로봇 팔 데이터 1
Fig. 4. Robot Arm data checked at MongoDB 1
그림 5에서 보는 것과 같이 초당 패킷량을 산출하기 위해 MongoDB의 질의어(MQ)라는 변수에 저장하고, MQ 변수를 통해 정제된 데이터를 result collection에 저장하였다.
그림 5. MongoDB에서 확인한 로봇 팔 데이터 2
Fig. 5. Robot Arm data checked at MongoDB 2
그림 6에서 보는 것과 같이 정제된 데이터는 다음과 같이 JSON 형태로 출력되는 것을 확인할 수 있다.
그림 6. 정제된 result Collection 데이터 확인
Fig. 6. Checking refined result Collection data
그림 7에서 보는 것과 같이 정제된 결과인 SFMongo Collection을 result.csv 파일로 변환하여 웹서버와 R 서버로 전송하였다.
그림 7. result Collection을 CSV 파일로 출력
Fig. 7. Output result Collection as CSV file
그림 8에서 보는 것과 같이 MTConnect로부터 AGV(무인 운반 차량) 데이터를 수집하여 CSV 파일 형태로 저장하였다.
그림 8. result Collection을 CSV 파일로 저장
Fig. 8. Save result Collection as a CSV file
그림 9에서 보는 것과 같이 MTConnect로부터 수집 된 AGV(무인 운반 차량) 데이터를 MongoDB에 저장하였다.
그림 9. MTConnect로부터 수집된 AGV CSV 데이터 Import
Fig. 9. Import AGV CSV data from MTConnect
그림 10에서 보는 것과 같이 AGV Collection이 정상적으로 저장된 것을 확인할 수 있다. _id는 MongoDB의 키 값을 의미하며, 데이터가 생성될 때 자동으로 생성된다. Time은 MTConnect에서 데이터를 생성한 시간을 의미한다. agvavail은 AGV의 가용상태를 의미하며, agvestop는 작업상태를 의미한다. agvv는 AGV의 속도, agvd는 AGV의 방향, x와 y는 AGV의 좌표 값, ang는 AGV가 바라보는 방향, loadstate는 AGV의 적하 상태, Lweight는 적하 무게, leftv는 왼쪽 바퀴의 속도, rightv는 오른쪽 바퀴의 속도, bcharged는 배터리 충전 상태, bconsub는 배터리 사용량, bremains는 배터리의 잔량을 의미한다.
그림 10. MongoDB에서 확인한 AGV 데이터
Fig. 10. AGV data checked at MongoDB
그림 11에서 보는 것과 같이 y 컬럼의 값은 “UNAVAILABLE”을 포함하고 있기 때문에 정규화할 필요가 있으므로 0으로 갱신하였다.
그림 11. MongoDB에서 문자열 정규화
Fig. 11. Normalize strings in MongoDB
그림 12에서 보는 것과 같이 AGV 데이터를 이용하여 시간에 따른 X, Y 좌표의 이동을 분석하고자 하므로 x, y, 시간을 제외한 불필요한 필드들을 제거하였다. 그리고 정제 과정을 거쳐서 필요한 필드들만 남은 것을 확인할 수 있다.
그림 12. 시간과 x, y 좌표를 제외한 컬럼 제거
Fig. 12. Remove columns except Time, x, y
그림 13에서 보는 것과 같이 mongoexport 명령어를 통해 CSV로 변환하고 변환 파일을 R 서버로 전송하였다.
그림 13. 처리를 완료한 데이터를 CSV로 변환
Fig. 13. Convert processed data to CSV
그림 14에서 보는 것과 같이 웹서버에서는 실시간 결과를 그래프로 보여주며, 시간의 흐름에 따라 결과 내용을 갱신하였다. 이때 Ajax를 통해 포스트백이 없는 화면을 제공하였다. X축은 시간의 흐름을 나타내고 Y축은 데이터 트래픽의 양을 나타낸다.
그림 14. 웹서버를 통해 확인한 실시간 트래픽 변화
Fig. 14. Real-time traffic changeds seen through web servers
그림 15에서 보는 것과 같이 R 서버에서 시간의 흐름에 따른 패킷의 양에 따른 그래프를 나타내며, 그래프를 이용하여 패턴 또는 규칙 등을 찾아낼 수 있다. X축은 관측된 시간을 나타내고, Y축은 패킷의 양을 의미한다.
그림 15. R의 ggplot을 통해 확인한 트래픽의 양
Fig. 15. Amount of traffic seen through ggplot in R
그림 16에서 보는 것과 같이 R 서버에서 시간의 흐름에 따른 x, y 좌표를 나타내며, 이 그래프를 이용하여 AGV의 이동 경로를 파악할 수 있다.
그림 16. 시간의 흐름에 따른 X좌표와 Y좌표의 이동 값
Fig. 16. X and Y coordinate movement values over time
Ⅳ. 결론
본 논문에서는 스마트팩토리를 위한 빅데이터 기반 실시간 제조설비 데이터 처리 및 분석에 관한 연구를 하였다. 제조 기술의 발달로 제조업 패러다임이 노동집약적에서 기술집약적으로 변화하고 있으며 이에 따른 제조설비의 분석/관리의 필요성이 증대되었다. 이를 실현하기 위해서는 먼저 제조설비들의 실시간 데이터를 수집․저장하고 데이터를 처리하는 기술이 요구된다. 본 연구는 제조 공장의 스마트팩토리화에 중요한 위치를 차지하고 있으며, 제조 기업의 위험관리 및 의사결정 기술로 활용할 수 있을 것이다. 국내 중소 제조업체 중 대다수는 연구소를 보유하기 힘든 환경에 처해있기 때문에 변화하는 환경에 대처하기가 쉽지 않으며, 기술의 획득에 어려움을 겪고 있다. 본 연구의 주요 핵심인 빅데이터 관련 기술들을 토대로 저비용․고가용성 스마트팩토리로 개선하는 방향을 제시할 수 있으며 기술 이전을 통해 국내 제조업 경쟁력 강화에 이바지 할 수 있을 것이다. 또한, 스마트팩토리에 관한 문제의 원인 분석, 의사결정을 위한 선결과제로 활용 할 수 있을 것이다.
References
- Dong-Beom Ko, Jeong-Min Park, "A Study on the Visualization of Facility Data Using Manufacturing Data Collection Standard", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 18, No. 3, pp. 159-166, Jun 2018. DOI: https://doi.org/10.7236/JIBC.2018.18.3.159
- Gil-Ha Park, "A Trends of Big Data Processing for Digital Healthcare", The Journal of Korea Creative content Association, Vol. 15, No. 1, pp. 35-37, March 2017.
- Chang-Won Ahn, Seung-Ku Hwang, "Big Data Technologies and Main Issues", The Journal of Communications of the Korean Institute of Information Scientists and Engineers, Vol. 30, No. 6, pp. 10-17, February 2012.
- Yong-Hyun Kim, Eui-Nam Huh, "Dynamic Big Data Analytics System Architecture on Hadoop and MongoDB", Proceedings of Symposium of the Korean Institute of communications and Information Sciences, pp. 128-129, January 2014.
- Hyun-Joo Kim, "Web Service Data Processing Using Database Mongo", The Journal of the Korea Academia-Industrial Cooperation Society, pp. 233-236, November 2014.
- Jong-Ki Lee, "A Case Study on Practical Accounting Processing of Big Data Using R Programming", Korean Computers and Accounting Review, Vol. 23, No. 1, pp. 1-22, June 2015.
- Dong-Jo Noh, Tae-Ik Son, "A Study on the Internet of Things Services in University Libraries focused on S University Library", The Journal of the Korean Biblia Society for Library and Information Science, Vol. 27, No. 4, pp. 301-320, December 2016. https://doi.org/10.14699/kbiblia.2016.27.4.301
- Cheol-Su Lim, "IoT Service Application Cases Analysis and Industrial Promotion Issues", The Journal of Korean Institute of Next Generation Computing, Vol. 11, No. 6, pp. 41-50, 2015.
- In-Hwan Jung, "A Real Time Location Based IoT Messaging System using MQTT", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 18, No. 4, pp. 27-36, August 2018. DOI: https://doi.org/10.7236/JIIBC.2018.18.4.27
- Jeong-il Yim, Yong-Woon Kim, "Functional Model for Smart Factory", Proceedings of Symposium of the Korean Institute of Communications and Information Sciences, pp. 208-209, June 2015.