Обновите его, вероятно этот модуль из другого пакета, более старого.
Либо найдите старые пакеты, Пакеты 3.5.11.6 и 3.5.11.8
Вид для печати
Добрый день.
Установите следующий пакет:https://ftp.owen.ru/CoDeSys3/04_Libr...5.11.8.package
Совет с обновлением может быть воспринят неправильно, т.к. шаблоны не поддерживают команду ПКМ - Обновить устройство.
При необходимости использовать шаблон другой версии потребуется удалить старый шаблон из проекта и добавить/настроить новый шаблон заново.
Большое спасибо! Да, установка старого пакета помогла
Добрый день! Подскажите, такая проблема появилась, в веб визуализации вставил картинку через Пул Изображений, в CDS все нормально показывает,а в браузере просто крест вместо изображения.
Помогло, спасибо!
Здравствуйте. Помогите, пожалуйста, запустить автонастройку ПИД регулятора. Использую в проекте на ПЛК210 блок APID_PWM из библиотеки CmpOwenPidRegs. На входы подаю такие значения: ANR_W2 = True, PV - переменная REAL, PV_Time = 1, SP - переменная REAL, PV_0 = 0, ANR_MODE = 0, START_ANR - переменная BOOL, Y_MANUAL - переменная REAL, Y_MAN_SET - переменная BOOL, XN = 0, PMAX = 1, PMIN = 0.
Запускаю программу, подаю на вход EN сигнал и регулятор уже пишет, что он в процессе автонастройки, хотя автонастройку ещё не начинал (выход ANR_WORK горит и STATE = 3). Ставлю на SP уставку любую и подаю сигнал на START_ANR - никакой реакции со стороны выходов, как бы я не менял значение на вход PV. В документации написано "Необходимо в ручном режиме управления..." я подавал сигнал на Y_MAN_SET и выход ANR_WORK остаётся гореть и STATE = 6. Как бы я не менял Y_MANUAL выход ANR_WORK не гас и в последствие при при снятии сигнала Y_MAN_SET регулятор всё равно вставал а режим автонастройки STATE = 3.
Помогите, пожалуйтса, как правильно произвести автонастройку.
Вложение 86893
Запускать надо на живом ПЛК.
Вход PV_Time не может быть константой, это циклическое время типа WORD, от 0 до 65535, кратное 10 ms, только целое.
Берётся с любого аналогового входа.
Для эмуляции работы циклического времени, можно применить такой кодИли так, на таймере и счётчике, тут скрин https://owen.ru/forum/showthread.php...l=1#post474223Код:PV_Time:=TO_WORD(TO_DWORD(TIME())/10);
Для автонастройки, на входе надо пройти, от меньше уставки до больше уставки 2 раза.
После этого на выходе будет сброс АНР.
Сделал, тикающую переменную поставил на вход PV_TIME. Запускал на живом контроллере. Теперь выход блока постоянно максимальный, даже без включенной автонастройки. Когда включаю включаю, выход всё также остаётся максимальным и не выключается при достижении уставки и даже больше. Вложение 86905
ПЛК реальный, но нагревателям не подключен, показания датчика меняю потенциометром. Загрузил новую программу, подал на EN сигнал и ФБ сразу же в режиме автонастройки с максимальным выходом. Подавал сигнал на ANR_START и потенциометром менял значение датчика выше и ниже уставки более двух раз - всё также выход максимальный и режим автонастройки. Потом сбросил ANR_START и датчик в 0 - всё также выход максимум и режим автонастройки. Подождал, думал, что со временем выход сбросится в 0 - не получилось, даже, когда PV_TIME перевалило за 65530 и сбросилось в 0. Потом ещё раз подал сигнал на ANR_START и как только начал повышать значение датчика, то выход сбросился в 0, статус - автонастройка. Поменял три раза показания дачтка выше уставки в 2 раза и ниже уставки до 0 - выход всё ещё в нуле. Сбросил сигнал с ANR_START - выход на нуле и статус автонастройка. Ещё раз попробовал сделать автонастройку по приведённому алгоритму - нет реакции он ФБ.
Думаю вам надо разобраться в работе на другом ПИД с АНР , из биб-ки Util например.
Или скачать готовый пример в Дополнительных примерах, ПИД-регулятор с автонастройкой для управления ШИМ (APID_PWM)
https://owen.ru/product/codesys_v3/example_of_work
Не хочу быть занудным, но я бился с этим примером, с этой автонастройкой, с этим ФБ примерно 2 недели. Хотя полжизни настраиваю регуляторы...
Это оказался тот случай, когда проще оказалось написать свой регулятор, чем разобраться, как же запустить ЭТОТ
Не знаю, может, я устарел, может, автор этого ФБ не с этой планеты, но я признаю, мне не удалось
Написал свой ФБ и оно (вот же удивительно) работает
Может, помогло бы, если бы можно было заглянуть под капот этому ФБ, но код закрытый :)
P.S. в аналоговом овеновском регуляторе-ФБ, который хотя бы работает с полпинка, тоже не без приколов: при смене величины зоны нечувствительности он скидывается в ноль. Ну, зачем??? :)
Привет форум!!! Может кто подсказать, куда копать или как реализовать?
Ситуация: Заказчик просит исходный код, для интеграции своего небольшого кода.
Вопрос: Можно как то ограничить доступ для другого пользователя моего проекта? Поставить пароль на конкретный блок кода/структуры? Но при этом оставить ему возможность добавлять свой код.
Пробовал через Свойства->Контроль доступа: Но не понял какие данные он требует(рисунок прилагаю).
Буду благодарен за ответы.
Вложение 87019
Поддерживаю! Если человек разобрался с кодом, то значит или код грамотно составлен, или человек на своём месте, либо оба эти пункта.
Я вот не всё коды чужие разбираю, бывает и вправду, легче самому написать.
Поэтому, отдавать исходник, и не переживать. Ничего нового там всё равно нету...
Команда "Выгрузка исходного кода" с ПЛК никак не влияет на его работу?
Можно ли выгружать проект из ПЛК на ПК на работающем оборудовании (конечно если ранее загрузили исходный код)?
Можно. Это просто скачивание файла если он в нем есть.
Здравствуйте. Есть вопросы по передаче данных через SNMP:
1. Возможно ли передача данных двумя SNMP-агентами (OSNMP.Agent) на одном порту 161? Я пробовал делать следующее:
fbSnmpAgent_1(xEnable := TRUE, uiAgentPort := 161, usiTypeDevice := 1, sCommunityRead := 'public', sCommunityWrite := 'private',
pArrayVarBind := ADR(astVarBinds_1), usiCntVarBind := 255, eError => i_Error_1);
fbSnmpAgent_2(xEnable := TRUE, uiAgentPort := 161, usiTypeDevice := 2, sCommunityRead := 'public', sCommunityWrite := 'private',
pArrayVarBind := ADR(astVarBinds_2), usiCntVarBind := 176, eError => i_Error_2);
Проверял через MIB browser и не смог получить данные со второго агента, ошибок при отправке не было обнаружено. Если для каждого агента использовать разные порты, то всё работало.
2. Как правильно изменять параметр "gc_usiMaxCntVarbindTrap" в библиотеке OwenSnmp? В библиотеке есть два настраиваемых параметра, одно из них как раз gc_usiMaxCntVarbindTrap. Я изменял этот параметр, значение отображается новое, но в программном коде используется старое значение, которое задаётся по умолчанию.
3. Вопрос такой же как и в первом пункте, но только про блок OSNMP.SendTrap для отправки трапов. Возможно ли отправлять несколько трапов, используя один порт?
4. В какой именно момент отправляются трапы, при использования блока OSNMP.SendTrap? Вопрос возможно банальный, который легко проверить, но я не очень опытный пользователь codesys, поэтому меня этот вопрос запутал. Я знаю, что за отправку трапов отвечает xExecute внутри блока. Если нужно отправить трап, то переменную нужно выставлять в TRUE. А если я хочу отправлять трапы каждый раз, когда происходит некоторое событие, то должен ли я сбрасывать xExecute в FALSE, а после снова выставлять в TRUE? Замечал, что порой при сбрасывания xExecute в FALSE, трап отправлялся, что меня и запутало. Очень буду благодарен, если есть какой-то пример, где трап отправляется каждый раз при срабатывание какого-то условия.
Добрый день.
Нет.Цитата:
Возможно ли передача данных двумя SNMP-агентами (OSNMP.Agent) на одном порту 161
Прямо в менеджере библиотек:Цитата:
. Как правильно изменять параметр "gc_usiMaxCntVarbindTrap" в библиотеке OwenSnmp?
Вложение 87141
Как вы это определили?Цитата:
но в программном коде используется старое значение
Да. В рамках вызова экземпляра SendTrap можно отправить несколько трапов.Цитата:
Возможно ли отправлять несколько трапов, используя один порт?
Если нужно отправить больше, чем gc_usiMaxCntVarbindTrap, то нужно вызвать экземпляр несколько раз подряд с разными наборами трапов (но нет смысла пытаться вызвать несколько экземпляров одновременно).
По переднему фронту входа xExecute (т.е. значение входа должно перейти из FALSE в TRUE).Цитата:
В какой именно момент отправляются трапы, при использования блока OSNMP.SendTrap
Можете связаться со мной по телеграм (см. в подписи) и предоставить доступ по AnyDesk - это позволит решить оставшиеся у вас вопросы по SNMP.Цитата:
Очень буду благодарен, если есть какой-то пример, где трап отправляется каждый раз при срабатывание какого-то условия
Здравствуйте.
А может ли ПЛК быть в роли OPC UA Client`a?
Здравствуйте. Извиняюсь, если вопрос не совсем по теме.
Подскажите, как выполняется настройка удаленного подключения к спк210. Какие настройки необходимо выставить на модели iRZ RL01w (SIM карта с внешним IP адресом), а также какие настройки необходимо выставить на панели управления спк210 для возможности удаленного подключения к панели управления посредством среды программирования codesys v3.5 sp17 и посредством подключения к WEB-интерфейсу.
Первый раз с таким столкнулся, информации об этом довольно мало.
Добрый день.
На стороне СПК достаточно настроить:
- IP-адрес из подсети роутера;
- такую же маску, как на роутере;
- в качестве адреса шлюза указать IP-адрес роутера.
Все остальные настройки, связанные с пробросом нужных портов, производятся на стороне iRZ.
См. п. 5.4.4:
https://docs.irz.net/controls_main
В случае доп. вопросов по iRZ можете запросить консультацию по этому поводу у их технической поддержки.
Добрый день! Использую таблицу тревог на СПК110. Одновременно на СПК приходит несколько событий, но на запущенном рантайме с ноутбука фиксируются все события, а на СПК только ОДНО (нижнее в с списке тревог). Таблица тревог настроена в режиме архивации. Биты, которые должны взвести данное событие выставляются (на рантайме ноутбука это видно). С временем в задачах эксперенитровал, но не помогает. Такое ощущение, что СПК в базу sqlite не успевает записать. Подскажите, в чем может быть проблема и как её решить? Спасибо!
СПК
Вложение 87197
Ноутбук
Вложение 87198
Добрый день.
Напишите, пожалуйста, на support@owen.ru или завтра утром мне в телеграм.
Приложите проекты и опишите, как с его помощью повторить вашу проблему.
Добрый день.
Не получается передать данные по SNMP вне зоны LAN. Оборудование - СПК210. Всё было настроено, порты 161 и 162 доступны. В LAN данные SNMP передаются без проблем через запрос GET, WEB-интерфейс также доступен. Со стороны заказчика, который через свою технологическую сеть подключается, доступен WEB-интерфейс, однако данные по SNMP получить через запрос GET не получается (timed out). Подскажите, в чём может быть проблема. Возможно необходимо провести какие-то дополнительные настройки в WEB конфигураторе? В разделе "Сеть" есть подразделы "Интерфейс" и "Межсетевой экран". Необходимо ли проводить какие-то дополнительные настройки в этих разделах? В интерфейсе пробовали указать зону межсетевого экрана "WAN", перезагружали контроллер, но это не помогло. Заказчику всё также доступен WEB-интерфейс, но не доступна передача данных по SNMP. Данные передаются агентом:
fbSnmpAgent(xEnable := TRUE, uiAgentPort := 161, usiTypeDevice := 1, sCommunityRead := 'public', sCommunityWrite := 'private',
pArrayVarBind := ADR(astVarBinds_1), usiCntVarBind := 251, eError => i_Error);
Ещё раз скажу, что через LAN параметры SNMP передаются, но заказчик через свою сеть получить их не может. По их словам проблем с доступом у заказчика нет и нам гарантировано предоставили порт 161 и 162 для передачи данных по SNMP.
Добрый день.
Подскажите, как можно отслеживать событие входа в систему конкретных пользователей, а также смены пароля пользователей?
У меня есть три группы пользователей "Admin", "Engineer" и "Operator" и я бы хотел отслеживать и записывать в журнал, какой пользователь заходит в систему и также записывать в журнал событие, когда происходит смена пароля того или иного пользователя. Я пытался создать бульки и написал простую логику, которая работает на основе считывания переменной sCurrentName
Событие входа в систему я хотел отслеживать следующим образом:
sCurrentName := WSTRING_TO_STRING(VisuElems.CurrentUserName);
IF sCurrentName = 'Admin' THEN
bLogIn_Admin := TRUE;
...
и т.п.
Но как я понял, то использовать переменную VisuElems.CurrentUserName в коде не стоит, к тому же я заметил, что переменная по какой-то причине сбрасывается самостоятельно, хотя на визуализации, при привязке этой переменной, этого не заметно.
Добрый день
См. п. 2.9:
https://ftp.owen.ru/CoDeSys3/98_Book...isuIecCode.pdf
Все верно, она обрабатывается только в контексте экранов визуализации.Цитата:
Но как я понял, то использовать переменную VisuElems.CurrentUserName в коде не стоит
Добрый день.
Возник ещё один вопрос. Встроена ли у СПК210 функция автоматического обновления журнала/логов/тренда при достижение заданного лимита по памяти? То есть замена старых данных на новые. Или же контроллер войдёт в состояние ошибки, когда лимит по памяти будет достигнут? Необходимо прописывать автоматическую очистку журнала/логов/трендов в коде программы?