멀티 루프 디자인 패턴은 단일 루프보다 큰 프로젝트에서 사용되며, 특히 실무에서 생산자/소비자 데이터 패턴을 사용하는 것을 많이 봐왔다(ex 병원 내 환자들과 간호사 간의 N:1 데이터 통신). 특히 데이터 손실이나 동기화에 대한 이해가 중요하기 때문에 별개로 글을 작성할 계획이다.
병렬구조
- 두 개 이상의 While loop 서로 다른 실행 주기를 가지고 동시에 다양한 테스크를 처리.
- 단 실행 중에는 While loop 간의 데이터 이동이 없는 독립적인 일을 처리할 때 적합.
-멀티 루프 간의 데이터 공유에 대해서는 추후에 작성(동기화 제외).
마스터/슬레이브(Master/Slave) 디자인 패턴
- 알림자 함수 사용.
-슬레이브 루프가 마스터 루프에 동기화되어 실행.
-버퍼 구조가 아니기 때문에 데이터 손실 가능성 있음.
생산자/소비자 데이터(Producer/Consumer Data) 디자인 패턴
- 큐 함수 사용.
-큐 함수는 버터구조(FIFO:First In First Out)로 되어 있기 때문에 데이터 손실이 없음.
-구조의 특성상 소비자 루프의 동작은 생산자 루프에 의해 결정됨(타이밍 함수의 위치를 보라).
생산자/소비자 이벤트(Producer/Consumer Event) 디자인 패턴
-'생산자/소비자 데이터' 와는 생산자 루프 내 구조 차이(이벤트 구조냐, 케이스 구조냐).
-큐 함수 사용.
-프로젝트의 크기를 고려하여 '사용자 인터페이스 이벤트 핸들러 디자인 패턴(단일루프구조) 또는 생산자/소비자 이벤트 패턴 선택.
Reference
1. LabVIEW의 정석(기본편)_손혜영 저
2. LabVIEW 데이터 수집 및 분석_곽두영
'LabVIEW' 카테고리의 다른 글
USB8452 | I2C제어 및 간단한 profile 입력하기 (0) | 2021.02.28 |
---|---|
LINX | LabVIEW를 이용한 Arduino I2C 제어 (0) | 2021.02.01 |
Analog Input(유한샘플) (0) | 2021.01.18 |
1차 LPF 구현 (basic) (0) | 2021.01.14 |
디자인 패턴(1) (0) | 2021.01.14 |