하드웨어 고려 사항
PWM 생성 및 펄스 카운팅의 구현은 사용중인 하드웨어에 따라 다릅니다. 카운터는 PWM 출력을 생성하는데 선호됩니다. 해당 장치에서 사용할 수있는 카운터 수와 PWM 지원 여부를 확인하려면 하드웨어의 데이터 시트를 참조하십시오.
모듈/카드:
- E, S, M 및 X 시리즈 장치 – 사용 설명서 참고
- 기타 디지털 모듈 – 사용자 설명서에서 정적 (예 : 소프트웨어 타임) 또는 하드웨어 타임인지 확인
- C 시리즈 -C 시리즈 모듈이 CompactDAQ(cDAQ) 섀시 또는 컨트롤러의 백플레인에서 카운터 또는 타이머에 액세스 할 수 있는지 확인하십시오. 온보드 카운터 액세스를 위한 cDAQ 모듈 지원
섀시/컨트롤러 :
- cDAQ – 사용자 설명서에서 섀시의 카운터 수를 확인하십시오. 이 기능은 섀시 온보드 카운터에 대한 액세스를 제공하는 모듈에서만 사용할 수 있습니다.
LabVIEW에서 NI-DAQmx를 사용한 PWM
NI-DAQmx에서 PWM을 구현하려면 하드웨어의 기능을 먼저 확인하십시오. 그런 다음 애플리케이션에 가장 적합한 솔루션으로 소프트웨어 타이밍(Software Timed) 또는 하드웨어 타이밍(Hardware Timed) PWM 중에 결정할 수 있습니다.
소프트웨어 타이밍 펄스 폭 변조애플리케이션에 속도 및 정밀도와 관련하여 엄격한 요구 사항이 없는 경우 펄스 트레인 또는 PWM 생성을 위한 소프트웨어 타이밍 제어와 함께 디지털 출력을 사용할 수 있습니다.
다음은 소프트웨어 타이밍 디지털 I/O로 PWM을 구현하기위한 커뮤니티의 예입니다.
Software Timed Pulse Width Modulation하드웨어 타이밍 펄스 폭 변조
- 예제로부터 시작(권장)
- LabVIEW 시작
- 도움말 >> 예제 찾기...로 이동하면 NI 예제 탐색기가 시작됩니다.
- 탐색 탭에 있는지 확인하고 하드웨어 입력과 출력 >> DAQmx >> 카운터 출력 폴더를 탐색하십시오.
- 사용하려는 예제를 두 번 클릭하십시오.
- 이 예제를 편집하지 마십시오. 모든 변경 사항은 원래 예제를 덮어 씁니다.
- 파일 >> 다른 이름으로 저장을 클릭하십시오.
- 필요에 맞는 옵션을 선택하십시오. 새 위치에 계층구조 복제를 선택하는 것이 좋습니다.
- 위치를 선택하고 저장을 클릭하십시오.
- 예제를 닫고 새 위치에서 예제를 엽니다.
- 예제의 로컬 사본이 열리면 예제에 사용된 구성 및 채널을 변경할 수 있습니다.
- 빈 블록 다이어그램에서 시작
- DAQmx 채널 생성 VI를 사용하여 카운터 출력 채널을 생성하고 초기화합니다. 어플리케이션 요구에 따라 NI-DAQmx에서 카운터 출력 태스크를 정의하는 세 가지 방법이 있습니다.
- CO 펄스 주파수
- CO 펄스 시간
- CO Pulse Ticks- 참고 -하드웨어마다 시간 기반이 다르므로 동일한 코드를 다른 하드웨어로 실행하면 펄스 폭이 변경 될 수 있습니다.
주기 점유율, 주파수, 카운터, 유휴 상태 및 초기 지연에 대한 적절한 입력을 선택합니다.
- DAQmx 타이밍 VI 를 사용하여 펄스 생성 기간을 구성하십시오.
참고 : 펄스 트레인 생성과 같은 카운터 태스크와 같이 샘플 타이밍이 필요하지 않은 경우, 암시적 인스턴스를 사용해야 합니다. 또한 샘플 모드로 연속 샘플을 선택합니다.
- DAQmx 시작 VI를 놓습니다. 이 VI는 펄스 트레인 생성을 시작합니다.
- 사용자가 정지 버튼을 누를 때까지 계속 실행되도록 While 루프 를 배치합니다.
- While 루프 내부 :
- 주기 점유율에 대한 로컬 변수를 만듭니다 . 이것은 원래 듀티 사이클 변수와 비교되며 비교는 케이스 구조의 선택자에서 작동합니다 .
- 케이스 구조 배치 :
- 참 케이스 : DAQmx 쓰기 VI를 호출합니다. 주기 점유율이 변경된 경우 새로운 주기 점유율은 DAQmx 쓰기 VI를 사용하여 설정됩니다 .
- 거짓 케이스 : 케이스 구조의 모든 입력을 출력에 직접 연결합니다. 듀티 사이클이 변경되지 않은 경우 케이스 구조의 거짓 케이스가 실행되고 아무것도 업데이트되지 않습니다.
- DAQmx 태스크 완료? VI를 사용하여 오류를 확인하십시오.
- 다음 ms 배수까지 기다림 VI 를 추가하여 루프에 짧은 시간 지연을 도입합니다. 이렇게하면 루프가 최고속도로 실행되어 불필요한 프로세서 리소스가 소모되지 않습니다.
- 태스크를 지우려면 DAQmx 태스크 지우기 VI를 호출하십시오.
- 단순 에러 핸들러 VI를 사용하여 에러를 확인하고 디스플레이합니다.
참고 : 이 이미지는 프로젝트에서 재사용 할 수있는 LabVIEW 코드가 포함 된 LabVIEW 스니핏입니다. 스니핏을 사용하려면 이미지를 마우스 오른쪽 버튼으로 클릭하고 컴퓨터에 저장한 다음 파일을 LabVIEW 다이어그램으로 드래그하십시오.