테스트 및 측정 엔지니어는 특정 용도로 만든 도구가 필요합니다. 범용 소프트웨어와 프로그래밍 언어는 널리 접근할 수 있지만, 물리적 테스트 시스템 구축과 테스트 데이터 수집과 관련된 복잡한 문제를 해결하는 능력은 제한적입니다.
테스트 및 측정 어플리케이션은 고유하고 개발하기 어려운 유형입니다. 이는 실제 환경과 상호작용해야 하며, 이는 다른 어플리케이션 분야의 개발자들이 결코 만날 수 없는 복잡성을 나타냅니다. 이 어플리케이션은 여러 동기화된 소스로부터 데이터를 수집하고, 특수 알고리즘을 사용하여 데이터를 분석한 후 병렬 프로세스를 실행한 후 원격 시스템에 배포해야 합니다. 이러한 문제를 해결하려면, 엔지니어들은 프로젝트 배송 날짜를 충족하면서 각 요구사항에 대한 도메인 특정 솔루션을 제공하는 개발 소프트웨어가 필요합니다.
모든 테스트 및 측정 어플리케이션의 목표는 정확한 제품 기능을 확인하는 데이터를 수집하는 것입니다. 이 프로세스는 신호를 수집하기 위해 여러 인스트루먼트와 디바이스에 올바르게 연결하는 첫 번째 문제를 제시합니다. 가장 간단한 형태의 이 프로세스는 PCI, USB, 시리얼과 같은 통신 버스를 통해 데이터를 스트리밍하는 인스트루먼트 드라이버 의존합니다. 일반적으로 제조업체는 이러한 드라이버를 제공하지만, 개발 환경에 대한 고품질의 지원이 없으면 인스트루먼트와 측정을 자동화하는 것이 어렵습니다. 또한 많은 어플리케이션은 컨디셔닝 아날로그 I/O, 디지털 신호, 통신 버스, RF 등 여러 채널과 신호 타입을 처리해야 합니다. 이러한 채널 사이에는 시간 의존성이 발생합니다. 즉, 신호 타이밍, 트리거링, 동기화가 수집 자체만큼 중요해질 수 있습니다. 이러한 경우, 소프트웨어는 한 번에 하나의 인스트루먼트에만 연결되어 있지 않고 전체 시스템에 접근할 수 있어야 합니다.
데이터를 수집한 후에는 엔지니어가 제품에 대한 통찰력을 얻거나 작업에 영향을 미칠 수 있도록 데이터를 처리하고 디스플레이해야 합니다. 서로 다른 디바이스의 데이터는 어플리케이션에 서로 다른 속도로 들어오는 경우가 많으므로, 무결성을 유지하려면 연속적으로 처리 및 저장되어야 합니다.
또한 이러한 데이터는 리얼타임 모니터링을 위해 사용자에게 표시되어야 하는 경우가 많습니다. 이는 테스트 및 측정 어플리케이션이 일반적으로 병렬로 실행되는 액터 또는 동작 중 일부 의존성이 있는 동작을 필요로 함을 의미합니다. 이러한 어플리케이션은 순차적 또는 오프라인 처리를 위해 설계된 환경에서 빌드하기 어렵기 때문에, 효율적인 개발을 위해서는 병렬 실행에 최적화된 어플리케이션이 필요합니다.
측정은 일반적으로 개발 컴퓨터와는 별도의 타겟에 배포되는 자동화 시퀀스의 일부로 실행됩니다. 이 컴퓨터는 원격 PC, 테스트 랙의 컨트롤러, 리얼타임 타겟, 또는 FPGA와 같은 임베디드 타겟이 될 수 있습니다. 이러한 배포는 여러 스테이션을 포함하는 경우가 많으며 원격 또는 국제적인 위치에 있을 수 있습니다. 소프트웨어 개발은 배포 시 끝나지 않습니다. 테스트 및 측정 어플리케이션은 수년 동안 자주 사용되기 때문에, 자동 측정 시퀀스는 시간이 지남에 따라 업데이트, 유지 및 리팩토링해야 합니다.
이 요구사항은 소프트웨어를 편집 가능, 확장 가능, 원격으로 액세스/배포 가능한 방식으로 설계하여 다운타임을 최소화하고 불일치 설정이 발생하여 비용이 많이 드는 재테스트 및 이스케이프를 방지해야 함을 의미합니다. 또한 팀은 설계, 품질 및 생산 그룹 전체에서 일관되게 데이터 수집 및 저장을 관리해야 합니다. 시스템 배포와 주기 고려사항을 신중하게 관리하지 않으면, 조직은 종종 상당한 운영 부하에 직면하게 됩니다.
많은 소프트웨어 개발 도구와 언어를 사용할 수 있으며, 가장 광범위하게 사용되는 도구와 언어는 대부분의 사용자 기반을 가지고 있습니다. 그러나 이는 테스트 및 측정 어플리케이션의 요구사항에 적합하지 않습니다.
C와 Python과 같은 언어는 오픈 소스 라이브러리의 생태계, 재능의 가용성, 개발 툴의 생태계 등 다양한 강점이 있습니다. 그러나 익숙한 구문을 벗어나 테스트 및 측정 어플리케이션에 가장 적합하지는 않습니다.
테스트 및 측정 어플리케이션의 문제를 해결하는 데 중점을 둡니다. 일반적인 용도의 기반을 위한 자체 증폭을 구축하는 데 시간을 낭비하는 대신, 테스트 특정 소프트웨어 툴체인을 채택하면 많은 시간을 확보하여 새로운 기능을 추가하고 고객의 품질을 보장하는 것과 같은 더 중요한 제품 중심의 작업에 집중할 수 있습니다.
NI 소프트웨어는 테스트 및 측정 어플리케이션을 위해 제작된 생산적이고 포괄적인 툴체인입니다. NI 개발자는 테스트 엔지니어의 생산성을 높이고, 변화하는 요구사항을 충족할 수 있는 유연성을 제공하며, 효과적인 협업을 촉진하는 도구 세트를 개발했습니다.
NI 소프트웨어는 테스트 엔지니어의 특정 요구사항을 고려하여 설계되었습니다. 전문적인 소프트웨어를 선택하면 각 태스크가 더 빠르고 효율적으로 수행되므로 엔지니어는 범용 도구를 사용하는 것보다 50퍼센트 더 생산성이 높다는 것을 알 수 있습니다. 엔지니어링 팀은 테스트에 최적화된 도구를 사용하여 프로젝트 전체에서 수백만 달러의 시간을 절약할 수 있습니다. NI 도구는 다음과 같은 다양한 방법으로 이러한 속도와 효율성을 제공합니다.
테스트 및 측정 어플리케이션의 복잡성은 시장에 들어오는 제품과 기술의 급속한 진화로 인해 증가하고 있습니다. 소프트웨어 선택은 개발 팀의 단기적 및 장기적 기능에 모두 영향을 미칩니다. 정적 또는 잘못 정렬된 소프트웨어는 시간이 지남에 따라 제한적이 되고, 요구사항이 변경될 때 천천히 팀의 생산성에 영향을 미칩니다.
NI 소프트웨어는 테스트 기술 분야에서 검증된 역사를 거두었으며, 이를 통해 엔지니어들은 플랫폼을 통해 제품뿐만 아니라 직업을 구축할 수 있습니다! NI 소프트웨어를 사용하는 엔지니어들은 다음과 같은 이점을 갖춘 개방적이고 적응 가능한 플랫폼 아키텍처로 인해 향후 요구사항을 충족할 수 있다고 확신합니다.
테스트 및 측정 엔지니어는 협업할 수 있는 경우 가장 효과적입니다. 이것은 많은 사람들에게 문제가 될 수 있습니다. 설계 엔지니어링이 지배하는 조직에서 이 역할을 하위로 간주할 수 있습니다. 또한 테스트 팀은 다양한 위치에 자주 분산되므로 엔지니어가 필요한 지원을 얻는 것이 더 어렵습니다. NI 소프트웨어는 공동 작업을 고려하여 설계되었으며, 공유 및 태깅 기능, 원격 관리 기능, 현대적인 개발 운영 작업 흐름 및 활성 사용자 커뮤니티를 제공합니다. NI 소프트웨어 사용자는 결코 혼자 작업하지 않으며, 다음과 같은 작업을 수행합니다.
MathWorks® 및 MATLAB®은 The MathWorks, Inc.의 등록 상표입니다.