NI 프로그래머블 컨트롤러에서 EtherCAT 설정하기

업데이트 됨 Jun 24, 2022

환경

하드웨어

  • CompactRIO Controller

소프트웨어

  • LabVIEW
  • LabVIEW Real-Time Module
  • LabVIEW FPGA Module

드라이버

  • NI-Industrial Communications for EtherCAT

이 가이드는 이더넷 CompactRIO 섀시와 LabVIEW 그래픽 프로그래밍을 사용하여 EtherCAT 시스템을 설정하는 데 도움이 되는 단계별 지침을 제공합니다. NI 하드웨어 포장 풀기에서 LabVIEW에서 프로그래밍 I/O로 이동하려면 다음 지침을 따르십시오.

요구 사항

하드웨어

  • 마스터: CompactRIO , PXINI 산업용 컨트롤러 와 같은 2개의 이더넷 포트가 있는 LabVIEW Real-Time 컨트롤러. NI-Industrial Communications for EtherCAT® Readme 에서 지원되는 EtherCAT 마스터 확인.

  • 슬레이브: NI-9144(NI-Industrial Communications for EtherCAT ® 20.0에서는 지원되지 않음) 또는 NI C 시리즈 I/O 모듈이 있는 NI-9145 EtherCAT CompactRIO 섀시

  • 이더넷 케이블 및 전원 공급 장치

소프트웨어

CompactRIO, CompactDAQ, 싱글 보드 RIO, R 시리즈 및 EtherCAT에 대한 소프트웨어 지원을 참조하고 9144 또는 9145를 검색하십시오.

하드웨어 설정

이 튜토리얼에서는 cRIO-9074 CompactRIO 컨트롤러를 EtherCAT 마스터로 사용하고 NI-9144를 EtherCAT 슬레이브로 사용합니다. 이 하드웨어 시스템을 설정하려면 다음 단계를 따르십시오.

  1. 적절한 섀시(CompactRIO 마스터 섀시 및/또는 NI-9144 슬레이브 섀시)에 C 시리즈 I/O 모듈을 삽입합니다.
  2. cRIO-9074 이더넷 포트 2에서 NI-9144 이더넷 포트 1로 표준 카테고리 5 이상의 이더넷 케이블을 연결합니다. 이러한 방식으로 컨트롤러에서 여러 NI-9144 섀시를 데이지 체인 방식으로 연결할 수 있습니다.
9074.png
참고: cRIO-9074의 포트 1은 바닥에 있습니다. 이더넷 포트의 위치는 cRIO 컨트롤러의 사용자 매뉴얼을 참조하십시오.
  1. 외부 전원 공급 장치를 각 섀시에 연결한 다음 하드웨어 전원을 켭니다.

마스터 컨트롤러 구성

  1. 하드웨어를 연결한 후 호스트 컴퓨터에 필요한 소프트웨어를 설치합니다.
  2. 이더넷 케이블을 사용하여 cRIO-9074 이더넷 포트 1을 호스트 PC와 동일한 네트워크에 연결하십시오.
  3. 시작 » 프로그램 » National Instruments » Measurement & Automation 에서 NI Measurement & Automation Explorer (MAX) 구성 유틸리티를 시작합니다. 왼쪽의 구성 패널 트리에서 원격 시스템을 더블 클릭하여 네트워크에서 cRIO-9074를 자동 검색하고 CompactRIO 컨트롤러를 클릭하십시오.
  4. 마스터 컨트롤러의 이름을 변경하고 IP 설정에서 DHCP 서버에서 IP 주소 얻기를 선택합니다. 완료되면 재부팅을 클릭합니다. (고정 IP 주소를 사용하려면 아래 관련 링크를 참조하십시오.)
  1. 리얼타임 마스터 컨트롤러에 소프트웨어를 설치하려면 원격 시스템에서 cRIO-9074를 확장하십시오. 소프트웨어를 마우스 오른쪽 버튼으로 클릭하고 소프트웨어 추가/제거를 선택합니다.
  1. 권장 소프트웨어 세트(NI 스캔 엔진이 포함된 NI-RIO 드라이버 소프트웨어 및 EtherCAT용 NI-Industrial Communications)를 CompactRIO 컨트롤러에 설치하십시오.
  2. 컨트롤러가 재부팅되면 원격 시스템에서 CompactRIO 컨트롤러를 다시 찾으십시오. 오른쪽 하단 모서리에 있는 고급 이더넷 설정을 클릭합니다.
  3. cRIO-9074 이더넷 포트 2(기본이 아닌 MAC 주소)를 선택합니다. 그런 다음 모드 아래의 풀다운 상자에서 EtherCAT을 선택하고 확인을 클릭합니다.

