Создание таблицы с заданием изменения скоростей

Простейшие вопросы в области инженерной разработки
Ответить
metrim
interested
interested
Сообщения: 5
Зарегистрирован: 18 авг 2019, 00:08
Версия LabVIEW: 2018

Создание таблицы с заданием изменения скоростей

Сообщение metrim »

Здравствуйте
Только начал осваивать LabView + с програмированием у меня всегда было не очень то.
Мне нужно сделать интерфейс хроматографической программы.
Одной из необходимых функций и элементов является наличие нескольких временных сегментов, в которые изменяется некая константа.
Например:
с 0 по 5 минут скорость работы насоса 3 (условно)
с 5 до 10 - 4
с 10 до 25 -9
и т.д.
При этом при разных условиях работы прибора эти значения (и временные отрезки и "константы" в них - могут изменяться)

В существующих хроматографических программах эти свойства реализованы в виде поля со списком, в котором можно добавлять-удалять строки. Мне нужно нечто аналогичное.
Каким элементом управления в LV это реализовано и каким наиболее простым способом можно данные констант извлекать из этого поля, если скажем у меня в программе идет счетчик времени и нужно знать: с какой скоростью в тот или иной момент должен работать насос.
Проблема в том, что я даже не знаю как называется то что мне требуется.

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4953
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Создание таблицы с заданием изменения скоростей

Сообщение IvanLis »

Готовых инструментов для решения этой задачи в :labview: нет.
Необходимо будет с "0" создавать все необходимые функции.

metrim
interested
interested
Сообщения: 5
Зарегистрирован: 18 авг 2019, 00:08
Версия LabVIEW: 2018

Re: Создание таблицы с заданием изменения скоростей

Сообщение metrim »

Неужели действительно нет готовых разработок ??
Даже находятся гуглением древние правда проекты Chromatography toolkits for labview, есть несколько не очень внятных статей, без подробного описания, но конов там вероятно не найти....

Наверняка я не первый пытаюсь решить данную задачу. По идее отдельные части "прибора" более-менее понятны, но вот как сделать список со значениями по времени, в соответствии с которыми будет изменяться режим работы перефирии - понять не могу ....

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

ujin
user
user
Сообщения: 91
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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
Образец программы пуска обычного насоса с использованием этого подхода. Можно добавить шагов и переключателя скоростей на выходе.
Вложения
По макросу программа пуска.pdf
(97.39 КБ) 39 скачиваний
Этап.pdf
(215.69 КБ) 40 скачиваний
pump.zip
реализация программы пуска
(87.28 КБ) 48 скачиваний
программа пуска.pdf
(209.42 КБ) 36 скачиваний

Аватара пользователя
ladik

Silver
adviser
adviser
Сообщения: 247
Зарегистрирован: 18 ноя 2014, 11:45
Награды: 1
Версия LabVIEW: 2011, 2015
Откуда: Астана

Re: Создание таблицы с заданием изменения скоростей

Сообщение ladik »

Вот Вам простейший example логики работы Вашего примера.
Например:
с 0 по 5 минут скорость работы насоса 3 (условно)
с 5 до 10 - 4
с 10 до 25 -9
и т.д.
В таблицу заносим длительность периода и скорость работы чего-либо (в данном случае -- это задержка работы цикла и соответственно частота моргания индикатора Action). В цикле, если длительность текущего периода больше той, что требуется, заносим в сдвиговый регистр новое значение периода и снова проверяем, и так, пока не достигнем конца массива. Надеюсь, это прибавит Вам понимания того куда нужно двигаться.
Вложения
Example.vi
(11.69 КБ) 45 скачиваний
Дорогу осилит идущий.

metrim
interested
interested
Сообщения: 5
Зарегистрирован: 18 авг 2019, 00:08
Версия LabVIEW: 2018

Re: Создание таблицы с заданием изменения скоростей

Сообщение metrim »

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Д график.

metrim
interested
interested
Сообщения: 5
Зарегистрирован: 18 авг 2019, 00:08
Версия LabVIEW: 2018

Re: Создание таблицы с заданием изменения скоростей

Сообщение metrim »

ladik писал(а):Вот Вам простейший example логики работы Вашего примера.

В таблицу заносим длительность периода и скорость работы чего-либо (в данном случае -- это задержка работы цикла и соответственно частота моргания индикатора Action). В цикле, если длительность текущего периода больше той, что требуется, заносим в сдвиговый регистр новое значение периода и снова проверяем, и так, пока не достигнем конца массива. Надеюсь, это прибавит Вам понимания того куда нужно двигаться.
Спасибо!!
Внешне похоже на то что мне нужно! Только почему то у меня не открывается блок-диаграма программы, что бы взглянуть на внутреннюю организацию программы и разобраться.
Ну и разумеется мне нужен не "ступенчатый градиент" (как в хроматографии именовалось бы предложенное вами исполнение), а несколько более сложный вариант, когда запись условий
0 минут - 0%
5 минут - 20%
означала бы не то что с 0 до 5 минут должен быть поток 0% , а с 0 до 5 минут должен быть плавный переход от 0 до 20%
Т.е. каждую секунду должно происходить изменение (20-0)%/(300-0)сек = 0,066%сек. Это рассчитанное "приращение" должно далее поступать в канал расчета реальных скоростей работы для насосов А и В и далее уже передаваться через ардуино самим насосам. Ну этот участок программы уже б.м. менее понятно как делать, а вот с расчетом градиента с помощью лабвью - это я как то вовсе буксую .

ujin
user
user
Сообщения: 91
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Создание таблицы с заданием изменения скоростей

Сообщение ujin »

Можно еще посмотреть в библиотеке PID например PID Setpoint Profile, PID Output Rate Limiter

metrim
interested
interested
Сообщения: 5
Зарегистрирован: 18 авг 2019, 00:08
Версия LabVIEW: 2018

Re: Создание таблицы с заданием изменения скоростей

Сообщение metrim »

ujin писал(а):Можно еще посмотреть в библиотеке PID например PID Setpoint Profile, PID Output Rate Limiter
Да, это уже весьма похоже на то что нужно!
По трезвым азмышлениям можно таблицу ограничить десятком переключений в градиенте, очень редко нужны более сложные градиенты.

Ответить

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