DAQmx를 이용하여 디지털 출력하는 방법에 대해서 알아볼까 해요. DAQmx 함수를 이용하면 AI, AO, DIO, Counter의 연동이 가능한데요. 이번 글에서는 DO에 대한 부분을 설명을 드리려고 합니다. 이 글의 목표는 3개의 Boolean 배열을 이용하여 7개의 DO 중 특정 DO에 출력을 하게끔 해보겠습니다. 말로 하면 좀 어려운데요. 3개의 불리언은 2진수, 출력되는 DO는 2진수의 10진수 값으로 변환한 값의 해당 포트가 출력이 되게끔 하고자 하는 거에요 (말이 어렵나요 ㅠㅠ) 아래의 코드는 DAQmx에서 제공하는 소프트웨어 타이밍 출력의 코드를 조금 변경한 것입니다. NI 예제는 참 잘 만들어져 있기 때문에 자신이 원하는 코드만 일부분 변경하여 사용하는 것이 LabVIEW 프로그래밍을 ..
이번 글에서는 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번호에 대한 출력을 동시에 같은 값으로 출력하고자는 코드를 구현해 보았습니다. 그럼 먼저 코드를 살펴볼까요. 코드는..
DAQmx를 이용하여 아날로그 입력을 받을 때 일반적으로는 하드웨어 트리거(Hardware Trigger)를 많이 사용합니다. 하드웨어 트리거는 디지털 신호를 엣지로 받거나, 아날로그 트리거에서 특정 Voltage를 기준으로 받게 됩니다. 트리거의 종류디지털 트리거 : 상승 혹은 하락 엣지를 통해서 TTL 신호 레벨의 True와 Fale 값을 이용하여 트리거링아날로그 트리거 : 일정 Voltage 상승 혹은 하락의 경우 트리거링 하지만 NI의 CompactDAQ를 이용하여 C Series 모듈을 이용하여 측정을 하게 되면, 아날로그 트리거를 사용하기가 어렵게 됩니다. 그 이유는 NI 9205, 9206을 제외하고는 아날로그 트리거에 사용되는 APFI를 지원하지 않기 때문이죠. 이에 대한 관련 문서는 아래..
스트레인 게이지 측정을 위해서 LabVIEW와 DAQ장비 그리고 스트레인 게이지 결선을 마치고 프로그램을 실행시키면 아래와 같이 -201398 에러가 발생을 하는 경우가 있습니다. 스트레인 게이지란?대상물의 변형을 측정하는 센서로, 금속 포일을 지지하는 유연성 있는 후판을 가진 형태를 띄고 있습니다. 스트레인 게이지는 일반적으로 한축을 측정할 수 있는 센서로 위-아래의 방향에 대한 변형을 측정하게 됩니다. LabVIEW의 DAQ 코드를 실행을 시키면 아래와 같은 에러가 발생을 합니다. 두둥, 딱 에러발생!! 에러의 내용이 조금은 이상합니다. 프로퍼티 지원을 하지 않는다라? DAQ 예제 코드에서는 트리거와 같이 스트레인 게이지와 상관없는 부분에만 프로퍼티를 사용하고 있음에도 프로퍼티 노드를 지원하지 않는다..
DAQmx 드라이버는 기본적으로 소프트웨어 적으로 이더넷 DAQ 장비를 설정하는 함수를 제공하고 있습니다. 이에 대한 함수는 DAQmxAddNetworkDevice, DAQmxReserveNetworkDevice 함수입니다. 이에 대한 사용법의 예는 아래와 같습니다. 과정을 설명드리면, 1) 장비를 추가합니다. 2) 추가한 장비를 예약합니다. 3) 예약에 대한 시간이 걸리기 때문에 바로 Start Task를 하시면 에러가 발생할 수 있으니 얼마간의 Sleep을 지정합니다. C언어를 이용하시는 분이니 아래의 코드를 보시면 충분히 이해가 갈 것이라 생각을 합니다. 각 함수에 대해서 간략히 설명을 드리자면, 1) 네트워크 장비 추가 함수 네트워크 장비 추가함수는 장비의 IP 주소와 MAX에서의 장비 이름을 이..