Пуск-стоп двигателя
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: Пуск-стоп двигателя
Рекомендую заглянуть сюда, думаю очень может пригодиться
http://www.labviewportal.org/viewtopic. ... =45#p43928
http://www.labviewportal.org/viewtopic. ... =45#p43928
Re: Пуск-стоп двигателя
Да,спасибо. Эту тему я прочитал-это подойдет для решения локальной задачи, но будет сложно использовать, когда потребуется задавать различные параметры с верхнего уровня.
Re: Пуск-стоп двигателя
Возвращаюсь к своему вопросу. В примере управление 2 насосами кнопками Пуск-Стоп(хочется, реализовать на паттерне Producer\Consumer). Каким образом добавить автоматический режим, чтобы при аварии первого включался второй и наоборот)- необходимо добавлять новые состояния у насосов? Хотя по логике у каждого насоса должны быть Остановлен, Разгон, Работа, Останов, Авария.
- Вложения
-
- ProducerConsumerEvents 1.vi.vi
- (15.25 КБ) 78 скачиваний
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Пуск-стоп двигателя
Ну...mish17 писал(а):Возвращаюсь к своему вопросу. В примере управление 2 насосами кнопками Пуск-Стоп(хочется, реализовать на паттерне Producer\Consumer). Каким образом добавить автоматический режим, чтобы при аварии первого включался второй и наоборот)- необходимо добавлять новые состояния у насосов? Хотя по логике у каждого насоса должны быть Остановлен, Разгон, Работа, Останов, Авария.
Вы несколько упрощаете свою задачу и немного не верно понимаете данную модель программирования.
Например, по Вашей логике (классификации состояний), насос не может быть одновременно в Аварии и Останов, на самом деле это не так. Возможно Вы путаете действие (процесс - разгон, работа, торможение) и состояние (работоспособен/не работоспособен). Можно еще добавить пред аварийное состояние, например когда начинает расти температура насоса (двигателя) или потребляемый ток, т.е. он как-бы еще работает, но лучше переключиться на резерв.
Нужно четко расписать состояния, действия, команды и т.д.
Например для каждого насоса:
* состояния:
- работоспособен
- не работоспособен
- пред аварийное
* действия объекта:
- простой
- разгон
- нормальная работа
- торможение
* команды управления:
- старт
- стоп
- опрос датчиков
* события:
- старт насоса 1
- старт насоса 2
- стоп насоса 1
- стоп насоса 2
и т.д.
Продумать логику совместной работы насосов.
Могут ли они работать одновременно, например при аварии 1, начинается его торможение и сразу стартует 2. Или 1 должен дождаться, когда 2 выйдет в рабочий режим и только после этого начать торможение с плавной передачей нагрузки и без резких скачков давления.
Либо 2 стартует только после полной остановки 1.... и т.д. и т.п.
Потом разработать алгоритм работы, например
Инициализация
1.Определение текущего состояния (по идее датчиков должно быть больше)
- опрос датчика 1 насоса 1
- опрос датчика 2 насоса 1
- решение о состоянии насоса 1 (в зависимости от действия объекта)
- опрос датчика 1 насоса 2
- опрос датчика 2 насоса 2
- решение о состоянии насоса 2 (в зависимости от действия объекта)
- отображение текущего состояния (допустим для "действия"="простой" все сигналы в норме, присваивается обоим насосам "состояние"="работоспособен")
2. Ожидание (idle)
Допустим нажали кнопку запуска насоса 1, при этом генерируется событие "старт насоса 1". Совершаем над насосом 1 "действие"="разгон"
3. Разгон насоса
Для этого нужно знать оптимальные/предельные (кому как) значения скорость, ускорение, ну и для прошаренных - рывок.
В процессе разгона путем интегрирования рывка получаем ускорение, а из ускорения скорость, из скорости значение тока управления (или частоты, скважности и т.д. не знаю что у Вас), постоянно контролируя чтобы все значения не выходили за допустимые пределы.
- начальный момент I(t)=I(0)=0
- на следующем шаге (t+dt) все считаем и допустим получили I(t+dt)=0.3
- определение текущего состояния (при "действие"="разгон") и если "состояние"="работоспособен" продолжаем разгон (t+dt) иначе, например "состояние"="не работоспособен", "действие"="торможение"
И так пока не выведем его "действия объекта"="нормальная работа".
4. Нормальная работа
- вычисление управляющего воздействия для регулирования (на основании показания датчиков)
- определение текущего состояния (при "действие"="нормальная работа"). Если "состояние"="работоспособен" продолжаем "нормальная работа" иначе, например "состояние"="не работоспособен", "действие"="торможение"
5. Торможение
- аналогично разгону, только в обратную сторону
Потом уже продумывать события и логику работы, например при нажатии кнопки СТОП, мы определяем какого из насосов "действие"="разгон" или "нормальная работа" и генерируем соответствующее событие, например "стоп насоса 1". Возможно для обоих насосов. При этом для 1 насоса "состояние"="работоспособен", "действие"="торможение" и действуем по п.5.
И т.д. и т.п.
А уже потом начинаем программировать .
Вы сами осмыслите все, я не идеален, не всего знаю и это лишь мое первоначальное представление (с чего начинать, потом будет корректироваться и наращиваться), возможно у Вас будут дополнения и изменения.
Я немного отдохну, а то только с работы, устал как с... Позже постараюсь пример накидать. На самом деле не все так страшно, как кажется
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Re: Пуск-стоп двигателя
Спасибо большое за разъяснение.Все оказывается намного сложнее и запутанне ,о чем не особо упоминается на семинарах про продвижению NI. Вроде бы задача очень несложная,но требует достаточно знаний по labview.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Пуск-стоп двигателя
Мы еще не касались, это пока только для того чтобы весь процесс работы разбить на детерминированные шаги.mish17 писал(а):Спасибо большое за разъяснение.Все оказывается намного сложнее и запутанне ,о чем не особо упоминается на семинарах про продвижению NI. Вроде бы задача очень несложная,но требует достаточно знаний по labview.
У Вас например двигатель не может сразу перейти с "0" на "5000" оборотов. По этому его нужно плавно разгонять.
Есть специальные платы для управления двигателями и toolkit, с ними все свелось бы к нескольким операциям. Все расчеты и действия с движками они сами выполняют (не явно для пользователя).
https://www.ni.com/labview/softmotion/
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Re: Пуск-стоп двигателя
Вопрос не управлении двигателем конкретно, а в принципе построения программы на примере двигателей.вы очень точно описали,что я упрощаю и не верно понимаю модель программирования. Осмыслю Ваш ответ-попробую сделать на основе этих рекомендаций.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Пуск-стоп двигателя
Уточню со своей стороны.
Обычно насосом работают с помощью не плат, но частотных преобразователей. Частотный преобразователь включает в себя процессор обработки логики управления и модели векторного управления, и силовую часть. Управление разгоном, реакция на ошибки и аварийные ситуации закладывается в частотный преобразователь. Для управления ЧП используются простые дискретные и аналоговые входы-выходы. Поэтому в модель управления закладывать разгоны-торможения не стоит. Более продвинутые ЧП дают возможность управления также по какому-нибудь стандартному интерфейсу - последовательный порт, Profibus, CAN- шина и прочее. Управление насосом - задача давно решенная и стандартное решение - именно частотный преобразователь.
Обычно насосом работают с помощью не плат, но частотных преобразователей. Частотный преобразователь включает в себя процессор обработки логики управления и модели векторного управления, и силовую часть. Управление разгоном, реакция на ошибки и аварийные ситуации закладывается в частотный преобразователь. Для управления ЧП используются простые дискретные и аналоговые входы-выходы. Поэтому в модель управления закладывать разгоны-торможения не стоит. Более продвинутые ЧП дают возможность управления также по какому-нибудь стандартному интерфейсу - последовательный порт, Profibus, CAN- шина и прочее. Управление насосом - задача давно решенная и стандартное решение - именно частотный преобразователь.
Re: Пуск-стоп двигателя
Да,я понимаю,что ПЧ управляется посредством аналоговых,дискретных входов и т.п. IvanLis, ответил именно о том,что я хотел услышать.о модели построения программы.Т.е.подали какое воздействие-перешел в определенное состояние.Вопрос именно в том,как д надо контролировать сигнал включения устоойства в процесе,работы и торможения,а при разгоне и останове не отслеживать.
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Пуск-стоп двигателя
Вполне решаемая задача на (ADC) шим микро контроллерах, можно и с обратной связью.
Покурите, если не лень, этот материал. Там есть очень ценное для Вас зерно.
Если будут конкретные вопросы, подскажу.
Покурите, если не лень, этот материал. Там есть очень ценное для Вас зерно.
Если будут конкретные вопросы, подскажу.
LabView 14,18
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Пуск-стоп двигателя
Select, сколько можно бегать по старым темам и постить в них совершенно бредовые сообщения? Для чего вы это делаете? Набираете количество сообщений? Опять совершенно не по теме вопроса написали и это уже далеко не в первый раз!
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Пуск-стоп двигателя
Andrew Lunev?,
Все что не по теме, это Ваше личное мнение...
Сообщение mish17 10 сен 2018, 13:01сколько можно бегать по старым темам и постить в них совершенно бредовые сообщения? Для чего вы это делаете? Набираете количество сообщений? Опять совершенно не по теме вопроса написали и это уже далеко не в первый раз!
Все что не по теме, это Ваше личное мнение...
LabView 14,18
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 7 Ответы
- 681 Просмотры
-
Последнее сообщение IvanLis