Connect with us

스마트시티/빌딩

[백서] LabVIEW 초보자가 하기 쉬운 실수 5가지

Published

on

수 많은 엔지니어와 과학자들이 NI LabVIEW 소프트웨어를 사용해 뛰어난 성능의 측정 및 제어 어플리케이션을 신속하게 개발해 왔지만, LabVIEW를 처음 사용하는 사용자들의 경우에는 어려움이 있을 수 있다. LabVIEW 그래픽 기반 프로그래밍의 특징은 권장하는 코딩 방법을 사용하지 않는 경우 어플리케이션에서 금세 문제점이 드라난다는 점이다. 이러한 실수는 LabVIEW 다이어그램의 데이터 흐름의 배경에 있는 규칙을 잘 이해하기 못한 경우나, LabVIEW 프로그램의 설계된 기능에 익숙하지 않아서 발생하는 경우가 있다. 본 기술 백서에서는 초보 LabVIEW 프로그래머들이 가장 자주 하는 프로그래밍 실수와 올바른 LabVIEW 프로그래밍을 위해 권장하는 방법을 살펴본다.

LabVIEW 초보자가 코딩한 실수가 많은 프로그래밍 예시 (출처. 내쇼날인스트루먼트)

1. 플랫 시퀀스 구조의 과도한 사용

대다수의 LabVIEW 초보 프로그래머가 LabVIEW 프로그래밍의 근간인 “데이터 흐름” 실행이라는 개념을 제대로 이해하지 못하고 있습니다. 이를 잘 보여주는 현상 하나가 블록다이어그램에 플랫 시퀀스 구조를 지나치게 많이 사용하는 것입니다. 노드 사이의 와이어를 통해 데이터 흐름을 제어하는 것이 아니라 플랫 시퀀스 구조를 사용하여 블록다이어그램에서 강제로 코드의 실행을 구현하는 초보자가 많습니다.

“데이터 흐름” 프로그래밍에서는 필요한 데이터 입력이 모두 들어오기 전까지 블록다이어그램의 노드(subVI, 프리미티브, 구조 등)가 실행되지 않습니다. 이렇게 되면 독립된 프로세스는 기본적으로 병렬로 실행되도록 설정되어 있기 때문에 LabVIEW 프로그래머에게 편리합니다. 반면에 명령형 언어에서 병렬 실행을 하려면 추가적인 설정이 필요하기 마련입니다. 컴퓨터에 점점 많은 CPU가 추가되면 LabVIEW가 자동으로 병렬 프로세스를 오프로드할 수 있게 되므로 사용자가 추가적인 코딩 작업을 하지 않아도 코드 성능이 향상됩니다. 플랫 시퀀스 구조를 지나치게 많이 사용하여 강제로 블록다이어그램의 실행을 구현하면 병렬화에 한계가 발생하여 이와 같은 장점이 사라지게 됩니다. 블록다이어그램에서 불필요한 구조의 사용을 자제하면 전반적인 가독성이 향상되고 다이어그램의 크기도 작게 유지할 수 있습니다.

플랫 시퀀스 구조보다 에러 와이어를 사용하면, 블록다이어그램에서 손쉽게 데이터 흐름을 조절할 수 있으며, 에러 핸들링 전략에도 도움이 됩니다.

그렇다면, 언제 플랫 시퀀스 구조를 사용해야 하는가?

플랫 시퀀스 구조로 실행을 강제 구현하는 것은 코드 성능을 벤치마킹할 때 유용합니다. 프레임 안에 틱 카운트가 들어있는 플랫 시퀀스 구조를 사용하면 코드를 실행하는데 소요되는 시간을 두 개의 틱 카운트 사이에서 결정할 수 있습니다. 일반적인 데이터 흐름 실행을 통해서는 이런 설정을 구현할 수 없습니다.

2. 로컬 변수의 잘못된 사용

LabVIEW 프로그램에서 자주 볼 수 있는 또 하나의 실수는 로컬 변수의 잘못된 사용입니다. 로컬 변수는 컴퓨터 프로그램의 서로 다른 영역 사이에 데이터를 전달하는데 사용되는 공유 메모리 조각입니다. 텍스트 기반 언어에서 널리 사용되는 이 변수는 매우 강력한 기능을 자랑하지만, 경합 조건이 생기면 문제가 발생할 수 있습니다.

