Тогда это косяк в программе. Если не задумано щёлкать этим реле, то оно и не должно так делать. Возможно где то надо поменять местами строки. Может ещё что. Возможно в ОЛ это связано с фишкой обратной связи с задержкой на цикл, чего в кодесисе нет.
Вид для печати
Тогда это косяк в программе. Если не задумано щёлкать этим реле, то оно и не должно так делать. Возможно где то надо поменять местами строки. Может ещё что. Возможно в ОЛ это связано с фишкой обратной связи с задержкой на цикл, чего в кодесисе нет.
1exan Такс... Пишу мысли:
1. Так как мне ща надо сдать проект, то я всё же перепишу на FBD простой блок управления и заставлю его работать.
2. Потом установлю свежий OWL в отдельную папку и буду разбираться.
3. Ага. У меня первой была мысль про разное время цикла. Но...:
а) В ПЛК эти задачи вообще вызываются раз в 100 мсек
б) В одном из проектов ПЛК вообще очень нагружен: загрузка процессора 80%.
И ни фига - работает нормально. Так что грешу на вычисления.
4. После опытов выложу сюда всё. И Максу Денисову напишу
МихаилГл Нейросеть, спасибо. Конечно, если не должно щёлкать, то не должно щёлкать.
В общем, у меня мистика. В другом FB, который отлично работал на заказе в CodeSys 2.3 ПОЧЕМУ-ТО пришлось заменить F_TRIG на R_TRIG, и он заработал ВДРУГ в Owen Logic. Я НЕ понимаю, почему так. Чувствую себя сыном Индуса и Туземца, который перепутал камень с айфоном, что-то там нажал и оно вдруг заработало.
Прям вот всё. С CodeSys я был уверен, а тут - ни в чём не уверен и даже не понимаю, как что работает, почему и зачем.
Окей! Значится, CSDrvPwrDir - это крутой FB, который нужен для управления какими-либо механизмами, которые управляются сигналами "Питание" и "Направление": Шторы, РольСтавни, Краны воды для защиты от протечек и так далее.
Суть такая:
* Есть команды моментального управления по значению: пока команда TRUE - привод работает, пока FALSE - не работает.
Это можно использовать для кнопок: пока держишь - штора открывается или закрывается.
* Есть команды управления по времени: ткнул импульс в TRUE, и привод работает заданное время. Например, подал импульс "Закрыть" - и штора закрывается в течение минуты.
Основная заморочка - с сигналами Pwr/Dir: Dir должен включаться раньше Pwr, а выключаться позже. Но только тогда, когда он задействован (Dir = TRUE - открытие).
Дополнительно там есть выдержка между противоположными командами: если подать Open и сразу Close - то все сигналы выключатся, пройдёт выдержка времени, и потом они включатся в другом положении.
Обе этих заморочки спасают коммутационные реле в щите, если пользователь начинает тыркать кнопки Открыть-Закрыть.
И вот на CodeSys 3.5 всё ОК, а тут - косяк. Без отладки я не могу понять НИЧЕГО.
ДОПОЛНЮ. Полный исходник его я из форума убрал. Не хочу прям вот сильно распространять код.
Тоже использую автоматы похожего вида и думаю перенести что-то с ПЛК, например на ПР103
1exan Ой! Мои комменты по параметрам:
* Выстави UseStopByFullSame и UseStopByFullRev в 1 - это чтобы в момент полных операций нажатия на ту же или противположную кнопку вырубали этот режим.
* Выстави TimeDelayITL в 500 (мсек)
* Выстави TimeDelayDIR в 250 (мсек)
(эти два времени должны быть небольшими, в диапазоне 100-250 мсек, поэтому они в мсек и задаются)
* Выведи для теста RelayPower тоже на выход Q1. Вдруг отдельно RelayDir работает, а вместе с RelayPower - нет.
Ожидаемое поведение: после подачи команды CmdOpenFull у нас врубается RelayDir, потом RelayPower. Если мы нажимаем CmdStop, то олжно вырубиться RelayPower, а потом RelayDir с задержкой.
ДА!!! ТЫ КЛАССНО оформляешь конечные автоматы и переменные!! Я ОЧЕНЬ рад, так как у нас на форуме дофига народа, которые переменные называют криво, и код не кооментируют.
Если писать на ПЛК, то я там ещё и номера шагов константами делаю, типа StateStop, StateWait и так далее. И эти константы прокатывают в качестве элементов CASE влёгкую! В ПРке констант нет (и в этом портированном FB пришлось цифрами их заменять)!
Дополню. Так вот на видео как раз же глюк и виден. Там RelayDir кратковременно вырубается. А должно работать без этого импульса, зараза. Я уж думаю, не мой баг ли это вообще в принципе.
Cs-Cs, если вы не видите ошибку в коде, это не значит, что её нет. Тем более это функциональный блок, и из кодесиса вы его в st вызываете? А в ОЛ скорее всего из FBD.
Да-да, я та нейросеть, которая 6 лет назад Вам показала, что в софт комфорте тоже можно сделать управление светом, чего вы так и не смогли.
МихаилГл 1. Чёёё? Я же всё писал. Стоит внимательно читать. В OWL это исполняется так же на ST.
2. Не помню ничего. У меня 6 или 7 статей про Logo. Всё делал, всё работает.
Сейчас на этом форуме все твои ответы ужасные, невпопад и выглядят как сборник ключевых слов без смысла в режиме "каждый бочке затычка". Был бы я тут администратором - забанил бы.