PDA

Просмотр полной версии : Определение положения шибира\задвижки без датчика реализация в Codesys 2.3



nensist
05.01.2018, 02:20
Прошу помощи решить одну задачку, может кому приходилось
Имеем привод для шибера печи
34926
На приводе имеется рейка которая двигается вперед/назад в зависимости от сигнала управления (дискретного)
Концевики привода отключают мотор привода даже если сигнал управления присутствует (выполняют только защитную функцию)
Ранее на печи все управление было собрано на печатных платах (производитель Германия)
Там имелась функция управлением положения шибера на открытие и закрытие в процентах. Тоесть с панели возможно было задать 10, 20, 30 и.тд до 100% и привод соответственно открывался на заданное значение.
Никакого датчика положения на приводе нет. С концевиков о крайних положениях информация тоже не присутствует
Колодка подключения данного привода имеет 5 проводов
Питание 24V +/-
Управление вперед/назад
Ну и земля
Я так полагаю что управление данным приводом на заданное значение, осуществлялось путем подсчета времени. Но как это реализовать в кдс пока не могу понять. Если у кого то есть какие то мысли прошу поделится
Суть переделки: Все платы повыгорали, делаем реконструкцию на ПЛК ОВЕН
Ну и напоследок видео работы привода (снимал вроде правильно почему мобилка перевернула не знаю)

https://youtu.be/llex1dXjCUI

Ryzhij
05.01.2018, 08:07
Без информации с датчика (датчиков) положения шибера, необязательно в составе привода, задача уверенного позиционирования шибера во многих точках с помощью только одного привода неразрешима.
Вы уверены, что назначенние 5-го проводника "земля"?
Для приводов с питанием от столь низкого напряжения защитное заземление не требуется,

Eugene.A
05.01.2018, 09:59
Без информации с датчика (датчиков) положения шибера, необязательно в составе привода, задача уверенного позиционирования шибера во многих точках с помощью только одного привода неразрешима.
Вы уверены, что назначенние 5-го проводника "земля"?
Для приводов с питанием от столь низкого напряжения защитное заземление не требуется,

В принципе - разрешима. Если электродвигатель привода синхронный, и отсчёт тактов счетчиком производится от той же частоты, что и питание двигателя, то счётчик тактов выдаст значение, соответствующее положению привода. Только при каждом включении питания привод должен позиционироваться в начальное положение для сброса счётчика.
Попадалось такое решение в приводе механизма видеомагнитофона, без так называемой программной шестерни, т.е. датчика положения.

Ryzhij
05.01.2018, 10:48
В принципе - разрешима. Если электродвигатель привода синхронный, и отсчёт тактов счетчиком производится от той же частоты, что и питание двигателя, то счётчик тактов выдаст значение, соответствующее положению привода. Только при каждом включении питания привод должен позиционироваться в начальное положение для сброса счётчика.
Попадалось такое решение в приводе механизма видеомагнитофона, без так называемой программной шестерни, т.е. датчика положения.Вы полагаете, что на видео продемонстрировано управление шаговым двигателем актуатора?!
Что-то я сомневаюсь...

Eugene.A
05.01.2018, 11:05
Да я вообще не смотрел видео. Я лишь припомнил о способе контроля положения электропривода, с которым встречался на практике.
Кстати, попадалась и разновидность с двигателем постоянного тока, но у него на валу был оптический датчик импульсов - крыльчатка с оптопарой.

nensist
05.01.2018, 11:11
В этом приводе обычный моторчик на 24V. На моторчике шестерня ктторая двигает зубчатую рейку. Также есть реле которое меняет полярность на двигатель, чтоб он крутился вперед/назад.
По поводу заземления - это заземление и не больше.
На видео у меня в руках кнопка с NO и NC контактом.
На привод на подано 24V (+/-) Далее у привода есть 2 контакта на управление, на эти контакты через кнопку подаю минус 24V поочередно, соответственно рейка катается туда/сюда. Концевики отсекают мотор в крайних положениях рейки, чтоб далеко не уехала.