참고: 컨트롤러의 이더넷 포트 2가 EtherCAT 모드에 있으면 이더넷 네트워크에서 해당 포트를 사용할 수 없습니다.

LabVIEW에서 네트워크 설정하기

  1. 시작 » 프로그램 » National Instruments » LabVIEW XX » LabVIEW 에서 LabVIEW를 실행합니다. 빈 프로젝트를 클릭하십시오.
  2. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 »대상 및 장치를 선택합니다.
  3. Add Targets and Devices 대화 상자 창에서 기존 대상 또는 장치를 선택하고 Real-Time CompactRIO 범주를 확장하여 호스트 PC의 서브넷에서 EtherCAT 마스터를 자동 검색합니다. cRIO-9074를 선택하고 확인을 클릭 합니다.
  4. LabVIEW 프로젝트 창에서 cRIO-9074를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 » 타겟 및 디바이스를 선택합니다.
  1. Add Targets and Devices 대화 상자 창에서 기존 대상 또는 장치를 선택하고 EtherCAT 마스터 장치 범주를 확장하여 컨트롤러의 EtherCAT 포트를 자동 검색합니다.
  1. 사용 가능한 EtherCAT 마스터 포트를 선택하고 확인을 클릭 합니다. 슬레이브 스캔 대화 상자 창이 나타납니다. 첫 번째 옵션인 Scan Interface는 컨트롤러에 연결된 모든 슬레이브를 자동 검색합니다. 확인을 클릭 합니다. LabVIEW 프로젝트는 이제 각 슬레이브 디바이스, 해당 I/O 모듈 및 각 모듈의 물리적 I/O(I/O 변수라고 함)를 나열합니다.
  2. 모든 EtherCAT 슬레이브가 자동 검색되면 CompactRIO 마스터 컨트롤러에서 VI 또는 로직 프로그램을 생성할 수 있습니다. LabVIEW Real-Time에서 NI 9144 모듈식 슬레이브를 프로그래밍하려면 LabVIEW 프로젝트에서 I/O 변수를 클릭하고 블록다이어그램으로 드래그하십시오. 이러한 I/O 변수를 사용하여 NI 9144 섀시의 물리적 채널에서 읽고 쓸 수 있습니다. 완료되면 LabVIEW VI 프로그램에서 실행 버튼을 클릭하여 프로그램을 리얼타임 컨트롤러에 배포합니다.

참고: Timed 루프에서 I/O 변수를 사용하는 경우 루프 타이밍 소스를 NI 스캔 엔진에 동기화할 수 있습니다. VI를 실행하면 프로그램이 자동으로 CompactRIO 마스터에 배포됩니다. LabVIEW I/O 변수 및 CompactRIO 스캔 모드에 대한 더 자세한 정보는 Understanding NI CompactRIO Scan Mode를 참조하십시오.

LabVIEW에서 EtherCAT 모드 변경하기

LabVIEW는 두 가지 LabVIEW 스캔 엔진 모드인 구성 모드와 활성 모드로 그룹화하여 다양한 EtherCAT 상태(즉, 작동, 초기화, 부트스트랩 등)를 간소화합니다. 활성 모드에서 LabVIEW 프로그램은 네트워크에서 실제 데이터를 얻습니다. 구성 모드에서 네트워크 데이터는 업데이트되지 않고 EtherCAT 네트워크 구성이 활성화되어 새 슬레이브 디바이스와 모듈을 추가하고 NI-9144 EtherCAT 슬레이브 펌웨어를 다운로드할 수 있습니다.

LabVIEW 스캔 엔진 모드를 변경하려면 LabVIEW 프로젝트 탐색기에서 cRIO-9074 마스터 컨트롤러를 마우스 오른쪽 버튼으로 클릭하고 유틸리티 » 스캔 엔진 모드 » 활성 모드로 전환(또는 구성 모드로 전환 )을 선택합니다. LabVIEW 스캔 엔진 모드는 LabVIEW 블록 다이어그램을 마우스 오른쪽 버튼으로 클릭하고 측정 I/O » NI 스캔 엔진 팔레트를 선택하여 스캔 엔진 모드 설정 기능을 통해 프로그래밍 방식으로 변경할 수도 있습니다.

LabVIEW 프로젝트 창에서 슬레이브 디바이스를 마우스 오른쪽 버튼으로 클릭하고 온라인 디바이스 상태를 선택하여 개별 슬레이브의 EtherCAT 상태를 변경할 수 있습니다. 슬레이브 디바이스의 EtherCAT 상태는 LabVIEW 스캔 엔진 모드와 거의 완전히 독립적으로 변경될 수 있으며 단 두 가지 제한이 있습니다. 한 가지 제한 사항은 LabVIEW 스캔 엔진이 동등한 상태(활성 모드)에 있지 않는 한 슬레이브 디바이스를 작동 또는 안전 작동 상태로 둘 수 없다는 것입니다. 다른 제한 사항은 LabVIEW 스캔 엔진이 구성 모드에 있지 않는 한 디바이스를 부트스트랩 상태로 둘 수 없다는 것입니다.

