Lesson5 Flat Sequence(플랫 시퀀스 구조)

안녕하세요. 알렉스 입니다. 오늘은 플랫 시퀀스 구조에 대해서 알아보도록 하겠습니다.

사진1) 플랫 시퀀스 진행 순서도
플랫 시퀀스의 진행 순서를 보면 매우 간단합니다. 시작후 순차적으로 코드를 실행 하는 것입니다. 랩뷰에서 이런 시퀀스 구조가 나온 이유는 실제 실행할때 어떤 함수가 먼저 실행 될지 모르기 때문입니다. 따라서 순차적으로 코드를 실행할 필요가 있을때 플랫 시퀀스를 사용합니다.




사진2) 플랫 시퀀스를 블록다이어 그램에서 선택


사진3) 플랫 시퀀스 진행 순서

플랫 시퀀스는 왼쪽에서 오른쪽으로 진행이 됩니다. 가장 왼쪽에 있는 코드가 먼저 끝나야 그 다음 시퀀스 케이스로 넘어갑니다. 만약 한쪽 시퀀스에서 무한루프를 돈다면 프로그램은 끝나지가 않습니다.


사진4) 프레임 추가방법 - 우측
사진5) 프레임 추가 방법 - 좌측



프레임 추가 방법 또한 간단합니다. 프레임 모서리에 마우스를 대시고 우클릭을 하고 다음/이전에 프레임 추가를 하시면 됩니다. 프래임의 개수는 제한이 없습니다.



사진6) 더하기 함수 추가


사진7) 기다림 함수 추가

플렛 시퀀스를 이해하기 위해 더하기, 기다림 함수를 각각의 케이스에 넣습니다. 기다림 함수는 우측에 상수를 생성해서 1000으로 입력합니다.



사진8) 완성된 코드

사진8을 보면 각 케이스는 무조건 1000ms를 기다리고 다음 케이스로 진행되게 되어있습니다. Input값이 0일때 처음 Output1은 10을 더합니다. Output2,3도 같은 방식으로 진행되며 마지막 시퀀스때는 Output3에서 출력을 하고 마무리 하게 됩니다.



사진9) 출력 결과
사진9의 출력 결과는 직접 코딩을 하시면 볼수 있습니다. Output1~3까지 1초 단위로 입력이 되는 것을 알수 있기 때문입니다. 이렇든 Flat Sequence 함수는 이러한 단계로 진행 된다는 것을 아셨습니다. 

 이제 다층 시퀀스에 대해서 알아보겠습니다.

다층 시퀀스는 플랫 시퀀스와 거의 다르지 않지만 1가지 중요한 차이점이 있습니다. 바로 공간을 훨씬더 적게 차지한다는 것입니다. 그 이유는 예제 코딩을 만들면서 설명드리겠습니다.



사진10) 다층 시퀀스로 대체

마우스를 플렛 시퀀스의 모서르로 가서 우클릭을 합니다. 그러면 사진10과 같이 나오는데 이때 다층 시퀀스를 선택합니다.


사진11) 초기 다층 시퀀스
사진12) 케이스 추가한 다층 시퀀스

사진11에서 케이스를 추가하면 사진12처럼 나옵니다. 





사진13) 다층 시퀀스 순서

사진13에서 가장 왼쪽에 있는 숫자는 현재 케이스의 순서를 말합니다. 즉 3번째 케이스라는 것입니다. 이유는 케이스의 시작이 0에서부터 시작하기 때문입니다. 가운데 0은 시작 케이스를 말합니다. 그리고 마지막 가장 오른쪽 2는 마지막 케이스를 말하는 것입니다.



사진14) 코드 연결1

사진15) 코드 연결2

사진16) 코드 연결3
사진14~16까지 코드를 연결 합니다. 하지만 아까 코딩했던 코드랑 조금 틀려보입니다. 왜냐하면 이전 코드는 숫자가 누적이 됬는데 이번에는 Input값에 10만 더한것을 각각 출력하기 때문입니다.

사진17) 다층 케이스 출력값

맞습니다. 각각의 케이스는 순서대로 진행이 되지만 값이 누적되지 않고 그대로 Output에 출력을 하게 됩니다. 이것은 다층 케이스의 특징이기도 합니다. 각 케이스가 궂이 연결되지 않고 바로 출력을 할수 있는 것입니다. 하지만 아까와 같은 코드를 만들려면 약간 다르게 작성을 해야 합니다.


사진18) 다층 시퀀스 경계에 시퀀스 로컬 생성

일단 사진18과 같이 코드를 작성하고 다층 시퀀스 경계에 시퀀스 로컬을 생성합니다.

사진19) 첫번째 시퀀스 로컬에 입력
 시퀀스 로컬에 이제 아까 Output1 출력값을 연결합니다.
사진20) 시퀀스 로컬 출력
0번 케이스에서 Output1 출력값을 시퀀스 로컬 값에 넣습니다. 이제 케이스 1번에서 출력으로 빼내서 사진20번처럼 연결 합니다.  이때 Output2를 연결하고 같은 방법으로 사진18,19번처럼 로컬 변수로 만들고 연결합니다.

사진21) 마지막 케이스
마지막은 사진21 처럼 짜 주시면 됩니다. 이제 실행을 해서 결과를 확인해 보겠습니다.

사진22) 코드 결과

사진22도 사진9처럼 같은 결과가 나왔습니다. 다른점은 공간을 더 적게 사용하고 순식간에 결과가 나왔다는 것입니다. 사진9처럼 1초 간격으로 나오게 하고 싶다면 각각의 케이스 안에 기다림 함수를 넣으시면 됩니다.

긴글 읽어주셔서 감사합니다.







댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2