라벨이 인 게시물 표시

Lesson 17_2 큐 동작

이미지
안녕하세요. 알렉스 입니다. 오늘은 블록다이어그램의 마무리를 짓도록 큐를 이용해서 프로그램을 동작하도록 하겠습니다. 사진1) 이벤트 케이스문 추가(확인)  이전글에서 만든 확인버튼에 관련된 이벤트 케이스문을 만들어 줍니다. 당연히 값이 변경될때 이벤트문이 동작되도록 설정을 해 둡니다. 사진2) 확인 케이스 코딩  이제 확인 케이스문에  원소를 큐에추가 함수를 넣어주고 사진2와 같이 코딩을 해줍니다. 사용자가 문자열 컨트롤에 문자를 입력하고 확인버튼을 누를시 문자열이 큐에 추가가 됩니다. 사진3) While루프 추가  다음은 문자열 인디게이터에 사용할 While루프를 추가합니다.   사진4) 추가된 While루프 추가  2번째로 추가된 While루프는 큐에서 원소(문자열)를 빼와서 문자열 인디게이터에 표시를 하는 것입니다.  '빈문자열/경로?'함수를 사용했는데 만약 어떻한 문자열도 입력이 되지 않으면 공백은 출력하지 않는다는 것입니다.  또한 케이스 구조를 사용해서 빈 문자열이면 케이스가 참으로 변경되서 이후 원소는 사라집니다. 사진5) 정지버튼 속성(기계적 동작) 변경 사진6) 정지버튼을 2번째 While루프에 추가(로컬변수)  이제 2번째 While루프에도 정지버튼을 설정해야 하는데 이때 기존에 사용하는 정지버튼을 이용을 할 것입니다. 하지만  '정지'버튼의 기계적 동작이 래치면 로컬변수 생성시 에러가 걸립니다. 따라서 기계적 동작을 스위치로 변경하고 2번째 While루프에 정지(로컬변수)버튼을 코딩합니다. 사진7) 프로그램 정지중 에러 발생  물론 프로그램을 실행하면 처음에는 잘되지만 종료를 할때 에러가 발생합니다. 이는 큐가 없는 상태에서 2번째 While루프가 큐를 제거할때 생기는 현상입니다. 따라서 큐가 있을때만 큐를 제거하게 만들어야 합니다. 사진8...

Lesson 17_1 큐 동작

이미지
안녕하세요. 알렉스 입니다. 오늘은 큐 함수에 대해서 알아보도록 하겠습니다. 개념에 대한 이해가 부족하시면 아래 링크를 참고해 주시기 바랍니다. 링크 : Queue(큐) 구조 및 원리 사진1) 큐 동작 기본 LabVIEW에서 큐함수를 사용할때 순차적으로 적용이 됩니다. 사진1과 같이 데이터가 쌓일때 1번,2번,3번 순으로 쌓이게 됩니다. 그리고 뺄때 또한 1번부터 3번까지 순차적으로 빠지게 됩니다.  즉 빨간색 화살표는 데이터가 들어가는 방향이고 파란색은 데이터가 나가는 방향 입니다. 그럼 직접 코딩을 해보도록 하겠습니다. 사진2) LabVIEW의 기본 큐함수  사진2에 나와있는 함수는 LabVIEW에서 사용하는 기본 큐 함수들 입니다. 그리고 블록 다이어 그램에 놓여져 있는 함수는 자주 사용하게 될 함수들 입니다. 그럼 이 함수들을 이용해서 블록다이어 그램에 코딩을 하도록 하겠습니다. 사진3) 큐 초기화 및 While루프 구성  일단 가장먼저 큐를 초기화 해야 합니다. 큐 얻기 함수를 이용해서 큐의 이름과 원소타입을 정하면 됩니다. 원소타입을 정할때 기본으로 베이언트로 되어있지만 현재 예제에서는 직관적으로 확인하기 위해 문자열로 하도록 하겠습니다.  사진3과 같이 While루프와 이벤트 케이스문을 만들어줍니다. 사진4) 이벤트 케이스문 추가(정지)   프로그램을 종료할시 필요한 정지버튼을 프런트 패널에 만들어 줍니다. 그리고 이벤트 케이스 문에 정지 케이스를 만듭니다. 사진5) 정지 케이스문 구성  이벤트 케이스문에 정지 케이스를 만들면 사진5와같이 While루프에 정지 버튼을 연결합니다. (이 케이스문이 활성화 될때 사용자한테 정말로 종료 할것인지 물어봐야 하지만 예제이기 때문에 간단히 코딩) 사진6) 프론트 다이어그램 디자인(확인버튼)  사진6와 같이 프론트패...