NI 마스터 컨트롤러에 타사 EtherCAT 슬레이브 추가하기

LabVIEW 프로젝트 창에 타사 슬레이브 디바이스가 나타나게 하려면 LabVIEW로 슬레이브를 구성하기 전에 슬레이브의 디바이스 프로파일 XML 파일을 가져와야 합니다.

  1. 타사 슬레이브에 대한 EtherCAT XML 장치 설명 파일을 찾습니다. 일부 회사는 웹 사이트에서 다운로드할 수 있도록 이러한 XML 파일을 제공합니다.
  2. EtherCAT 마스터 항목을 마우스 오른쪽 버튼으로 클릭하고 유틸리티 » 장치 프로파일 가져오기 를 선택하여 장치 프로파일 가져오기 대화 상자를 표시하십시오.
  3. 파일 찾아보기 버튼을 클릭하여 다음 방법 중 하나로 장치 프로필을 선택합니다.
    • 파일을 선택하고 열기를 클릭하여 장치 프로필을 가져옵니다.
    • 폴더를 열고 현재 폴더를 클릭하여 폴더 아래의 모든 장치 프로필을 가져옵니다.
  4. 장치 프로필을 선택한 후 파일 가져오기 결과를 볼 수 있습니다. 가져오기 결과에 성공이 표시되면 파일을 성공적으로 가져옵니다. 그렇지 않으면 잘못된 형식이나 기타 이유로 파일을 가져올 수 없습니다.
  5. (선택 사항) 2단계를 반복하여 다른 장치 프로필을 가져옵니다.
  6. 닫기를 클릭하여 대화 상자를 종료합니다.
  7. 새로 가져온 디바이스 프로파일을 사용하려면 LabVIEW를 다시 시작해야 합니다.

LabVIEW FPGA에서 NI 9144/45 FPGA 프로그래밍하기

LabVIEW Real-Time으로 작성된 프로그램은 EtherCAT 네트워크에서 I/O를 수집, 처리 및 제어하는 EtherCAT 마스터에 배포됩니다. 또한 각 NI-9144 슬레이브 섀시에는 맞춤형 타이밍 및 신호 처리를 실행할 수 있는 임베디드 FPGA(Field-Programmable Gate Array)가 포함되어 있어 서로 100ns 내에서 동기화되는 지능형 분산 디바이스를 생성할 수 있습니다. 프로그래밍 가능한 FPGA 기능을 활용하려면 LabVIEW, LabVIEW Real-Time Module 및 LabVIEW FPGA Module을 사용해야 합니다.

  1. EtherCAT 마스터 디바이스를 LabVIEW 프로젝트에 추가할 때(이전 섹션의 5단계 참조), NI 스캔 인터페이스 또는 LabVIEW FPGA 인터페이스에서 프로그래밍하도록 NI-9144 슬레이브를 설정할 수 있습니다. 전자를 선택하면 LabVIEW 프로젝트 창에서Device (Address 0, NI-9144)를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기≫FPGA 타겟을 선택하여 LabVIEW FPGA에서 프로그래밍할 수 있습니다.
  1. LabVIEW 프로젝트에서 NI-9144 슬레이브 디바이스는 여러 FPGA 신호를 제공합니다. 예를 들어, 입력 가상 포인트와 출력 가상 포인트는 서로 다른 NI-9144 섀시 간에 FPGA 코드를 동기화하는 데 사용되는 디지털 타이밍 신호입니다. LabVIEW FPGA 모드에서 모듈을 프로그래밍하려면 Device (Address 0, NI-9144)에서 FPGA 타겟(NI-9144)으로 모듈을 끌어다 놓습니다. 프로젝트 탐색기 창에서 디바이스와 FPGA 타겟 간에 모듈을 끌어다 놓아 스캔 모드와 FPGA 모드 사이를 전환할 수 있습니다.
  1. LabVIEW 프로젝트 탐색기 창에서 LabVIEW 프로젝트의 FPGA 타겟(NI-9144)을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기≫VI 를 선택하여 NI 9144에 새 FPGA 프로그램을 생성합니다. FPGA 타겟 아래에 나열된 모듈의 FPGA I/O 채널 (NI-9144)을 이 새로운 FPGA VI의 블록 다이어그램으로 끌어다 놓을 수 있습니다.
  2. 이를 FPGA 타겟(NI-9144)에 배포하려면 새 빌드 스펙≫새로 만들기≫ 컴파일을 생성하여 VI를 컴파일해야 합니다. 는 FPGA VI가 성공적으로 컴파일 한 후에는 프로젝트 탐색기에서 빌드 스펙 아래에 나열되고 FPGA 타겟(NI-9144)에 마우스 오른쪽 버튼으로 클릭하고 선택 다운로드하여 다운로드 할 수 있습니다 .

 

