I. 사용 목적


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

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

 

 

 


III. 생산자/소비자 케이스 구조 작성:


1. 블록다이어그램  전체 구조


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

 

 


2. 큐 함수 작성


 병렬 루프간에 데이터 또는 명령을 전달하기 위해서는 큐 함수가 사용된다. 큐 함수는 입력 받은 데이터를 메모리버퍼 방식으로 관리하기 때문에 데이터 손실이 없는 장점이 있지만, 메모리 오버플로우 현상을 유발 시킬 수도 있음을 유의해야 한다.  

 

 

3. 케이스 생산자 루프 작성 


 생산자 개념으로 사용되는 케이스 루프는, 실시간 생산자 루프를 동작 시킬 수 있는 고전적인 방법이다. 이벤트 루프로 대체하여, 루프타임을 설정하고 강제 동작을 시키게 되는 경우 케이스 생산자 루프와 동일하게 사용할 수 있다. 하지만 케이스 루프의 가장 큰 활용도는, 상태머신을 응용할 수 있는 장점이 있어, 개발자가 확실히 숙지하여 이해도를 높여야 할 부분이다. 

 

 


4. 소비자 루프 작성

 

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

 

 

'

5. 프로그램 종료 


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

 

 


- 병렬 루프로 구성 되었으며, Running 버튼을 사용하여 소비자 루프를 제어할 수 있다.   
- 생산자 루프의 케이스 구문은, 상태머신을 응용하여 프로그램 확장성을 높일 수 있다.   
- 개발자의 응용방법에 따라 다양한 방면에서 솔루션을 제공 할 수 있다.

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

Excel Report Generation 기능을 이용한 Data 저장  (0) 2020.02.27
LabVIEW - 참조 배열을 이용한 프로퍼티 노드 제어  (0) 2020.02.27
LabVIEW ] Labview통신을 이용한 바코드 스캐너, 프린터 사용방법  (0) 2020.02.27
LabVIEW 측정기기의 재접속 가능한 State Machine 구조(1/2)  (0) 2020.02.27
Labview통신을 이용한 야스카와 인버터 A1000제어  (1) 2020.02.27
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기