변수를 통해 데이터를 전달하는 것이 필수적인 다른 프로그래밍 언어와는 달리 LabVIEW에서는 프로그램의 한 영역에서 다른 영역으로 데이터를 전달할 때 데이터 흐름 방법을 사용할 수 있습니다. LabVIEW에 내재되어 있는 병렬성 때문에 변수를 과도하게 사용하면 문제가 발생합니다. 서로 다른 코드가 동시에 공유 메모리에 접근하게 되는 경우가 많기 때문입니다. 이런 상황이 발생하면 하나의 읽기/쓰기 작업이 “경합”에서 이기며 나머지 작업은 경합에서 지게 됩니다. 경합에서 진 작업은 잊혀지므로 LabVIEW에서 변수를 과도하게 사용하면 결국 데이터 유실이라는 결과로 이어질 수 있습니다.

와이어, 큐, 이벤트, 알림자, 기능적인 글로벌 변수 등의 다양한 방법을 사용하여 LabVIEW 프로그램의 한 영역에서 다른 영역으로 안전하게 데이터를 전달할 수 있습니다. 이러한 매커니즘은 각각 특정한 사용 예를 위해 설계되었지만, 모두 경합 조건을 제거한다는 장점을 가지고 있습니다.

3. 코드의 모듈성 무시

LabVIEW 초보 사용자는 단순한 작업을 하기 위해 “일회성” 어플리케이션을 생성한 다음 그 코드를 향후에 어떻게 활용할 수 있을지에 대해 생각하지 않는 경우가 많습니다. 프로그램을 자주 만들게 되면 똑같은 코드를 여러 차례 반복해서 작성하게 되기 마련입니다. 코드 중 일부를 모듈형 SubVI로 만들어서 다른 어플리케이션에서 재활용할 수 있도록 하면 상당한 개발 시간을 절약할 수 있습니다.

코드의 특정 부분을 같은 어플리케이션 내에서 재활용할 예정이거나 향후의 어플리케이션에서 재활용할 수 있을 것 같은 생각이 드는 경우 약간의 시간을 투자하여 그 부분을 SubVI로 만드십시오. 코드의 일부를 SubVI로 만들기 위해서는 설명을 추가하고, 커넥터 팬을 사용하고, VI 프로퍼티의 일부를 비활성화 해야 합니다. SubVI를 생성하는 가장 손쉬운 방법 중 하나는 블록다이어그램 코드의 일부를 하이라이트 한 후 메뉴 모음에서 편집≫SubVI 생성을 선택하는 것입니다. 이렇게 하면 코드의 해당 부분을 별도의 VI로 만들고 커넥터 팬을 사용하는 프로세스가 시작됩니다. 그 다음에도 아이콘을 알아보기 쉽도록 편집하고 블록다이어그램과 VI 프로퍼티에 설명을 추가하며 일부 VI 셋팅을 비활성화하는 작업은 남아있지만, 편집≫SubVI 생성은 코드 모듈화의 좋은 출발점 역할을 합니다.

코드를 재활용하려 할 때 반드시 비활성화 해야 하는 VI 셋팅은 디버깅 허용입니다. 이 옵션은 VI 프로퍼티(파일≫VI 프로퍼티) 내의 실행 항목에서 찾을 수 있습니다. 코드가 완전히 작동하기 시작하여 더 이상 실행 하이라이트와 같은 디버깅 기능이 필요하지 않은 경우 실행 셋팅에서 디버깅 허용을 비활성화 하고 VI를 다시 실행합니다. 이렇게 하면 디버깅을 위한 추가적인 코드가 제외되어 컴파일 과정 중에 보다 효율적인 최적화가 일어나므로 어플리케이션의 실행 속도가 빨라지고 VI가 디스크에서 차지하는 물리적 크기가 다소 작아진다는 장점이 있습니다.

4. 지나치게 큰 블록다이어그램 생성

LabVIEW 초보 사용자들이 블록다이어그램을 작성하다 보면 지나치게 커지는 경우가 많습니다. 물론 어플리케이션이 복잡하여 어쩔 수 없이 다이어그램의 크기가 커지는 경우도 있지만, 프로그래밍 아키텍처가 제대로 갖춰져 있지 않은 것도 하나의 원인입니다. 바탕이 되는 아키텍처가 없으면 시간이 지남에 따라 프로그램을 관리하기 어려워지며 향후에 새로운 기능을 추가할 때에도 많은 비용이 듭니다. 올바른 토대가 있어야 튼튼한 집을 지을 수 있듯이, 좋은 프로그래밍 아키텍처는 어플리케이션의 안전하고 든든한 프레임워크가 되어 줍니다.

