National instruments что это
Перейти к содержимому

National instruments что это

Пример использования: National Instruments

Компания National Instruments (NI), основанная в 1976 году, помогает инженерам и ученым находить ответы на самые сложные вопросы. NI предоставляет им передовые технологические решения, разработанные для повышения производительности и скорости внедрения инноваций в различных областях – от технологий для здравоохранения до мобильных вычислений и космических исследований. Более 35 000 клиентов NI поставили на рынок сотни тысяч продуктов, преодолев на своем пути бесчисленные технологические препятствия. Штаб‑квартира NI находится в Остине, штат Техас; всего же в компании насчитывается около 7400 сотрудников почти в 50 странах мира. Годовой доход компании за 2015 год составил 1,23 млрд USD, из которых 16 % были инвестированы в исследования и разработки.

Customer-References-industry-Manufacturing-ProductDesign.jpg

CustomerReferences_QuoteMark

«Спотовые инстансы Amazon EC2 помогли нам без усилий сократить расходы на 85–90 %. Это, в свою очередь, позволило нам экспериментировать с меньшими рисками, и в итоге наши клиенты получили более качественные продукты».

Джо Гарднер,
главный архитектор облачных решений National Instruments.

Задачи

В числе предлагаемых National Instruments технологий – LabVIEW, среда разработки программного обеспечения для создания специальных приложений. Модуль LabVIEW FPGA является расширением LabVIEW и позволяет инженерам встраивать в свои приложения сложные технологии программируемых логических интегральных схем (FPGA), или перепрограммируемые кремниевые микросхемы. Перед развертыванием проект FPGA должен пройти трудоемкий и ресурсоемкий процесс компиляции, который инженеры выполняют на компьютере, имеющем значительные аппаратные ресурсы и необходимые пакеты программного обеспечения.

На протяжении многих лет команды разработчиков NI тестировали новые возможности таких продуктов в локальной среде. Однако по мере роста компании возрастали и требования к инфраструктуре. Параллельно с этим становились все сложнее и проекты FPGA, что требовало увеличения объема вычислительных ресурсов. Для снижения затрат и сокращения времени разработки команда LabVIEW компании NI начала исследовать облачные вычисления. «Транзисторы становятся все меньше и меньше, растет количество программируемых шлюзов, а значит, и схемы становятся все больше и сложнее, для их компиляции требуются большие вычислительные мощности», – говорит Джо Гарднер, главный архитектор облачных решений NI.

Почему Amazon Web Services

В 2010 году, рассмотрев различные варианты, команда разработки FPGA расширила свой модуль, предложив сервис компиляции FPGA, размещенный на инстансах Amazon Elastic Compute Cloud (Amazon EC2) по требованию. Кроме того, теперь эта команда использует AWS для собственных операций разработки и тестирования. Причинами выбора AWS для команды FPGA стали наличие возможностей автоматического масштабирования, средств управления для разработчиков и спотовых инстансов Amazon EC2, которые позволили National Instruments значительно снизить затраты на вычислительные ресурсы при тестировании новых возможностей своих продуктов.

Благодаря AWS Auto Scaling компания NI может быстро масштабировать свои ресурсы AWS EC2 по мере увеличения рабочей нагрузки со стороны клиентов. «Раньше в ответ на дополнительные рабочие нагрузки у нас включался процесс масштабирования собственной разработки, который мог занимать от 5 до 30 минут, – рассказывает Гарднер. – С AWS все происходит менее чем за пять минут, что является для нас огромным преимуществом, ведь теперь клиентам не приходится ждать, пока начнется нужный процесс».

Еще одной причиной, по которой команда FPGA выбрала среду AWS, является простота использования, которую AWS обеспечивает для разработчиков. «AWS проще других облачных сред, предоставляет больше средств контроля и не требует применения обновлений, которые могут нарушить совместимость, – поясняет Гарднер. – Кроме того, сервисы AWS просты в использовании, и за счет этого мы можем создавать продукты, не привлекая экспертов, скажем, по Hadoop или Интернету вещей. Вместо этого можно использовать специалистов, которые у нас уже есть».

