Симуляция сигнала в Labview по формуле.

Простейшие вопросы в области инженерной разработки
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

ladik писал(а):Кстати, вопрос к опытным коллегам: почему конструкция с третьей картинки выдаёт ошибку?
Изображение
Там написано. Установить значения по умолчанию для контролов и индикаторов можно только в IDE режиме, то есть вручную через ПКМ -> Make Current Value Default или через меню LabVIEW. Это связано с тем, что в ран-тайме панель скомпилирована и никакие изменения не могут быть внесены. Для установки default значений нужна перекомпиляция.
Последний раз редактировалось dadreamer 20 мар 2016, 12:14, всего редактировалось 1 раз.
Аватара пользователя
ladik

Silver
developer
developer
Сообщения: 275
Зарегистрирован: 18 ноя 2014, 11:45
Награды: 1
Версия LabVIEW: 2015, 2019
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение ladik »

dadreamer, всё понятно, спасибо!
Дорогу осилит идущий.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

Если не рассматривать очевидные решения посредством ini/xml и прочих промежуточных файлов, то есть ещё вот такое решение: http://www.originalcode.com/SavDef.htm Смысл в том, что SubVI вызывает метод Default Values:Make Current Default на главном :vi: , когда он уже отработал.

Прошу прощения, сразу не увидел:
ladik писал(а):Вот тут интересный способ http://www.originalcode.com/SavDef.htm, но не я его не проверял.
Я проверил на :labview: 2015 (32-bit) - всё работает чётко! :wink: Сохраняет и контролы, и индикаторы.

Исходники:
Вложения
Example Program with Save Defaults.vi
lv8.0
(8.08 КБ) 149 скачиваний
Save Defaults.vi
lv8.0
(18.01 КБ) 134 скачивания
Save Defaults Core.vi
lv8.0
(16.49 КБ) 143 скачивания
Последний раз редактировалось dadreamer 17 мар 2016, 19:35, всего редактировалось 4 раза.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение Artem.spb »

Что ж вы усложнять любите :)
Зачем все эти "по умолчанию", когда можно контрол сделать входным значением, и при вызове подавать на его вход нужные параметры.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

Artem.spb писал(а):Что ж вы усложнять любите :)
Зачем все эти "по умолчанию", когда можно контрол сделать входным значением, и при вызове подавать на его вход нужные параметры.
По-моему, ТС хотел несколько иное...
DefectoMed писал(а):почему когда меняю параметры , они сбрасываются,при включении основной программы?
То есть, при выключении основной программы параметры сохранить, тогда при включении они не сбросятся на дефолтные (потому что будут считаны, например, из файла): http://labviewportal.org/viewtopic.php?p=64447#p64447

Усложнять ничего не хотим и желаем автору сделать всё как можно проще и элегантней. :)
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Симуляция сигнала в Labview по формуле.

Сообщение Blackman »

Можно сохранять в самом :vi: используя VI Tag or Object Tag Methods, как в :labview: Options... Dialog :vi:.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

Blackman писал(а):Можно сохранять в самом :vi: используя VI Tag or Object Tag Methods, как в :labview: Options... Dialog :vi:.
Как это сделать? Есть какой-то пример или мануал?..
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Симуляция сигнала в Labview по формуле.

Сообщение Blackman »

VI & Objects Methods Tаgs официальная библиотека начиная с 8.6. Должны быть и в Scripting. Там все интуитивно понятно. Была тема и видео на NI форум или LAVA. Где то был пример. Найду выложу.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Симуляция сигнала в Labview по формуле.

Сообщение Blackman »

Сохранение значения контрола в Persistent VI Tag.
Вложения
VI Tag Example.PNG
Blackman_VI Tags__Example .vi
(15.99 КБ) 129 скачиваний
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

