А если это крышка ракетной шахты ;):p.Скачайте уж овен лоджик 1.7 вета 51 .Ларчик и откроется
Вид для печати
А если это крышка ракетной шахты ;):p.Скачайте уж овен лоджик 1.7 вета 51 .Ларчик и откроется
Добавил. На входе в макрос вроде теперь правильное время отображается. Но внутри макроса при вычитании 1000 мс тоже такое же число(4294..и т.д...) получается, и не включается выход. А что с этим делать - не понимаю. Честно говоря, я в логике работы этого макроса не смог настолько разобраться, чтобы его починить :)
Попробовал, понял в чем проблема. У Вас в макросе весь отсчет времени запускается в полночь по часам реального времени, и от этого импульса запуска начинает крутиться вся логика. А я в ТЗ писал
что при кратковременном пропадании напряжения не должно происходить сбоев в работе, то есть непредсказуемых отключений(или невключений) нагрузки. Здесь же отсчет времени до включения нагрузки происходит после того, как в полночь перезапустится логика. И если например не было питания у ПР-ки в этот момент, то сутки ничего работать не будет.
Тогда делаем так -раз в Пр нет возможности работать с часами(считывать время),но у вас есть мастер (скада) ,тогда задача мастера посылать уставку времени включения и текущее значение времени (часы,минуты) ,взятые или из ПР (часы реального времени) или из самой скады .ПР выполняет лишь анализ значений этих времен и выдает команду на включение .Тогда и ПР110 пойдет (8\4 -Ч).
Где-то я писал, что СКАДА не будет подключена постоянно. Сейчас посмотрел - есть только упоминание о энергонезависимости уставок, полученных из СКАДЫ. Ну да ладно, в любом случае спасибо за варианты и потраченное на мою задачу время, попробую сам что-то придумать, и выложу, как будет готово. Начну с простого, а+18 попробую реализовать с привязкой к часам ПР-ки. А дальше видно будет. ПР-ка должна быть 114-я, потому что есть пара датчиков аналоговых 4-20 мА там же.
Видел где-то в теме макрос часов реального времени, попробую исходя из него сделать включалку-выключалку с внешними уставками.
Очень неудобно, что встроенный таймер реального времени не имеет функции смены уставки по сети или из переменной.
P.S. Мне точность до секунд не нужна, минуты и часы только.
Делал макрос ,только не могу найти ,где привязка к часам реального времени была 1минута ,а не 24часа .Вам такой наверно нужно
Нашел вроде бы. Вот эти?
Если вы настаиваете ,то вам вариант :rolleyes:
А вот вам вариант а18 и в12 ,только пока без переходного процесса .:eek:
Постараюсь завтра посмотреть, сегодня уже времени не будет, к сожалению. Спасибо!
А завтра у меня не будет .Делов то, просто включить симулятор и задать несколько уставок часов .Часы будут тикать и за несколько минут пройдет день ....
Ну вот ,как всегда -только раскочегаришь мозг ....
Не утерпел и глянул. 18 - работает! Ура! Но пока не гонял в симуляции долго, просто поиграл уставками и текущим временем. А вот "18 и 12" не проверил, а только глянул, и там два одинаковых макроса с настройками 24-18-6 часов внутри, так что скорее всего просто с ошибкой проект, не тот второй макрос. Но это поправвимо, я сам завтра попробую его на 12 часов переделать.
P.S. Я бы и рад может засесть за ОЛ на полсуток, но физически сейчас нет на это времени, к сожалению. Заглядывать еще буду в течение часа, а потом только после 23-00 опять на пару часов могу заглянуть. Если Вы будете еще на сайте, то может что-то и получится доработать.
макросы одинаковые ,а уставки внутри их разные .Нажмите на макрос и посмотрите свойства макросов и увидите 18-24-6 и 12-24-12
При смене уставок в одном макросе, меняется уставка и в другом. Видимо, нужно его переименовать и пересохранить. Или в обоих 18-24-6, или 12-24-12
Вы внутрь макроса не смотрите .в проекте(схеме) наводите на макрос мышь и смотрите (задаете) в свойствах значения .И все....
А, попробую, спасибо!
Сема управления задвижкой в режимах "ручной -автомат" на нагнетании турбокомпрессора.
Применено реле ПР110-220 8д4р
схема управдления
Спасибо за пример ,еще бы немного текста (описание) -цены бы не было .:D
Эта схема работает на турбокомпрессорах .
Алгоритм работы не сложен.Ручное управление как и все привода задвижек,в режиме автоматика задержка открытия на 2 минуты после включения масляного выключателя и подачи возбуждения на двигатель.
В ручном режиме :
ключ выбора режима в положение "Р", вход I1-ручное управление,I3-кнопка "Открыть",элемент"И","ИЛИ" ,"RS"триггер.
Вход I5 -концевой выключатель на открытие,контакты в положении НЗ,I6-концевой выключатель на закрытие,контакты в положении НО,
кратковременно нажимаем на кнопку "Открыть",вход I3,импульс на вход S триггера включает выход Q1,привод идет на открытие до срабатывания концевого выключателя.
Аналогично работает цепочка на закрытие.
В режиме автоматика:
ключ выбора в положенте "А"вход I7 через блок "TON "задержка импульса на включение на 1 сек.,устранение дребезга контактов реле в возбудителе,блок формирования импульса на открытие-RTRIG1-TN1-TON1-вход S триггераRS1,далее как в ручном режиме.
Закрытие:
вход I7 -размыкается контакт реле возбудителя,задержка ипульса на закрытие 10сек,формирование импульса на закрытие-FTRIG1-TN2-TON2,
на вход S триггера RS2/
Блок BLINK1 генерирует импульс с интервалом 1 сек. для индикации хода привода.
Да, погонял, немного причесал(заменил связи на переменные) для удобочитаемости и последующего заполнения проекта. Все работает. Сижу вот, делаю(пытаюсь) блок проверки нахождения уставки Б в интервале от А до А+6. Только чур, не выкладывайте свой вариант, пока я свой не сделаю, а то мне неинтересно будет готовое пользовать :D Мне полезнее будет сначала самому поковыряться там, где я уже что-то понимаю.
Так в предыдущих вариантах у меня был макрос сравнения времени ,вот его и возьмем
правда одного недостаточно ,он будет правильно от 0 до6 часов (уставки)
думаю проще не делать анализ А+6 ,а просто от появления сигнала на выходе А+18 запустит ТР на 6 часов .Пока он есть -можно запускать переходной процесс ,а если нет, то переходим на В12
Р,С, не заметил пожелание ,пока заторможу ...А вы не открывайте :D
А если сбой питания? Нам нужно только от энергонезависимых уставок плясать, больше никак не годится. Вот пропало на минутку питание, и перезапустился таймер этот 6-часовой. А например в это время вредители, маскирующиеся под сотрудников, ввели неверную уставку Б12, которая не словилась. И как с этим бороться? Человеческий фактор должен обязательно учитываться, без "защиты от дурака" - никак :D
Сделал проверку правильности уставок режима Б+12. Проверяется, лежит ли значение Б в пределах от А до А+6, при этом корректно обрабатывается любое время суток, хотя от 18-00 до 0-00 пришлось немного помудрить. Если время корректное, на выходе Q3 появляется "1"
Анатолий Геннадиевич, проверяйте "самостоятельную работу" очередного студента :)
И дальше, немного размышлений на тему реализации 12-дневного алгоритма. Если где-то ошибаюсь, поправьте.
Включение выносим на отдельный вход, и записываем дату включения в отдельную энергонезависимую переменную, чтобы считать от нее непосредственно. Тогда при любых сбоях по питанию никаких ошибочных не будет подсчетов. Только наверное нужно для правильного учета циклов вкл/выкл записывать в эту переменную дату и время, когда нагрузка выключена. Чтобы со следующего цикла шел отсчет.
На повторные нажатия/переключения кнопки "переход с А на Б" не реагируем, иначе все тот же человеческий фактор подействовать может. А вот переход обратный с Б на А и сброс даты перехода будет с отдельного входа, отдельной кнопкой, которую случайно нажать невозможно будет.
Я писал в ТЗ, и даже пытался что-то изобразить типа графика.Всегда время работы режима Б....Б+12 должно лежать внутри временнОго промежутка от А до А+18, то есть Б не должно быть раньше А, и не должно быть позже А+6Цитата:
...проверяется значение второй уставки точного времени(Б), и если она лежит в пределах от (А) до (А+6:00), она обрабатывается дальше. (Если не лежит в этих пределах, формируется сигнал "некорректный ввод уставки Б")
Посмотрю Ваш вариант, отпишу. Мой-то как? Для первой попытки? :)
Посмотрел. Работает некорректно. При уставке А=0 , Б=5, и последующей смене уставок на Б=7, не происходит изменения уровня на выходе Q4, то есть не ловит он смену уставки на некорректную.
Так я лишь сделал выявление окна А....А+6.Все остальное Ваше ;)
Состояние выходов 3(с моего варианта) и 4(с Вашего) неодинаковое при разных уставках, попробуйте сами покрутить. А если бы алгоритм совпадал, они бы синхронно переключались, потому что мой выход 3 дает "1" при "допустимой по ТЗ уставке Б относительно уставки А"
P.S. Или это тот самый вариант, который некорректно работает от 18:00 до 0:00? Но тогда он должен правильно ловить в начале суток, а у него не меняется состояние выхода. Если А=0, при Б<6 и при Б>6 выход должен переключаться, или я что-то неправильно понимаю?
То что не одинаковы выходы 3 и4 я видел ..Я ж говорю ,что на "В" я вообще не смотрю ,я просто сформировал сигнал отА до А+6 ,и все.Я просто задал у макроса 6-24-18 , а у первого 18-24-6 ,входы у них общие .Тоесть они всегда включаются в одно время ,только первый работает 18часов ,а второй 6часов .......
Ваше задание навеяло меня на создание ИНТЕРВАЛЬНОГО ТАЙМЕРА с возможностью задания времени включения и выключения и контролем текущего времени ,по аналогии с ФБ CLOCK ,с той лишь разницей что теперь можно читать и писать значения в таймер .Макрос построен на логике ,поэтому сохраняет свою работу при сбоях в питании ,потому как использует встроенные часы реального времени.
Тогда можно сделать цикл А18 на этом таймере
А можно и два режима (без переходного ) ,с анализом уставки "В"
Сделал универсальный макрос проверки, лежит ли интервал времени B внутри интервала времени A, с произвольным реальным временем включения и произвольной длительностью интервала в пределах суток. Может, можно было и изящнее выполнить, но это фактически первые опыты в Овен Лоджике, неделю назад только начал что-то пробовать, так что больно не пинайте, если накосячил :)
P.S. Не стал внутри делать проверку корректности ввода, макрос считает правильно если часы вводятся в формате 0-23, а минуты 0-59. Можно внешнюю прикрутить, при необходимости.
P.P.S. Заменил макрос на рабочий
Не работает правильно при А =9 и В=10.
Упс... Пойду дальше думать :)