Наверное, самым главным открытием для команды FPGA стало то, что они могут значительно сэкономить, используя при разработке и тестировании спотовые инстансы Amazon EC2, которые уравновешивают спрос и предложение, позволяя пользователям запрашивать свободные вычислительные мощности Amazon EC2. «Экономия весьма значительная, – делится Гарднер. – Например, тестирование одного из наших продуктов с помощью спотовых инстансов обойдется в 500 USD. Если бы мы делали это на инстансах по требованию, стоимость оказалась бы в 10 раз выше, т. е. 5000 USD».

В августе 2014 года компания NI расширила использование AWS, и теперь команда разработчиков программного обеспечения LabVIEW использует спотовые инстансы Amazon EC2 для перемещения на них текущих рабочих нагрузок тестирования, когда ресурсов локальной инфраструктуры оказывается недостаточно. «Количество тестов увеличивалось, а у команды разработчиков LabVIEW не было вычислительных ресурсов для их выполнения, – рассказывает Гарднер. – Они знали, что у нас есть опыт работы в облаке, поэтому обратились к нам, и уже через неделю рабочие нагрузки тестирования, на которые не хватало локальных ресурсов, выполнялись в облаке».

Помимо спотовых инстансов Amazon EC2 компания NI использует несколько других сервисов AWS, в том числе Amazon Simple Storage Service (Amazon S3) в качестве объектного хранилища с широкими возможностями масштабирования, Amazon Relational Database Service (Amazon RDS) в качестве реляционной базы данных, Amazon DynamoDB в качестве быстрой и гибкой базы данных NoSQL и Amazon Route 53 в качестве масштабируемого облачного веб‑сервиса системы доменных имен. NI также использует сервис AWS CloudFormation, предоставляющий разработчикам простой способ создания ресурсов AWS и управления ими, и сервис AWS CloudTrail, который записывает вызовы API AWS и предоставляет историю файлов журналов.

Преимущества

Модель ценообразования спотовых инстансов Amazon позволяет компании National Instruments тратить на выполнение собственных рабочих нагрузок в несколько раз меньше (по сравнению с затратами на аналогичные инстансы по требованию), что экономит компании десятки тысяч долларов при тестировании новых возможностей. «Спотовые инстансы Amazon EC2 помогли нам без усилий сократить расходы на 85–90 %, – заявляет Гарднер. – Это, в свою очередь, позволило проводить эксперименты с меньшими рисками, и в итоге наши клиенты получили более качественные продукты».

Компании NI также не пришлось тратить средства на расширение локальной инфраструктуры. К примеру, команда LabVIEW ежемесячно использует спотовые инстансы Amazon EC2 для запуска тестовых сборок, потребляя более 30 000 часов работы сервера. Для выполнения такого объема работ в локальной среде потребовалось бы увеличить размер локальной инфраструктуры группы в два раза, что привело бы к расходам на оборудование и техническое обслуживание порядка 1 млн долл. США. Использование AWS позволило NI быстро масштабировать систему с учетом текущих потребностей, не привлекая дополнительный персонал и избегая задержек, связанных с закупкой оборудования для расширения локальной инфраструктуры.

