LabVIEW에서의 NI-DAQmx를 사용한 아날로그 입력 C 시리즈 모듈의 신호 기반 동기화

개요

CompactDAQ 컨트롤러와 섀시는 가속도, 온도, 변형률과 같은 다양한 측정 유형을 지닌 여러 C 시리즈 I/O 모듈을 지원합니다. 어플리케이션에서 측정하는 사이에도 빠짐없이 동기화해야 하는 경우, NI-DAQmx API와 함께 CompactDAQ 하드웨어를 사용하면 사용자가 다양한 설정 옵션을 사용하여 여러 C 시리즈 I/O 모듈에서 원하는 만큼 동기화할 수 있습니다. 이 문서에서는 C 시리즈 I/O 모듈 간 동기화에 사용할 수 있는 신호 기반 옵션을 중점적으로 설명합니다.

내용

C 시리즈 아날로그 입력 모듈

C 시리즈 아날로그 입력 모듈은 동기화에 따라 참조 클럭, 델타 시그마, 저속 샘플, 연속 근사 레지스터(SAR)의 4개 그룹으로 분류할 수 있습니다. 참조 클럭 모듈은 내부 내장 클럭을 사용하여 변환합니다. 이 내장 클럭은 위상 고정 루프를 사용하여 다른 내부 클럭에 대해 통제되거나 모듈 외부의 클럭에 대해 통제될 수 있습니다. 델타 시그마 모듈은 24비트 ADC를 사용하고 모듈 내부의 클럭을 사용하여 변환합니다. 저속 샘플 모듈은 24비트 ADC를 사용하고 CompactDAQ 컨트롤러 또는 섀시에서 비롯된 외부 클럭을 사용하여 변환합니다. 마지막으로, SAR 모듈은 연속 근사 ADC(12비트 또는 16비트)를 사용하고 외부 클럭을 사용하여 변환합니다. 동기화 메소드는 모듈이 속한 그룹에 따라 다릅니다. 모듈 그룹의 리스트는 이 길라잡이의 리소스 섹션에서 확인할 수 있습니다. 이 길라잡이에서 동기화는 DAQmx 드라이버를 통해 직접 또는 간접적으로 사용되는 단계 또는 기법으로 정의되어 동시에 측정을 시작하고 후속 측정 간 편차를 없앨 수 있습니다. 이러한 단계를 통해 샘플 간에 더욱 정렬되지만, 여기서 초점은 편차를 방지하는 것입니다.

시간 기반 동기화 대 신호 기반 동기화

시간 기반 동기화와 신호 기반 동기화는 C 시리즈 모듈로 측정을 동기화하는 데 사용할 수 있는 각기 다른 2개의 동기화 패러다임입니다. 이 문서에서는 신호 기반 동기화에 대해 설명합니다. 시간 기반 동기화에 대한 자세한 내용은 LabVIEW에서의 NI-DAQmx를 사용한 아날로그 입력 C 시리즈 모듈의 시간 기반 동기화를 참조하십시오.

  • 신호 기반 동기화는 디바이스 간에 라우팅된 신호를 통해 동기화되는 것을 의미합니다. 트리거 라인에서 디지털 하이가 발생할 때까지 대기하는 디바이스에서는 신호 기반 동기화가 사용되고 있는 것입니다. 
  • 시간 기반 동기화는 디바이스의 시간에 따라 예정된 이벤트를 통해 동기화되는 것을 의미합니다. 로컬 시간이 오후 5시가 되기까지 대기하는 디바이스는 시간 기반 동기화가 사용되고 있는 것입니다.
     

각 동기화 메소드에는 장점이 있으며 어플리케이션에 따라 적절한 메소드가 다릅니다.

시작 트리거 동기화

이 섹션에서는 여러 모듈에서 수집이 시작되는 시점을 컨트롤하는 다양한 메소드를 설명합니다. 여러 태스크의 시작 시간을 일치시키는 것이 초점이기 때문에, 이는 동기화의 가장 기본적인 메소드라 할 수 있습니다.

첫 번째 메소드는 소프트웨어 함수를 사용하는 것으로, 이 함수는 실행 시 각각의 DAQmx 태스크에 정의된 대로 수집을 시작합니다. 이 함수가 비교적 동시에 각 태스크에서 실행되는 경우, 데이터 시작 부분에서 비슷한 레벨의 동기화가 발생합니다.

