티스토리 뷰

이번 글에서는 DAQmx 함수를 통해서 여러개의 Port에 동일한 값으로 DO를 처리하는 방법에 대해서 알아보도록 하겠습니다. 랩뷰에서 하나의 값을 통해서 동시에 2개의 DO를 제어하는 것인데요. 


위에서 설명한 Port란 무엇일까요?


NI DAQ 장비의 DIO는 각 채널을 Line이라고 명명하고 있습니다. Port는 이 Line의 묶음이라고 보면되는데요. Port는 8개의 Line이 하나의 Port가 될 수 있고, 16개의 Line이 하나의 Port가 될 수 있습니다. 즉, 장비마다 다르다는 이야기이죠. 


여기에서는 8개의 Line이 하나의 Port인 장비에서 2개의 Port에 동일한 Line번호에 대한 출력을 동시에 같은 값으로 출력하고자는 코드를 구현해 보았습니다.


그럼 먼저 코드를 살펴볼까요.


코드는 소프트웨어 타이밍으로 이루어진 DO 신호 출력을 위한 코드입니다.

아래의 코드에서 빨간색 네모박스를 보시면 자신이 원하는 배열을 동일하게 복사하여 길이가 2배긴 배열을 만들고 있습니다.


예를 들어 T,F,F,F,F,F,F,T의 값을 가진 8개의 요소 배열이 있다고 한다면 아래의 코드가 실행이 되면 T,F,F,F,F,F,F,T,T,F,F,F,F,F,F,T의 값을 가진 16개 요소의 배열이 된다는 것이죠.


1차배열이 2차배열이 되는것은 아니구요. 1차배열의 길이가 2배로 길어지는 겁니다. 

위의 코드를 실행하고자 하면 라인 부분에 두개의 포트를 지정해줘야 합니다. 

아래와 같이 말이죠. 


아래의 채널 세팅부분을 보시면 Dev 장비의 Port0과 Port1의 Line8개씩을 각각 설정해 놓았습니다.



그리고 입력배열의 값을 바꾸어 봅니다.

처음에는 맨앞 4개의 불리언만 True값(입력 배열 부분)으로 넣었습니다. 


그러면 출력배열2는 입력 배열의 값이 2배로 복사된 배열로 구성이 되는데요.

출력배열2의 인디케이터에서 왼쪽 8개는 Port0의 출력을, 오른쪽 8개는 Port1의 출력을 담당하게 됩니다. 



입력 배열을 조금 변형해보았습니다.

동일하게 왼쪽은 Port0을 오른쪽은 Port1로 출력이 되게 됩니다. 



생각보다 쉽죠.

그럼 이만 줄이겠습니다. 


이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.


댓글