NI 9144 확장 섀시 벤치마크

내용

NI 9144 확장 섀시는 결정성있는 네트워크에서 동기화된 분산 I/O를 제공하기 위해 제작되었습니다. NI LabVIEW Real-Time Module로 프로그래밍되는 NI C 시리즈 모듈용, 본 8-슬롯 섀시는 NI CompactRIO와 두 개의 이더넷 포트를 갖춘 임베디드 리얼타임 PXI 컨트롤러로부터 데이지 체인 연결됩니다. 또한, 각 NI 9144에는 맞춤 타이밍과 실시간 처리 기능이 있는 지능형, 분산 디바이스를 LabVIEW FPGA Module로 프로그래밍할 수 있는 FPGA (field-programmable gate array)가 있습니다. 본 기술백서에서는 LabVIEW Real-Time에서 NI 스캔 엔진을 사용하는 NI 9144 시스템 루프 속도 벤치마크에 대한 기술적 세부사항과 성능 결과를 설명합니다.

그림 1. NI 9144 섀시를 사용하는 리얼타임 이더넷 확장 시스템

리얼타임 이더넷 벤치마크

마스터 컨트롤러와 NI 9144간의 통신 네트워크는 EtherCAT이라고 하는 개방형의 리얼타임 이더넷 프로토콜을 기반으로 합니다. 하이 레벨에서, EtherCAT 벤치마크는 4가지 요소, 즉 로직, 드라이버, EtherCAT 네트워크 그리고 I/O로 구성됩니다.


그림 2. 마스터 및 슬레이브 컴포넌트 벤치마크

 

EtherCAT 마스터 디바이스의 경우, 마스터 벤치마크는 사용자 코드와 EtherCAT 드라이버 (코드와 EtherCAT 네트워크간 데이터 이동)에 의존합니다. 일반적으로, EtherCAT 마스터 컨트롤러는 시스템 루프 속도에 있어 제약 요소입니다. 그 이유는 처리 능력은 사용자 로직과 드라이버에서 데이터가 처리되는 속도에 크게 영향을 미치기 때문입니다. 컨트롤러가 더욱 강력할수록, 짧은 시간에 더 많은 I/O 데이터를 처리할 수 있습니다.

반면, 슬레이브 디바이스 벤치마크는 슬레이브 I/O가 얼마나 빨리 업데이트되는지와 EtherCAT 네트워크에서 패킷이 얼마나 오랫동안 이동하는지에 의존합니다. EtherCAT 네트워크의 패킷 속도는 슬레이브 디바이스 노드 개수, 이더넷 케이블 길이, 그리고 가장 중요하게는 얼마의 I/O 데이터가 와이어를 통해 처리되는지 등 여러 요소에 의해 영향 받습니다. 결정성있는 프로토콜인 EtherCAT 네트워크 타이밍은 정밀하게 계산되므로 마스터는 슬레이브가 언제 업데이트하고 데이터를 전송하는지 정확하게 알 수 있습니다. 잘 알려진 대로 EtherCAT 네트워크의 속도는 전체 시스템 루프 속도 중 가장 빠른 컴포넌트입니다.

NI 9144를 NI 프로그래밍 가능한 자동화 컨트롤러 (PAC)와 함께 사용할 때 벤치마크 컴포넌트는 다음과 같이 나타납니다.

그림 3. NI 마스터 및 슬레이브 컴포넌트 벤치마크

로직은 사용자가 생성한 LabVIEW 코드이며, 드라이버는 LabVIEW의 NI 스캔 엔진 NI-Industrial Communications for EtherCAT 소프트웨어를 의미합니다. EtherCAT 네트워크는 물리적인 이더넷 케이블에서의 통신이며, I/O는 C 시리즈 I/O 모듈을 의미합니다. 모든 소프트웨어와 하드웨어 요소는 NI 시스템의 전체 시스템 루프 속도를 구성합니다.

NI 시스템 루프 벤치마크

단일 스캔 루프 또는 주기 동안, EtherCAT 패킷 전송 또는 I/O 스캔은 마스터 컨트롤러와 NI 9144 슬레이브 섀시간 반드시 동기화되어야 합니다. I/O 스캔 동안, 마스터는 새로운 출력과 슬레이브에 대한 지시가 있는 패킷을 전송하고, 슬레이브는 마스터를 위한 새로운 입력 값이 있는 패킷을 반환합니다. EtherCAT 패킷으로부터 업데이트된 데이터를 사용하여 마스터는 프로그램 스캔을 시작하며, NI 9144 섀시는 슬레이브 업데이트를 시작합니다. 프로그램 스캔은 마스터가 데이터를 처리하고 LabVIEW 프로그램을 실행하는 시간입니다. 슬레이브 업데이트는 슬레이브가 DMA 전송, 데이터 처리와 I/O 업데이트를 위해 사용하는 시간입니다. 따라서, 최소 루프 속도는 프로그램 스캔 또는 슬레이브 업데이트 (어느 쪽이 더 오래 걸리는가에 따라)에 의해 제한됩니다.