Ryzhij
05.01.2018, 11:45
Тут такое дело, для позиционировния привода по принципу подачи импульсов различной длительности надо знать, как минимум, время полного хода вперёд и время хода назад.
Это исходя из гипотезы равномерного хода.
Так вот, для измерения этих величин требуется хотя бы наличие сигналов крайнего положения. Дело в том, что привод с двигателем постоянного тока может изменять свою скорость под действием многих внешних факторов и время полного хода надо бы периодически измерять.
А если по технологии д.б. какая-то блокировка или индикация в зависимости от готовности шибера по положению, то, тем более, без датчиков не обойтись.

nensist
05.01.2018, 11:59
Тут такое дело, для позиционировния привода по принципу подачи импульсов различной длительности надо знать, как минимум, время полного хода вперёд и время хода назад.
Это исходя из гипотезы равномерного хода.
Так вот, для измерения этих величин требуется хотя бы наличие сигналов крайнего положения. Дело в том, что привод с двигателем постоянного тока может изменять свою скорость под действием многих внешних факторов и время полного хода надо бы периодически измерять.
А если по технологии д.б. какая-то блокировка или индикация в зависимости от готовности шибера по положению, то, тем более, без датчиков не обойтись.

В том то и дело что у привода кроме питания и управления ничего нет. Даже сигнализации о крайних положениях. Проверили на аналогичной печи которая сейчас работает еще на родной системе управления. Также перепроверили эл. схемы в документации на печь, ничего нет. Все управление позиционированием было реализовано программно. Вопрос только как? У ОВЕНА вроде есть прибор для управления задвижками без датчиков, видимо там тоже путем измерения времени решается данная задача.

Eugene.A
05.01.2018, 13:57
А что регулирует ваш шибер? Приводы без датчика положения управляются ПИД-регуляторами по конечному параметру - давлению, температуре, уровню жидкости и т.п. На вход регулятора подключается соответствующий датчик. А уж при каком положении исполнительного механизма достигается заданная величина параметра - регулятору пофиг. И индицируется в таком случае не положение шибера, а фактическая величина регулируемого параметра.

nensist
05.01.2018, 14:50
А что регулирует ваш шибер? Приводы без датчика положения управляются ПИД-регуляторами по конечному параметру - давлению, температуре, уровню жидкости и т.п. На вход регулятора подключается соответствующий датчик. А уж при каком положении исполнительного механизма достигается заданная величина параметра - регулятору пофиг. И индицируется в таком случае не положение шибера, а фактическая величина регулируемого параметра.

Тут дело такое! Шибер вобще ничего не регулирует) В технологическую программму на стадии выпечки определенного продукта заносятся данные в какое время он должен быть открыт на определленное значение и когда должен быть закрыт. Ни температурой ни давлением он не управляет. Он просто перераспределяет поток воздуха в камере. Карты у технологов имеются. Нам надо главное заставить шибер открываться и закрываться с позиционированием.

nensist
05.01.2018, 15:14
На родной системе управления при переводе ее в ручной режим можно управлять шибером путем задания открытия в %. Нет возможности пока это показать на печи с родной системой т.к на объекте буду не ранше 15 числа. Пока пишем основную программу.

petera
05.01.2018, 15:16
Я так полагаю что управление данным приводом на заданное значение, осуществлялось путем подсчета времени. Но как это реализовать в кдс пока не могу понять. Если у кого то есть какие то мысли прошу поделится

Попробуйте "виртуальную" задвижку http://www.owen.ru/forum/showthread.php?t=24626&p=212048&viewfull=1#post212048
34933
сделана "по мотивам" VALVE_3_POS из библиотеки PID_Regulators.lib

Параметры
34931

34932

nensist
05.01.2018, 15:24
Попробуйте "виртуальную" задвижку http://www.owen.ru/forum/showthread.php?t=24626&p=212048&viewfull=1#post212048
34933
сделана "по мотивам" VALVE_3_POS из библиотеки PID_Regulators.lib

Параметры
34931

34932

Спасибо обязательно посмотрим. Одного понять не могу, зачем немц так все усложняют, неужели нельзя было использовать привод с датчиком положения

ASo
05.01.2018, 15:39
Он банально удешевил.
Для примера сравните стоимость приводов с 3-х позиционным управлением и с аналоговым управлением одного типа.

nensist
05.01.2018, 17:23
Он банально удешевил.
Для примера сравните стоимость приводов с 3-х позиционным управлением и с аналоговым управлением одного типа.

Удешевить привод, но потом извращятся с написанием алгоритма позиционирования данного привода. Думаю при стоимости печи в несколько десятков тысяч евро удорожание привода особой роли бы не сыграло