하드웨어 타이밍을 사용하고 트리거를 설정하지 않은 경우 DAQmx 태스크 시작 VI를 실행하면 수집이 시작됩니다. 이 VI로 인해 CompactDAQ 컨트롤러와 섀시가 수집을 시작하는 디지털 펄스를 보냅니다. 2개의 독립적인 태스크의 DAQmx 태스크 시작 VI가 플랫 시퀀스 구조를 지닌 같은 프레임에 있는 경우 2개의 태스크는 같은 상대 시간에 시작됩니다. 그러나 두 태스크의 정확한 시작 시간 차이는 DAQmx 태스크 시작 VI 실행이 시작되는 소프트웨어의 지연 시간에 따라 달라집니다. 즉, OS에 따라 달라질 수 있습니다. 이 메소드는 그림 1에서 확인할 수 있습니다. 이를 살펴보면 플랫 시퀀스 구조의 같은 프레임 내 DAQmx 태스크 시작 VI를 사용하여 런타임 중 2개의 아날로그 입력 태스크의 시작을 컨트롤합니다.

그림 1: 플랫 시퀀스 구조 내에서 각 태스크가 시작

지연을 방지하기 위해 DAQmx 트리거 VI를 사용할 수 있습니다. 이 메소드를 사용하면 소프트웨어 함수를 호출하는 대신 하드웨어 트리거에 의해 시작하도록 태스크를 설정할 수 있습니다. 이 기능을 사용하여 태스크를 동기화하면 한 태스크는 트리거를 보내고 다른 태스크는 트리거를 받습니다. 트리거를 받는 태스크는 마스터 태스크에서 전송된 트리거가 수집이나 생성을 시작할 때까지 대기합니다. 마스터 태스크가 시작되면 마스터 태스크에서 디지털 트리거가 보내지고 이 신호를 기반으로 시작되게 설정된 모든 태스크를 시작합니다. 이 메소드는 그림 2에서 확인할 수 있습니다. 이를 살펴보면 태스크가 ai/시작 트리거를 받기 전에 DAQmx 컨트롤 태스크 VI가 호출되어 마스터 태스크가 ai/시작 트리거를 예약합니다. 

그림 2: 두 태스크를 시작하는 트리거 설정

트리거와 타이밍 명명법을 이해하려면, 어떤 타이밍 엔진이 태스크에 예약되어 있는지 파악해야 합니다. CompactDAQ 컨트롤러와 섀시에는 ai, te0, te1이라는 3개의 아날로그 입력 타이밍 엔진이 있습니다. 동시에 실행되는 각 태스크는 샘플 클럭과 트리거를 컨트롤하기 위해 다른 타이밍 엔진에 할당됩니다. 예를 들어, ai/StartTrigger는 ai 타이밍 엔진에 할당됩니다. NI-DAQmx 드라이버는 각 아날로그 입력 태스크를 ai, te0, te1의 순으로 타이밍 엔진에 자동으로 할당합니다. 어떤 태스크가 어떤 타이밍 엔진을 사용하는지 파악해야 하기 때문에 시작 트리거를 받는 태스크가 같은 마스터 태스크의 타이밍 엔진에서 나오는 신호를 사용하도록 설정합니다. 먼저 마스터 태스크를 예약하여 이 태스크를 ai 타이밍 엔진에 할당합니다. 이제 두 태스크 모두 마스터 태스크의 시작 트리거(ai/StartTrigger)를 사용하도록 설정할 수 있습니다.

샘플 클럭 동기화

위의 기법을 사용하면 시작 트리거를 공유하여 태스크가 동시에 시작됩니다. 그러나 이 메소드를 사용한다고 해서 두 태스크 간 후속 측정 타이밍이 서로 멀어지지 않는다는 보장은 없습니다. 두 태스크에서 샘플 클럭을 공유할 수 있기 때문에 공유 클럭을 사용하는 모든 태스크가 동시에 샘플을 수집할 수 있습니다. 따라서 두 태스크 간에 편차가 발생하지 않습니다. 앞서 이야기한 바와 같이, Compact DAQ 컨트롤러와 섀시에는 3개의 아날로그 입력 타이밍 엔진이 있기 때문에 예약된 순서에 따라 각 태스크가 사용하는 타이밍 엔진이 결정됩니다. 아래 그림 3은 태스크 간에 샘플 클럭을 공유하는 방법을 자세히 설명합니다. 

그림 3: 샘플 클럭과 트리거가 공유됨

각 태스크가 같은 샘플 클럭을 공유하기 때문에 이 기법을 사용하려면 2개의 태스크가 같은 샘플 속도로 작동해야 합니다. 이 동기화 메소드는 델타 시그마 또는 참조 클럭 모듈에서는 사용할 수 없습니다. 이 모듈은 모듈에 내장된 클럭을 사용하여 측정값을 수집합니다. 다음 섹션(멀티디바이스 태스크 및 멀티레이트 태스크)에서는 델타 시그마 모듈의 동기화 방법을 설명합니다.

멀티디바이스 태스크

NI-DAQmx에서는 다양한 모듈의 여러 아날로그 입력 채널을 동일한 태스크에 배치할 수 있어 단순하게 동기화를 설정할 수 있습니다. 여러 모듈을 같은 태스크에 배치하려면, 버추얼 채널 생성 VI의 물리적 채널 입력에서 서로 다른 모듈에 여러 채널을 지정합니다. 서로 다른 모듈의 채널이 동일한 측정 설정(전압 범위 및 단위)은 물론 동일한 타이밍과 트리거링 정보를 가지려면 동일한 DAQmx 채널 생성에 포함되어 있어야 합니다.

그림 4: 같은 태스크에서 각기 다른 모듈 사용

모듈에서 각기 다른 영역(예: 전압 또는 전류)을 측정하거나 다른 측정 범위가 필요하거나 다른 측정 단위를 사용해야 하는 경우, 아래와 같이 DAQmx 버추얼 채널 생성 VI의 여러 인스턴스를 사용합니다.

그림 5: 하나의 태스크에 여러 DAQmx 버추얼 채널 생성 VI를 사용하여 각기 다른 측정 유형 지정

같은 태스크에서 여러 유형의 아날로그 입력 모듈(SAR, 델타 시그마, 저속 샘플, 참조 클럭)을 혼합하여 NI-DAQmx 드라이버가 이를 동기화하도록 만들 수 있습니다. 멀티디바이스 태스크의 경우, DAQmx에서는 모듈을 동기화하는데 가장 좋은 메소드를 선택합니다. 다양한 시나리오와 멀티디바이스 태스크에서 측정을 동기화하는 방법은 아래 설명을 확인하십시오.

2개의 SAR/저속 샘플 모듈- 2개의 SAR 모듈, SAR과 저속 샘플 모듈 또는 2개의 저속 샘플 모듈이 하드웨어 타이밍이 같은 태스크에 배치된 경우, DAQmx 드라이버는 같은 섀시 또는 컨트롤러의 샘플 클럭과 시작 트리거를 두 모듈 간에 공유합니다. SAR과 저속 샘플 모듈 설정의 경우, 데이터가 반환되는 최대 속도는 저속 샘플 모듈에 의해 결정되지 않습니다. 드라이버는 저속 샘플 모듈에 중복 샘플을 반환하기 때문에 SAR 모듈을 가장 빠른 허용 속도로 실행할 수 있습니다.

2개의 델타 시그마 모듈 - 2개의 델타 시그마 모듈이 하드웨어 타이밍이 같은 AI 태스크에 배치된 경우 DAQmx 드라이버에서는 모든 모듈에서 가장 빠른 마스터 타임베이스를 공유하고 같은 동기화 펄스를 기반으로 ADC를 리셋하며 시작 트리거를 공유하고 리셋 시간을 조정합니다. 마스터 타임베이스는 델타 시그마 모듈에서 측정값을 수집하는데 사용하는 내부 12.8 MHz 또는 13.1 MHz 클럭입니다. cDAQ-9185 또는 cDAQ-9189(시간 인식 섀시)의 기본 동작은 마스터 타임베이스가 가장 빠른 모듈 대신 섀시에서 시작되는 것입니다.

2개의 참조 클럭 모듈 - 2개의 참조 클럭 모듈이 하드웨어 타이밍이 같은 AI 태스크에 배치된 경우 DAQmx 드라이버에서는 마스터 모듈의 참조 클럭을 다른 모듈과 공유하고 같은 동기화 펄스를 기반으로 ADC를 리셋하며 시작 트리거를 공유하고 리셋 시간을 조정합니다. 참조 클럭은 후속 모듈이 고정되는 내부 마스터 타임베이스입니다. 시간 인식 섀시의 기본 동작은 참조 클럭이 마스터 모듈이 아닌 섀시에서 시작되는 것입니다.

참조 클럭 모듈 및 델타 시그마 모듈 - 참조 클럭 모듈과 델타 시그마 모듈이 하드웨어 타이밍이 같은 AI 태스크에 배치된 경우 DAQmx 드라이버에서는 참조 클럭 모듈의 참조 클럭을 델타 시그마 모듈의 마스터 타임베이스로 라우팅합니다. 두 모듈 모두 섀시/컨트롤러에서 동기화 펄스를 받아 각각 ADC를 리셋하고 시작 트리거를 공유하며 각 모듈의 리셋 시간이 조정됩니다. 시간 인식 섀시에서 참조 클럭 모듈의 참조 클럭은 델타 시그마 모듈의 마스터 타임베이스와 공유되지 않으며, 섀시는 참조 클럭을 참조 클럭 모듈로, 마스터 타임베이스를 델타 시그마 모듈로 라우팅합니다. 참조 클럭 모듈(NI 9775)은 델타 시그마 모듈과 같은 태스크에 배치할 경우 레코드 모드에 있을 수 없습니다.

델타 시그마/참조 클럭 및 SAR/저속 샘플 - SAR 또는 저속 샘플 모듈과 델타 시그마 또는 참조 클럭 모듈이 하드웨어 타이밍이 같은 AI 태스크에 배치된 경우 DAQmx 드라이버에서는 SAR 또는 저속 샘플링 모듈에서 사용할 내부 샘플 클럭을 내보내도록 델타 시그마 모듈 또는 참조 클럭 모듈을 설정합니다. 내부 샘플 클럭은 델타 시그마 모듈에 설정된 데이터 속도와 같습니다.

여기서 각 항은 다음과 같습니다.
     fs: 데이터 속도
     fm: 각 모듈 스펙 시트에 지정된 내부 마스터 타임베이스
     n/a/b: 제수

참조 클럭 모듈의 내부 샘플 클럭은 디바이스의 데이터시트에서 확인할 수 있습니다. 드라이버는 저속 샘플 모듈에 중복 샘플을 반환하기 때문에 델타 시그마 또는 참조 클럭 모듈이 더 빠른 속도로 실행될 수 있습니다. 참조 클럭 모듈(NI 9775)은 SAR 또는 저속 샘플 모듈과 같은 태스크에 배치할 경우 레코드 모드에 있을 수 없습니다.  

멀티레이트 동기화

하나의 태스크에서 여러 모듈을 참조하는 경우, 모든 채널에 동일한 샘플링 속도가 적용됩니다. 그러나 다른 속도로 동기화해야 하는 어플리케이션이 있을 수 있습니다.

2개의 SAR 모듈 - CompactDAQ 섀시 또는 컨트롤러에서 서로 다른 속도로 수집하는 2개의 SAR 모듈 또는 저속 샘플 모듈을 동기화하기 위해 시작 트리거를 공유하는 것 외에 추가 작업을 수행할 필요가 없습니다. 각 모듈이 사용하는 샘플 클럭은 같은 신호에서 파생됩니다. 따라서 모듈이 같은 섀시에 배치되어 있으면 측정값이 동기화됩니다.

2개의 DSA 모듈 - 서로 다른 속도로 수집하는 2개의 델타 시그마 모듈을 동기화하려면 태스크에서 공통 마스터 타임베이스, 동기화 펄스(동기화 펄스), 시작 트리거를 공유하도록 설정합니다. 그림 6을 살펴보면 마스터 타임베이스 클럭은 한 모듈에서 다른 모듈로 라우팅됩니다. NI DAQmx 타이밍 프로퍼티 노드 SampleClck.Timebase.Src는 사용 설명서와 스펙/데이터시트에 기재된 마스터 타임베이스와 같은 12.8 MHz 또는 13.1 MHz 신호를 참조합니다. 이 클럭은 하나의 샘플을 생성하는데 많은 Tick이 필요하기 때문에 오버 샘플 클럭으로도 알려져 있습니다.

그림 6: 오버 샘플 클럭 공유

델타 시그마 모듈을 사용하는 디바이스에는 독립적으로 실행되는 ADC가 있습니다. 마스터 타임베이스를 공유하면 측정값이 같은 클럭에서 파생되지만, ADC가 정확하게 시작되면 알 수 없는 위상 변화가 발생합니다. 다음 단계는 동기화 펄스 공유입니다. 동기화 펄스는 샘플 수집 또는 생성을 시작하기 전에 ADC/DAC를 리셋하는데 사용됩니다. 이 신호를 사용하여 ADC/DAC를 리셋하지 않으면, 측정값이 동기화되지 않습니다. 다음은 오버 샘플 클럭과 동기화 펄스를 공유할 수 있는 프로퍼티 노드입니다.

그림 7: 오버 샘플 클럭, 시작 트리거, 동기화 펄스 공유

위의 설정은 더 빠른 속도로 실행되는 태스크에 따라 한 태스크에서 다른 태스크로 동기화 펄스를 라우팅합니다. 멀티레이트 설정의 경우, 실행 속도가 느린 태스크의 샘플 클럭을 사용하여 실행 속도가 빠른 태스크를 트리거합니다. 그 이유는 예제에 설명되어 있습니다.

또 한 가지 고려해야 할 사항은 각 모듈에 필요한 리셋 시간입니다. 리셋 시간은 델타 시그마 모듈 ADC가 동기화 펄스를 받은 후 데이터 수집을 시작할 때까지 필요한 지연 시간입니다. 델타 시그마 모듈의 모델에 따라 리셋 시간이 다를 수 있습니다. 각 디바이스가 리셋 시퀀스를 거쳐 동시에 샘플을 수집하거나 출력하기 시작하도록 하려면 이 리셋 시간을 고려해야 합니다. 잠재적으로 각기 다른 리셋 시간을 적절히 고려하기 위해, 각 모듈에 필요한 리셋 시간을 확인하고 필요한 경우 리셋 시간이 짧은 모듈에 지연 시간을 추가합니다. 따라서 리셋 시간과 지연 시간의 합은 각 모듈에서 같아야 합니다.

ADC 리셋에 필요한 시간은 DAQmx 타이밍 프로퍼티 노드 SyncPulse.ResetTime을 사용하여 확인할 수 있습니다. 모든 ADC의 리셋 사이클이 동시에 종료되도록 하려면 두 태스크의 리셋 시간을 비교합니다. 리셋 시간이 가장 큰 태스크에서 리셋 시간이 더 적은 태스크의 리셋 시간을 뺍니다. 그 결과는 한 태스크가 데이터 수집을 시작하는 동안 다른 태스크가 리셋 사이클을 거치는 시간입니다. 이러한 지연을 처리하기 위해 SyncPulse.ResetDelay라는 다른 NI-DAQmx 프로퍼티를 사용합니다. 이 프로퍼티를 사용하면 각 모듈로 전송될 동기화 펄스가 지연됩니다. 앞서 설명한 바와 같이 리셋 시간은 ADC가 동기화 펄스를 받고 데이터 수집을 시작할 때까지의 지연 시간입니다. 이 프로퍼티를 가장 유용하게 사용하려면 이 값을 리셋 시간이 가장 큰 모듈과 모듈의 리셋 시간 간 차이와 같아지도록 설정해야 합니다. 이렇게 하면 리셋에 시간이 더 짧은 모듈의 동기화 펄스가 이동하여 리셋 시간이 느린 모듈과 빠른 모듈 2개에서 리셋 시퀀스가 동시에 종료될 수 있습니다. 아래 코드는 리셋 시간을 얻고 적절한 리셋 지연 시간을 결정하는 방법을 자세히 설명합니다.  

그림 8: 동기화 펄스 리셋 시간 쿼리 및 리셋 지연 시간 계산

NI-DAQmx 프로퍼티 노드 SyncPulse.ResetDelay의 최대 입력은 0.013초이며, 이는 서로 다른 모듈의 리셋 지연 값 차이가 큰 경우에 적합하지 않을 수 있습니다. 마스터 타임베이스를 받는 태스크에서 SyncPulse.ResetTime 폴링 시 프로퍼티 노드의 순서를 확인합니다. 값은 13.1 MHz 타임베이스 또는 12.8 MHz 타임베이스에 따라 변경됩니다. 따라서 모듈에 마스터 타임베이스의 속도가 알려진 후 이 태스크에서 SyncPulse.ResetTime을 호출하는 것이 중요합니다.

SyncPulse.ResetDelay와 SyncPulse.ResetTime 프로퍼티를 검색하면 SyncPulse.SyncTime과 SyncPulse.MinDelaytoStart도 발견하게 됩니다. 대부분의 개발자는 이 프로퍼티를 사용하지 않지만, 이름이 유사하고 위치가 가까워 이러한 프로퍼티를 보게 됩니다. SyncPulse.SyncTime은 SynchPulseResetTime y에 SyncPulse.ResetDelay에 입력한 값을 더한 것입니다. SyncPulse.SyncTime의 값은 가장 가까운 밀리초로 반올림됩니다. SyncPulse.MinDelaytoStart는 동기화 펄스가 발행된 시점과 마스터 태스크가 시작 트리거를 발행하는 시점 사이의 시간입니다. 이 프로퍼티는 명시적 설정이 없는 한 SyncPulse.SynchTime과 같습니다.

2개의 참조 클럭 모듈 -2개의 참조 클럭 모듈을 서로 다른 속도로 동기화하려면(2개의 DSA 모듈과 같이) 마스터 태스크의 참조 클럭, 동기화 펄스, 샘플 클럭을 다른 태스크에 배포합니다. NI DAQmx 타이밍 프로퍼티 노드 RefClck.Src는 데이터시트에 나열된 것과 같은 내부 마스터 타임베이스를 참조합니다.

그림 9: 2개의 참조 클럭 모듈 동기화

델타 시그마 모듈 및 SAR/저속 샘플 모듈 – 델타 시그마 모듈과 SAR/저속 샘플 모듈을 동기화하려면 델타 시그마 모듈의 마스터 타임베이스와 샘플 클럭을 SAR/저속 샘플 모듈과 공유합니다. SAR/저속 샘플 모듈은 12.8 MHz 또는 13.1 MHz에서 수집할 수 없기 때문에 델타 시그마의 마스터 타임베이스는 그림 10과 같이 SAR/저속 샘플 모듈의 마스터 타임베이스와 공유됩니다. SAR/저속 샘플 모듈의 샘플 클럭은 일반적으로 CompactDAQ 섀시 또는 컨트롤러의 내장 클럭에서 파생됩니다. 이 메소드는 섀시 또는 컨트롤러 클럭을 델타 시그마 모듈의 12.8 MHz 또는 13.1 MHz 클럭으로 대체합니다.  

그림 10: 델타 시그마 모듈과 SAR/저속 샘플 모듈 동기화

참조 클럭 모듈 및 SAR/저속 샘플 모듈 – 참조 클럭 모듈과 SAR/저속 샘플 모듈을 동기화하려면 참조 클럭 모듈의 참조 클럭과 샘플 클럭을 SAR/저속 샘플 모듈과 공유합니다. SAR/저속 샘플 모듈은 12.8 MHz에서 수집할 수 없기 때문에 참조 클럭 모듈의 참조 클럭은 SAR/저속 샘플 모듈의 마스터 타임베이스와 공유됩니다. SAR/저속 샘플 모듈의 샘플 클럭은 일반적으로 CompactDAQ 섀시 또는 컨트롤러의 내장 클럭에서 파생됩니다. 이 메소드는 SAR/저속 샘플 모듈로 라우팅된 섀시 또는 컨트롤러 클럭을 참조 클럭 모듈의 내부 마스터 타임베이스로 대체합니다.  

그림 11: 참조 클럭 모듈을 SAR/저속 샘플 모듈과 동기화

여러 섀시 태스크

일부 측정 어플리케이션에는 혼합 측정 및 분산 시스템이 필요하며, 이 경우 하나 이상의 CompactDAQ 섀시 또는 컨트롤러가 필요할 수 있습니다. 여러 섀시를 동기화할 수 있는 주요 메소드는 세 가지입니다.

BNC/SMB 커넥터 또는 디지털 모듈을 사용한 여러 섀시 동기화 - 섀시 간 동기화를 위한 한 가지 메소드는 cDAQ-9178, cDAQ-9188, cDAQ-9188XT, cDAQ-9179 섀시에 있는 2개의 BNC 커넥터 또는 CDAQ-9132, cDAQ-9133, cDAQ-9134, cDAQ-9135, cDAQ-9136, cDAQ-9137, cDAQ-9185, cDAQ-9189의 SMB 커넥터 1개를 사용하여 타이밍 신호를 가져오고 내보내는 것입니다. 이제 CompactDAQ 컨트롤러는 단종되어 더 이상 사용할 수 없습니다.

그림 12: 2개의 BNC 포트가 있는 NI cDAQ-9178을 사용하여 타이밍과 트리거 신호를 가져오거나 내보낼 수 있습니다.

다른 섀시의 BNC 또는 SMB 터미널을 연결하여 트리거와 타이밍 신호를 라우팅할 수 있습니다. DAQmx 드라이버를 사용하면 NI-DAQmx 신호 내보내기 프로퍼티 노드를 사용하여 마스터 태스크에서 신호를 내보낼 수 있습니다. 다른 섀시의 태스크에서 샘플 클럭과 시작 트리거는 BNC 또는 SMB 터미널을 사용하여 신호를 받도록 설정됩니다.

그림 13: CompactDAQ 섀시에서의 BNC 포트 설정

병렬/상호 연관된 디지털 IO 모듈을 사용하여 섀시에서 트리거와 타이밍 신호를 받거나 보낼 수도 있습니다. 이 디지털 I/O 모듈은 NI Compact DAQ 컨트롤러와 섀시에 충분한 BNC 또는 SMB 포트가 없거나 신호 대역폭이 BNC 또는 SMB 커넥터의 대역폭(1MHz)을 초과할 때 선호됩니다.

NI 9469를 사용한 여러 섀시 동기화 - 섀시 BNC 커넥터 또는 병렬/상호 연관된 디지털 IO 모듈에서 타이밍을 설정하고 신호를 트리거하는 위의 메소드는 여러 어플리케이션에서 사용할 수 있습니다. 그러나 다음과 같은 경우 NI 9469를 사용하는 다른 메소드가 좋습니다.

  • 섀시 간 거리가 긴 경우
  • 내보낸 신호의 대역폭이 높은 경우
  • 동기화 토폴로지가 복잡한 경우
     

NI 9469를 사용하면 신호 라우팅과 코딩을 단순화하고 다양한 섀시 토폴로지에서 SAR, 저속 샘플, 델타 시그마, 디지털 입력 및 출력, 아날로그 출력 모듈에 동기화할 수 있습니다. NI 9469 카드 간 연결은 다음 그림과 같이 Measurement & Automation Explorer(MAX)에서 설정할 수 있습니다. NI 9469를 설정하는 방법에 대한 더 자세한 사항은 이 문서 끝 부분의 관련 링크 섹션을 참조하십시오. 

그림 14: Measurement & Automation Explorer에서 NI 9469 설정

NI 9469가 MAX에서 설정되면(NI-DAQmx 9.9 또는 이후 버전 사용) 별도 섀시의 모든 모듈을 같은 태스크에 추가하여 동기화에 필요한 코드를 크게 단순화할 수 있습니다. 다음 그림은 이 여러 섀시 동기화 메소드를 보여줍니다.

그림 15: MAX에서 설정된 NI 9469의 여러 섀시 동기화 코드

다른 섀시에서 모듈을 동기화하는 메소드의 백그라운드 프로세스는 멀티레이트 태스크와 멀티디바이스 태스크 섹션에 설명된 메소드와 같습니다. 이 메소드를 사용하여 여러 섀시의 모듈을 자동으로 동기화하는 경우 제한 사항이 존재하며 이는 문서화되어 있습니다.

결론

이 길라잡이에서는 몇 가지 동기화 옵션을 살펴보았습니다. 처음에 태스크는 소프트웨어 시간 지정 명령으로 시작되었습니다. 태스크 간에 하드웨어 트리거를 공유하여 동기화를 향상시키고, 한 태스크에서 다른 태스크로 샘플 클럭을 공유하여 태스크 간 편차를 방지할 수 있습니다. 모듈을 같은 속도로 동기화하는 경우, 같은 태스크 내에서 여러 모듈을 참조하여 프로그래밍을 단순화할 수 있습니다. 사용하는 모듈의 샘플 속도를 달리해야 하는 경우, 사용하는 모듈의 유형에 맞춰 고려해야 합니다. 사용하는 모듈의 속도를 달리해야 하는 경우, 사용하는 모듈의 유형에 맞춰 고려해야 합니다. 위에 설명된 옵션은 여러 어플리케이션의 타이밍 요건 내에서 신호를 기반으로 C 시리즈 모듈을 동기화하는 여러 가지 방법을 나타냅니다.

Was this information helpful?

Yes

No