Blackman, интересная штука, посидел-поразбирался. При включённом скриптинге подобные узлы появляются, но они для GObject, имеют голубой окрас и при подключении к VI refnum работать не хотят. Чтобы получить доступ к аналогичным узлам для :vi: , нужно подключать private stuff. Тогда доступны методы из контекстного меню, а узлы будут коричневого цвета. Получается так, что тэги пишутся в сам :vi: в виде ресурса VITS (для скриптовых узлов это, должно быть, ресурсы FPTS и BDTS, судя по этой теме). В ресурс загоняется количество тэгов и по порядку для каждого тэга: длина имени, имя тэга, служебная инфа (?), type descriptor контрола, значение контрола, разделитель (нули). Естественно, пишутся только persistent тэги, и то лишь при сохранении :vi: (т.е., если установить тэг и закрыть :vi: без сохранения, то при новом открытии и чтении этого тэга не будет). Почему-то модификация :vi: звёздочкой не помечается и :labview: при закрытии ничего не говорит. Это, конечно, минус, т.к. легко забыть, что какие-то тэги были установлены для :vi: .
В экзшешнике методы работают, но толку от них там никакого, ибо save/load функции отсутствуют в lvrt. Складывается впечатление, что работа с тэгами предназначена в основном для работы в рамках запущенного экземпляра приложения (ну, и для скриптинга, если речь о голубых блоках), а не для постоянного хранения каких-то данных.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Симуляция сигнала в Labview по формуле.

Сообщение Blackman »

Еще примеры + видео
https://decibel.ni.com/content/docs/DOC-15330
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Симуляция сигнала в Labview по формуле.

Сообщение Blackman »

В экзшешнике методы работают, но толку от них там никакого,...
Использую как Dictionary или WORM, как VI Tags так и GObject Tags.
Вложения
VI Tags_Repositary VI.PNG
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

Blackman писал(а):Еще примеры + видео
https://decibel.ni.com/content/docs/DOC-15330
Посмотрел, в общем, после вчерашних тестов нового для себя ничего не нашёл. Можно private узлы использовать, можно готовые блоки в C:\Program Files (x86)\National Instruments\LabVIEW 2015\vi.lib\UserTags\, разница только в префиксе user. в готовых :vi: . Не знаю, почему второй пример автор называет Inter-Process Communication. Там идёт обмен данными через ref'ы между двумя :vi: , а IPC предполагает обмен между процессами (т.е., EXE). Естественно, если проверить работу тэгов между двумя EXE, то ничего работать не будет, ибо области памяти разные будут.

И вот ещё чуть-чуть инфы:
- тэги появились в :labview: 6.1;
- для :labview: 8.0 и более поздних нужна опция SuperSecretPrivateSpecialStuff=True для активации скрытых пунктов меню; для более ранних версий опция другая - SuperPrivateScriptingFeatureVisible=True.
Blackman писал(а):Использую как Dictionary или WORM, как VI Tags так и GObject Tags.
Изображение
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Симуляция сигнала в Labview по формуле.

Сообщение Blackman »

Не знаю, почему второй пример автор называет Inter-Process Communication. Там идёт обмен данными через ref'ы между двумя VI, а IPC предполагает обмен между процессами (т.е., EXE)
Various Inter-process Communication Methods:
This table lists various inter-process communication methods organized by scope and transfer type.
This list is not comprehensive, but it is beneficial to know about all of the listed methods.
Table List
Single-process shared variables
Local variables
Global variables
Network-published shared variables (single-element)
Network-published shared variables (multiple-element)
Functional global variables (FGV)
Single Element Queues (SEQ)
Data Value Reference (DVR)
Current Value Table (CVT)
Client CVT Communication (CCC)

Источник: LabVIEW Developer Education Day
https://decibel.ni.com/content/servlet/ ... iables.zip
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Симуляция сигнала в Labview по формуле.

Сообщение dadreamer »

Blackman, это общепризнанная терминология:
Inter-process communication (Wiki)
Interprocess Communications (Microsoft)
Inter-Application Communication (NI)
Всё остальное - собственное изобретение отдельных членов NI, например разделение на Inter-Processes и Inter-Target Data Communication, где Inter-Target - это обмен между несколькими физическими устройствами (по сети и т.д.), а всё остальное, включая обмен между потоками одного процесса - это Inter-Processes. Но для меня, как и для многих из тех, кто не только в :labview: программы пишет, такая терминология непривычна и сбивает с толку. Если речь о :labview: , то IPC (IAC) - это TCP, UDP, Network Streams, Shared Variables, CVT + функционал ОС (Pipes, Shared Memory и т.д.). А то, что позволяет обмениваться данными между потоками (параллельными циклами или :vi: в рамках одного процесса/экземпляра приложения) - это Inter-Thread Communication - Queues, Notifiers, Semaphores, Rendez-Vous, Occurences, DVR, локальные и глобальные переменные.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»