오늘의 LabVIEW 팁은 LabVIEW에서 가장 기본이라고 할 수 있는 생산자 소비자 이벤트 구조입니다. LabVIEW 프로그래밍에서의 가장 기초이며 생산자 소비자 이벤트 구조를 이용해서 다양한 응용을 할 수 있습니다.

때문에 가장 먼저 알아두어야 할 LabVIEW 팁입니다

 

 

I. 사용 목적


- 생산자/소비자 루프를 생성하고, 개별 태스크 동작을 수행한다. 
- 큐 함수를 이해하고, 루프간 데이터 송/수신 기능을 수행한다. 
- 큐 함수와 병렬 루프를 응용하여, 확장된 기능의 병렬루프를 연동/제어한다.  

II. 생산자/소비자 이벤트 루프 동작 플로우

 

 

III. 생산자/소비자 이벤트 구조 작성:


1. 블록다이어그램  전체 구조 
 이벤트 생산자/소비자 병렬 루프는, 이벤트 생산자와 케이스 소비자의 두 개 루프로 병렬로 구성된다. 생산자 루프는 소비자 루프에 명령을 전달하는 컨트롤타워 역할을 하고, 소비자 루프는 컨트롤타워로 부터 전달 받은 명령을 수행 하는 역할을 한다. 


2. 큐 함수 작성 
 병렬 루프간에 데이터 또는 명령을 전달하기 위해서는 큐 함수가 사용된다. 큐 함수는 입력 받은 데이터를 메모리버퍼 방식으로 관리하기 때문에 데이터 손실이 없는 장점이 있지만, 메모리 오버플로우 현상을 유발 시킬 수도 있음을 유의해야 한다. 큐 함수를 사용할 때는 항상 주의하고 계산해서 사용해야 합니다. 큐에서 꼬이게 되면 바로는 에러가 나타 나지 않더라도 위에 언급한 메모리 오버플로우 현상이 나타나게 되면 디버깅을 할 때 많은 노력이 필요합니다.

 


' 
3. 이벤트 생산자 루프 작성  
 생산자 개념으로 사용되는 이벤트 루프는 사용자 인터페이스로 부터 특정 이벤트를 전달 받아, 소비자 루프에 데이터를 전달한다.  소비자 루프로 데이터 전달은 "큐 추가" 함수를 사용하여 데이터를 전달 한다.  


4. 소비자 루프 작성 
- 소비자 루프는 생산자 이벤트 루프에서 발생된 데이터를, "큐 제거" 함수를 통하여 전달 받는다. 전달 받은 데이터는 소비자 루프 내의 케이스 구조와 연동되며, 케이스 구문을 사용하여 적절한 알고리즘을 수행한다. 

' 
5. 프로그램 종료  
- 종료 이벤트를 발생 시키면, 생산자 루프는 종료되고, 루프를 빠져나오게 된다. 루프 종료 후, 에러 라인을 통해 순차적으로 "큐 해재" 함수가 실행되어 큐 메모리를 제거하게 된다. 큐메모리가 제거되면, 소비자루프의 "큐 제거" 함수에서는 강제 에러가 발생하게 되는데, 발생된 에러를 사용하여 소비자 루프를 종료시킬 수 있다. 


다음시간에는 상태머신 구조를 살펴보겠습니다.





 

'Labview Tip' 카테고리의 다른 글

LabVIEW ] UDP통신을 이용한 PC간 데이터 전송  (0) 2020.02.27
OCR을 이용한 비전 숫자 or 문자 인식  (0) 2020.02.27
LabVIEW 측정기기의 재접속 가능한 State Machine 구조(2/2)  (0) 2020.02.27
LabVIEW ] 오토닉스 MP5W 펄스미터 사용법  (0) 2020.02.27
FLIR 열화상 카메라 LabVIEW 연결 및 구동  (0) 2020.02.13
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기