Пуск-стоп двигателя

Простейшие вопросы в области инженерной разработки
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Пуск-стоп двигателя

Сообщение Jakob Brontfeyn »

Рекомендую заглянуть сюда, думаю очень может пригодиться

http://www.labviewportal.org/viewtopic. ... =45#p43928
mish17
beginner
beginner
Сообщения: 16
Зарегистрирован: 13 авг 2018, 08:28
Версия LabVIEW: 17

Re: Пуск-стоп двигателя

Сообщение mish17 »

Да,спасибо. Эту тему я прочитал-это подойдет для решения локальной задачи, но будет сложно использовать, когда потребуется задавать различные параметры с верхнего уровня.
mish17
beginner
beginner
Сообщения: 16
Зарегистрирован: 13 авг 2018, 08:28
Версия LabVIEW: 17

Re: Пуск-стоп двигателя

Сообщение mish17 »

Возвращаюсь к своему вопросу. В примере управление 2 насосами кнопками Пуск-Стоп(хочется, реализовать на паттерне Producer\Consumer). Каким образом добавить автоматический режим, чтобы при аварии первого включался второй и наоборот)- необходимо добавлять новые состояния у насосов? Хотя по логике у каждого насоса должны быть Остановлен, Разгон, Работа, Останов, Авария.
Вложения
ProducerConsumerEvents 1.vi.vi
(15.25 КБ) 77 скачиваний
Аватара пользователя
IvanLis

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

Re: Пуск-стоп двигателя

Сообщение IvanLis »

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.
И т.д. и т.п. :dance:

А уже потом начинаем программировать :rtfm: .

Вы сами осмыслите все, я не идеален, не всего знаю и это лишь мое первоначальное представление (с чего начинать, потом будет корректироваться и наращиваться), возможно у Вас будут дополнения и изменения.
Я немного отдохну, а то только с работы, устал как с... Позже постараюсь пример накидать. На самом деле не все так страшно, как кажется :wink:
mish17
beginner
beginner
Сообщения: 16
Зарегистрирован: 13 авг 2018, 08:28
Версия LabVIEW: 17

Re: Пуск-стоп двигателя

Сообщение mish17 »

Спасибо большое за разъяснение.Все оказывается намного сложнее и запутанне ,о чем не особо упоминается на семинарах про продвижению NI. Вроде бы задача очень несложная,но требует достаточно знаний по labview.
Аватара пользователя
IvanLis

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

Re: Пуск-стоп двигателя

Сообщение IvanLis »

mish17 писал(а):Спасибо большое за разъяснение.Все оказывается намного сложнее и запутанне ,о чем не особо упоминается на семинарах про продвижению NI. Вроде бы задача очень несложная,но требует достаточно знаний по labview.
Мы еще :labview: не касались, это пока только для того чтобы весь процесс работы разбить на детерминированные шаги.
У Вас например двигатель не может сразу перейти с "0" на "5000" оборотов. По этому его нужно плавно разгонять.
Есть специальные платы для управления двигателями и toolkit, с ними все свелось бы к нескольким операциям. Все расчеты и действия с движками они сами выполняют (не явно для пользователя).
https://www.ni.com/labview/softmotion/
mish17
beginner
beginner
Сообщения: 16
Зарегистрирован: 13 авг 2018, 08:28
Версия LabVIEW: 17

Re: Пуск-стоп двигателя

Сообщение mish17 »

Вопрос не управлении двигателем конкретно, а в принципе построения программы на примере двигателей.вы очень точно описали,что я упрощаю и не верно понимаю модель программирования. Осмыслю Ваш ответ-попробую сделать на основе этих рекомендаций.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Пуск-стоп двигателя

Сообщение Borjomy_1 »

Уточню со своей стороны.
Обычно насосом работают с помощью не плат, но частотных преобразователей. Частотный преобразователь включает в себя процессор обработки логики управления и модели векторного управления, и силовую часть. Управление разгоном, реакция на ошибки и аварийные ситуации закладывается в частотный преобразователь. Для управления ЧП используются простые дискретные и аналоговые входы-выходы. Поэтому в модель управления закладывать разгоны-торможения не стоит. Более продвинутые ЧП дают возможность управления также по какому-нибудь стандартному интерфейсу - последовательный порт, Profibus, CAN- шина и прочее. Управление насосом - задача давно решенная и стандартное решение - именно частотный преобразователь.
mish17
beginner
beginner
Сообщения: 16
Зарегистрирован: 13 авг 2018, 08:28
Версия LabVIEW: 17

Re: Пуск-стоп двигателя

Сообщение mish17 »

Да,я понимаю,что ПЧ управляется посредством аналоговых,дискретных входов и т.п. IvanLis, ответил именно о том,что я хотел услышать.о модели построения программы.Т.е.подали какое воздействие-перешел в определенное состояние.Вопрос именно в том,как д надо контролировать сигнал включения устоойства в процесе,работы и торможения,а при разгоне и останове не отслеживать.
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Пуск-стоп двигателя

Сообщение Select »

Вполне решаемая задача на (ADC) шим микро контроллерах, можно и с обратной связью.
Покурите, если не лень, этот материал. Там есть очень ценное для Вас зерно.
Если будут конкретные вопросы, подскажу.
LabView 14,18
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Пуск-стоп двигателя

Сообщение Andrew Lunev »

Select, сколько можно бегать по старым темам и постить в них совершенно бредовые сообщения? Для чего вы это делаете? Набираете количество сообщений? Опять совершенно не по теме вопроса написали и это уже далеко не в первый раз!
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Пуск-стоп двигателя

Сообщение Select »

Andrew Lunev?,
сколько можно бегать по старым темам и постить в них совершенно бредовые сообщения? Для чего вы это делаете? Набираете количество сообщений? Опять совершенно не по теме вопроса написали и это уже далеко не в первый раз!
Сообщение mish17 10 сен 2018, 13:01
Все что не по теме, это Ваше личное мнение...
LabView 14,18
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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