Hanover Fair 2002에서 시그마테크(SIGMATEK)는 객체지향 프로그래밍(Object-Oriented Programming 이하 ‘OOP’)을 갖춘 LASAL 소프트웨어 플랫폼을 선보였다. 최초의 자동화 솔루션 제공업체인 이 회사는 엄격한 시퀀스 프로그래밍에 작별을 고한 이후 지속적으로 객체 지향 프로그래밍에 의존해 왔다.
응용 프로그램 소프트웨어를 최대한 범용적으로 만드는 동시에 유지 관리 및 확장이 용이하도록 하기위해서는 객체 지향 프로그래밍(OOP)과 같은 최신 도구와 접근 방식이 미래 지향적인 기계 콘셉트 개발에 필수적이다. 객체 지향 접근방식을 통해 기계 제작자는 최대한 하드웨어와의 독립성을 극대화할 수 있다. 또한 소프트웨어가 매우 명확하고 구조화된다. 객체 지향 프로그래밍을 사용한 LASAL 소프트웨어는 21년 전 시그마테크에 의해서 시장에 출시되었다. 이 아이디어는 제어 프로그래밍에서 작화, 드라이브 및 안전 기술의 프로젝트 계획에 이르기까지 자동화 기술의 모든 엔지니어링 작업을 대신하는 모듈식 시스템으로 설계된 단일 소프트웨어 도구를 만드는 것이었다. 시그마테크는 업계 최초로 객체지향 기술을 PC 프로그래밍 기술에서 제어 기술로 이전하였다.
“객체 지향 프로그래밍(OOP)의 개념은 코드와 데이터를 ‘객체’라고 하는 논리적 단위로 결합하는 것이다. 이러한 객체는 기계나 시스템의 다양한 부분을 나타낸다.”라고 SIGMATEK의 기술 고문 Franz Aschl은 설명한다. 각 ‘객체’ 뒤에는 ‘클래스’가 있다. 클래스는 객체의 청사진으로, 프로그램 코드 및 관련 데이터 요소를 포함한다. 각 클래스는 온도 측정 및 평가, 밸브 제어 또는 컨베이어 벨트 구동과 같은 특정 ‘작업’을 수행할 수 있다. 각 개별 기능이 캡슐화되어 있으므로 의도하지 않은 외부 영향을 배제할 수 있다. 클래스에 매개변수와 인터페이스가 제공되면 이를 객체라고 한다. “이 개발 방법의 장점은 개별 기능의 가장 낮은 수준부터 전체 프로젝트에 이르기까지 일관된 모듈화이다. 이를 통해 명확성을 보장하고 구조화된 소프트웨어 개발을 촉진한다. 그토록 무서운 ‘스파게티식 코드’는 전혀 발생할 수 없다.”라고 프란츠 아쉴은 말한다. 내부 클래스에는 IEC 61131‑3에 따른 ST(구조적 텍스트), SFC(순차 함수 차트) 또는 LD(래더 다이어그램)를 통한 친숙한 프로그래밍과 ANSI‑C 및 인터프리터가 포함되어 있다.
LASAL의 핵심 기능은 클라이언트‑서버 기술을 사용한 객체 지향 프로그래밍은 물론 그래픽 디스플레이, 그래픽 프로젝트 계획 및 그래픽 디버깅이다. 한눈에 프로젝트, 기능, 데이터 트래픽 및 인터페이스에 대한 전반적인 뷰를 볼 수 있다. 따라서 복잡한 상호 관계를 훨씬 쉽게 인식, 변경 및 제어를 할 수 있다.
클래스는 ‘라이브러리’에 저장된다. 개별 기능은 소프트웨어에서 모듈형 시스템으로 조립할 수 있으며 간단하게 ‘배선-연결’할 수 있다. 검증된 설계를 재사용하는 기계공학과 마찬가지로 ‘OOP’에서는 모듈형 구조 덕분에 한 번 생성된 응용 프로그램 부분을 쉽게 재사용하고 적용할 수 있다. 이는 적은 코드와 노력으로도 변경 사항을 신속하게 구현할 수 있기 때문에 높은 수준의 유연성을 보장한다. 이렇게 재사용성이 향상되면 개발 시간이 크게 단축되어 제품 출시 기간도 단축된다.
지속적인 개발 ‑ 컨셉부터 세부 사항까지
“객체 지향 프로그래밍의 장점 중의 하나는 신중하게 정의를 공식화해야 한다는 것”이라고 아쉴은 말한다. 전체 프로젝트부터 시작하여 소프트웨어 설계자는 기계에 어떤 기능이 필요하고 어떻게 상호 연결되는지 고려한다. 하향식 설계에서는 작업이나 기능이 세분화되어 시각적으로 표현된다. 즉, 어떤 기계 부품이 다른 부품과 통신하고, 어떤 부품이 데이터를 교환하는지를 시각적으로 표현한다. “LASAL 네트워크에서 애플리케이션이 어떻게 작동하는지 이해하는 데는 한 줄의 코드도 필요하지 않다. 일단 기능과 통신 인터페이스가 정의되면 개발은 상향식으로 시작된다.”라고 아쉴은 설명한다
따라서 개발 작업을 개발자 또는 그룹에 분산할 수 있다. 이러한 작업은 독립적으로 처리할 수 있다. 사용자는 프로그래밍하는 대신 광범위한 라이브러리에서 드래그 앤 드롭을 통해 그래픽 사용자 인터페이스에서 표준 기계 기능을 모델링한다. 이를 통해 개발 노력이 크게 줄어들고 동시에 소프트웨어 품질이 향상된다. 특정 시점에서만 개별 소프트웨어 패키지를 하나의 릴리스로 병합하고 서로 조율할 필요가 있다. 인터페이스 문제는 이제 과거의 일이다.
속성, 메소드 및 인터페이스를 포함하는 클래스는 LASAL CLASS의 클래스 트리를 통해 정의된다. 필요한 선언과 그래픽 표현은 시그마테크의 엔지니어링 도구를 통해 자동으로 수행된다.
객체 지향 엔지니어링 도구 LASAL은 모든 자동화 작업을 최신 로우 코드 플랫폼에 결합하여 기계 및 시스템 개념을 간단하게 처리할 수 있도록 지원한다.
객체 지향 개발의 또 다른 장점은 하드웨어를 아직 준비하거나 정의할 필요가 없다는 것이다. 소프트웨어는 하드웨어와 분리된다. 개발중에야 컴퓨팅 성능이 어떤지, 드라이브 유형, 작화 성능 및 디스플레이 크기가 궁극적으로 최적인지가 명확해지는 경우가 많기 때문에 소프트웨어가 하드웨어와 분리된 경우에는 기계 제작자에게 매우 유용하다. 작화에 대해 말하자면, 사용되는 HMI에 유연하게 적용할 수 있는 HTML5 작화를 통해 대상 장치 선택이 최대한 자유로워진다.
Machine Manager: 유연한 작업 배분
오늘날의 생산 공장은 적응력이 뛰어나고 시장 변화에 빠르고 쉽게 대응할 수 있어야야 한다. 따라서 시그마테크는 스마트 팩토리로 나아가는 과정에서 수년 동안 모듈식 분산형 자동화 솔루션에 의존해 왔다. 멀티 CPU 솔루션은 기계 제작업체에게 상당히 많은 유연성을 제공한다. 따라서 시스템 구성은 개별적으로 구성할 수 있으며, 필요한 경우 나중에 옵션 기능 장치 및 컴퓨팅 성능을 확장할 수 있다. ‘LASAL Machine Manager’는 이러한 지능형 모듈성을 소프트웨어에도 구현되도록 지원한다. 기계 소프트웨어는 여러 하위 프로젝트로 구성되며, 하위 프로젝트는 다시 시퀀스 및 작화와 같은 하위 그룹으로 세분화된다. Machine Manager는 사용자에게 기계 또는 플랜트의 개별프로젝트에 대한 개요를 제공하고 다음 사항을 통해 쉽게 확인하거나 정의할 수 있도록 한다: 누가 어떤 데이터를 누구와 교환할 수 있는지? 소프트웨어 계층인 Machine Manager는 실제 기계 프로그래밍 위에 위치하며 다양한 하위 작업을 기존 하드웨어 제어 장치에 할당한다.
이는 시운전 중에 한 번 정의하거나 기계의 수명 중에 변경할 수 있다. 제어 장치와 HMI 간의 통신 경로는 Machine Manager에서 정의할 수 있다. 변수는 프로젝트 간 클라이언트/서버 연결을 통해 런타임 중에 자동으로 요청되고 전송된다. 따라서 Machine Manager는 다중 CPU 애플리케이션에 대한 최대의 명확성과 작업 분산에 있어서 상당한 유연성을 보장한다.
리뷰: 객체 지향 올인원 자동 소프트웨어 LASAL 플랫폼은 2002년 Hanover fair에 선보였다.
엔지니어링의 미래
“모든 기계 엔지니어는 소프트웨어와 그에 대한 지식이 그의 가장 큰 자산이라는 것을 알고 있다.”라고 Aschl은 확신한다. 조합하여 최신 하드웨어와 결합하면 사용자에게 결정적인 부가가치를 창출할 수 있다. 유연하고 구조적이며 사용자 친화적인 엔지니어링 도구를 사용하면 몇 년이 지난 후에도 코드를 가독성 있게 유지하고 쉽게 적용할 수 있다. 오늘날 세계에서 점점 더 자주 발생하게 될 기술 변화도 최소한 노력과 최소한 위험으로 처리할 수 있다.
프란츠 아슐과의 인터뷰
프란츠 아슐(Franz Aschl)/ 오스트리아 람프레히트하우젠에 소재한 시그마테크의 기술고문
2000년에 객체 지향 접근 방식으로 전환하게 된 계기는 무엇입니까?
우리는 항상 고객과 긴밀히 소통하고 있으며, 다양한 변형과 옵션이 있는 기계를 위한 간단한 엔지니어링에 대한 수요가 증가함에 따라 올바른 솔루션을 찾았다. 소프트웨어 유지 관리를 더 쉽게 만들고 투명성을 제공하며 옵션 추가가 프로그램의 나머지 부분에 영향을 미치지 않는 등 다양한 옵션을 지원하는 솔루션이 필요했다. 이 모든 것, 즉 클라이언트‑서버 기술, 메카트로닉 엔지니어링, 로우 코드 등 훨씬 더 많은 기능이 LASAL을 통한 객체 지향 프로그래밍이 제공된다.
돌이켜보면 어떤 점이 특히 자랑스럽나요 ?
우리는 이미 당시 시대의 변화요구의 징조를 인식했고 OOP를 자동화 기술로 전환한 최초의 회사이다. 물론 우리는 래더 다이아그램과 명령어 목록에 익숙했던 프로그래머를 객체지향 프로그래밍으로 전환하도록 설득해야 했다. 세대교체라고 할 수 있다. 젊은 소프트웨어 엔지니어들은 이미 교육이나 연구를 통해 객체 지향, 구조화된 텍스트와 C언어를 알고 있었다.
LASAL을 사용한 객체 지향 프로그래밍의 특별한 점은 무엇입니까?
LASAL의 특별한 특징은 객체 지향 외에도 처음부터 객체 간 통신을 위해 클라이언트‑서버 기술에 의존해 왔다는 것이다. 이는 명확한 인터페이스를 생성하며 CPU 리소스의 효율적인 분배 및 절약을 의미한다.
지난 20년 동안 LASAL은 얼마나 바뀌었나요?
LASAL은 올인원 도구로 개발되었다. 제어, 작화 및 모션도구는 처음부터 존재했다. 수년에 걸쳐 버전 관리, Matlab, 하드웨어 편집기 및 스크립팅과 같은 많은 편의 기능이 추가됐다. 2009년에는 사용자가 안전 관련 애플리케이션을 편안하게 구성할 수 있는 완벽하게 통합된 도구인 LASAL SAFETYDesigner가 추가되었다. 그리고 2015년부터 LASAL Machine Manager를 통해 다중 CPU 솔루션을 하나로 처리하도록 단순화했다. 그 중심에는 지난 20년 동안 엄청나게 성장한 우리의 광범위한 라이브러리가 있으며, 다양한 기계 기능을 위한 특정 패키지, 템플릿, 추가 기능들을 제공한다. 물론 HTML5 작화도 LASAL에 통합했다. 새로운 기능은 모델 기반 개발과 디지털 트윈의 통합이다.
저자: 잉그리드 트레인팅거 오스트리아 람브레히트하우젠에 위치한 시그마테크사의 마케팅팀장
<기사제공:서보스타>