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

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

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

Postby Jakob Brontfeyn on 06 Sep 2018, 17:03

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

viewtopic.php?f=179&t=4673&start=45#p43928
User avatar
Jakob Brontfeyn
expert
expert
 
Posts: 1703
Joined: 28 Feb 2008, 11:01
Medals: 6
Activity (1) Gold (1) Silver (2) Black (2)
Karma: 237
VIP

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

Postby mish17 on 06 Sep 2018, 17:11

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

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

Postby mish17 on 08 Sep 2018, 18:32

Возвращаюсь к своему вопросу. В примере управление 2 насосами кнопками Пуск-Стоп(хочется, реализовать на паттерне Producer\Consumer). Каким образом добавить автоматический режим, чтобы при аварии первого включался второй и наоборот)- необходимо добавлять новые состояния у насосов? Хотя по логике у каждого насоса должны быть Остановлен, Разгон, Работа, Останов, Авария.
Attachments
ProducerConsumerEvents 1.vi.vi
(15.25 KiB) Downloaded 13 times
mish17
beginner
beginner
 
Posts: 16
Joined: 13 Aug 2018, 08:28
LabVIEW Version: 17
Karma: 0

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

Postby IvanLis on 08 Sep 2018, 20:39

mish17 wrote:Возвращаюсь к своему вопросу. В примере управление 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:
User avatar
IvanLis
professor
professor
 
Posts: 4655
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: 2010
Karma: 730
hardware VIP bloggers teachers

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

Postby mish17 on 08 Sep 2018, 20:49

Спасибо большое за разъяснение.Все оказывается намного сложнее и запутанне ,о чем не особо упоминается на семинарах про продвижению NI. Вроде бы задача очень несложная,но требует достаточно знаний по labview.
mish17
beginner
beginner
 
Posts: 16
Joined: 13 Aug 2018, 08:28
LabVIEW Version: 17
Karma: 0

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

Postby IvanLis on 08 Sep 2018, 20:57

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

Мы еще :labview: не касались, это пока только для того чтобы весь процесс работы разбить на детерминированные шаги.
У Вас например двигатель не может сразу перейти с "0" на "5000" оборотов. По этому его нужно плавно разгонять.
Есть специальные платы для управления двигателями и toolkit, с ними все свелось бы к нескольким операциям. Все расчеты и действия с движками они сами выполняют (не явно для пользователя).
https://www.ni.com/labview/softmotion/
User avatar
IvanLis
professor
professor
 
Posts: 4655
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: 2010
Karma: 730
hardware VIP bloggers teachers

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

Postby mish17 on 08 Sep 2018, 21:28

Вопрос не управлении двигателем конкретно, а в принципе построения программы на примере двигателей.вы очень точно описали,что я упрощаю и не верно понимаю модель программирования. Осмыслю Ваш ответ-попробую сделать на основе этих рекомендаций.
mish17
beginner
beginner
 
Posts: 16
Joined: 13 Aug 2018, 08:28
LabVIEW Version: 17
Karma: 0

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

Postby Borjomy_1 on 10 Sep 2018, 11:36

Уточню со своей стороны.
Обычно насосом работают с помощью не плат, но частотных преобразователей. Частотный преобразователь включает в себя процессор обработки логики управления и модели векторного управления, и силовую часть. Управление разгоном, реакция на ошибки и аварийные ситуации закладывается в частотный преобразователь. Для управления ЧП используются простые дискретные и аналоговые входы-выходы. Поэтому в модель управления закладывать разгоны-торможения не стоит. Более продвинутые ЧП дают возможность управления также по какому-нибудь стандартному интерфейсу - последовательный порт, Profibus, CAN- шина и прочее. Управление насосом - задача давно решенная и стандартное решение - именно частотный преобразователь.
Borjomy_1
expert
expert
 
Posts: 1833
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

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

Postby mish17 on 10 Sep 2018, 12:01

Да,я понимаю,что ПЧ управляется посредством аналоговых,дискретных входов и т.п. IvanLis, ответил именно о том,что я хотел услышать.о модели построения программы.Т.е.подали какое воздействие-перешел в определенное состояние.Вопрос именно в том,как д надо контролировать сигнал включения устоойства в процесе,работы и торможения,а при разгоне и останове не отслеживать.
mish17
beginner
beginner
 
Posts: 16
Joined: 13 Aug 2018, 08:28
LabVIEW Version: 17
Karma: 0

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

Postby Select on 14 Sep 2018, 23:23

Вполне решаемая задача на (ADC) шим микро контроллерах, можно и с обратной связью.
Покурите, если не лень, этот материал. Там есть очень ценное для Вас зерно.
Если будут конкретные вопросы, подскажу.
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

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

Postby Andrew Lunev on 15 Sep 2018, 13:05

Select, сколько можно бегать по старым темам и постить в них совершенно бредовые сообщения? Для чего вы это делаете? Набираете количество сообщений? Опять совершенно не по теме вопроса написали и это уже далеко не в первый раз!
User avatar
Andrew Lunev
leader
leader
 
Posts: 871
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2018
Karma: 250
hardware I/O VIP teachers

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

Postby Select on 15 Sep 2018, 16:57

Andrew Lunev?,
сколько можно бегать по старым темам и постить в них совершенно бредовые сообщения? Для чего вы это делаете? Набираете количество сообщений? Опять совершенно не по теме вопроса написали и это уже далеко не в первый раз!

Сообщение mish17 10 сен 2018, 13:01
Все что не по теме, это Ваше личное мнение...
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Previous

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

Who is online

Users browsing this forum: Google and 14 guests

cron