Возможность выполнять рабочие нагрузки по разработке и тестированию в среде AWS также повысила гибкость компании NI. Поскольку рабочие нагрузки, связанные с выполнением тестирования, сильно меняются в течение жизненного цикла разработки ПО, NI получает возможность избегать затрат, связанных с простоями серверов, в периоды, когда количество тестов снижается. Аналогичным образом компания может быстро расширять ресурсы по мере увеличения потребностей в тестировании и получать вычислительные мощности, необходимые для быстрого анализа новых возможностей и предоставления их клиентам. Например, для разработки одной из возможностей команде FPGA требовалось выполнить комплексное тестирование, включающее более 900 компиляций. Если бы команда выполняла эти компиляции, используя один сервер, процесс занял бы более трех недель. Но благодаря спотовым инстансам Amazon EC2 и использованию параллельного выполнения команда смогла завершить эти тесты менее чем за 10 часов, затратив менее 50 USD на каждый запуск. «При использовании AWS цикл разработки сократился на месяцы, – говорит Гарднер. – Если мне понадобится еще больше серверов, я смогу получить к ним доступ без лишних вопросов».

Компании NI удалось поделиться этой гибкостью со своими клиентами. FPGA Compile Cloud Service, который полностью размещен на AWS, позволяет инженерам обращаться к нему по мере необходимости и не тратить тысячи долларов на собственное оборудование. «Раньше наши клиенты тратили от 5000 до 10 000 USD на необходимые серверы для компиляции, а несколько месяцев спустя они простаивали без дела, – делится Гарднер. – Поскольку выполнение компиляции – это процесс, при котором образуется то переизбыток ресурсов, то их нехватка, AWS идеально подходит для такой работы».

NI продолжает расти и планирует расширять использование AWS в других средах разработки. Кроме того, компания рассматривает возможность использования дополнительных сервисов AWS, таких как AWS IoT и Amazon QuickSight, для создания новых продуктов для своих клиентов. «AWS позволяет нам экспериментировать намного больше», — говорит Гарднер. «Здесь в нашем распоряжении большой набор инструментов для работы. Это ускоряет разработку и внедрение новых продуктов, что является ключом к успеху нашей компании».

О компании National Instruments

Компания National Instruments (NI), основанная в 1976 году, помогает инженерам и ученым находить ответы на самые сложные вопросы.

National Instruments

National Instruments, или NI ( NASDAQ: NATI ) — американская компания, насчитывающая свыше 5000 сотрудников и имеющая представительства в 41 стране мира. Штаб-квартира комапнии расположена в г.Остин, Техас. National Instruments является одним из мировых лидеров в технологии виртуальных приборов и в разработке и изготовлении аппаратного и программного обеспечения для систем автоматизированного тестирования.

Флагманским программным продуктом компании является среда графического инженерного программирования LabVIEW. Большой популярностью в инженерно-технической среде пользуются также: LabWindows/CVI — оболочка разработки виртуальных приборов для языка C, среда управления тестами TestStand  (англ.) , а также Multisim  (англ.) (разработанная фирмой Electronics Workbench, ныне являющейся подразделением NI) — программа моделирования и анализа электрических и электронных схем.

Основные аппаратные платформы, выпускаемые National Instruments — это, в первую очередь, магистрально-модульная платформа для систем измерения, управления и автоматизации PXI  (англ.) (NI предлагает весь спектр PXI продуктов — шасси, контроллеры, функциональные модули, интерфейсы), а также компактные платформы реального времени Compact FieldPoint и CompactRIO. Традиционно популярны у потребителей такие семейства продуктов NI, как устройства сбора данных (data acquisition), приборные интерфейсы (instrument control), системы управления электроприводами и машинного зрения (machine vision).

Оборудование и программное обеспечение Ceyear

Оборудование и программное обеспечение Ceyear Оборудование и программное обеспечение Ceyear Оборудование и программное обеспечение Ceyear Оборудование и программное обеспечение Ceyear Оборудование и программное обеспечение Ceyear

Флагманским программным продуктом National Instruments является среда графического программирования LabVIEW — среда графического программирования, которую используют технические специалисты, инженеры, преподаватели и ученые по всему миру для быстрого создания комплексных приложений в задачах измерения, тестирования, управления, автоматизации научного эксперимента и образования. В основе LabVIEW лежит концепция графического программирования — последовательное соединение функциональных блоков на блок-диаграмме. Большой популярностью в инженерно-технической среде пользуются также LabWindows/CVI — оболочка разработки виртуальных приборов для языка C, среда управления тестами TestStand, программа моделирования и анализа электрических и электронных схем Multisim (разработана компанией Electronics Workbench, ныне являющейся подразделением NI).

