Не совсем понял про родильский контроль. Переменная GVL.OUT_zatvor_822_open. Такая же переменная стоит выше Application.GVL.OUT_zatvor_821_open, но на контроллере "горит" false;
Вид для печати
Не совсем понял про родильский контроль. Переменная GVL.OUT_zatvor_822_open. Такая же переменная стоит выше Application.GVL.OUT_zatvor_821_open, но на контроллере "горит" false;
И не собирался спорить, я вижу по программе ровно то же что и вы - референц лист показывает где конкретно вызвана данная переменная, причём - показывает где пишется, где читается. Пробовал через обычный поисковик - он находит ровно столько же раз упоминания данной переменной во всей программе.
Самое интересное, если я эту переменную удаляю внизу перед TON, то выход в контроллере становится False.
В теории может это какое-то слово, куоторое идёт на выход модуля и где по значениям 15 битик получается TRUE, хотя вроде кодесис не битами, а байтами балуется... сейчас проверим, поменяв переменную на другую.
Да нет, он именно на эту переменную обижается... перенёс её в 14 выход стал 14 гореть, а 15 потух.
У вас переменная еще и к at % объявлена.
Выложите код целиком, раз сами не можете найти проблему... Хотя тут не овен, хрен откроется...
...да замучило!
1. Нужно включить на Опциях проекта проверку на множественную запись выходов (после этого будет множество "приятных" удивлений).
Зато она покажет, где идёт запись выходов из разных мест (так нельзя)
2. Нужно на Modbus-устройства поменять установку "Всегда Обновлять переменные" на "Всегда (в задаче цикла шины)"
2 пункт, для всех модулей слейв установить Вложение 85155
Чтобы открыть ваш проект, нужны таргеты на ваш ПЛК и модули, это не Овен
Пиндец, опять все блоки CFC не по порядку, тяжёлый случай.
Небось и очистку с компиляцией так и не сделал.
Да, оно. Можно ещё включить перекрывающиеся области памяти.
Но учти, что это обычно сразу вызовет тьму ошибок компиляции
Второе - про это. Чтобы так везде было
Вложение 85156
Ещё в довесок, взял обозвал переменную по другому(адрес не менял, пока) и вызвал её 1 раз в главной программе. Потом закомментил её там же и в выходных устройствах она пропала, что свидетельствует о её единожды вызове.
Понял, ошибко не вывалилось, а вот что реально накопал, так "Для входов (VAR_INPUT) эта проверка не применяется — только для выходов (VAR_OUTPUT) и глобальных переменных."
Про проверке выдало только одну и ту же ошибку про неиспользуемые переменные (ну это я и так знаю, на стадии разработки)
Сейчас вылезла интересная штука, если меняю опросы по MODBUS, как было сказано выше, то в одном случае горит лампа на контроллере, в другом не горит.
Причём менял эту переменную в другие выходы - она и на других выходах горела. А в 15 выход ставил другие выходные переменные с другими адресами - не горело... странное слово на ум приходит - чудеса...
Поменял адрес с AT%MX228.1 на AT%MX228.15 и глюк ушёл....:eek:
Вернул эту переменную во все места программы и всё работает, правда адрес теперь AT%MX228.15....
Хорошо что сюда выложил косячный код, а то потом кому рассказать - не поверят вот такой вот привет из Южной Кореи...
Для этого есть эксель, который автоматом всё заполняет. В том числе адреса переменных. Теперь понятно почему я всегда работаю с глобальными переменными из таблицы? ;-)
Кстати, надо будет не забудь данную штуку проверить на объекте с 15-тью модулями...может мне такой подопытный контроллер попался..
При чем тут эксель... Я про особенность мастер скады с ее разделением переменной на 2 части, вход и выход, в результате чего при посылке бита на выход на плк (в моем случае плк210) он придет, но повторно вы его отправить сможете только применив костыль в этой скаде. Ну и в контроллере полукостыль.
PS Хотя я с ней только месяц работаю, может чего и не знаю...
...и ну НЕ надо использовать прямые адреса!
Так НЕПРАВИЛЬНО!
Почему? Папки , т.е. Отцы в метапрограмировании используют, так что я делко не первооткрыватель. У меня был только один объект с программированием при помощи эксель таблиц и python. Там вообще НИ ОДНОЙ локальной переменной нет. Все таблицы создавались автоматически и самое приятное, что программисту делать практически ничего не нужно. При особой сноровке за вечер можно накидать готовую программу, с которой я парюсь уже вторую неделю)))
Кстати, библиотеки есть OSCAT на 3,17 или они из ранних версий подойдут?
Я вам про прямую адресацию намекал еще раньше, но вы так и не уловили... Когда прописываете модули, кодесис сам проставляет адреса в порядке появления модуля. И если вы будете тиражировать свое решение, то можете влететь.
Может я и не такой спец в программировании, но вы почемуто игнорируете многие полезные советы, а с некоторыми вообще не стараетесь разобраться и ждете прямых ответов... А как же жажда самообразования?
Добрый день!
Подскажите, наверное, есть функция которя отслеживает изменение значения переменной, понятно, что написать код не проблема, но интересно посмотреть библиотеку в которой это реализовано, может там еще чего интересного есть, сам не нашёл
Здравствуйте, повторный вопрос про ПИД-регулятор. Он уже задавался
Был получен ответ, что "В них нет смысла, PMAX и PMIN являются более строгими ограничениями.". Но это не полный ответ. Интегральная часть фактически ограничена PMAX и PMIN, или же не ограничена, а ограничен только выход? Это явно не написано в документации, а это крайне важно. Если на входе регулятора присутствует ошибка, которую он выходом не может скомпенсировать, выход упирается в ограничение PMAX, а интегральная часть внутри, если она не ограничена, может продолжить бесконтрольно расти до бесконечности или до переполнения. Обязательно нужен какой-то anti-wind-up, или списывание интегральной составляющей или клампинг. Иначе, если регулятор насытился и остался в насыщении, интегратор улетел в бесконечность, то потом никакими заданиями его не вывести из этого состояния. Сейчас у нас на объекте проявилась проблема с регулятором ФБ STD_PID, когда он выдаёт свой PMAX после долгого времени простоя и не хочет выходить из ограничения. Прошу подтвердить, что внутри реализации регулятора интегратор ограничен - именно интегратор, а не только лишь выход. И добавить это в документацию. Что да, отдельной переменной для ограничения интегратора пусть и нет, но интегратор ограничен тем же параметром PMAX и PMIN. Это критически важно. Без этого функционала регулятор становится прямо скажем опасен.Цитата:
07.04.2021, 16:02
С чем связано изменение ФБ STD_PID библиотеки CmpOwenPidRegs_v3.5.14.33? Убрали ограничение интегральной составляющей и т.д., по моему стал менее удобен.
Добрый день.
Скриншот из исходников библиотеки:Цитата:
Прошу подтвердить, что внутри реализации регулятора интегратор ограничен - именно интегратор, а не только лишь выход
Вложение 85198
Уточните, пожалуйста - в каких именно фрагментах документа, на ваш взгляд, следует разместить это примечание?Цитата:
И добавить это в документацию
Я надеялся, что есть функция, которая отслеживает изменение определенной области памяти, чтобы не создавать экземляр ФБ для каждой переменной, но всё равно Спасибо
Спасибо! Варианты правки документации (попросил o3)
1. В описании PMIN и PMAX: Минимальное значение выходного сигнала регулятора и интегральной составляющей (в
диапазоне -1.0...1.0)
2. Вставка в пояснительный текст после рисунка 2.6 (процесс регулирования)
Дополнительная защита от wind-up
Если ошибка остаётся значительной и выход достигает PMIN или PMAX, дальнейшее интегрирование не приводит к росту интегральной части: интегратор фиксируется в тех же пределах PMIN или PMAX. После устранения ошибки регулятор возвращается из насыщения.
Также стоит доработать рисунок, заменив редуцированные переменные _IMAX _IMIN на PMAX и PMIN
Этого достаточно, чтобы инженер, читающий документ, чётко понял: внутри ФБ интегратор «зажат» такими же границами, как и сам выход, и дополнительной настройки для anti-wind-up не требуется.
Добрый день! В документе "CODESYS V3.5 Вопросы и ответы (FAQ) Руководство пользователя 21.09.2022 версия 3.1" п.9.4 путь монтирования SD накопителя /mnt/ufs/media/mmcblk0p1. В http://X.X.X.X/cgi-bin/luci/admin/system/mounts - Файловая система(/dev/mmcblk1p1), Точка монтирования(/mnt/ufs/media/mmcblk1p1). Описка в документе?
Добрый день.
"В http://X.X.X.X/cgi-bin/luci/admin/system/mounts ..." - это о каком именно контроллере речь? Укажите полную модификацию.
ПЛК210-12.
21.09.2022 он еще не вышел, так что никакой опечатки нет.
Посмотрите, как выглядит п. 9.4 в актуальной версии документа:
https://ftp.owen.ru/CoDeSys3/11_Docu..._Faq_v.3.5.pdf
А ведь просил же приложение с актуальной документацией, привязанной к серийному номеру, на все изделия Овен. Отсканировал код на приборе/упаковке и увидел всё, что касается конкретного прибора с конкретной прошивкой. Как буд-то бы не очень сложно сделать. Некоторые вещи бывает не очень просто отыскать.
Актуальная документация всегда доступна по ссылке:Цитата:
с актуальной документацией
https://owen.ru/product/codesys_v3/documentation
Применительно к вопросу выше - пути к накопителям вообще можно увидеть в проекте CODESYS, на вкладке Device - Информация для используемого контроллера.
Есть способ грохнуть owencloud? Он мне точно не нужен, не хочу чтобы он торчал в контроллере и занимался непонятными делами :-)
Вложение 85340
Добрый вечер. Пытаюсь подключится к виртуальному контроллеру, но просит выполнить вход пользователя
Ввожу admin admin, но ничего не находит. Год не заходил в приложение, не могли бы напомнить, в чем проблема