그림 4. 스캔 주기 타이밍 다이어그램

프로그램 스캔 시간은 네트워크 상의 슬레이브 수와 I/O 수에 따라 증가합니다. 그 이유는 마스터 컨트롤러가 처리해야 할 더 많은 데이터를 갖고 있기 때문입니다. 그러나, 슬레이브 업데이트 시간은 슬레이브가 I/O를 동시에 병렬로 업데이트하기 때문에 증가하지 않습니다. 따라서 네트워크에 더욱 많은 슬레이브 I/O가 있을수록 마스터 프로그램 스캔은 병목이 생길 가능성이 더욱 높습니다. 사용자의 어플리케이션이 많은 I/O 채널수를 포함하고 있다면, 마스터를 위해 PXI와 같은 고성능 컨트롤러 사용을 고려해야합니다.


그림 5. CompactRIO와 NI 9144 PXI 시스템

마스터 컨트롤러 벤치마크

마스터 컨트롤러를 위한 기본 LabVIEW 프로그래밍 모드는 NI 스캔 엔진을 실행하는 것입니다. 이는 단일 포인트 I/O 값을 사용자가 지정한 속도로 메모리에 스캔하는 LabVIEW Real-Time의 요소입니다. 마스터 컨트롤러의 벤치마크 목적을 위해 사용자 코드를 실행하는 데 소요되는 시간은 계산되지 않습니다. 따라서, 남은 마스터 벤치마크 컴포넌트는 드라이버 속도, 즉 여기에는 컨트롤러가 NI 스캔 엔진 메모리에서 I/O 변수로 데이터를 전송하는 데 걸리는 시간이 포함됩니다. I/O 변수는 NI 스캔 엔진 메모리 맵으로부터 데이터에 접근할 때 사용되며, LabVIEW VI의 I/O 변수 노드의 각 인스턴스는 실행하는 데 시간이 걸립니다. 각 I/O 변수 노드의 평균 실행 시간은 블록 다이어그램의 노드 개수가 증가한다 하더라도 일정하며, 다음의 차트는 특정 마스터 컨트롤러에 대한 실행 시간을 디스플레이합니다. 본 데이터에 기반하여, I/O 변수 노드당 평균 실행 시간은 NI cRIO-9072 통합 시스템의 경우 약 8 µs이며, NI cRIO-9022 임베디드 리얼타임 컨트롤러의 경우 3.5 µs, NI PXI-8106 듀얼 코어 임베디드 컨트롤러의 경우 0.3 µs입니다.


그림 6. I/O 변수 노드당 평균 실행 시간

참고: 본 차트는 호환가능한 모든 NI 컨트롤러 목록이 아닙니다. 보다 자세한 정보는 결정성있는 이더넷 제품 선택 가이드를 참조하십시오. 일반적으로 프로세서가 강력할수록, I/O 변수는 더욱 빠르게 실행됩니다.

슬레이브 디바이스 벤치마크

고객들은 마스터 컨트롤러로부터 데이지 체인 연결할 수 있는 최대 NI 9144 섀시 개수를 빈번하게 문의합니다. 이론적으로, EtherCAT 프로토콜의 경우 하나의 네트워크에서 최대 슬레이브 개수는 65,535개의 디바이스이지만, 하나의 마스터 컨트롤러에서 컨트롤되는 디바이스가 많을 경우 스캔 속도가 대폭 느려지게 되며 따라서 여러 개의 마스터에 실행되는 것이 가장 좋습니다. 실제로, 슬레이브 디바이스 수가 아닌 I/O 채널 개수는 마스터 측면에서 시스템 스캔 속도에 더 많은 영향을 끼칩니다. 그림 4에서와 같이 마스터의 프로그램 스캔은 더 많은 데이터가 EtherCAT 네트워크로 전달됨에 따라 증가하여 일반적으로 슬레이브 업데이트 시간을 능가합니다. 따라서, 각 슬레이브 디바이스에 대해 추가된 오버헤드 양에도 불구하고, 두 개 또는 20개의 NI 9144 섀시 중에서 분배된 300개의 I/O 채널은 거의 동일한 시스템 루프 속도를 지닙니다.

통합된 시스템 루프 속도

표 1은 마스터 컨트롤러와 NI 9144에 대한 벤치마크를 통합하여 최소 주기 시간 또는 시스템 루프 속도를 형성합니다.

최소 주기 시간 = 드라이버 + EtherCAT 네트워크 + I/O 업데이트

본 벤치마크는 사용자 코드 실행을 위한 시간을 포함하지 않으므로, 코드에 대한 적절한 시간을 추가하고 더욱 자세한 정보를 위해 하단의 관련 링크를 살펴보십시오.

표 1. 시스템 루프 속도 