Сергей0308
05.01.2018, 18:49
Если это особой роли не сыграет, в плане удорожания, поставьте что-то типа этого и больше не заморачивайтесь:
http://www.sensor-systems.ru/product_190.html
Или типа такой, дискретный:
https://teko-com.ru/katalog/induktivnye-datchiki/podbor-induktivnih-datchikov-po-parametram/isb-a11b-31n-1-5-l.html
Чтобы зубья шестерёнки считать!

nensist
05.01.2018, 21:17
Если это особой роли не сыграет, в плане удорожания, поставьте что-то типа этого и больше не заморачивайтесь:
http://www.sensor-systems.ru/product_190.html

Эту печь будем делать уже без добавления каких либо датчиков положения. Посмотрим что из этого выйдет. Как говорится договор заключен цена определена, сами упустили этот момент. На следующих печах возможно немного модернизируем привод

nensist
05.01.2018, 21:22
Немного фото из чего состоит привод.
34939
34940
34941
34942
34943
34944

murdemon
06.01.2018, 01:29
Можно по току смотреть.. если двигаем вперед и ток не течет , то сработал датчик вперёд. И так же назад. А от этих датчиков корректировать время полного хода назад и вперед и 0 и 100 позиции.

nensist
06.01.2018, 01:42
Можно по току смотреть.. если двигаем вперед и ток не течет , то сработал датчик вперёд. И так же назад. А от этих датчиков корректировать время полного хода назад и вперед и 0 и 100 позиции.

Тогда надо ток чем то мерить. На данный момент нечем и в данной реализации уже не придвидется

murdemon
06.01.2018, 01:47
Через шунтик(резистор) на цифровой вход и все.

nensist
06.01.2018, 01:52
Через шунтик(резистор) на цифровой вход и все.

Можно более подробнее. Какой резистор, и как подбирать?

murdemon
06.01.2018, 13:01
Надо схему вашего привода и сопротивление обмотки двигателя и реле.

nensist
06.01.2018, 13:34
Надо схему вашего привода и сопротивление обмотки двигателя и реле.

Попробуем пока реализовать в виде виртуальной задвижки. Если что будем думать насчет резисторов

dim1987
06.01.2018, 14:23
подскажите как сформировать сигнал на вход in_val?
На данный момент реализовано без датчика положения, и неизвестно какое либо положение клапана. Забрел на эту тему и руки зачесались.
IF t_kanala>2 THEN klapan_otk:=0; klapan_zak:=1;
ELSIF t_kanala<1 THEN klapan_otk:=1; klapan_zak:=0;
ELSE klapan_otk:=0; klapan_zak:=0;
END_IF;

nensist
09.01.2018, 00:38
Поигрался с приводом с применением ФБ который предложил petera. В моем случае данной точности в принципе хватит. Привод немного дает разбег при продолжительной прогонке.
Единственное что не понял, для чего ФБ имеет вход SYNC типа BOOL. Как им пользоваться?
На видео то что получилось

https://youtu.be/6M3duPpQiC0

dim1987
09.01.2018, 04:58
SYNC устраняет разбег который образуется, для этого нужен сигнал с концевика, поправьте меня если не прав. Вот такая схема регулировния температуры в канале будет работать? 34996

petera
09.01.2018, 05:59
SYNC устраняет разбег который образуется, для этого нужен сигнал с концевика, поправьте меня если не прав. Вот такая схема регулировния температуры в канале будет работать? 34996

Если Вам не нужен вход SYNC, то и не используйте его.

При SYNC:=TRUE значение положения виртуальной задвижки(POS) приравнивается значению на входе IN_VAL.
По этому не факт, что в Вашем случае при срабатывании концевика в это время на выходе PID будет 0

такая схема регулировния температуры в канале будет работать и без предложных "примочек"
С этими "примочками" может даже усугубится неизбежный разбег виртуального и реального положения привода.
Для устранения разбега предусмотрены импульсы доводки, которые вырабатываются при крайних положениях виртуальной задвижки. Период импульсов равен imp_dov_off, длительность равна 1с. Если сделать imp_dov_off:=0, импульсы доводки вырабатываться не будут.

Чем точнее задано значение полного хода реального привод FullMotionTime, тем меньше будет разбег.