Основные аппаратные платформы, выпускаемые National Instruments:

PXI и PXIExpress — (англ. PCI eXtension for Instrumentation) — стандарт модульного измерительного оборудования, магистрально-модульная платформа для систем измерения, управления и автоматизации. Это открытая платформа, предлагающая высокопроизводительные модульные приборы, от 7½-разрядных цифровых мультиметров для постоянного тока до приемопередатчиков радиосигналов до 76 ГГц, с интегрированными средствами синхронизации и высокой пропускной способностью. National Instruments предлагает более 500 различных PXI продуктов.

CompactRIO — надежная промышленная компактная система управления и сбора данных, объединяющая в себе встраиваемый процессор реального времени и высокопроизводительную ПЛИС, необходимую для выполнения задач реконфигурируемого ввода/вывода. CompactRIO идеально подходит для реализации сложных систем мониторинга и управления.

CompactDAQ — системы сбора данных с подключением через USB или Ethernet, простой способ сбора данных с датчиков и сигналов в лабораторных и производственных условиях. Это традиционно популярные у потребителей многофункциональные устройства сбора данных, легко совместимые с программным обеспечением LabVIEW и предназначенные для оцифровки сигналов, выполнения анализа, записи и отображения данных.

LabVIEW — первое знакомство

В относительно небольшой статье мне хотелось бы рассказать о языке программирования LabVIEW. Этот весьма любопытный продукт к сожалению не пользуется широкой популярностью, и мне хотелось бы в некоторой степени восполнить имеющийся пробел.

image

Что же такое «LabVIEW»?

LabVIEW — это один из основных продуктов компании National Instruments. Прежде всего надо отметить, что LabVIEW — это аббревиатура, которая расшифровывается как Laboratory Virtual Instrumentation Engineering Workbench. Уже в названии прослеживается ориентация на лабораторные исследования, измерения и сбор данных. Действительно, построить SCADA — систему в LabVIEW несколько проще чем при использовании «традиционных» средств разработки. В данной статье мне хотелось бы показать, что возможная область применения LabVIEW несколько шире. Это принципиально иной язык программирования, или если хотите целая «философия» программирования. Функциональный язык, заставляющий несколько иначе мыслить и порой предоставляющий совершенно фантастические возможности для разработчика. Является ли LabVIEW языком программирования вообще? Это спорный вопрос — здесь нет стандарта, как, например ANSI C. В узких кругах разработчиков мы говорим, что пишем на языке «G». Формально такого языка не существует, но в этом и заключается прелесть этого средства разработки: от версии к версии в язык вводятся всё новые конструкции. Сложно представить, что в следующей реинкарнации Си появится, например, новая структура для for-цикла. А в LabVIEW такое вполне возможно.
Впрочем надо заметить, что LabVIEW входит в рейтинг языков программирования TIOBE, занимая на данный момент тридцатое место — где-то между Прологом и Фортраном.

NI LabVIEW — история создания

Компания National Instruments была создана в 1976 году тремя основателями — Джеффом Кодоски (Jeff Kodosky), Джеймсом Тручардом (James Truchard) и Биллом Новлиным (Bill Nowlin) в американском городе Остин (Austin), штат Техас. Основной специализацией компании являлись инструментальные средства для измерений и автоматизация производства.
Первая версия LabVIEW увидела свет спустя десять лет после создания компании — в 1986 году (это была версия для Apple Mac). Инженеры NI решили бросить вызов «традиционным» языкам программирования и создали полностью графическую среду разработки. Основным идеологом графического подхода стал Джефф. Год за годом выпускались новые версии. Первой кроссплатформенной версией (включая Windows) была третья версия, выпущенная в 1993 году. Актуальной на данный момент является версия 8.6, вышедшая в прошлом году.

