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

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

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

Postby metrim on 18 Aug 2019, 00:53

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

В существующих хроматографических программах эти свойства реализованы в виде поля со списком, в котором можно добавлять-удалять строки. Мне нужно нечто аналогичное.
Каким элементом управления в LV это реализовано и каким наиболее простым способом можно данные констант извлекать из этого поля, если скажем у меня в программе идет счетчик времени и нужно знать: с какой скоростью в тот или иной момент должен работать насос.
Проблема в том, что я даже не знаю как называется то что мне требуется.
metrim
interested
interested
 
Posts: 5
Joined: 18 Aug 2019, 00:08
LabVIEW Version: 2018
Karma: 0

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

Postby IvanLis on 19 Aug 2019, 17:41

Готовых инструментов для решения этой задачи в :labview: нет.
Необходимо будет с "0" создавать все необходимые функции.
User avatar
IvanLis
professor
professor
 
Posts: 4832
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 782
hardware VIP bloggers teachers

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

Postby metrim on 20 Aug 2019, 02:26

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

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

Визуально похоже на то что нужно окошко Real matrix, там табличка прокручивающаяся в которой можно как бы изменять кол-во строк в соответствии со сложностью необходимой программы, но вот как заставить алгоритм брать оттуда построчно в зависимости от времени значения - ......
metrim
interested
interested
 
Posts: 5
Joined: 18 Aug 2019, 00:08
LabVIEW Version: 2018
Karma: 0

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

Postby ujin on 20 Aug 2019, 10:10

Ближайший инструмент к вашей задаче Statechart Module
http://www.ni.com/tutorial/7425/en/
Меня данный модуль не устроил, так как нет как раз задания времени шага и сам Statechart Module не поддерживается в Linux версии.
Поэтому делал аналог SFC по образу алгоблоков ЭТП, ШАГ старого контроллера ремиконт Р-130.
Сам подход использован от:
Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления
(СПб.: Наука,1998. 628 с.
УДК 681.3.06:62-507)
Немного теории (было подготовлено для другого производителя). Блок этап от ремиконта Р-130
Образец программы пуска обычного насоса с использованием этого подхода. Можно добавить шагов и переключателя скоростей на выходе.
Attachments
По макросу программа пуска.pdf
(97.39 KiB) Downloaded 14 times
Этап.pdf
(215.69 KiB) Downloaded 14 times
pump.zip
реализация программы пуска
(87.28 KiB) Downloaded 14 times
программа пуска.pdf
(209.42 KiB) Downloaded 15 times
ujin
beginner
beginner
 
Posts: 23
Joined: 28 Jul 2019, 13:16
LabVIEW Version: 15
Karma: 4

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

Postby ladik on 20 Aug 2019, 10:32

Вот Вам простейший example логики работы Вашего примера.
Например:
с 0 по 5 минут скорость работы насоса 3 (условно)
с 5 до 10 - 4
с 10 до 25 -9
и т.д.


В таблицу заносим длительность периода и скорость работы чего-либо (в данном случае -- это задержка работы цикла и соответственно частота моргания индикатора Action). В цикле, если длительность текущего периода больше той, что требуется, заносим в сдвиговый регистр новое значение периода и снова проверяем, и так, пока не достигнем конца массива. Надеюсь, это прибавит Вам понимания того куда нужно двигаться.
Attachments
Example.vi
(11.69 KiB) Downloaded 19 times
Дорогу осилит идущий.
User avatar
ladik
adviser
adviser
 
Posts: 235
Joined: 18 Nov 2014, 11:45
Location: Астана
Medals: 1
Silver (1)
LabVIEW Version: 2011, 2015
Karma: 88
hardware I/O VIP

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

Postby metrim on 20 Aug 2019, 15:21

ujin wrote:Ближайший инструмент к вашей задаче 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
 
Posts: 5
Joined: 18 Aug 2019, 00:08
LabVIEW Version: 2018
Karma: 0

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

Postby metrim on 20 Aug 2019, 15:36

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

В таблицу заносим длительность периода и скорость работы чего-либо (в данном случае -- это задержка работы цикла и соответственно частота моргания индикатора Action). В цикле, если длительность текущего периода больше той, что требуется, заносим в сдвиговый регистр новое значение периода и снова проверяем, и так, пока не достигнем конца массива. Надеюсь, это прибавит Вам понимания того куда нужно двигаться.
Спасибо!!
Внешне похоже на то что мне нужно! Только почему то у меня не открывается блок-диаграма программы, что бы взглянуть на внутреннюю организацию программы и разобраться.
Ну и разумеется мне нужен не "ступенчатый градиент" (как в хроматографии именовалось бы предложенное вами исполнение), а несколько более сложный вариант, когда запись условий
0 минут - 0%
5 минут - 20%
означала бы не то что с 0 до 5 минут должен быть поток 0% , а с 0 до 5 минут должен быть плавный переход от 0 до 20%
Т.е. каждую секунду должно происходить изменение (20-0)%/(300-0)сек = 0,066%сек. Это рассчитанное "приращение" должно далее поступать в канал расчета реальных скоростей работы для насосов А и В и далее уже передаваться через ардуино самим насосам. Ну этот участок программы уже б.м. менее понятно как делать, а вот с расчетом градиента с помощью лабвью - это я как то вовсе буксую .
metrim
interested
interested
 
Posts: 5
Joined: 18 Aug 2019, 00:08
LabVIEW Version: 2018
Karma: 0

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

Postby ujin on 20 Aug 2019, 15:42

Можно еще посмотреть в библиотеке PID например PID Setpoint Profile, PID Output Rate Limiter
ujin
beginner
beginner
 
Posts: 23
Joined: 28 Jul 2019, 13:16
LabVIEW Version: 15
Karma: 4

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

Postby metrim on 20 Aug 2019, 23:55

ujin wrote:Можно еще посмотреть в библиотеке PID например PID Setpoint Profile, PID Output Rate Limiter
Да, это уже весьма похоже на то что нужно!
По трезвым азмышлениям можно таблицу ограничить десятком переключений в градиенте, очень редко нужны более сложные градиенты.
metrim
interested
interested
 
Posts: 5
Joined: 18 Aug 2019, 00:08
LabVIEW Version: 2018
Karma: 0


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

Who is online

Users browsing this forum: Google and 1 guest

cron