Здравствуйте
Только начал осваивать LabView + с програмированием у меня всегда было не очень то.
Мне нужно сделать интерфейс хроматографической программы.
Одной из необходимых функций и элементов является наличие нескольких временных сегментов, в которые изменяется некая константа.
Например:
с 0 по 5 минут скорость работы насоса 3 (условно)
с 5 до 10 - 4
с 10 до 25 -9
и т.д.
При этом при разных условиях работы прибора эти значения (и временные отрезки и "константы" в них - могут изменяться)
В существующих хроматографических программах эти свойства реализованы в виде поля со списком, в котором можно добавлять-удалять строки. Мне нужно нечто аналогичное.
Каким элементом управления в LV это реализовано и каким наиболее простым способом можно данные констант извлекать из этого поля, если скажем у меня в программе идет счетчик времени и нужно знать: с какой скоростью в тот или иной момент должен работать насос.
Проблема в том, что я даже не знаю как называется то что мне требуется.
Создание таблицы с заданием изменения скоростей
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Создание таблицы с заданием изменения скоростей
Готовых инструментов для решения этой задачи в нет.
Необходимо будет с "0" создавать все необходимые функции.
Необходимо будет с "0" создавать все необходимые функции.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 5
- Зарегистрирован: 18 авг 2019, 00:08
- Версия LabVIEW: 2018
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Неужели действительно нет готовых разработок ??
Даже находятся гуглением древние правда проекты Chromatography toolkits for labview, есть несколько не очень внятных статей, без подробного описания, но конов там вероятно не найти....
Наверняка я не первый пытаюсь решить данную задачу. По идее отдельные части "прибора" более-менее понятны, но вот как сделать список со значениями по времени, в соответствии с которыми будет изменяться режим работы перефирии - понять не могу ....
Визуально похоже на то что нужно окошко Real matrix, там табличка прокручивающаяся в которой можно как бы изменять кол-во строк в соответствии со сложностью необходимой программы, но вот как заставить алгоритм брать оттуда построчно в зависимости от времени значения - ......
Даже находятся гуглением древние правда проекты Chromatography toolkits for labview, есть несколько не очень внятных статей, без подробного описания, но конов там вероятно не найти....
Наверняка я не первый пытаюсь решить данную задачу. По идее отдельные части "прибора" более-менее понятны, но вот как сделать список со значениями по времени, в соответствии с которыми будет изменяться режим работы перефирии - понять не могу ....
Визуально похоже на то что нужно окошко Real matrix, там табличка прокручивающаяся в которой можно как бы изменять кол-во строк в соответствии со сложностью необходимой программы, но вот как заставить алгоритм брать оттуда построчно в зависимости от времени значения - ......
-
- user
- Сообщения: 94
- Зарегистрирован: 28 июл 2019, 13:16
- Версия LabVIEW: 19
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Ближайший инструмент к вашей задаче Statechart Module
http://www.ni.com/tutorial/7425/en/
Меня данный модуль не устроил, так как нет как раз задания времени шага и сам Statechart Module не поддерживается в Linux версии.
Поэтому делал аналог SFC по образу алгоблоков ЭТП, ШАГ старого контроллера ремиконт Р-130.
Сам подход использован от:
Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления
(СПб.: Наука,1998. 628 с.
УДК 681.3.06:62-507)
Немного теории (было подготовлено для другого производителя). Блок этап от ремиконта Р-130
Образец программы пуска обычного насоса с использованием этого подхода. Можно добавить шагов и переключателя скоростей на выходе.
http://www.ni.com/tutorial/7425/en/
Меня данный модуль не устроил, так как нет как раз задания времени шага и сам Statechart Module не поддерживается в Linux версии.
Поэтому делал аналог SFC по образу алгоблоков ЭТП, ШАГ старого контроллера ремиконт Р-130.
Сам подход использован от:
Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления
(СПб.: Наука,1998. 628 с.
УДК 681.3.06:62-507)
Немного теории (было подготовлено для другого производителя). Блок этап от ремиконта Р-130
Образец программы пуска обычного насоса с использованием этого подхода. Можно добавить шагов и переключателя скоростей на выходе.
- Вложения
-
- По макросу программа пуска.pdf
- (97.39 КБ) 89 скачиваний
-
- Этап.pdf
- (215.69 КБ) 84 скачивания
-
- pump.zip
- реализация программы пуска
- (87.28 КБ) 104 скачивания
-
- программа пуска.pdf
- (209.42 КБ) 82 скачивания
-
ladik
- developer
- Сообщения: 275
- Зарегистрирован: 18 ноя 2014, 11:45
- Награды: 1
- Версия LabVIEW: 2015, 2019
- Откуда: Екатеринбург
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Вот Вам простейший example логики работы Вашего примера.
В таблицу заносим длительность периода и скорость работы чего-либо (в данном случае -- это задержка работы цикла и соответственно частота моргания индикатора Action). В цикле, если длительность текущего периода больше той, что требуется, заносим в сдвиговый регистр новое значение периода и снова проверяем, и так, пока не достигнем конца массива. Надеюсь, это прибавит Вам понимания того куда нужно двигаться.Например:
с 0 по 5 минут скорость работы насоса 3 (условно)
с 5 до 10 - 4
с 10 до 25 -9
и т.д.
- Вложения
-
- Example.vi
- (11.69 КБ) 97 скачиваний
Дорогу осилит идущий.
-
- interested
- Сообщения: 5
- Зарегистрирован: 18 авг 2019, 00:08
- Версия LabVIEW: 2018
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Я по данной ссылке страницу прокрутил и что то на картинках ничего под свои потребности как то не обнаружил :(ujin писал(а):Ближайший инструмент к вашей задаче Statechart Module
http://www.ni.com/tutorial/7425/en/
Ну у меня задача пока что для под виндуМеня данный модуль не устроил, так как нет как раз задания времени шага и сам Statechart Module не поддерживается в Linux версии.
Ну мне к счастью не нужно столь далеко копать. У меня есть старые хроматографические насосы ,к которым есть документация, есть модуль управления ими, есть описание коммутационных сигналов. Я просто в основном хочу заменить родной контрольный модуль сопряжением с ПК. Насосам я буду давать управляющие команды с ардуинок. (два насоса, две ардуины). Это как бы все понятно как реализовать, постепенно допиливаю скетчи.Поэтому делал аналог SFC по образу алгоблоков ЭТП, ШАГ старого контроллера ремиконт Р-130.
Сам подход использован от:
Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления
(СПб.: Наука,1998. 628 с.
УДК 681.3.06:62-507)
Немного теории (было подготовлено для другого производителя). Блок этап от ремиконта Р-130
Образец программы пуска обычного насоса с использованием этого подхода. Можно добавить шагов и переключателя скоростей на выходе.
Теперь надо решить задачу синхронного изменения скооростей насосов. Дело в том, что если по простому - есть насос А, есть насос В , сумарный поток - скажем 1 мл/мин (или 5 или 10, в зависимости от задачи) на старте 100% раствора должна давать помпа А, а насос В - 0% и плавно, скажем за полчаса или час они должны смениться через 99%/1%... 90%/10% ..... 50/50 ..... до 100% на насосе В. Чем плавнее это делать - тем лучше.
Проблема в том, что нельзя "жестко записать "переход с 0 до 100 за 30минут", т.к. задачи меняются. Могут быть вообще варианты когда за 5 минут нужно от 0 до 30% канал В довести, а потом , в течении часа плавно повышать от 30 до 40, а потом опять быстро за 10 минут до 100% В. Для этого нужна гибко настраиваемая программа-таблица. Как её реализовывать - в принципе не принципиально. Можно хоть текстовой файл, из которого подгружать условия программу изменений.
Ну и после того , как разберусь с насосами - в программу нужно будет завести сигналы с детекторов, но это к счастью уже более понятный ход, там просто читать с помощью ардуино вольтах на входах и писать их в лабвью, записывая в файл данных и выводя на какой нибудь наиболее гибкий 2Д график.
-
- interested
- Сообщения: 5
- Зарегистрирован: 18 авг 2019, 00:08
- Версия LabVIEW: 2018
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Спасибо!!ladik писал(а):Вот Вам простейший example логики работы Вашего примера.
В таблицу заносим длительность периода и скорость работы чего-либо (в данном случае -- это задержка работы цикла и соответственно частота моргания индикатора Action). В цикле, если длительность текущего периода больше той, что требуется, заносим в сдвиговый регистр новое значение периода и снова проверяем, и так, пока не достигнем конца массива. Надеюсь, это прибавит Вам понимания того куда нужно двигаться.
Внешне похоже на то что мне нужно! Только почему то у меня не открывается блок-диаграма программы, что бы взглянуть на внутреннюю организацию программы и разобраться.
Ну и разумеется мне нужен не "ступенчатый градиент" (как в хроматографии именовалось бы предложенное вами исполнение), а несколько более сложный вариант, когда запись условий
0 минут - 0%
5 минут - 20%
означала бы не то что с 0 до 5 минут должен быть поток 0% , а с 0 до 5 минут должен быть плавный переход от 0 до 20%
Т.е. каждую секунду должно происходить изменение (20-0)%/(300-0)сек = 0,066%сек. Это рассчитанное "приращение" должно далее поступать в канал расчета реальных скоростей работы для насосов А и В и далее уже передаваться через ардуино самим насосам. Ну этот участок программы уже б.м. менее понятно как делать, а вот с расчетом градиента с помощью лабвью - это я как то вовсе буксую .
-
- user
- Сообщения: 94
- Зарегистрирован: 28 июл 2019, 13:16
- Версия LabVIEW: 19
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Можно еще посмотреть в библиотеке PID например PID Setpoint Profile, PID Output Rate Limiter
-
- interested
- Сообщения: 5
- Зарегистрирован: 18 авг 2019, 00:08
- Версия LabVIEW: 2018
- Контактная информация:
Re: Создание таблицы с заданием изменения скоростей
Да, это уже весьма похоже на то что нужно!ujin писал(а):Можно еще посмотреть в библиотеке PID например PID Setpoint Profile, PID Output Rate Limiter
По трезвым азмышлениям можно таблицу ограничить десятком переключений в градиенте, очень редко нужны более сложные градиенты.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение