Как вариант делайте механическую защиту - питание на второе реле проводите через нормально замкнутый контакт первого реле. По сути это то же самое, что описывает вторая строка LD только на механическом уровне.
Как вариант делайте механическую защиту - питание на второе реле проводите через нормально замкнутый контакт первого реле. По сути это то же самое, что описывает вторая строка LD только на механическом уровне.
Ну не хотел он внешние реле применять, иначе зачем вся эта тема
Когда писал первые программы на LD в Кодесисе, то не мог понять почему те приемы программирования, которые я использовал в LD программах для других ПЛК в Кодесис не работают.Ну это вы имеете ввиду, в дополнительных реле помимо 2х выходных у плк?
Итого 4 полутся все равно. Это мне не хотелось бы тк, нужно их запитывать куда-то ставить и т.п. Лучше уж 4 выхода использовать в моем случае...
Оказалось, что в "правильных" ПЛК программа выполняется по столбцам.
Сначала первый сверху вниз, затем второй, затем третий ну и т.д в зависимости от марки ПЛК столбцов может быть и 5 и 7. Последним выполняется столбец с катушками. По этому изменение состояния катушек в текущем цикле будет использовано в столбцах с контактами только в следующем цикле.
А в Кодесис каждая строчка LD выполняется слева на право. И состояние катушек, измененных в строках выше текущей, сразу учитываются в текущей.
Пришлось перестраиваться. Не знаю, что лучше, но для такой же LD программы, как эта
Для "правильного" контроллера между изменениями состояния К1 и К2 всегда будет пауза в один цикл.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Позвольте не согласиться! Считаю, что ПЛК Овен как раз таки правильный и современный. Программу правильно надо выполнять именно по строкам(в частности для LD), а не по столбцам. Ну к примеру мне надо запомнить какой-то меркер(не выход ПЛК) в начале цикла, а в конце его уже сбросить. А выходы ПЛК будут сработаны в конце цикла работы ПЛК, но вначале читаются входа, выполняется программа. С выполнением по столбцам можно круто встрять. Зачем мне ждать следующего цикла, это ожидание всегда легко устроить программно, зачем тормозить весь процесс.
Вообще-то я говорил про Кодесис, и ПЛК Овен тут не причем, версия LD Кодесиса будет так работать с любым ПЛК, который его (Кодесис) поддерживает, а это не только Овен.
На счет того, что LD в Кодесисе более правильный Вы не мне говорите, я приспособлюсь к любому варианту, а расскажите это тем японцам, которые делают FX или производителям других известных брендов.
К стати скриншоты были из ПО одного такого бренда. По круче Овена будет.
И в букварях по классическим ПЛК именно такой алгоритм работы LD описывается.
Каноническое описание LD определяет последний столбец, как столбец катушек и не важно какой там элемент маркер или выход ПЛК, все столбцы левее его это столбцы с контактами.
Канонический LD имитирует работу релейно-контактной схемы. И левая вертикальная шина является потенциальной, а правая имеет нулевой потенциал.
По этому, как и в реальной схеме ток протекает от левой шины к правой сразу через все столбцы с контактами и только затем может включить катушки, а не "бегает" по строчкам, что в реальной схеме не возможно.
Использование одной и той же катушки (не ее контактов, а именно самой катушки) в разных строках является для классического LD грубой ошибкой. Т.к. действительное состояние катушки определяется в самой последней строке, где она находится.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
И это хорошо, дело в том что можно работать(прогонять программу) в режиме пошаговой отладки или по циклам. Поэтому у вас и поведение выходов физических отличается.А в Кодесис каждая строчка LD выполняется слева на право. И состояние катушек, измененных в строках выше текущей, сразу учитываются в текущей.
Правильно!Значит мы где друг друга не поняли.Но в Codesys сделано все как у всех и даже более универсально. В любом программируемом логическом контроллере(не в микроконтроллере) вначале читается образ входов, затем выполняется программа, затем только записывается образ выходов, и потом все сначала циклу.Возможно при пошаговой отладке можно войти в заблуждение(она не у всех реализована одинаково, именно визуализация отладки по шагам и по циклам),но в Codesys на LD и на FX также выполнение программы происходит не строчками, а цепями.Столбцы нужны для идентификации элемента цепи,например, цепь 001, в столбце A. Один строковый фрагмент-одна цепь, он отделен линиями. Но состояние выходов самого контроллера изменится только после выполнения программы. Японские контроллеры-все пошли от немецких. Там все также как и у всех ПЛК(не микропроцессор). В Codesys, как и у всех ПЛК, тот кто последний в конце программы изменил выход, то состояние и запишется в образ выходов, изменение состояние выхода по среди программы не вызовет его кратковременное срабатывание. Поэтому в Codesys есть опция: контроль множественной записи выхода.
Функциональнее,чем Codesys(за спиной гигантский альянс производителей) или Step-7 вряд ли что пока придумали, у японцев очень продвинутые копии и аналоги!!!К стати скриншоты были из ПО одного такого бренда. По круче Овена будет.
Последний раз редактировалось Olegis; 28.02.2013 в 17:48.
Я то Вас прекрасно понимаю, а вот Вы меня так и не поняли. Верней не поняли о чем я говорю. При чем здесь микропроцессоры/микроконтроллеры я о них не упоминал вовсе.
Цепь в редакторе представляет из себя линейное соединение контактов и катушки, по чему я не могу назвать ее строкой программы? В чем разница в данном контексте между строкой и цепью?но в Codesys на LD и на FX также выполнение программы происходит не строчками, а цепями
И говорил я вовсе не о том когда в физические выходы ПЛК будет записан результат. А совсем про другое.
То, что в начале цикла опрашиваются физические входы ПЛК и запоминается их состояние до момента начала следующего цикла и то, что только после выполнения последней цепи LD полученный образ запишется в в физические выходы ПЛК мне объяснять не надо, я и сам это знаю. Посмотрите хотя бы пост#9 в этой теме http://www.owen.ru/forum/showpost.ph...15&postcount=9.
До Кодесиса я много лет писал программы для не Овеновских ПЛК и именно на LD.
Ну может не так сформулировал, как было нужно.
Действительно каждая цепь LD выполняется слева на право и в кодесисе и в каноническом ПЛК.
Но в Кодесисе если в конце цепи стоит катушка или маркер, а в следующей за ней цепи используются контакты этой катушки или маркера, то эта цепь получается продолжением предыдущей.
Это может повторяться и для следующей и следующей цепи.
И тогда фактически вся LD программа Кодесиса является одной длинной цепью.
Тогда не надо дурить народ и в редакторе представлять их как отдельные цепи даже если они и имеют разные порядковые номера.
В LD для канонического ПЛК для контактов берутся значения входов ПЛК из входного буфера-защелки и состояние контактов маркеров и контактов катушек(не путаь с физическими выходами) полученные из предыдущего цикла.
LD для канонического ПЛК полностью имитирует работу реальной релейно-контактной схемы. Где левая вертикальная шина является потенциальной, а правая имеет нулевой потенциал.
По этому, как и в реальной схеме ток протекает от левой шины к правой сразу по всем цепям(строкам) в столбцах которых на данный момент есть замкнутые контакты и включает катушки, а не "бегает" по строчкам, что в реальной электрической схеме не возможно.
И четыре картинки с описанием работы LD для "правильного" ПЛК http://www.owen.ru/forum/showpost.ph...4&postcount=22 не являются глюком имитации, а именно так тот ПЛК и работает.
И если взять две кнопки и два реле с Н.З контактами и собрать электрическую схему, как на LD
То эта схема будет в точности повторять работу LD для канонического ПЛК, а не для Кодесиса.
И для варианта LD канонического ПЛК ситуация, когда одно реле начинает размыкаться, а втрое в этот момент начнет замыкаться не возможна по определению.
Т.е. так, как советовали здесь бороться с КЗ с помощью внешних реле
http://www.owen.ru/forum/showpost.ph...9&postcount=11
http://www.owen.ru/forum/showpost.ph...5&postcount=16
А вот для такой же LD Кодесиса ситуация, когда одно реле начинает размыкаться, а втрое в этот момент начнет замыкаться будет всегда, если не предпринять дополнительных мер.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Всё вы правильно говорите! Это все бесспорно.
И это замечательно, что так есть. Просто существуют задачи, которые без этого свойства очень геморно сделать будет (или даже невозможно), обязательна нужна одновременность и даже синхронность. А вот пропустить нужное количество циклов не проблема. Т.е. в Codesys реализована некая универсальность, это не ошибка программистов-разработчиков Codesys или не правильный LD, этого желали многие автоматизаторы для своих не тривиальных задач.
Поэтому и пишут в мануалах, что программной блокировки не достаточно, нужна обязательная взаимная блокировка, выполненная физически на релейных контактах(или даже механическая связь между пускателями), да и ключи выходные могут пробиться, тогда блокировка в программе не спасет.
Последний раз редактировалось Olegis; 01.03.2013 в 00:18.
Я с Вами согласен в том, что задачи бывают разные и в каждом конкретном случае для них возможно придется использовать разные способы их программной реализации.
И я не считаю, что LD Кодесиса хуже, чем LD канонического ПЛК.
Я же говорил, что мне все равно на каком из них писать программы.
Просто хотел показать различие в их работе для конкретной ситуации.
Давайте уже на этом придем к консенсусу.
А то наши с Вами рассуждения уже начинают выходить за рамки вопроса заданного в начале этой темы.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Всем спасибо за участие в решении проблемы!
Последний раз редактировалось alex0608; 09.06.2016 в 19:23.
Да уж, умеем мы разговоры разговариватьнаши с Вами рассуждения уже начинают выходить за рамки вопроса заданного в начале этой темы
Последний раз редактировалось Lam-Ka; 27.08.2013 в 17:20.
Что нельзя запрограммировать- приходиться паять.