PDA

Просмотр полной версии : Защита от частых пусков. ПР 114.



Гризли
12.11.2015, 13:29
Здравствуйте. Начал осваивать программируемое реле ПР 114.
Возникла необходимость написать алгоритм защиты от частых пусков.

На примере включателя и лампочки.
Замкнули контакт, лампочка загорелась.
Разомкнули - выключилась.
И далее чтобы в течении, допустим, 180 с после выключения лампочки при замыкании включателя она не загоралась.

(У меня конечно 6 электродвигателей и куча всего ещё, но если подскажете, дальше сам пойму!!!)

Павел Братковский
12.11.2015, 14:19
И далее чтобы в течении, допустим, 180 с после выключения лампочки при замыкании включателя она не загоралась.

триггер со сбросом по времени....

Алексей ПМ
12.11.2015, 14:44
ставим "И": первый вход - ваш вход команды запуска, на выход (который и выход на устройство) блок ТОФ, после него НЕ, и замыкаем на второй вход И. время задержки повторного пуска - время тоф.

Гризли
12.11.2015, 18:41
ставим "И": первый вход - ваш вход команды запуска, на выход (который и выход на устройство) блок ТОФ, после него НЕ, и замыкаем на второй вход И. время задержки повторного пуска - время тоф.

Я так понял, в данном случае задежка будет прибавляться к времени простоя. Т.е. устройство отключили на 600 секунд, затем включили. И только по прошествии 180 сек оно сново запустится. А мне надо, чтобы не запускалось именно в первые 180 с после останова.

