[쉽고 간단한 안내서] Beckhoff의 머신 러닝(Machine Learning)
Beckhoff에서는 PC 기반
제어 솔루션인 TwinCAT 3 소프트웨어에 완벽하게 통합된 머신 러닝(Machine Learning) 솔루션을 제공하고 있습니다. TwinCAT
3 머신 러닝은 기존에 있던 표준 기술을 기반으로, PC 기반 제어라는 익숙한 시스템
개방성의 이점을 제공하고 있습니다. 또한 TwinCAT 솔루션은
머신 러닝을 실시간으로 지원하므로, 모션 제어와 같이 까다로운 작업도 처리할 수 있습니다. 이번 안내서에서는 점점 수요와 관심이 높아지고 있는 머신 러닝에 대해 다루고 있습니다. |
머신 러닝은 자동화 분야에서 점점 더 중요해지고 있습니다. Beckhoff에서는 TwinCAT 3에서 사용할 수 있는 머신 러닝(Machine
Learning)과 딥 러닝(Deep Learning)을 위한 솔루션을 제공하고 있습니다. 두 용어는 인공지능(AI)와 밀접한 관계가 있는 단어입니다.
TwinCAT 3에서의 머신 러닝은
PC 기반 제어에서 많이 알려진 장점을 그대로 이용합니다. 확립된 표준을 사용함으로써 시스템
개방성이라는 장점, CPU의 발전과 함께하는 지속적인 성능 향상, 머신
러닝과 딥 러닝을 위한 특별한 성능 향상을 통한 GPU 사용까지.
TwinCAT 자동화 소프트웨어에 제공되는 추론 머신은 PLC에서 직접 처리할 수 있으며, 이는 머신 러닝 프로그램의 필수적인 부분입니다. 이러한 기술은 자동화
기술과 데이터 과학의 세계를 통합하고 새로운 아이디어와 응용 프로그램을 위한 토대를 마련하게 됩니다.
머신 러닝은 다양한 분야에서의 새로운 가능성을 보여주고 있습니다. 자동화
기술에서 머신 러닝을 활용하면 유지보수와 프로세스의 최적화 등을 통해 기계의 성능을 향상시킬 수 있습니다. Beckhoff에서는
머신 러닝을 점점 많은 산업에 적용하고자 노력하고 있으며, 최근에는 앵커볼트의 지능형 생산라인을 최적화하는
작업에 적용되었습니다. [링크]
이번 안내서에서는 TwinCAT에서 머신 러닝 기술을 어떻게 제공하고 있는지 살펴보도록 하겠습니다.
Beckhoff의 머신 러닝
아이디어
머신 러닝은 데이터를 기반으로 입력과 출력 사이의 일반화되는 상관 관계를 학습하는 것입니다. 모델을 훈련하여 훈련된 데이터를 수집하고, 추론을 할 수 있게 됩니다.
아래 그림을 통해 살펴보겠습니다. 모델이 훈련되면 학습된 작업에 사용할
수 있게 됩니다. 즉, 추론을 하기 위해서 모델이 사용되는
셈입니다. 훈련하는 단계에서 학습되지 않은 입력들은 모델로 분류가 됩니다. 이를 통해 도출해낸 결과(라벨)에서
관찰된 오류가 있을 때는 다시 훈련 부분으로 넘어가며, 다시 모델을 조정하게 됩니다. 관찰된 오류가 허용될 때까지 적응하는 과정이 계속됩니다. 추론은
결과를 예측할 때 사용합니다.
TwinCAT 3에서의
머신 러닝
가장 중요한 점은, 통합된
TwinCAT 엔진 환경에서 머신 러닝을 사용할 수 있고 기계와 실시간으로 상호작용할 수 있다는 것입니다. TwinCAT 3에서는 TF3800 (TC3 Machine Learning
Inference Engine)과 TF3810 (Neural Network Inference
Engine)이라는 제품을 통해 추론을 위한 요소를 제공하고 있습니다. 이를 머신 러닝
런타임이라고 합니다.
머신 러닝 런타임은 TwinCAT 3에 통합되어 있으며, TwinCAT XAR에서 실행되는 모듈입니다. 때문에 컨트롤러에서
사용 가능한 모든 데이터에 접근할 수 있고 모델을 실시간(Real-time)으로 사용할 수 있게 됩니다.
머신 러닝의 실시간성을 이용하면, 제품을 실시간으로 버리거나 분류를
할 수 있습니다. 제품이 기계를 통과하면서 바로바로 생산 라인에서 해당 제품이 어디에 있는지 알 수
있고, 실시간으로 트리거를 통해 분류할 수 있게 됩니다.
아래 그림에서 볼 수 있듯, TwinCAT XAR에서 머신 러닝 런타임은
통합되어 있습니다. TwinCAT에서는 TcCOM 객체를
통해서 PLC나 C++과 같은 모듈과 머신 러닝 모듈을 바로
연결하여 이용할 수 있게 됩니다.
워크플로우(Workflow)
TwinCAT 3에서의 머신 러닝 과정은 3가지의 단계로 구성되어 있습니다. 워크 플로우를 살펴봄으로써, TwinCAT에서 머신 러닝이 어떻게 동작하는지 알 수 있습니다.
데이터 수집(ML Data Collection)
데이터의 양과 품질은 머신 러닝에 중요한 영향을 미칩니다. Beckhoff에서는
I/O를 비롯하여 TwinCAT Scope View 와 같은
제품을 통해 광범위한 데이터를 수집할 수 있습니다. TwinCAT에서 제공하는 제품들을 간단하게 살펴보겠습니다.
-
TwinCAT Scope: 엔지니어링 단계에서
바이너리 파일이나 CSV, TDMS로 저장할 수 있으며 PLC에서
직접 제어할 수 있습니다.
-
SQL이나 nSQL과
같은 데이터베이스: 데이터베이스는 TwinCAT 3 Database
Server를 이용할 수 있으며, 이는 대량의 데이터를 집계하는데 유용한 도구입니다.
-
클라우드: 클라우드에서 데이터를 수집할 경우에는
TwinCAT 3 IoT 제품을 이용하여 Broker를 통해
데이터를 저장할 수 있게 합니다.
-
TwinCAT 3 Analytics Logger: 실시간으로
동작하거나 동기화되는 주간에 대량의 데이터를 로컬 파일이나 데이터베이스의 Broker를 통해 동기화
되어 저장할 수 있습니다.
훈련(ML Traninig)
수집된 데이터는 데이터와 원하는 결과 사이의 상관관계를 찾거나 사전 처리를 해야 합니다. 이런 처리를 거친 후 적절한 머신 러닝 알고리즘을 이용하고, 모델
트레이닝을 위해 파라미터화 됩니다.
많은 머신 러닝의 프레임워크들이 Python™이나 R을 기반으로
하고 있으며, MATLAB®이나
SAS같은 프레임워크들이 상용화되어 있습니다. 이런 프레임워크에서
제공되는 데이터를 기반으로 훈련을 하게 됩니다.
머신 러닝 프레임워크에서 하는 작업은 데이터의 준비와 선택, 적절한
머신 러닝 알고리즘의 모델링, 그리고 학습된 알고리즘의 평가로 구성됩니다. 이를 통해서 훈련된 머신 러닝 레벨을 도출할 수 있습니다.
훈련이 완료된 모델은 머신 러닝 프레임워크 외부로 나와야 하며, TwinCAT
런타임으로 들어와야 합니다. Beckhoff에서 모델 파일은 ONNX(Open Neural Network Exchange)라는 형식을 이용합니다. ONNX는 Windows OS에서 지원하는 모델이며, 다양한 프레임워크 간의 이동이 간단하다는 장점을 갖고 있습니다. ONNX 파일은
훈련된 모델의 연산과 파라미터를 지정한 다음 TwinCAT에서 더 적합한 형식인 BML형식으로 변환할 수 있습니다.
TwinCAT XAR에서의
전개(ML Runtime)
머신 러닝을 위한 TwinCAT 런타임 환경(TF3800, TF3810)에서는 훈련된 모델 파일(ONNX, XML,
BML)을 컨트롤러에 동적으로 로드할 수 있습니다. 이미 훈련이 되어있는 모델을 TwinCAT 3에 통합하면, 그 후로 머신 러닝에 대한 더욱 깊은
지식은 필요하지 않습니다. 알고리즘은 이미 훈련된 모델 파일에 지정되어 있기 때문에 Function을 이용하여 TwinCAT 프로젝트에 통합하여 이용할
수 있습니다. TwinCAT 프로젝트에 통합하는 방법은 TcCOM 객체를
추가하는 방법과 PLC 라이브러리에서 Tc3_MLL을 추가하는
방법이 있습니다.
또한 TwinCAT을 이용하여 머신 러닝을 하게 되면 당연히 TwinCAT에서 사용하는 통신들을 이용할 수 있게 됩니다. 통신에는 Ethernet/IP나 Profinet 같은 프로토콜이 있습니다. TwinCAT을 통해서 바로 머신 러닝을 할 수 있으므로 추가적인 하드웨어가 필요하지 않다는 것도 하나의 장점입니다. 우리가 익히 알고 있는 CPU인
Intel이나 AMD를 이용하여 머신 러닝을 구현할 수 있습니다
TwinCAT 3에서
머신 러닝 사용하기
TwinCAT 3에서 머신 러닝을 사용하기 위해서는 TF38xx TwinCAT 3 Machine Learning Inference Engine, TwinCAT 3 Neural Network Inference Engine의 설치를 필요로 합니다. 이 소프트웨어는 훈련된 머신 런닝 알고리즘을 위한 추론 머신입니다.
TwinCAT PLC를 이용하여 머신 러닝을 이용할 때에는 Tc3_MLL 라이브러리를 추가해야 하며 FB_MllPrediction 인스턴스를
추가하여 모델의 이름과 파라미터를 설정합니다.
TcCOM 객체가 있을 경우, TcMachineLearningModelCycal 객체를 추가하여 이용할 수 있습니다. 알맞은 Input/Ouput 데이터 타입을 선택하여 프로세스 이미지를 만든 후, 각 프로세스 데이터에서 결과를 얻을 수 있습니다.
머신 러닝을 실제로 테스트하고 싶은 경우에는 [링크]를 통해서 샘플을 확인하실 수 있습니다.
마치며
중국의 한 식품 제조업체에서는 TwinCAT을 최첨단 포장검사 시스템을
공급하는 계약을 체결했습니다. 자세한 기사는 [링크]에서 확인하실 수 있습니다. 이
때, 머신 러닝을 이용하여 포장에 대한 품질을 더욱 향상시켰습니다. 머신 러닝의 접근 방식과 데이터 마이닝을 통해 생산 문제를 더 빠르고
효율적으로 해결할 수 있어 R&D 비용을 절감할 수 있습니다.
실제 현장에서 머신 러닝을 도입한 전례가 있고, 앞으로 이러한 기술이 더욱 많은 곳에서
활용될 것으로 보입니다.
앞서 말했듯, 제품의 품질 관리를 포함하여 다양한 분야에서 머신 러닝을
활용할 수 있습니다. 머신 러닝을 활용하여, 과거에 판매된
제품에 대한 데이터나 일기 예보와 같은 데이터를 포함하여 불확실성을 예측하고 유연하게 대처할 수 있게 됩니다.
Beckhoff의 Youtube [링크]에서는
머신 러닝에 대한 소개를 하고 있으므로, 영상을 통해서 이번 안내서에 대한 내용을 보다 쉽게 파악할
수 있을 것 같습니다.
마지막으로, 머신 러닝에 대한 Quick
Start 한국어 자료를 [링크]를 통해서 확인할 수 있습니다. 프로그램
설치를 비롯하여 환경 설정과 예제를 실행하는 방법을 확인할 수 있습니다.
위 내용에 대해 심화 내용이 필요하신 경우, 해당 내용을 댓글로 적어 주시면 다음 연재 시 반영하도록 하겠습니다. 문의사항은 아래 연락처로 연락 부탁드립니다. 전화 :
02-2107-3242 (대표전화, 내선번호 1번: 영업, 내선번호 2번: 마케팅, 내선번호 3번: 기술) 홈페이지 : https://www.beckhoff.com/kr/ 제품문의 : Info-KR@beckhoff.com 기술문의 : support-kr@beckhoff.com |
참고자료
Machine learning for all areas of automation
[링크]
TF38x0 | TwinCAT 3 ML/NN Inference Engine [링크]
Microsoft ONNX 모델 [링크]
TwinCAT 3 Machine Learning Quick Start [링크]
본 문서의 무단전재 및 재배포를 금지합니다
본 문서는 공식 매뉴얼이 아닌, 교육용 참고자료임을 명시합니다
2022.04.20
Lisa Kim / Beckhoff Korea
댓글
댓글 쓰기