LabVIEW FPGA 프로그래밍 API의 차이점

CompactRIO 및 기타 NI RIO 플랫폼용 LabVIEW FPGA 프로그래밍에 익숙하다면 마스터의 로컬 FPGA와 슬레이브의 FPGA 프로그래밍 사이에 몇 가지 차이점이 있습니다. LabVIEW 2009부터 사용자 정의 I/O 변수는 FPGA 데이터를 스캔 엔진과 동기화하는 데 사용됩니다. 이러한 사용자 정의 I/O 변수는 컨트롤러의 리얼타임 VI와 NI 9144/45 확장 섀시의 FPGA VI 간에 데이터를 전송하는 유일한 수단이기도 합니다.

FPGA 전송 방법

로컬 섀시

확장 섀시

사용자 정의 I/O 변수

FPGA 호스트 인터페이스

X

DMA 전송 기능

X

FPGA 전면 패널 디버깅

X

 
  1. LabVIEW 프로젝트에서 NI 9144 FPGA I/O 노드를 클릭하고 FPGA 블록 다이어그램으로 드래그하여 FPGA VI를 프로그래밍하십시오. 이 예에서 PID(비례 적분 도함수) 함수는 NI 9144 섀시에서 아날로그 I/O를 제어하는 데 사용되었습니다.
  1. Reset FPGA PID Boolean 변수를 확인하십시오. 이것은 NI EtherCAT 마스터의 리얼타임 VI가 NI-9144의 FPGA VI와 통신할 수 있도록 하는 사용자 정의 I/O 변수입니다. 이러한 변수를 생성하려면 LabVIEW 프로젝트에서Device (Address 0, NI-9144)를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기≫사용자 정의 변수를 선택합니다. 변수 이름, 데이터 유형 및 데이터 방향(호스트에서 FPGA로 또는 그 반대로)은 속성 창에서 설정할 수 있습니다. 이 경우 마스터 컨트롤러는 NI-9144 슬레이브로 정보를 전송하므로 방향은 Host to FPGA로 선택합니다.
이제 이 예제에서 사용된 리얼타임 VI에서 사용자 정의 I/O 변수를 프로그래밍하여 FPGA VI에서 실행 중인 PID 함수를 재설정할 수 있습니다.
  1. FPGA VI를 실행하려면 LabVIEW 프로젝트에서 cRIO-9074를 마우스 오른쪽 버튼으로 클릭하고 모두 배포를 선택하여 NI-9144 슬레이브 디바이스를 배포합니다. CompactRIO 컨트롤러를 마우스 오른쪽 버튼으로 클릭하고 유틸리티 » 스캔 엔진 모드 » 구성 모드로 전환을 선택하여 LabVIEW 스캔 엔진을 구성 모드로 전환하고 FPGA VI에서 실행 버튼을 클릭합니다. 이것은 컴파일 프로세스를 시작하고 FPGA 비트 파일을 NI-9144 섀시로 다운로드합니다. 비트파일을 NI-9144에 성공적으로 다운로드한 후 FPGA VI는 즉시 실행을 시작합니다.
참고: 사용자 정의 FPGA 코드를 실행하려면 NI-9144/45 슬레이브 섀시의 펌웨어를 업데이트해야 할 수 있습니다. 펌웨어를 업데이트해야 한다는 에러 메시지가 표시되면, NI-9144 사용자 가이드NI-9145 사용자 가이드의 펌웨어 업데이트 섹션에 있는 지침을 따르십시오.
  1. 컴파일 및 다운로드 프로세스가 완료되면 FPGA VI가 실행을 시작하기 전에 LabVIEW 스캔 엔진을 다시 활성 모드로 설정해야 합니다. 이렇게 하려면 LabVIEW 프로젝트 창에서 CompactRIO 마스터 컨트롤러를 마우스 오른쪽 버튼으로 클릭하고 유틸리티 » 스캔 엔진 모드 » 활성 모드로 전환을 선택합니다.

중요한 점은 FPGA 모드에서 생성할 수 있는 사용자 정의 I/O 변수의 수에 제한이 있다는 것입니다. FPGA 애플리케이션 최적화를 참조하십시오.