Прогнал на симуляторе, вообще не рабочий вариант(((

Гризли
12.11.2015, 18:41
триггер со сбросом по времени....

Какой функциональный элемент использовать в качестве измерения времени?

Алексей ПМ
12.11.2015, 19:02
Меняем точки отсчёта: Сажаем вход Не на выход устройства... Что проще связи переставить... Или за вас все сделать? Так в первом вопросе сами просили только подсказать.

AI!
12.11.2015, 20:01
проба пера....

PS не соответствует ТЗ, но оставлю этот тут... вдруг пригодиться...

Сергей0308
12.11.2015, 20:19
проба пера....

У меня в симуляторе почему-то сразу загорается после выключения и наверно надо что-то предусмотреть, а то рука устанет, здоровье надо беречь!

AI!
12.11.2015, 20:44
У меня в симуляторе почему-то сразу загорается после выключения и наверно надо что-то предусмотреть, а то рука устанет, здоровье надо беречь!не понял, в чём проблема.... (первый пуск возможен не раньше окончания первого "периода")
PS сделайте в BLINK время 10и10 сек, и проверяйте....

Сергей0308
12.11.2015, 20:49
не понял, в чём проблема.... (первый пуск возможен не раньше окончания первого "периода")
PS сделайте в BLINK время 10и10 сек, и проверяйте....

Да, так гораздо лучше, 10с задержка, но не с момента выключения!

AI!
12.11.2015, 20:58
Да, так гораздо лучше, 10с задержка, но не с момента выключения!Вы не торопитесь... подождите минуту, пока счётчик насчитает... и потом он разрешит сразу 5 пусков подряд
(т.к. мы целую минуту ничего не пускали(!), значит если мы за 5 сек сделаем 5 пусков - мы не нарушим условие задачи!!!)
а потом попросит подождать...

Сергей0308
12.11.2015, 21:02
Вы не торопитесь... подождите минуту, пока счётчик насчитает... и потом он разрешит сразу 5 пусков подряд
(т.к. мы целую минуту ничего не пускали(!), значит если мы за 5 сек сделаем 5 пусков - мы не нарушим условие задачи!!!)
а потом попросит подождать...

Но там же ни каких условий не ставилось, кроме задержки с момента выключения! Ладно не хочу Вам мешать!

AI!
12.11.2015, 21:19
Ладно не хочу Вам мешать!прошу прощения, действительно был невнимателен...
Надеюсь новый пример будет ближе к ТЗ описанному в первом сообщении, а не к ТЗ которое я "прочёл" из названия топика...

Гризли
12.11.2015, 21:48
Меняем точки отсчёта: Сажаем вход Не на выход устройства... Что проще связи переставить... Или за вас все сделать? Так в первом вопросе сами просили только подсказать.
Я за два дня уже многое перепробовал. Изменив лишь связи, ничего не получим.

Сергей0308
12.11.2015, 21:51
Я за два дня уже многое перепробовал. Изменив лишь связи, ничего не получим.

Вы меня не пугайте, что за 2 дня ни одна умная мысль не пришла?

Гризли
12.11.2015, 21:54
прошу прощения, действительно был невнимателен...
Надеюсь новый пример будет ближе к ТЗ описанному в первом сообщении, а не к ТЗ которое я "прочёл" из названия топика...

Браво! Всё работает и соответсвует ТЗ. Спасибо!!!!
Казалось бы, такое простое условие, я думал быстро реализую, применяя простейшие блоки. Оказалось, что не казалось!

Нашлась существенная недоработка и мое упущение в ТЗ: если во время отсчета времени контакт замкнулся и находится в замкнутом положении, то схема по прошествии отсчета должна включиться.
В Вашем примере нужно сначала выключить, потом снова включить(((

Гризли
12.11.2015, 22:00
Вы меня не пугайте, что за 2 дня ни одна умная мысль не пришла?

Вчера я впервые узнал, что такое программируемое реле и что его можно программмировать.
Если же Вы через 2 дня после знакомства с реле мастерски научились составлять всевозможные алгоритмы - я Вами восхищаюсь.

Сергей0308
12.11.2015, 22:11
Я не знаю как Вы, но я даже когда знаю как выполнить стоящую задачу, не редко стараюсь сначала посмотреть как выполняли другие подобную задачу и бывало заимствовал некоторые решения, если не находил лучше, на мой взгляд, а здесь на форуме достаточно примеров, чтобы посмотреть!

Гризли
12.11.2015, 22:45
прошу прощения, действительно был невнимателен...
Надеюсь новый пример будет ближе к ТЗ описанному в первом сообщении, а не к ТЗ которое я "прочёл" из названия топика...

Я "доработал" Вашу схему. Сейчас алгоритм таков:

Есть входной сигнал - есть выходной сигнал.
Входного сигнала нет -выходного нет.
В течении 5 сек после пропадания входного сигнала сигнал на входе игнорируется.
Если по истечении данного времени на входе сигнал не появился, то на выходе, соответственно, "О".
Если появился до истечения - то устройство после отсчета времени самостоятельно включается.
(сигнал на входе - сухой контакт, например, датчика давления, ЭКМ, уровня жидкости и т.п.)

Сергей0308
12.11.2015, 23:48
Вот Вам вариант от меня:
20791

Сергей0308
13.11.2015, 01:48
Вчера я впервые узнал, что такое программируемое реле и что его можно программмировать.
Если же Вы через 2 дня после знакомства с реле мастерски научились составлять всевозможные алгоритмы - я Вами восхищаюсь.

Вот Вы наверно не поверите, после релейных схем, столкнувшись с ПР, я будто в рай попал, здесь мозгами шевелить не обязательно, лепи как хочешь, а с релейными схемами думать надо, там 500 реле тебе никто не позволит ставить, за идиота сочтут!

Гризли
13.11.2015, 11:05
Да, Ваша схема тоже подходит под ТЗ.

Алексей Геннадьевич
26.11.2015, 18:23
Вот Вы наверно не поверите, после релейных схем, столкнувшись с ПР, я будто в рай попал,
Это таки да. Сдача станка технологам.
Технологи: ОЙ, мы забыли в ТЗ указать...а вот здесь нужно добавить промежуточный отвод...
Я: для этого придётся половину схемы переделать.
Мастер монтажного участка в истерике, сыграть такое даже сам Станиславский не сможет.

здесь мозгами шевелить не обязательно, лепи как хочешь, а с релейными схемами думать надо,

Мозгами шевелить всегда обязательно.
В ПР можно навтыкать кучу всего того, что на реле не реализуется в принципе.
Защиту на залипание пускателя, например. Или условие нажатия кнопки пуск, когда она при удержании (залипла) не создаст предпосылок к аварийной ситуации.

там 500 реле тебе никто не позволит ставить, за идиота сочтут!
Вы схем на 800-1500 реле никогда не видели? :confused:

Сергей0308
26.11.2015, 19:54
Это таки да. Сдача станка технологам.
Технологи: ОЙ, мы забыли в ТЗ указать...а вот здесь нужно добавить промежуточный отвод...
Я: для этого придётся половину схемы переделать.
Мастер монтажного участка в истерике, сыграть такое даже сам Станиславский не сможет.

Мозгами шевелить всегда обязательно.
В ПР можно навтыкать кучу всего того, что на реле не реализуется в принципе.
Защиту на залипание пускателя, например. Или условие нажатия кнопки пуск, когда она при удержании (залипла) не создаст предпосылок к аварийной ситуации.

Вы схем на 800-1500 реле никогда не видели? :confused:

Схем на 800-1500 реле не видел, просто масштабы были скромнее, а защиту от залипания кнопки пуск можно и на двух реле сделать(после нажатия и отпускания кнопки стоп пускатель не включится пока контакты кнопки пуск не разомкнёшь и вновь не замкнёшь)! Но любая дополнительная функция требует дополнительных реле(затрат), а залипания может никогда и не произойти , поэтому важен вопрос целесообразности, а на ПР всё можно сделать не задумываясь, случится такая неисправность, или нет, так как не требует дополнительного оборудования! Функционал ПР конечно намного выше и не надо задумываться об количестве используемых элементов поэтому все проще сделать!

Алексей Геннадьевич
26.11.2015, 21:16
Схем на 800-1500 реле не видел, просто масштабы были скромнее,
Отыскивать в подобных схемах сбой - ещё то занятие...


а защиту от залипания кнопки пуск можно и на двух реле сделать(после нажатия и отпускания кнопки стоп пускатель не включится пока контакты кнопки пуск не разомкнёшь и вновь не замкнёшь)! Но любая дополнительная функция требует дополнительных реле(затрат), а залипания может никогда и не произойти , поэтому важен вопрос целесообразности, а на ПР всё можно сделать не задумываясь, случится такая неисправность, или нет, так как не требует дополнительного оборудования!


В условиях серийного производства залипание произойдёт, 100%.
А вся суть доп. защит на реле - работают они до первого электроалконавта, ему-же водку пить надо на работе, а не разбираться во всех этих конструкторских изысках. + каждый доп.контакт это точка возможного сбоя.

Функционал ПР конечно намного выше и не надо задумываться об количестве используемых элементов поэтому все проще сделать!
Ну-ну.
А я-то дурак в своём ПИД-регуляторе интегратор на целочисленной логике сделал вместо логики с плавающей запятой, от нечего делать, наверное.;)

Сергей0308
26.11.2015, 22:32
Отыскивать в подобных схемах сбой - ещё то занятие...



В условиях серийного производства залипание произойдёт, 100%.
А вся суть доп. защит на реле - работают они до первого электроалконавта, ему-же водку пить надо на работе, а не разбираться во всех этих конструкторских изысках. + каждый доп.контакт это точка возможного сбоя.

Ну-ну.
А я-то дурак в своём ПИД-регуляторе интегратор на целочисленной логике сделал вместо логики с плавающей запятой, от нечего делать, наверное.;)

Во многом с Вами согласен, но насчёт существенного упрощения в случае использования целочисленной логики вместо логики с плавающей запятой для накопления интегральной составляющей, ну очень сомневаюсь!

Алексей Геннадьевич
27.11.2015, 10:27
Во многом с Вами согласен, но насчёт существенного упрощения в случае использования целочисленной логики вместо логики с плавающей запятой для накопления интегральной составляющей, ну очень сомневаюсь!
Тут не в упрощении дело, а в меньшем использовании ресурсов. Флоат в4раза больше кушает чем инт.

Aleksey Efremov
28.03.2017, 11:31
Доброго всем дня!
Разрешите продолжить тему. Ситуация такая, что есть необходимость блокировки запуска двигателя на один час. Да, через счетчик/таймер могу сделать. Но необходимо, чтобы и при выключении питания ПР (да и пульта управления в целом) это время как-то учитывалось, а не сбрасывалось в ноль или сохранялось по энергонезависимости и продолжало отсчитывать после включения. Пробовал через макрос наработки моточасов, но время сохраняется при выключении в память и продолжает отсчитывать при следующем включении. Вычитать минуты реального времени так же на получалось, т.к. минуты циклично сбрасываются. Может как-то можно через формат Unix вычислять? Кто что-то подобное изобретал поделитесь идеей.

Алексей Геннадьевич
28.03.2017, 12:05
Доброго всем дня!
Разрешите продолжить тему. Ситуация такая, что есть необходимость блокировки запуска двигателя на один час. Да, через счетчик/таймер могу сделать. Но необходимо, чтобы и при выключении питания ПР (да и пульта управления в целом) это время как-то учитывалось, а не сбрасывалось в ноль или сохранялось по энергонезависимости и продолжало отсчитывать после включения. Пробовал через макрос наработки моточасов, но время сохраняется при выключении в память и продолжает отсчитывать при следующем включении. Вычитать минуты реального времени так же на получалось, т.к. минуты циклично сбрасываются. Может как-то можно через формат Unix вычислять? Кто что-то подобное изобретал поделитесь идеей.
Тогда вам только ПР200 подходят, работать только через переменные реального времени.
Советую присмотрется к макросам http://www.owen.ru/forum/showthread.php?p=219991#post219991 http://www.owen.ru/forum/showthread.php?t=25068&page=3&p=219994#post219994
А точнее к макросу DT_TO_DW.
а дальше всё просто: запоминаете время отключения, прибавили 3600, как текущая переменная превысила это значение - разрешаете запуск.

Ревака Юрий
28.03.2017, 12:10
Доброго всем дня!
Разрешите продолжить тему. Ситуация такая, что есть необходимость блокировки запуска двигателя на один час. Да, через счетчик/таймер могу сделать. Но необходимо, чтобы и при выключении питания ПР (да и пульта управления в целом) это время как-то учитывалось, а не сбрасывалось в ноль или сохранялось по энергонезависимости и продолжало отсчитывать после включения. Пробовал через макрос наработки моточасов, но время сохраняется при выключении в память и продолжает отсчитывать при следующем включении. Вычитать минуты реального времени так же на получалось, т.к. минуты циклично сбрасываются. Может как-то можно через формат Unix вычислять? Кто что-то подобное изобретал поделитесь идеей.

Как вариант завести энергонезависимую переменную времени UNIX и после включения сравнивать текущее время в UNIX с переменной сохраненной перед выключением.

Aleksey Efremov
28.03.2017, 12:16
Тогда вам только ПР200 подходят, работать только через переменные реального времени.
Советую присмотрется к макросам http://www.owen.ru/forum/showthread.php?p=219991#post219991 http://www.owen.ru/forum/showthread.php?t=25068&page=3&p=219994#post219994
А точнее к макросу DT_TO_DW.
а дальше всё просто: запоминаете время отключения, прибавили 3600, как текущая переменная превысила это значение - разрешаете запуск.

Т.е. примерно так?
30256
А разве при включении не будет продолжать отсчитывать? Не знаю какие функции выполняются в момент включения. И как можно запомнить переменную так, чтобы она потом не менялась? Т.е. как в языке высокого уровня присвоить значение и до следующего присвоения значение это не менялось.

Aleksey Efremov
28.03.2017, 12:39
А вот еще заметил несоответствие времени перевода даты до и после.

30257

Алексей Геннадьевич
28.03.2017, 13:25
А разве при включении не будет продолжать отсчитывать? Не знаю какие функции выполняются в момент включения. И как можно запомнить переменную так, чтобы она потом не менялась? Т.е. как в языке высокого уровня присвоить значение и до следующего присвоения значение это не менялось.

Да, всё намного проще.
смотри в проге.
Описание макроса
AD_man - Управление пускателем от кнопки "пуск/стоп" с формированием аварии и разрешением работы
В свойствах макроса настроить время импульса на включение (время срабатывания пускателя) и
задержку на срабатывание при нажатии кнопки.
E - разрешение работы
Key - кнопка "пуск/стоп"
bk - блокконтакт
res - сброс аварий
Q - выход
a1 - авария при включении ( пускатель не сработал)
a2 - авария преждевременное отключение (сработала защита)

Ревака Юрий
28.03.2017, 13:49
А вот еще заметил несоответствие времени перевода даты до и после.

30257

Возможно это связано с форматом ввода Год в режиме симуляции, до некоторой версии он был в формате YYYY, потом стал YY, именно так он используется в железе.

Хотя судя по картинке, это не тот случай, надо смотреть внутрь второго макроса.

Алексей Геннадьевич
28.03.2017, 13:50
Возможно это связано с форматом ввода Год в режиме симуляции, до некоторой версии он был в формате YYYY, потом стал YY, именно так он используется в железе.
Для целей Aleksey Efremov год нафиг не нужен.

melky
28.03.2017, 13:56
Aleksey Efremov при записи года в макрос прибавьте к 17 еще 2000

Ревака Юрий
28.03.2017, 13:58
Для целей Aleksey Efremov год нафиг не нужен.

Да, но в общем макрос некорректные значения выдает, и проблема оказалась в первом макросе.

Ревака Юрий
28.03.2017, 14:01
В ближайшее время добавлю макрос UNIX->DT, в онлайн базу.

melky
28.03.2017, 14:05
Интересно, как поведут себя программы в 2038 году ? или Овен не рассчитывает, что их оборудование к этому году еще будет живо ? :)

Aleksey Efremov
28.03.2017, 14:09
Да, всё намного проще.
смотри в проге.
Описание макроса
AD_man - Управление пускателем от кнопки "пуск/стоп" с формированием аварии и разрешением работы
В свойствах макроса настроить время импульса на включение (время срабатывания пускателя) и
задержку на срабатывание при нажатии кнопки.
E - разрешение работы
Key - кнопка "пуск/стоп"
bk - блокконтакт
res - сброс аварий
Q - выход
a1 - авария при включении ( пускатель не сработал)
a2 - авария преждевременное отключение (сработала защита)

Принцип понятен, но не сохраняется при выключении питания.

Aleksey Efremov
28.03.2017, 14:11
Для целей Aleksey Efremov год нафиг не нужен.

Собственно, согласен, просто заметил несоответствие и года, и часа, и минут. Пробую сейчас сравнивать Юникс время. Проблема осталась в сохранении переменной и чтобы она не успевала перезаписываться при включении.

Ревака Юрий
28.03.2017, 14:15
Интересно, как поведут себя программы в 2038 году ? или Овен не рассчитывает, что их оборудование к этому году еще будет живо ? :)

Будем решать проблемы по мере их поступления:D

Aleksey Efremov
28.03.2017, 14:16
Aleksey Efremov при записи года в макрос прибавьте к 17 еще 2000

Да, все верно. Теперь точные значения.

petera
28.03.2017, 14:17
Да, но в общем макрос некорректные значения выдает, и проблема оказалась в первом макросе.

А моих макросах http://www.owen.ru/forum/showthread.php?t=25068&p=219996&viewfull=1#post219996 ошибок нет
30264

30265

30266

petera
28.03.2017, 14:26
Интересно, как поведут себя программы в 2038 году ? или Овен не рассчитывает, что их оборудование к этому году еще будет живо ? :)
Там же http://www.owen.ru/forum/showthread.php?t=25068&p=219991&viewfull=1#post219991

ВНИМАНИЕ.
Т.к. в ПР не поддерживается работа со знаковыми целыми числами, макрос будет корректно работать только с даты "эры Unix" - с 0 часов 1 января 1970г. Зато не будет проблемы 2038г, когда 19 января 2038 многие системы сойдут сума и время у них потечет вспять. У нас, в макросе, эра Unix закончится 5 февраля 2106г.

Ревака Юрий
28.03.2017, 14:27
А моих макросах http://www.owen.ru/forum/showthread.php?t=25068&p=219996&viewfull=1#post219996 ошибок нет
30264

30265

30266

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

melky
28.03.2017, 14:30
petera с какого перепуга ? кто-то сам утверждал, что для процессора ПР200 числа меньше 0 он воспринимает как должное отрицательное число.
эра Юних может считать от 0 часов 1970 года в оба направления и в целом там проблемы нет. Вопрос как будет считать макрос ? может он выдать время 1902 год или КУ?! ?

Проблема может возникнуть, если человек в программе привяжется ко времени.

petera
28.03.2017, 14:35
petera с какого перепуга ? кто-то сам утверждал, что для процессора ПР200 числа меньше 0 он воспринимает как должное отрицательное число.
эра Юних может считать от 0 часов 1970 года в оба направления и в целом там проблемы нет. Вопрос как будет считать макрос ? может он выдать время 1902 год или КУ?! ?

Проблема может возникнуть, если человек в программе привяжется ко времени.

Мой макрос может считать только с с 0 часов 1 января 1970г, время 1902 год он не выдаст.
Зато он правильно работает до 5 февраля 2106г.

ЗЫ

кто-то сам утверждал, что для процессора ПР200 числа меньше 0 он воспринимает как должное отрицательное число
Я утверждал, что преобразование TO_INT работает по всем правилам - преобразует отрицательное вещественное число в целое со знаком в дополнительном коде.
А любые арифметические операции с числами в дополнительном коде выполняются верно в любой комбинации - друг с другом и с целыми положительными числами
30276

melky
28.03.2017, 14:39
Понятно, будет проблема при передаче времени в ПК например, мы ему 19 января 2038 года, а ПК нам расскажет, что сейчас 1901 (или какой там в Юникс времени) год :)

Алексей Геннадьевич
28.03.2017, 15:05
Проблема осталась в сохранении переменной и чтобы она не успевала перезаписываться при включении.
Для кого программу приложил к сообщению?
Ничего там при включении не перезапишется.
Любые действия - (кроме заливки новой программы, смены времени из меню, и смены ПР ). Час после выыключения - и без разницы, отключено было ПР или нет.