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

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

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

Postby dadreamer on 17 Mar 2016, 07:55

ladik wrote:Кстати, вопрос к опытным коллегам: почему конструкция с третьей картинки выдаёт ошибку?
Image

Там написано. Установить значения по умолчанию для контролов и индикаторов можно только в IDE режиме, то есть вручную через ПКМ -> Make Current Value Default или через меню LabVIEW. Это связано с тем, что в ран-тайме панель скомпилирована и никакие изменения не могут быть внесены. Для установки default значений нужна перекомпиляция.
Last edited by dadreamer on 20 Mar 2016, 12:14, edited 1 time in total.
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby ladik on 17 Mar 2016, 08:06

dadreamer, всё понятно, спасибо!
User avatar
ladik
advanced
advanced
 
Posts: 185
Joined: 18 Nov 2014, 11:45
Location: Астана
Medals: 1
Silver (1)
LabVIEW Version: 2011, 2015
Karma: 67
hardware I/O VIP

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

Postby dadreamer on 17 Mar 2016, 08:35

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

Прошу прощения, сразу не увидел:
ladik wrote:Вот тут интересный способ http://www.originalcode.com/SavDef.htm, но не я его не проверял.

Я проверил на :labview: 2015 (32-bit) - всё работает чётко! :wink: Сохраняет и контролы, и индикаторы.

Исходники:
Attachments
Example Program with Save Defaults.vi
lv8.0
(8.08 KiB) Downloaded 34 times
Save Defaults.vi
lv8.0
(18.01 KiB) Downloaded 38 times
Save Defaults Core.vi
lv8.0
(16.49 KiB) Downloaded 36 times
Last edited by dadreamer on 17 Mar 2016, 19:35, edited 4 times in total.
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Artem.spb on 17 Mar 2016, 08:38

Что ж вы усложнять любите :)
Зачем все эти "по умолчанию", когда можно контрол сделать входным значением, и при вызове подавать на его вход нужные параметры.
Artem.spb
expert
expert
 
Posts: 1206
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 213
CLD hardware I/O VIP freelance

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

Postby dadreamer on 17 Mar 2016, 08:53

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

По-моему, ТС хотел несколько иное...
DefectoMed wrote:почему когда меняю параметры , они сбрасываются,при включении основной программы?

То есть, при выключении основной программы параметры сохранить, тогда при включении они не сбросятся на дефолтные (потому что будут считаны, например, из файла): viewtopic.php?p=64447#p64447

Усложнять ничего не хотим и желаем автору сделать всё как можно проще и элегантней. :)
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Blackman on 17 Mar 2016, 14:00

Можно сохранять в самом :vi: используя VI Tag or Object Tag Methods, как в :labview: Options... Dialog :vi:.
Blackman
leader
leader
 
Posts: 672
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 166

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

Postby dadreamer on 17 Mar 2016, 19:36

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

Как это сделать? Есть какой-то пример или мануал?..
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Blackman on 17 Mar 2016, 21:46

VI & Objects Methods Tаgs официальная библиотека начиная с 8.6. Должны быть и в Scripting. Там все интуитивно понятно. Была тема и видео на NI форум или LAVA. Где то был пример. Найду выложу.
Blackman
leader
leader
 
Posts: 672
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 166

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

Postby Blackman on 17 Mar 2016, 23:29

Сохранение значения контрола в Persistent VI Tag.
Attachments
VI Tag Example.PNG
Blackman_VI Tags__Example .vi
(15.99 KiB) Downloaded 29 times
Blackman
leader
leader
 
Posts: 672
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 166

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

Postby dadreamer on 18 Mar 2016, 20:23

Blackman, интересная штука, посидел-поразбирался. При включённом скриптинге подобные узлы появляются, но они для GObject, имеют голубой окрас и при подключении к VI refnum работать не хотят. Чтобы получить доступ к аналогичным узлам для :vi: , нужно подключать private stuff. Тогда доступны методы из контекстного меню, а узлы будут коричневого цвета. Получается так, что тэги пишутся в сам :vi: в виде ресурса VITS (для скриптовых узлов это, должно быть, ресурсы FPTS и BDTS, судя по этой теме). В ресурс загоняется количество тэгов и по порядку для каждого тэга: длина имени, имя тэга, служебная инфа (?), type descriptor контрола, значение контрола, разделитель (нули). Естественно, пишутся только persistent тэги, и то лишь при сохранении :vi: (т.е., если установить тэг и закрыть :vi: без сохранения, то при новом открытии и чтении этого тэга не будет). Почему-то модификация :vi: звёздочкой не помечается и :labview: при закрытии ничего не говорит. Это, конечно, минус, т.к. легко забыть, что какие-то тэги были установлены для :vi: .
В экзшешнике методы работают, но толку от них там никакого, ибо save/load функции отсутствуют в lvrt. Складывается впечатление, что работа с тэгами предназначена в основном для работы в рамках запущенного экземпляра приложения (ну, и для скриптинга, если речь о голубых блоках), а не для постоянного хранения каких-то данных.
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Blackman on 19 Mar 2016, 02:28

Еще примеры + видео
https://decibel.ni.com/content/docs/DOC-15330
Blackman
leader
leader
 
Posts: 672
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 166

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

Postby Blackman on 19 Mar 2016, 11:49

В экзшешнике методы работают, но толку от них там никакого,...

Использую как Dictionary или WORM, как VI Tags так и GObject Tags.
Attachments
VI Tags_Repositary VI.PNG
Blackman
leader
leader
 
Posts: 672
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 166

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

Postby dadreamer on 19 Mar 2016, 13:14

Blackman wrote:Еще примеры + видео
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 wrote:Использую как Dictionary или WORM, как VI Tags так и GObject Tags.

Image
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

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

Postby Blackman on 19 Mar 2016, 14:13

Не знаю, почему второй пример автор называет 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
Blackman
leader
leader
 
Posts: 672
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 166

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

Postby dadreamer on 19 Mar 2016, 15:09

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, локальные и глобальные переменные.
User avatar
dadreamer
doctor
doctor
 
Posts: 2858
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 704
I/O VIP vision internet

PreviousNext

Return to Для чайников

Who is online

Users browsing this forum: Yandex and 17 guests

cron