DAQmx 드라이버는 기본적으로 소프트웨어 적으로 이더넷 DAQ 장비를 설정하는 함수를 제공하고 있습니다. 이에 대한 함수는 DAQmxAddNetworkDevice, DAQmxReserveNetworkDevice 함수입니다. 이에 대한 사용법의 예는 아래와 같습니다. 과정을 설명드리면, 1) 장비를 추가합니다. 2) 추가한 장비를 예약합니다. 3) 예약에 대한 시간이 걸리기 때문에 바로 Start Task를 하시면 에러가 발생할 수 있으니 얼마간의 Sleep을 지정합니다. C언어를 이용하시는 분이니 아래의 코드를 보시면 충분히 이해가 갈 것이라 생각을 합니다. 각 함수에 대해서 간략히 설명을 드리자면, 1) 네트워크 장비 추가 함수 네트워크 장비 추가함수는 장비의 IP 주소와 MAX에서의 장비 이름을 이..
ANSI C기반 DAQ 샘플 속도 변경 방법 LabVIEW와 ANSI C 기반의 DAQ 수집 과정은 동일하지만 설정하는 방법이 조금 다른 점이 있습니다. 이 부분에 대한 설정 방법을 알려드리도록 할께요. 1) LabVIEW 코드 LabVIEW의 전압 연속 샘플링 코드를 수행할 때 샘플 속도/읽을 갯수를 지정하게 되면 문제없이 동작을 하게 됩니다. 기존의 코드 값인 1000/100도 문제가 없이 동작을 하고, 3600/360으로 변경을 해도 아래의 그림과 같이 동일하게 동작을 하게 됩니다. 2) Ansi C 기반의 코드 하지만 Ansi C에서 샘플 속도와 읽을 갯수를 변경하여 지정을 하게 되면 아래와 같은 에러가 발생을 합니다. 아래의 에러코드는 샘플 속도/읽을 샘플 갯수의 지정이 잘못되어 발생하는 문제가..
NI Compact DAQ 디바이스를 이용하여 입력 및 출력을 처리할 때 사용할 수 있는 타이밍에 대한 방법은 내부 타이밍 엔진을 사용하는 하드웨어 타이밍과 윈도우와 같은 OS의 타이밍을 사용하는 소프트웨어 타이밍으로 구분할 수 있습니다. 이 글은 Gen II cDAQ 샤시 (cDAQ-9171/9174/9178/9181/9184/9188/9188XT/9191)는 물론 Standalone cDAQ 샤시 (cDAQ-9138/9139)에서도 적용을 할 수 있습니다. 이 글에서는 내부 타이밍 엔진을 사용하는 하드웨어 타이밍에 대해서 정리를 해보도록 할까합니다. 데이터 수집 및 출력 처리시 최고의 성능과 동기화를 위해서는 하나의 AI 혹은 AO 태스크에서 사용자가 원하는 처리하도록 설정할 수 있습니다. 이렇게 되..
NI사의 이더넷 DAQ 장비를 사용하기 위해서는 IP 할당 및 장비에 대한 예약은 필수적인 요소입니다. IP 할당은 DHCP를 통해서 공유기에 물리게 되면 자동적으로 받아오게 되지만, 장비 추가 및 예약과 관련된 부분은 MAX에서 사용자가 설정을 해줘야 합니다. 이러한 부분을 사용자는 코드상에서 처리할 수 있습니다. 이번 글에서는 C#을 이용하여 장비를 추가하고, 장비를 예약 및 예약 해제를 하는 방법에 대해서 알아보도록 하겠습니다. 이더넷 장비에 대해서 명확한 이해를 원하신다면 아래의 링크를 참조해주시기 바랍니다. 이더넷 DAQ 장비에 대해서 좀더 알아보기http://www.ni.com/data-acquisition/ethernet/ko/ 그럼 장비를 설정하는 방법에 대해서 알아보도록 하겠습니다. 1...
텍스트 기반으로 DAQmx 함수를 이용하여 DAQ 어플리케이션을 만들 때 가장 헷갈리는 부분이 C API와 .NET API의 함수이름이 다르다는 점입니다. NI는 각각 다른 Help 파일을 통해서 이 함수들에 대한 설명을 제공하기 때문에 특정 언어에 좀더 친숙한 사람이 다른 언어로 개발을 할 때 많은 어려움이 있습니다. 아래의 테이블은 NI-DAQmx .NET API와 NI-DAQmx C API의 함수들을 맴핑한 결과입니다. NI-DAQmx .NET API는 NationalInstruments.DAQmx 네임스페이스 안에 모두 구현되어 있습니다. .NET API MemberC API MemberAdvanceTrigger ConfigureDigitalEdgeTriggerDAQmxCfgDigEdgeAdvTr..