소프트웨어 아키텍처는 거의 모든 프로그래머가 유용하게 사용하는 보편적인 프레임워크입니다. 생산자/소비자나 상태 머신과 같은 LabVIEW 내의 여러 아키텍처는 다른 프로그래밍 언어의 아키텍처와 유사합니다.

LabVIEW 아키텍처를 이해하면 개발 시간을 단축하고 어플리케이션의 확장성을 향상시킬 수 있습니다. LabVIEW 2012 및 이후 버전에는 템플릿과 샘플 프로젝트가 포함되어 있어 아키텍처를 더욱 쉽게 이해할 수 있게 되어 있습니다. 템플릿은 다양한 아키텍처를 설명하고 어떤 경우에 각 아키텍처를 사용해야 하는지 보여줍니다. 샘플 프로젝트는 템플릿을 기반으로 하여 작성한 보다 큰 어플리케이션으로, 실제 사례에서 템플릿을 어떻게 응용할 수 있는지 보여줍니다. 샘플 프로젝트에 하드웨어를 연결하여 턴키 어플리케이션으로 사용할 수도 있지만, 샘플 프로젝트는 기본적으로 열린 구조이며 상세한 설명이 달려있기 때문에 어플리케이션의 용도에 맞도록 맞춤 구성할 수도 있습니다.

5. 문서화의 중요성 간과

다른 사람이 작성한 프로그램이 어떤 기능을 하는지 파악하는 과정에서 코드에 적절한 설명이 달려 있으면 큰 도움이 됩니다. 그러나 안타깝게도 기능이 완성되어 개발 주기가 끝날 때까지 코드를 문서화하는 작업은 등한시되는 것이 보통입니다. 이렇게 되면 코드를 제대로 문서화할 시간이 부족하게 됩니다. 그보다는 개발 도중에 별도로 시간을 내서 문서화 작업을 시작하는 것이 좋습니다. 문서화가 잘 되어 있으면 해당 코드를 작성한 사람에게도 큰 도움이 됩니다. 나중에 코드를 다시 보면서 어떤 생각으로 특정 코드 영역을 선택했는지 기억하지 못할 때가 있기 때문입니다. 많은 프로그래머들이 그렇듯이, 늦은 밤에 커피를 마시며 프로그래밍을 하다 보면 잘 기억이 나지 않을 수도 있습니다. 그럴 경우 문서화를 잘 해놓으면 프로그래머들이 기억을 환기시키는데 도움이 됩니다.

일반적으로 LabVIEW는 그래픽을 기반으로 하고 있기 때문에 텍스트 기반 프로그램보다 코드를 파악하기 쉽지만, 문서화를 잘 해놓으면 프로그램을 “해독”하는데 필요한 시간을 더욱 단축할 수 있습니다. 블록다이어그램을 문서화하는 가장 쉬운 방법은 독립 라벨을 사용하는 것입니다. 블록다이어그램의 빈 공간에서 마우스 왼쪽 버튼을 더블 클릭한 후 텍스트를 입력하면 독립 라벨이 추가됩니다. 그 다음 화살표 장식을 사용하여 독립 라벨이 설명하고 있는 특정 코드 부분을 가리키면 됩니다. 그림을 추가하려면 클립보드에 복사하고 블록다이어그램에 붙여 넣기 합니다. 물리적 시스템이나 수학 공식의 이미지를 추가하면 사용자들이 블록다이어그램 내의 코드 내용을 구성하는데 도움이 됩니다.

코드를 문서화하는 작업은 단순히 재활용 라이브러리뿐만 아니라 모든 프로그램에 필요합니다. 타인에게 무언가를 가르쳐야 하는 입장이 되면 해당 주제에 대해 더 많은 것을 배우기 마련입니다. 문서화 작업을 하다 보면 사실상 가르치는 입장이 되므로 프로그래머들도 자신이 작성한 코드를 더욱 잘 이해하게 됩니다.

LabVIEW는 엔지니어와 과학자들이 세계에서 가장 까다로운 문제를 보다 성공적으로 해결할 수 있도록 지원하기 위해 개발되었습니다. 수많은 엔지니어와 과학자들로 구성된 커뮤니티를 통해 다른 개발자들의 노하우를 확인하십시오. 나누고 싶은 LabVIEW 초보 사용자의 실수가 있다면, bit.ly/lvrookiemistakes를 방문하여 여러분의 의견도 함께 공유해 주시기 바랍니다. [제공. NI코리아]

Continue Reading
Advertisement
Click to comment

댓글 남기기

스마트시티/빌딩

매스웍스, 매트랩 워크플로우 확장… 센서 퓨전 및 추적 툴박스 출시

Published

on

매스웍스 로고