두 개의 컨트롤러와 네 개의 I/O 모듈에 대한 테스트 기반 벤치마크 스프레드시트 system_loop_rate_chart.xls는 기술 백서의 끝부분에 첨부되어 있으므로 사용자의 구성을 위한 시스템 루프 속도를 예상할 수 있습니다. 사용하는 아날로그 및 디지털 I/O 채널을 입력하고, LabVIEW 코드 실행을 위한 대략적인 시간을 입력하여 시스템 루프 속도를 계산합니다. 본 공식은 특정 하드웨어 설정에 기반하며, 다른 I/O 모듈을 사용하는 경우 결과가 바뀔 수 있다는 사실을 명심하십시오.

관련 링크
NI 스캔 엔진 성능 벤치마크
내쇼날인스트루먼트 리얼타임 하드웨어에 대한 단일 포인트 성능 벤치마크

NI 9144만 벤치마크

LabVIEW가 제공하는 편리한 프로그래밍을 사용하지 않고 타사 EtherCAT 마스터와 함께 NI 9144 확장 섀시를 사용하는 경우도 있을 것입니다. 이 경우, 마스터 벤치마크 컴포넌트 없이 NI 9144와 EtherCAT 네트워크에 대한 벤치마크가 제공됩니다. 이 벤치마크는 얻을 수 있는 최소한의 주기 시간이라는 것을 기억하십시오. 즉, 실제 시스템 루프 속도를 계산하기 위해 마스터의 프로그램 스캔과 실행 시간을 파악하고 비교해야 합니다. 공식은 두 가지 부분으로 나뉩니다.

최소 슬레이브 주기 시간 = 패킷 전송 시간 + 슬레이브 업데이트 시간

패킷 전송 시간

EtherCAT 패킷이 마스터를 떠나면 패킷 전송 시간은 프레임 전송, 통신 지연 및 그 과정에서 발생하는 지터의 합으로 표현됩니다.

패킷 전송 시간 = 프레임 전송 시간 + 통신 지연 + 지터

프레임 전송은 데이터를 전달하는 모든 EtherCAT 프레임의 경우 5 µs, 뿐만 아니라 EtherCAT 데이터의 모든 바이트의 경우 80 ns입니다. (이같은 총 EtherCAT 데이터는 NI 9144 섀시의 I/O 채널 개수와 유형에 직접 연관됩니다.) 통신 지연은 모든 NI 9144 섀시의 경우 600 ns이며, 이더넷 케이블의 경우 각 미터당 5 ns입니다.

슬레이브 업데이트 시간

EtherCAT 패킷이 모든 슬레이브로 스트리밍되고 멈춤없이 마스터로 되돌아온 후, 모든 슬레이브는 병렬로 입력을 읽고 출력을 쓰기합니다. 따라서, 최악의 업데이트 시간을 가진 슬레이브 디바이스는 시스템을 위한 최소 슬레이브 주기 시간을 결정합니다.

슬레이브 업데이트 시간 = DMA 전송 시간 + 최악인 경우의 모듈 타이밍

이를 결정하기 위해 모든 NI 9144 섀시에 대한 고유의 모듈 구성을 반드시 고려해야 합니다. 섀시의 모듈에 기반하여, 입/출력 데이터에 대한 DMA 전송 시간을 계산할 수 있습니다. 또한, 최악인 경우의 시작, 변환 및 굴절 타이밍이 있는 모듈을 파악할 수 있습니다. 본 값을 추가하여 최악인 경우의 슬레이브 업데이트 시간을 확인하십시오.

참고: LabVIEW 2009가 출시되면서 LabVIEW FPGA로 하드웨어 레벨에서 NI 9144의 모듈을 프로그래밍할 수 있습니다. 따라서 시스템 루프 속도보다 더욱 빠른 업데이트 속도를 가진 모듈을 활용할 수 있습니다. 모듈의 최대 속도에서 I/O를 수집함으로써 FPGA 코드를 사용하여 직접 신호 조작과 실시간 처리를 수행하고 그 후 최종 결과를 마스터 컨트롤러에 반환하십시오.

통합된 슬레이브 주기 시간

NI 9144에서 여러 다른 조합의 모듈을 사용할 수 있으므로, ni_9144_only_benchmarks.xls 벤치마크 스프레드시트는 본 모든 공식을 적용하고 최소 슬레이브 주기 시간을 정확하게 계산하기 위해 제공됩니다. 정확한 값을 입력한 후, 타사 마스터의 벤치마크를 계산된 슬레이브 벤치마크에 추가하여 어플리케이션에 대한 전체 시스템 업데이트 속도를 결정합니다. 고속 성능을 위한 추가적인 효과를 내려면 LabVIEW FPGA 기능을 사용하여 직접 정의한 지능을 NI 9144에 다운로드할 수 있습니다.

관련 링크
NI 9144 확장 섀시 내부 기술
CompactRIO 어드바이저
결정성있는 이더넷 제품 선택 가이드