LabVIEW‎ > ‎

LabVIEW и Multisim. Дополнительные возможности Пятачка

О связывании Multisim и LabVIEW. Посидел поизучал, что же это за зверь, и с чем его едят. А так же возможности взаимодействия с Labview. Нашел несколько вариантов.
 
Способ 1.
Со-эмуляция (Co-simulation). Требует Control Design & Simulation Module для LabVIEW. В LabVIEW для моделирования добавляется специальная конструкция - цикл моделирования. В нее добавляется блок в который загружается схема Multisim (файл ms12). Для этой конструкции существуют настройки моделирования (периоды вычислений и т.д.) Т.е. в данном случае настройки решателя определяются в LabVIEW, а не в Multisim.
Насколько я понял, в таком режиме идет пошаговое моделирование. Т.е. каждый цикл на выходе модели формируется одно значение на каждый выход, режим точка за точкой (point by point).
Советую посмотреть следующие документы: http://zone.ni.com/devzone/cda/tut/p/id/13663, http://zone.ni.com/devzone/cda/tut/p/id/13721
 
 Настройки цикла моделирования:
 
 
Способ 2.
Контрольно-измерительные приборы написанные на LabVIEW, работающие в среде Multisim.
Документы: http://zone.ni.com/devzone/cda/tut/p/id/5635, и особенно http://zone.ni.com/devzone/cda/tut/p/id/13715 - в нем приведены готовые приборы, которые можно скачать и добавить в Multisim (и скорректировать, если нужно!).
Тут моделирование ведется в Multisim. На LabVIEW можно сделать измерительные приборы и генераторы. Особенности приборов: генераторы генерируют сигналы (Waveform - волну в терминах LabVIEW) до запуска моделирования, после запуска моделирования модель работает с этой предварительно созданной волной. Т.е. модель не работает с данными в рельном времени, а только с предварительно сгенерированными данными. Измерительные приборы вызываются в каждом цикле моделирования и получают по 1 точке каждый вызов (с каждого входа), т.е. это не волна, а только один отсчет. Цикличность вызова измерительного прибора определяется настройками цикла моделирования, что накладывает ограничения на некотороые возможности этих LabVIEW-приборов.
Неприятная особенность: такие генерирующие и измеряющие приборы сложно отлаживать отдельно от Multisim, т.к. их внутренняя логика сильно завязана на связке с Multisim, и полноценная отладка очень тормозится, т.к. приходится при каждом изменении копировать прибор в Multisim и перезапускать его. А без Multisim приборы нельзя запускать только средствами LabVIEW.
По этой теме еще очень советую посмотреть: https://decibel.ni.com/content/groups/multisim-custom-simulation-analyses-and-instruments-powered-by-labview?view=overview  - это страница сообщества разработчиков приборов для Multisim. Там много готовых приборов.
 
Способ 3.
Существует тулкит, который в данный момент находится в стадии beta-версии Multisim Connectivity Toolkit (beta)
См. http://zone.ni.com/devzone/cda/tut/p/id/7785
Этот тулкит взаимодействует с Multisim очень интересным образом. Он чем-то похож на способ 1. В нем существует набор блоков, которые позволяют вызывать и работать с Multisim как с ActiveX сервером. Как это работает: отрывается соединение с ActiveX сервером Multisim, у которого нет графической оболочки, но есть методы и свойства к которым можно программно обращаться. Далее производится загрузка модели (из файла), настрока параметров моделирования и запуск моделирования. Т.е. моделирование происходит в Multisim, а данные потом через вызов методов и свойств сервера возвращаются в LabVIEW. Кроме того есть возможность менять параметры элементов схемы (значения сопротивлений, емкостей и т.п.) (это я не пробовал, правда), и получать изображение текущей схемы (в виде статической картинки png и т.п.). Результаты моделирования получаются в виде массива значений (wave form) - на каждый вызов функций опроса данных. Также насколько я понял, можно выбирать различные варианты анализа.
Способ довольно мощный, но статут beta-версии настораживает.
 
 
Способ 4.
Обмен между отдельной программой, выполняемой в среде LabVIEW, и Multisim через файлы LVM (TDM). Этот способ похож на способ, который я использовал для вытаскивания данных из Orcad (PSpice).
Посмотреть, как это реализуется можно в видео lvm.wmv и multisim.swf в каталоге Multisim.
Для загрузки lvm в Multisim и записи результатов моделирования существуют те самы готовые приборы написанные в LabVIEW (отсылка к способу 2). Важная особенность: при экспорте в TDM создаются сигнальные группы, объединяющий сигнал и временные метки, в LVM тоже для каждого столбца сигнала есть соответствующий столбец временных меток, кроме того в LVM есть delta T - временной шаг между отсчетами, а вот в TDM Multisim судя по всему delta T не записывает, поэтому этот интервал придется самостоятельно извлекать из столбца времени сигнальной группы.
 
Все перечисленные способы реализуют разные парадигмы. Я советую внимательно ознакомиться, и выбрать, что бы вас могло заинтересовать. Первые 2 способа ориентированны на обработку поступающих данных в реальном времени (точка за точкой) от модели (кроме генерации предворительной волны в способе 2), 3-ий способ оперирует блоками поступающих данных (что-то среднее между способами 1,2 и 4), 4-ый способ оперируется только результатами моделирования.
 
 
 
Comments