вот ,изменил .
Вид для печати
вот ,изменил .
завтра добавим \АВАРИИ\ и усе ,почти ,потом оформим ввиде 2-3 макросов
ОК, я сегодня тоже не могу долго сидеть.
Спасибо!
Пробую разобраться с полученным подарком.
Вот практичкеский пример: а как уважаемый коллега rovki собирается добавить выход АВАРИЯ?
Втыкаю в схему. В голову приходит выражение примерно такого плана:
АВАРИЯ = Выход TON (5сек), на вход которого приходит: (~Q1) & (~Q2) & (была начата подача, но еще не было дозы)
(знак ~ использую для инверсии)
Ищу это выражение "была начата подача, но еще не было дозы". В схеме всего 3 триггера, которые хранят то, что можно назвать остатками моих фаз: RS1, RS2, RS3. На искомую роль легко идет именно RS1 - он взводится в начале подачи и падает при получении Уставки2.
Значит ли это, что вот берем схему И на 3 входа:
~Q1
~Q1
RS1.Q
подаем с нее на вход 5-секундного TON - а его выход на АВАРИЮ - и всьо?
Попробую проверить, если меня редактор не выведет из себя :)
ДОБАВЛЕНО: Я в шоке... Работает! Удивительно. Самое смешное, что с редактором не проблема, я просто таскал связи, которые мне были нужны, не обращая внимания на красоту полученного рисунка. То есть, добавление всего, что я описал, заняло... ну, две минуты, если не меньше (сначала забыл об инверсиях). То есть - удобство на высоте.
Но. Но как же в этой каше разбираться потом?
Вспоминаю, что коллега rovki говорил о переработке схемы, разбиении на макросы или что там еще... Только это может спасти кашу. Иначе это шаманство.
держите на макросах .Разбираться нужно по функционально законченным блокам (макросам) .Да и что потом разбираться то ,если меняется логика ,то вносим изменения в макрос или делаем новый .Тоны и Тофы специально вынес за макросы ,но можно и внутрь засунуть.
В ОЛ совсем другой подход к программированию ,чем на ST .Запоминаем события на триггерах(если события могут быть кратковременные) ,используем логику ,таймеры ,,,ну и все для данного ,простейшего проекта.
Ну а дальше сами... будут вопросы ,обращайтесь ....
Шикарно!
Спасибо огромное!
Я понимаю, что нужно много научиться, чтобы самому синтезировать такие схемы. Ибо вот этот магический момент, от обсуждения ТЗ до появления первого варианта, остался для меня загадкой. Ну, ничьо, разберемси.
В ходе игр с последним вариантом увидел, что снятие сигнала РАЗРЕШЕНИЕ РАЗГРУЗКИ во время самой разгрузки приводит к закрытию днища. Так не должно быть. Если уж в момент анализа этого разрешения мы получили "добро", то дальше нам по барабасику, ибо разгрузку не остановишь.
Будем считать, что это мое домашнее задание :)
Хорошего выходного!
P.S. Другие варианты реализации мне тоже интересны, есличьо...
ставим триггерочик ,который взводится по фронту разрешения ,а сбрасываем в конце цикла .....Можно засунуть внутрь макроса ,а можно поставить снаружи .
Да уж пообсуждали на 9 листах ,,,на схему саму затратил около часа (с переделками)
Уважаемые коллеги,
Я действительно глубоко благодарен Вам, ососбенно коллеге rovki, за введение в мир программирования ПР. Во-первых, я понял (кажется), как принято составлять ТЗ для любителей классического FBD. Действительно, все не так, как я привык.
Во-вторых, взяв щедрый дар от нашего уважаемого пропагандиста ПР, я изучил проект, понял, как это выглядит и как работают макросы. Я даже начал править проект, вполне успешно.
Но остались 2 "но".
1) Асболютно непонятно, как это создать. Да, с шаблона коллеги rovki можно и слепить что-то. Но КАК он это получил... У меня нет столько мозгов.
2) Отладка такого проекта для меня очень сложна. И дело не только в малом опыте, он у меня все же не нулевой. Принципиально дело в том, что вы строите все на логических выражениях, если нужно, поддержаных элементами памяти (триггеры) и задержек. Угадать, в какой точке нашего процесса (циклического) внезапно (или "запно") сработает то или иное условие - сложно. Ососбенно, когда что-то изменил, а оно вдруг выскочит совершенно неожиданно в другом месте...
Вот поэтому, имея уже неплохо работающий проект имени rovki, я сегодня с утреца все сделал так, как и собирался. Слава Богу, вы меня уже немного научили, за что еще раз спасибо.
Проект прилагаю. Конечно, в ходе разработки и отладки (завтра покупаю железо, будем отлаживать нипадецки) я кое-что изменил и в ТЗ. Но не существенное.
where the project is :cool:
Требуется не много мозгов ,а по другому устроенные .Есть искусство программирования и есть искусство схемотехники .
Что бы повернуть мозги нужно решить десяток простеньких задач (проектов) .После того как повернете начнется процесс самосовершенства ;) бесконечный
Если вы поняли как составлять (подробное) ТЗ для ПРки(ОЛ) ,то это уже пол дела .Как слышим (читаем ТЗ) ,так и пишем (рисуем) проект .Естественно используем нужные ФБ и макросы .Например бегущая единица -используем нужные ФБ или макросы (соответствующие) .....
Если необходимо выявить(зафиксировать) во времени какое то состояние(событие) ,то используем триггер (флаг) ,которые не забываем сбрасывать в нужное время ....