Страница 1 из 1

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 08:41}
Scorp1978
Подскажите кто сталкивался, бьюсь уже 3 вечера и опускаются руки, задача следующего плана:
Есть фрамуга, есть ее концевик на закрытие. Смоделируем ситуацию когда фрамуга открыта ну пускай будет на 30% (не имеет значения вообще просто открыта) концевик соответственно разомкнут и выдает .Т., и вдруг отключают энергию и через какой то промежуток времени включают.
Что происходит у меня сейчас счетчик обнуляется, а фрамуга открыта и соответственно начинается неверный отсчет времени открытия (у меня открытие фрамуги привязано ко времени).
Что нужно мне:
перед запуском блока проверить состояние переменной "Фрамуга_нуль" (эта переменная отвечает за первый ли это запуск программы) и если она .F. (да первый запуск) то включить ПИН на котором привязано закрытие, затем отследить срабатывания концевика закрытия и перевести состояние переменной "Фрамуга_нуль" в .Т., вроде ничего сложного, но блин в железе проверяю не получается. Прикладываю картинку и проект.
Заранее благодарен всем кто откликнется.

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 08:58}
Phazz
Блок еeprom вам поможет.

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 09:01}
Cancertanly
вместо ТТтриггера используйте И .а входы в И инвертируйте как вам надо

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 09:38}
Nik108
А может проще сделать. Независимо от состояния фрамуги, после отключения всегда сначала идёт сигнал на закрытие до срабатывания концевика, а уже потом обычная работа. Ведь открытой без напряжения фрамуга может быть неограниченное время. По моему после включения лучше систему приводить в исходное состояние и уже от этого плясать.

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 10:47}
Labu559
Scorp1978, попробуйте
вместо Вашего проблемного куска вставить.Показать
Go2StartPos.flp
(115.63 КБ) 73 скачивания
Многие сталкиваются с подобными вопросами, может пригодится такое решение. Думаю, описания в проекте и в Пользовательском Блоке RetutnToStartPosition достаточно для понимания концепции (аналогичная в 4 сообщением этой темы, автор- ув. Nik108), или подобный вопрос обсуждался здесь начиная с 30-о сообщения, но... :)
Удачи!

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 10:54}
Scorp1978
Прошу прощение, что начал плодить темы, но как мне показалось отдельный вопрос отельная тема, но на будущее учту и с правилами ознакомлюсь!!!
т.е. в целом система работает нормально все открывается и закрывается при температурах указанных в переменных "Темп_возд_внут_низ" и "Темп_возд_внут_верх" делает паузы при открытиях/закрытиях "Пауза_фрамуга" и если температура не изменилась открывает/закрывает далее "Откр_фрамуга" и так пока при закрытии фрамуга не достигнет концевика, а при открытии общее время открытие (считает счетчик не достигнет ) не достигнет значения указанного в переменной "Общее время открытия фрамуги". К примеру я знаю что фрамуги открываются полность за 300 секунд, вот и считаю общее время открытие должно составить 300 секунд. Температура к примеру достигла верхнего предела ну пусть будет к примеру 27 гр. фрамуга начала движение на открытие 10 секунд затем остановилась на 60 секунд затем измерила температуру если температура не упала то двигаемся дальше еще 10 секунд и так далее пока не упадет температура или не достигнем 300 секунд общего времени открытия фрамуги. ну и при закрытии такой же принцип только там если счетчик общего времени обнулился а концевик разомкнут то программа дотягивает фрамугу до срабатывания концевика и обнуляет счетчик так сказать самоцентровка.
Это общий принцип работы, сейчас начинаю прикручивать разного рода проверки например на отключение э/энергии.
Ну вот три варианта всплыли
- EEPROM не изучал еще надо помозговать
- По поводу при включении всегда дотягивать фрамугу до концевика а потом работать. Это то же самое что я и пытаюсь сейчас сделать
- По поводу вместо ТТ триггера используйте И. Дело в том что при изменении переменной "Фрамуга_ноль" на истину перестанет поступать сигнал на элемент И который Вы предлагаете и опять изменит состояние "Фрамуга_ноль" будут короткие быстрые щелчки пробовал.

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 11:09}
Nik108
Я думаю, что вам надо поставить еще один концевик на полное открытие. Тогда совсем не важно в каком положении вы включили схему - вы будете отталкиваться только от текущей температуры и ваших её установок. Температура выше нормы - команда на снижение, ниже - на повышение. Ведь может случиться так, что при максимально открытой фрамуге у вас температура все равно не в рамках. Два концевика решат и упростят всю логику.

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 11:49}
Scorp1978
Извините друзья но так вышло что по обеи стороны концевик не поставить, это тянет за собой массу проблем не совместимых с .... материальными затратами. Очень понравился вариант вот в этом сообщении viewtopic.php?p=54352#p54352 с настройкой платы "выполнение по условию и выполнять пока" как бы провернуть условие что подавать на пин 39 высокий, пока ПИН 43 не станет низкий и если условие выполнено то проходим мимо и больше сюда не возвращаемся до перезагрузки контроллера

Отправлено спустя 16 минут 10 секунд:
Вот набросал гляньте правильно или нет. В железе пока непроверял

Помогите выстроить логику работы

Добавлено: 25.09.2018{, 13:33}
Cancertanly
Тру через ртригер сделайте

Отправлено спустя 39 секунд:
Иначе на фрамуге постоянно 1 будет

Помогите выстроить логику работы

Добавлено: 27.09.2018{, 16:40}
Scorp1978
Вот таким образом все заработало.
ТЕМА ЗАКРЫТА