В Остине и по сегодняшний день располагается головной офис компании. Сегодня в компании работают почти четыре тысячи человек, а офисы находятся почти в сорока странах (есть также офис и в России)

Моё знакомство с LabVIEW

Моё знакомство с LabVIEW произошло почти десять лет назад. Я начал трудиться по новому контракту, и мой тогдашний шеф вручил мне пачку дисков со словами «теперь ты будешь работать на этом». Я установил LabVIEW (это была пятая версия), и поигравшись некоторое время заявил, что на ЭТОМ ничего серьёзного не сделать, уж лучше я «по старинке» на Delphi… На что он мне сказал — ты просто не распробовал. Поработай недельку-другую. Через некоторое время я пойму, что ни на чём другом, кроме LabVIEW, я уже писать не смогу. Я просто влюбился в этот язык, хотя это и не была «любовь с первого взгляда».

Вообще говоря, довольно сложно сравнивать графический и текстовый языки программирования. Это, пожалуй, сравнение из разряда «PC» против «MAC» или «Windows» против «Linux» — можно спорить сколько угодно, но спор абсолютно лишён смысла — каждая система имеет право на существование и у каждой найдутся как сторонники так и противники, кроме того у каждого продукта своя ниша. LabVIEW – всего лишь инструмент, хотя и весьма гибкий.

Так что же такое LabVIEW?

LabVIEW — это кроссплатформенная графическая среда разработки приложений. LabVIEW — в принципе универсальный язык программирования. И хотя этот продукт порой тесно связан с аппаратным обеспечением National Instruments, он тем не менее не связан с конкретной машиной. Существуют версии для Windows, Linux, MacOS. Исходные тексты переносимы, а программы будут выглядеть одинаково во всех системах. Код, сгенерированный LabVIEW также может быть также исполнен на Windows Mobile или PalmOS (справедливости ради надо отметить, что поддержка PalmOS прекращена, впрочем здесь сама Palm больше виновата). Этот язык может с успехом использоваться для создания больших систем, для обработки текстов, изображений и работы с базами данных.

  • переменные (локальные или глобальные)
  • ветвление (case structure)
  • For – циклы с проверкой завершения и без.
  • While – циклы
  • Группировка операций.

LabVIEW – программа и возможности языка

В LabVIEW разрабатываемые программные модули называются «Virtual Instruments» (Виртуальные Инструменты) или по-простому VI. Они сохраняются в файлах с расширением *.vi. VIs – это кирпичики, из которых состоит LabVIEW – программа. Любая LabVIEW программа содержит как минимум один VI. В терминах языка Си можно достаточно смело провести аналогию с функцией с той лишь разницей, что в LabVIEW одна функция содержится в одном файле (можно также создавать библиотеки инструментов). Само собой разумеется, один VI может быть вызван из другого VI. В принципе каждый VI состоит из двух частей — Блок-Диаграмма (Block Diagram) и Передняя Панель (Front Panel). Блок-диаграмма — это программный код (точнее визуальное графическое представление кода), а Передняя панель — это интерфейс. Вот как выглядит классический пример Hello, World!:

image

В основе LabVIEW лежит парадигма потоков данных. В вышеприведённом примере константа и терминал индикатора соединены между собой линией. Эта линия называется Wire. Можно назвать её «проводом». По проводам передаются данные от одних элементов другим. Вся эта концепция называется Data Flow. Суть Блок Диаграммы — это узлы (ноды), выходы одних узлов присоединены ко входам других узлов. Узел начнёт выполнение только тогда, когда прибудут все необходимые для работы данные. На диаграмме вверху две ноды. Одна из них — константа. Этот узел самодостаточен — он начинает выполнение немедленно. Второй узел — индикатор. Он отобразит данные, которые передаёт константа (но не сразу, а как только данные прибудут от константы).