매트랩 워크플로우 확장으로 다중 센서 데이터 융합 시스템 설계, 시뮬레이션 및 분석 지원

매스웍스(https://kr.mathworks.com/)가 릴리즈 2018b(Release 2018b)에서 사용할 수 있는 센서 퓨전 및 추적 툴박스(Sensor Fusion and Tracking Toolbox)를 발표했다.

항공 우주 및 방위, 자동차, 가전 제품 및 기타 산업 분야의 자율 시스템 담당 엔지니어는 새로운 툴박스를 사용하여 위치, 방향 및 상황 인식을 유지하기 위한 알고리즘과 툴을 준비할 수 있다. 또한 자율 시스템을 위한 정확한 인식 알고리즘을 개발하기 위해 매트랩(MATLAB) 기반 워크플로우를 확장할 수 있다.

자율 시스템 개발의 인식 단계를 담당하는 엔지니어는 각종 센서의 입력값을 융합하여 시스템 주변의 객체 위치를 추정해야 한다. 이제 연구자 및 개발자들은 공중, 지상 기반, 선박 및 수중 감시, 내비게이션 및 자율 시스템의 구성 요소를 구현하기 위한 출발점으로 툴박스 내의 참조 예제와 함께 위치 파악과 추적용 알고리즘을 사용할 수 있다. 이 툴박스에서는 개발자 간에 공유할 수 있는 유연하고 재사용이 가능한 환경을 제공한다. 엔지니어들은 센서 감지를 시뮬레이션하고, 위치 파악을 수행하며, 센서 융합 아키텍처를 테스트하고, 추적 결과를 평가할 수 있다.

폴 버나드(Paul Barnard) 매스웍스 설계자동화 제품부문 마케팅 이사는 “추적 및 내비게이션 시스템을 연구하는 알고리즘 설계자는 종종 유지 관리와 재사용하기에 어려울 수 있는 사내 툴을 사용한다”며, “센서 퓨전 및 추적 툴박스를 사용하면 엔지니어는 사용자 정의 라이브러리를 작성하지 않고도 여러 가지 설계를 탐색하고 ‘가정(what-if) 분석’을 수행할 수 있다. 또한 팀과 조직 간에 공유할 수 있는 융합 아키텍처를 소프트웨어상에서 시뮬레이션할 수 있다.”고 말했다.

센서 퓨전 및 추적 툴박스에 관한 보다 더 자세한 정보는 관련 웹페이지 (mathworks.com/products/sensor-fusion-and-tracking.html)에서 확인할 수 있다.

박은주 기자 news@icnweb.co.kr

Continue Reading

스마트시티/빌딩

효성인포메이션시스템, ‘웹 어워드 코리아 2018’ 최우수상 수상

Published

on

효성인포메이션시스템

고객과 함께 하는 디지털 트랜스포메이션의 대표 사례
UI 직관성 및 고객 친화적인 컨텐츠, 사용편의성에서 높은 점수 획득

효성인포메이션시스템(www.his21.co.kr, 대표 정태수)이 자사 홈페이지가 웹사이트 평가인 ‘웹 어워드 코리아(Web Award Korea) 2018’의 제품일반분야에서 최우수상을 수상했다고 밝혔다.

한국인터넷전문가협회가 개최하며 올해로 15회째를 맞이하는 웹 어워드 코리아는 한 해 동안 신규 구축 또는 리뉴얼 된 웹사이트들을 대상으로 혁신성 및 우수성을 평가하는 국내 최대 규모의 우수 웹사이트 평가 시상식이다.

효성인포메이션시스템

효성인포메이션시스템

효성인포메이션시스템은 디자인, 기술 및 컨텐츠의 차별성, 다양성 및 사용편의성에서 높은 점수를 받아 최우수상을 수상했다. 실제로 효성인포메이션시스템은 반응형 웹 구축 이후, 기존 홈페이지 대비 방문자 수가 34%, 구매상담 건수가 89% 증가하면서 홈페이지를 통한 리드 발굴 등 디지털마케팅 역량이 대폭 강화됐다.

효성인포메이션시스템의 홈페이지는 ▲ 디지털엔터프라이즈 ▲ 클라우드 & 소프트웨어정의 ▲ 빅데이터 & 사물인터넷이라는 솔루션 중심 큰 카테고리를 비롯해, ▲ 서비스 & 서포트 ▲ 라이브러리를 중심으로 4차 산업혁명 시대의 인프라와 데이터 혁신에 대한 다양하고 유익한 정보를 제공하고 있다. 특히, 이미지, 동영상 및 인포그래픽을 활용해 제품의 강점을 소개하는 웹페이지와 IT 전략, 신제품 및 구축사례 등에 대한 브로슈어, 동영상 등의 컨텐츠를 편리하게 활용할 수 있는 라이브러리 기능으로 고객의 눈높이에 맞는 컨텐츠를 제공하는 것이 특징이다.

오윤경 기자 news@icnweb.co.kr

Continue Reading

스마트시티/빌딩

지에스아이엘 스마트 안전관리 시스템, 2018 건설·시설안전 경진대회 대상 수상

Published

on

지에스아이엘의 스마트 안전관리 시스템

IoT 기술 이용한 스마트 안전관리 시스템으로 건설안전 우수사례 부문 수상

IoT 기술을 이용한 스마트 안전관리 시스템을 개발한 지에스아이엘(대표 이정우)이 ‘2018 건설·시설안전 경진대회’에서 대상을 수상했다.

유망기술기업의 글로벌 진출을 지원하는 K-ICT 본투글로벌센터(센터장 김종갑)는 멤버사인 지에스아이엘이 11월 27일 실시간으로 노동자의 위치와 현장의 환경정보를 파악할 수 있는 스마트 안전관리 시스템으로 건설안전 우수사례 부문에서 대상을 받았다고 밝혔다.

지에스아이엘의 스마트 안전관리 시스템

지에스아이엘의 스마트 안전관리 시스템

지에스아이엘의 스마트 안전관리 시스템은 당진-평택 간 3.4km에 이르는 해저터널 내에 구축돼 있다. 지문, 얼굴인식이 가능한 노동자 위치정보 파악 및 터널 출입관리는 물론 산소농도, 유해가스, 수직구 수위정보 등 자동탐지 및 안전수치 관리가 가능하다. 영상정보 기반 실시간 모니터링 등 근로자의 안전관리를 위한 통합시스템으로 구성돼 있다. 공사 현장을 웹과 모바일 앱으로 언제 어디서든 모니터링이 가능하다.

지에스아이엘은 해저터널 이외에도 강원본부 관내 철도건설현장에 스마트 안전관리 시스템을 도입했다. 이외에도 삼성엔지니어링 반도체 그린동 현장, 대림산업 현장 등이 있다. 2017년에는 두산건설, 한라와 공동으로 스마트 안전관리 시스템에 대해 국토교통부로부터 건설 신기술 제828호로 지정 받았다.

이정우 지에스아이엘 대표는 건설현장 수요도가 높은 밀폐공간이나 터널에서 지에스아이엘의 스마트 안전관리 시스템 도입을 확장하고 있다고 밝히고, “보다 높은 성능이 검증된 기술을 개발하고, 보급하기 위해 노력을 다하는 것은 물론 앞으로 대한민국에 스마트 건설 안전 서비스질의 향상을 위해 노력할 것”이라고 말했다.

박은주 기자 news@icnweb.co.kr

Continue Reading

배너광고

Power Electronics Mag
스마트공장 자동화 산업전
Japan ITweek
네스트필드
  • 지멘스
  • 힐셔코리아
  • 슈나이더 일렉트릭
  • 비앤드알 산업자동화
  • HMS Anybus
eBook 보기

책 판매대

SPS 2018
물류기술 매거진
Advertisement

Trending

© Copyright 2006-2018 아이씨엔미래기술센터 All Rights Reserved.
tel. 0505-379-1234, fax. 0505-379-5678 | e-mail. icn@icnweb.co.kr | Powered by WordPress Flex Mag Theme. Theme by MVP.
Address: 72-31 2F, Changcheon-dong, Seodaemun-gu, Seoul, 03787, Korea
주소: 서울특별시 서대문구 연세로5다길 41, 2층 아이씨엔 (창천동)(우편번호 03787)

업체명: 아이씨엔, 사업자등록번호: 206-11-69466, 대표자: 오승모, 통신판매업신고증: 2009-서울서대문-0373호

기사제보 : news@icnweb.co.kr / 반론청구 : oseam@icnweb.co.kr
아이씨엔의 모든 콘텐츠는 저작권법의 보호를 받습니다. 이의 일부 또는 전부를 무단 사용하는 것은 저작권법에 저촉되며, 법적 제재를 받을 수 있습니다.


[[클린 광고 선언]]
아이씨엔매거진은 어떠한 경우에도 성인, 성형, 사채, 폭력, 투기, 악성SW 및 환경파괴(원자력 포함) 관련 광고는 게시하지 않습니다.
[광고 신고: oseam@icnweb.co.kr]