지난 6~7편에서는 이산형/프로세스 제조, 다양한 업종들에 적용할 수 있는 자동화 운용 기술 속의 IT의 역할을 살펴보았습니다.
이어서 오늘 이 시간에는 공장 내의 물질적 개체들인 기계들이 어떤 식으로 상호 작용하는지 예를 통해 알아보고, 지능적인 생산에 대해 생각해 보겠습니다.
● ‘나’와 다른 ‘너’와의 상호 작용을 위한 IT의 역할(6편) : http://blog.lgcns.com/701
● ‘나’와 다른 ‘너’와의 상호 작용을 위한 IT의 역할(7편) : http://blog.lgcns.com/706
공장 내 개체(기계)들의 상호 작용 모습
지난 글에서는 ‘개집 만들기’를 가내 수공업으로 소개했었는데요. 오늘은 개집이 기계와 로봇을 사용해서 생산된다는 가정 하에 이야기를 시작하겠습니다.
현재, 공장 시스템은 이산 반복형 Flow Shop 형태입니다. 한 개를 만들기 위해 이러한 시스템을 구축한다는 것은 조금 억지 같으니, 수요 예측을 바탕으로 대략 하루 평균 100개 정도 만든다고 가정해 보겠습니다. 그리고 우선 단일 제품 생산으로 한정하고 시작하겠습니다.
위의 그림을 보면, 재료 적재 구역에서 로봇이 가져 온 원자재를 기계 1(선반)에서 자릅니다. 그리고 이것을 로봇이 가져가서 기계 2(머시닝 센터)에서 마무리하고, 다시 로봇이 들고 조립 컨베이어 앞 버퍼에 정리하는데요. 즉 1-2-3-4 작업으로 원재료를 자르고 난 후, 5-6-7-8-9 작업으로 7개 판을 가공하는 것이 반복되는 형식인 것입니다. 그리고 7개 판이 끝나면, 다시 1의 작업으로 돌아옵니다.
화살표들은 어떤 작업에서 재료/부품/제품이 흘러가는 방향을 말해 주는데요. 화살표의 각 끝 단에는 제품의 이동과 가공을 위해 상호 작용하는 설비 자원들이 연결되어 있습니다. 예를 들어, ‘작업 번호 1’이 실제로 수행되기 위해서는 작업의 주체인 로봇에게 ‘재료를 적재 구역(자원 A)에서 기계 1(자원 B)로 옮겨라’라는 지시/사건이 있어야 합니다. 이때 그 사건은 어떤 전제 조건이 만족하느냐에 따라 발생하죠. 그리고 그 사건에 따라 ‘A 자원에 놓여 있는’ 현재 상태에서 ‘B 자원으로 옮겨짐’이란 새로운 상태에 도달하게 됩니다.
그러나 이렇듯 비교적 간단해 보이는 현재의 시스템들도 기계에게 일을 시키기 위해 따져 보면, 그렇게 간단하지만은 않습니다. 또한 여기에서 다루는 상호 작용에 대한 기본 원리는 어떤 곳에서도 적용이 가능한데요. 앞의 글에서 다뤘던 것처럼 기계/설비들이 센서나 지시 메시지를 통해 필요한 외부 정보를 모으고, 내장 제어기나 PLC를 통해 판단하고, 개별적으로 제어한다고 가정해 봅시다.
그렇다면 어떤 것들이 고려되어야 할까요? 각각의 개체들은 자기가 필요한 정보만 제대로 알면 되는데요. 따라서 자동화된 생산을 위해 고려되어야 하는 기본적인 정보, 전제 조건들은 대략 어떤 것들이 있는지 알아보겠습니다.
자동화된 생산을 위해 고려해야 할 점들!
- 앞서 100개라고 이야기했지만, 일반적으로 가상 비즈니스 시스템으로부터 현재 재고를 파악하여, 그날그날 어떤 제품을 몇 개나 만들어야 할지 정해야 합니다. 그리고 굵직하게 어떤 순서로 작업을 진행하고, 그때 어떤 자원(기계, 사람 등)이 쓰일지에 대한 정보가 필요합니다.
- 위 자료의 작업 번호표와 같은 ‘공정 절차(Routing)’가 필요합니다. 또한 그림의 CNC 기계가 담당하는 ‘작업 7’에서는 앞/뒤/옆/바닥 등을 어떤 순서로 깎아야 하고, 한 번에 얼마씩 가공해야 하는지 등의 ‘세부적 일정 계획(Detailed Scheduling)’도 필요하죠. 마지막으로 어떤 자원 사용에 대한 규칙들, 예를 들어 어떤 우선 순위로 로봇을 사용할 것인가 하는 등의 자원 및 대기 행렬 사용에 대한 규칙들도 있어야 합니다.
- 또한 미리 제작된 제품의 도면과 기계가 이해할 수 있는 형태로 변환된 가공 정보(CAD-CAM)를 바탕으로 머신 툴의 동작을 가동하기 위해서는 미리 제작된 지시 사항, 머신 코드 및 각종 파라미터(툴의 종류, 툴패스, 회전 속도 등)들도 있어야겠죠. 로봇의 경우, 정해진 동선, 시퀀스 등 로봇 프로그램이 필요할 것입니다.
- 재료 적재 구역이나 WIP, 조립 버퍼(수동적 자원, 재료/부품 적재)는 위 그림의 1,4,5,9,10번 작업과 연관이 있는데요. 센서를 통해 재료/부품이 있는지 없는지, 얼마나 있는지 등의 정보를 파악해야 합니다. 또한 7에서 가공이 끝난 각 피스는 파트 별로 얼마나 컨베이어 앞에 적재되어 있는지, 규칙에 의거해 컨베이어를 움직일 최소한의 쌍이 존재하는지 등도 고려해야 합니다. Work-In-Process(WIP) 정보를 이곳에서 확인/전달해 줄 수 있습니다.
- 공작 기계(CNC: 반동적 자원, 툴을 이용한 재료 가공/변형 주체)는 위 그림의 2,3,4,6,7,8번 작업과 연관됩니다. 2,6,8 작업들과 연관된 로봇은 CNC의 입장에서는 ‘나’와 다른 ‘너’일 뿐입니다. 즉 가공을 시작하기 위해 재료가 CNC의 고정대에 제대로 놓여지기만 한다면, 그것을 갖다 놓은 자원이 사람, 로봇, 심지어 개라도 상관없다는 거죠. 그래서 결국 CNC의 입장에서는 자기가 신경 써야 하는 것들에 대한 정보만 제대로 파악하면 됩니다. 원활한 상호 작용을 위해서는 로봇의 상황 또한 파악할 필요가 있지만, 사실 로봇-CNC 둘 중 하나만이라도 제대로 양쪽의 상황을 파악하거나, 혹은 상위 레벨의 어떤 조정자가 전체의 모든 상황을 수집해 파악할 수도 있을 것입니다. 그래서, 그 파악이 끝나면 비로소 조정자를 통하거나 로봇에게 직접 다음과 같은 두 가지 요청들을 할 수 있고, 다음과 같이 자신과 관계된 작업을 수행할 수 있습니다.
- 로봇에 대한 작업 요청: 재료를 나에게 가져와라. 다 끝났으니 재료를 나에게서 가져가라.
- 자체 작업: 문을 연다/닫는다. 고정대를 연다/닫는다. 가공 사이클을 시작한다/멈춘다.
물론, 현재 로봇이 여유가 있다면 물건을 바로 갖다 놓거나 가져가겠죠. 반동적이라고 하는 이유는 누군가 재료를 갖다 주어야 비로소 작업을 능동적으로 시작할 수 있기 때문입니다. 그래서 결국 위의 그림에서처럼 기계 툴의 ‘Servo, Spindle, Position’ 등 재료를 가공할 주체인 자신에 대한 다양한 정보들이 필요합니다. 또한, 재료가 제대로 기계에 세팅이 되어 있는지, 재료를 가공할 머신 코드가 제대로 로드가 되어 있는지, 문은 제대로 닫혀 있는지 등의 정보를 파악하고 나서야 비로소 어떤 공정 사이클을 시작할 수 있기 때문입니다.
- 로봇(동적 자원, 재료의 이동)은 첫 번째 그림의 1,2,5,6,8,9번 작업과 연관됩니다. 결국 재료의 흐름은 로봇에 의해 좌우되는데요. 그래서 시스템에서 계속 상태가 변화하는 제품과 마찬가지로 로봇은 ‘동적 독립 개체’로서 상호 작용에서 보다 능동적인 역할을 부여 받습니다. 그리고 앞서 CNC와 연동되는 2,6,8 작업에서의 상호 작용을 간소화하기 위해서는 같은 레벨에서의 의사 결정 권한을 로봇이 지니게 하는 것이 좋을 듯 합니다. 그러기 위해서는 내 자신뿐만 아니라 상호 작용에 연관된 모든 개체들에 대한 보다 폭넓은 정보들이 필요하게 되는 것이죠.
즉, 어떤 개체가 나를 필요로 하는지(출발지-목적지), 자기가 잡을 재료가 출발지에 제대로 놓여져 있는지, CNC의 고정대와 문은 열려 있는지, 현재 내 손(End-effector) 혹은 재료를 놓을 목적지(기계의 Fixture나 버퍼의 세부 위치)에 뭔가 있는지 없는지, 놓아도 괜찮은지, 그렇다면 어떻게 움직여서 언제 어디서(x-y-z Coordination) 물건을 잡을지 등의 정보를 요청하게 되고, 고려하게 됩니다. 이 모든 조건이 만족할 때, 비로소 로봇은 정해진 ‘옮겨라’, ‘가져가라’ 등의 작업 사이클을 수행할 수 있게 되겠죠.
위 그림에서 로봇과 CNC 사이의 상호 작용은 왼쪽의 메시지 통신 시퀀스 다이어그램과 오른쪽의 ‘유한 상태 머신(Finite State Machine)’ 제어 모델로 더욱 자세히 표현될 수 있으니 참고하시기 바랍니다.기계들이 서로 이야기하고 있는 것이 보이시나요? 앞서 나열했던 정보들과 관련하여 위 그림의 CNC-로봇 간 상호 작용은 ‘MTConnect’라는 표준화된 프로토콜을 바탕으로 이루어지고 있습니다. 이러한 상호작용 모델은 앞의 글에서도 다루었던 대리자(Agent) 기반의 소프트웨어 가상 인터페이스/API의 형태로 컴파일 되어 각각의 기계 컨트롤러에 상주하게 됩니다
지금까지 살펴본 것처럼, 일단 생각나는 것들만 정리해 보았는데도 고려할 것들은 꽤 많습니다. 얼핏 생각하면 그냥 내가 손으로 만드는 게 차라리 낫겠다 싶겠지만, 사람이 많다면 모를까 하루에 100개를 손으로 만들 수는 없죠. 따라서 초기에 세팅만 잘 해 놓으면, 100개는 거의 비슷한 품질로 만들어질 수 있습니다. 한 달이면 2000개 정도의 개집을 만들 수 있는 것이죠. 그리고 머신 파라미터만 바꾸면 다양한 종류의 제품을 동일한 시스템에서 만들 수 있습니다.
하지만 만약 서로 간에 이런 정보가 동기화되지 않고, 상호 작용이 이루어지지 않는다면 이것은 불가능합니다. 작업 도중 로봇이 기계의 문과 충돌하거나 아니면 로봇이 물건을 들긴 들었지만 놓을 곳이 없는 등의 기본적인 문제들이 발생할 수 있기 때문이죠. 결국 개별적 혹은 전체적인 ‘지능화’는 정보 교류의 완벽한 동기화가 바탕이 될 때, 비로소 가능한 것입니다.
공장이 원활히 돌아가기 위해서는 자동화 속의 IT의 힘이 핵심이라고 할 수 있는데요. 이미 LG CNS에서는 마이크로 소프트의 ‘DiRA(Reference Architecture Framework for Discrete Manufacturing)’를 기반으로 하는 제조 시스템인 ‘Smart Factory’ 솔루션을 개발하였습니다.
세부적으로 살펴보면, ‘글로벌 생산 관리(Global MES)’, ‘제조 실행(ezMES)’, ‘설비 제어(ezControl)’, ‘통합 관제(ezUMS)’, ‘통합 플랫폼(BizActor)’ 등 레벨별로 다양한 기능을 가지는 솔루션들로 구성되어 있는데요. 이는 현재 여러 제조 업체들(두산 인프라코어 등)에서 제조 가상 시스템으로 사용되고 있습니다. 조금 더 자세한 내용은 다음의 포스팅을 참고하시기 바랍니다.
● [Infographics] SMART FACTORY : http://blog.lgcns.com/429
● LG CNS 스마트 팩토리로 효율 높은 공장을 만든다! : http://blog.lgcns.com/522
● Industry 4.0 시대, Smart Factory를 구현하다! -ICT(정보통신기술)를 활용한 제조 시스템 : http://blog.lgcns.com/582
지금까지 공장 내 물리적 개체들인 기계들이 어떤 식으로 상호 작용하는지 살펴보았습니다. 이어서 다음 시간에는 상호작용을 통해 교환된 정보를 바탕으로 어떻게 각 개체들이 보다 더 지능적으로 생산 활동에 참여할 수 있는지에 대해 알아보겠습니다.
l 글 이승엽 연구원