Вот чуть более сложный пример: сложение и умножение двух чисел. В традиционных языках мы напишем что-то вроде

int a, b, sum, mul;
//.
sum = a + b;
mul = a * b;

Вот как это выглядит в LabVIEW:

image

Обратите внимание на то, что сложение и умножение автоматически выполняются параллельно. На двухпроцессорной машине будут автоматически задействованы оба процессора.

А вот как выглядят while / for циклы и if / then / else структура:

image

Как уже упоминалось, все элементы будут выполняться параллельно. Вам не нужно задумываться о том, как распараллелить задачу на несколько потоков, которые можно выполнять параллельно на нескольких процессорах. В последних версиях можно даже явно указать на каком из процессоров должен выполняться тот или иной while-цикл. Сейчас существуют надстройки и для текстовых языков, позволяющие запросто добиться поддержки многопроцессорных систем, однако так просто, как на LabVIEW, это пожалуй нигде не реализовано. (ну вот, я всё же скатился на сравнение с текстовыми языками). Если уж мы заговорили о многопоточности, то надо также отметить, что в распоряжении разработчика богатый выбор инструментов для синхронизации потоков — семафоры, очереди, рандеву, и т.д.

LabVIEW включает в себя богатые наборы элементов для построения пользовательских интерфейсов. Уж на что быстро «набрасывались» интерфейсы в Дельфи, а в LabVIEW этот процесс происходит ещё стремительнее.

image

Стандартная поставка LabVIEW включает в себя также блоки для работы с ini файлами, реестром, функции для работы с двоичными и тестовыми файлами, математические функции, мощные инструменты для построения графиков (а куда же без этого в лаборатории-то), а в дополнение к уже упомянутой возможности вызовов DLL, LabVIEW позволяет работать с ActiveX компонентами и .net. Начиная с восьмой версии в LabVIEW была добавлена поддержка классов — язык стал объектно-ориентированным. Реализованную поддержку нельзя назвать полной, однако основные черты объектно-ориентированных языков — наследование и полиморфизм присутствуют. Также функциональность языка можно расширить дополнительными модулями, например NI Vision Toolkit – для обработки изображений и машинного зрения и другие. А при помощи модуля Applcation Builder можно сгенерировать исполняемый exe-файл. С помощью Internet Toolkit можно работать с ftp серверами, c помощью Database Connectivity Toolkit — с базами данных и т.д.

Часто можно услышать мнение, что графический код плохо читаем. Действительно, с непривычки обилие иконок и проводников несколько шокирует. Также начинающие разработчики создают программы-«простыни» и программы-«спагетти». Однако опытный LabVIEW-разработчик никогда не создаст диаграмм, превышающих размер экрана, даже если программа состоит из сотен модулей. Хорошо разработанная программа фактически «самодокументируется», поскольку в основе уже лежит графическое представление.

image

Довольно долгое время, программируя на LabVIEW, я пребывал в полной уверенности, что LabVIEW — это интерпретатор и блок-диаграммы постоянно интерпретируются ядром. После разговоров с инженерами NI выяснилось, что это не так. LabVIEW — это компилятор (качество кодогенерации, впрочем оставляет желать лучшего). Зато компиляция происходит «на лету» — в любой момент разработки программа всегда готова к запуску. Также LabVIEW-код может быть скомпилирован в полноценный исполнямый файл, который может быть запущен на компьютере без установленной LabVIEW (правда он требует LabVIEW Run-Time). Также можно собрать установочный пакет-инсталлятор, сторонних утилит типа InstallShield при этом не требуется.

Дальнейшее и более детальное описание возможностей пакета выходит за рамки данной статьи, я же просто предлагаю попробовать (ссылки даны ниже). Как говорили великие «… единственный способ освоить новый язык программирования — писать на нём программы». Ну а опытные программисты смогут экстраполировать полученные знания на свои собственные нужды.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *