함수 위치
NI-DAQmx 8.9 및 이후 버전에서는 LabVIEW에서 DAQmx 셀프 테스트 장치 기능 또는 DAQmx 리셋 기능을 사용할 수 있습니다. 또한 LabWindows / CVI 또는 ANSI C에 대한 지원과 C # 또는 Visual Basic에 대한 .NET을 통해 유사한 DAQmx 리셋 및 셀프 테스트 기능을 호출 할 수 있습니다.
LabVIEW NXG :
DAQmx 리셋 VI 및 자체 테스트 기능은 다이어그램의
하드웨어 인터페이스 » NI-DAQmx - 데이터 수집 » 디바이스 설정 팔레트에 있습니다.
LabVIEW :
DAQmx 드라이버 :
DAQmx 리셋 VI 및 자체 테스트 기능은 블록 다이어그램의 측정 I/O » NI-DAQmx - 데이터 수집 » 디바이스 설정 팔레트에 있습니다.
예전 DAQ 드라이버 :장치 리셋 기능은 블록 다이어그램의
Measurement I/O » Data Acquisition » Callibration and Configuration 팔레트에 있습니다.
LabWindows / CVI 및 ANSI C :
DAQmx 리셋 및 자체 테스트 기능은 Libraries»NI-DAQmx Library»Advanced»Device Control에서 찾을 수 있습니다 .
DAQmx 리셋 :
함수 프로토 타입 : int32 DAQmxResetDevice (const char deviceName[])
예 : int errorResult = DAQmxResetDevice ("Dev1");
DAQmx 셀프 테스트 :
함수 프로토 타입 : int32 DAQmxSelfTestDevice (const char deviceName[])
예 : int selfTestResult = DAQmxSelfTestDevice ("Dev1");
C # .NET :
C #에서 DAQmx 리셋 또는 셀프 테스트를 수행하려면 먼저 DAQ 디바이스 용 Device 객체가 있어야 하며 Device 객체에서 리셋 또는 셀프 테스트 기능을 호출 할 수 있습니다.
DAQmx 리셋 :
함수 프로토 타입 : vid Device.Reset ();
예:
Device dev = DaqSystem.Local.LoadDevice("Dev1");
dev.Reset();
DAQmx 셀프 테스트 :
함수 프로토 타입 : void Device.SelfTest();
예:
Device dev = DaqSystem.Local.LoadDevice("Dev1");
dev.SelfTest();
Visual Basic .NET:
Visual Basic에서 DAQmx 재설정 또는 셀프 테스트를 수행하려면 C# .NET과 유사합니다. .NET에서 Device 객체를 사용하여 재설정 및 셀프 테스트 함수를 호출해야 합니다.
DAQmx 리셋 :
함수 프로토 타입 : Public Sub Reset ()
예:
Dim dev As Device = DaqSystem.Local.LoadDevice("Dev1")
dev.Reset()
DAQmx 셀프 테스트 :
함수 프로토 타입 : Public Sub SelfTest()
예:
Dim dev As Device = DaqSystem.Local.LoadDevice("Dev1")
dev.SelfTest()
기능 구현
장치 재설정 기능은 대개 프로그램의 시작 또는 끝 부분에서 사용됩니다. 리셋 장치가 프로그램 중간에 사용되면 장치와 관련된 모든 활성 작업을 즉시 중단하고 경로를 연결 해제 한 다음 장치를 초기화된 상태로 되돌립니다. 작업을 중단하면 읽기 또는 쓰기와 같은 현재 활성화된 작업이 즉시 종료됩니다. 작업을 중단하면 작업이 불안정하지만 복구 할 수 있는 상태가 됩니다. NI-DAQmx에서 태스크를 복구하려면 DAQmx Start Task 노드를 사용하여 태스크를 다시 시작하거나 DAQmx Stop을 사용하여 태스크를 시작하지 않고 태스크를 리셋하십시오. 재설정 프로세스는 비동기적이며 재설정 완료 전에 함수가 반환됩니다. 이 기능들에 대한 더 자세한 정보는 NI-DAQmx 도움말 파일을 참조하십시오.
LabVIEW의 예제 코드
아래는 LabVIEW로 작성된 리셋 디바이스를 프로그램의 마지막에 놓는 예제 코드입니다.
- DAQmx 태스크는 메인 루프 이전에 초기화되며 여기서는 태스크 인 컨트롤로 나타냅니다. 이 예제에서는 초기화 단계가 생략되어 있습니다. DAQmx 태스크를 생성하고 설정하는 방법에 대한 더 자세한 정보 다음을 참고하십시오. NI-DAQmx의 10가지 함수 학습을 통해 데이터 수집 어플리케이션의 80 퍼센트 해결
- 태스크를 시작하고 수집 루프에 입력하십시오.
- 수집 루프는 수집을 처리합니다. 이 예제에서 데이터 수집은 단일 채널에서 N 개의 샘플을 연속적으로 읽도록 설정됩니다. 사용자가 중지 버튼을 누르거나 오류가 발생하면 수집 루프가 종료되고 디바이스 리셋 폴링 루프(Reset Device Polling)가 시작됩니다.
- 디바이스 리셋 폴링 루프(Reset Device Polling)는 현재 오류를 지우고 장치를 재설정합니다. 루프는 DAQmx 디바이스 리셋 VI가 성공할 때까지 실행됩니다.
- 이미 시작한 DAQmx 태스크를 시작하면 에러가 발생하기 때문에 현재 DAQmx 태스크를 다시 시작하기 전에 중지하십시오.
- 프로그램이 끝나면 작업은 지워지고 나머지 오류는 단순 에러 핸들러(Simple Error Handler) VI에 의해 처리됩니다.
선택 사항:
DAQmx 셀프 테스트 디바이스 VI를 추가하여 리셋 후에 디바이스가 올바르게 응답하는지 테스트 할 수 있습니다.
Additional Information
8.9 이전의 NI-DAQmx에는 셀프 테스트 VI 또는 기능이 없지만 디바이스 리셋 기능을 사용할 수 있습니다. MAX의 셀프 테스트와 거의 동일하지만, 조금 더 추가적인 기능을 제공합니다. 이 리셋 기능은 응용 프로그램을 중단하거나 충돌하여 참조를 정상적으로 닫고 해제 할 수없는 경우 코드 시작 부분에 추가할 수 있는 좋은 옵션입니다.