Добрый день.
Да, верно, RETAIN в Полигон не поддержан. Потребуется использовать блок SaverEx.
Документация на тему: https://owen.ru/uploads/473/pl_archi...oints_v1.2.pdf
Пример: https://owen.ru/uploads/444/example_..._setpoints.zip
Вид для печати
Добрый день.
Да, верно, RETAIN в Полигон не поддержан. Потребуется использовать блок SaverEx.
Документация на тему: https://owen.ru/uploads/473/pl_archi...oints_v1.2.pdf
Пример: https://owen.ru/uploads/444/example_..._setpoints.zip
спасибо будем разбираться)
Добрый день
Подскажите пож, как в среде Полигон выполнить преобразование типов, конкретно Float в Time ?
Банально требуется задать с панели время задержки в секундах для функц. блока ТОN в диапазоне до 3600
Но проблема в том, что существующий в Полигоне фб Encode_Time переполняется при попытке задать время в секундах больше 59..
Возможно какую то библиотеку нужно добавить? Какие от codesys подходят для Полигона неясно
Типа вводим 1,30 - это полторы минуты :)
kondor3000 с чего вы вдруг так решили? целая часть = минуты, дробная секунды. Кстати подобное решение даже не моё, кто-то давно на форуме это предлагал и использовал. Разделили "котлеты", и превратили в то, что нужно, потом сложили и получили минуты в целом, при необходимости превратили в мс. То есть не Одна третья, а именно тридцать :)
Еще вопрос небольшой
Два ПЛК210PL можно связать МЕЖДУ СОБОЙ по протоколу ОРС UA?
Да, поддерживается как режим сервера, так и режим клиента OPC UA.
См. https://ftp.owen.ru/Polygon/11_Docum...OpcUA_v1.2.pdf
Раздел "Блоки МЭК61131-3" в paCore предназначен для языка ST.
Вопрос по библиотеке paIEC104. Не могу понять, как используется тип M_BO_NA_1 практически. Это битовая маска по сути? Я могу эти типом данных передать дискретные сигналы (например, положение выключателей)?
Не знаю как делаете вы, а я недавно на ПЛК210 + МС4Д сделал так:
1. Переменные сами по себе это просто переменные, которые я через opc ua вывел в скаду.
2. Так как на панели на МС4Д нет физической клавиатуры, а найденная виртуальная на js ну очень не удобная, нарисовал свою, которая работает с ПЛК напрямую.
3. И обмен происходит только 2мя переменными между скада и ПЛК, первая это номер редактируемого параметра, вторая, это dword, в котором каждый бит это нажатие клавиши на нарисованной клавиатуре с вводом, бакспейсом, и отменой.
Ну и всё, всё остальное в ПЛК как программа. Надо изменить параметр номер 100, нажимаю кнопочку, в контроллер уходит номер редактируемого параметра, и битами из dword манипулируют с этим параметром.
И ещё вопрос. Можно ли через OPC UA записывать значения в контроллер? Например, глобальных переменных или вход какого-либо блока? Читать я читаю без проблем, а как писАть? Может свойство какое-то нужно добавить?
OPC UA. Но это codesys ПЛК, не полигон. Но по модбас тоже можно сделать, это по идее не имеет значения.
PS Почитал доки по opc ua, и вообще... Там тока язык ФБ, печально. А чтобы писать в регистры по opc ua там вроде ничего не требуется, пример как раз для мастерскады описан. Но среды нет, ПЛК нет, проверить и подсказать не могу.
C контроллерами с Codesys, даже если это версия 2.3, вообще никаких проблем с количество переменных и сложностью алгоритмов. Но здесь Полигон, который делает из достаточно мощного ПЛК практически программируемое реле. Если больше пары десятков переменных, то вся логика превращается в лапшу в которой через пару недель невозможно разобраться.
Уточните, пожалуйста, следующие возможности: может ли виртуальный ПЛК напрямую опрашивать реальные физические устройства по протоколу Modbus TCP, и поддерживает ли сам виртуальный ПЛК работу в качестве сервера по протоколу МЭК 60870-5-104 для внешних систем? Допускается ли реализация всего прикладного уровня проекта исключительно на ST, или же его применение жестко ограничено только написанием кода внутри функциональных блоков? Также среде Codesys на языке ST я использовал сложные структуры (включающие вложенные структуры и массивы структур и т.д.), которые автоматически размещались последовательно в карте регистров Modbus. Поддерживает ли Полигон аналогичное последовательное размещение пользовательских типов данных в карте регистров без ручного назначения адресов?
Добрый день!
Да. Может потребоваться отдельная настройка модуля для ВПЛК, если конфигурация сети сложная.
На ST можно писать не только функциональные блоки, но и программы. Однако полная реализация проекта на ST на данный момент все таки невозможна, потому что блоки шин ввода-вывода и протоколов не поддерживаются внутри кода на ST (они должны присутствовать в проекте как функциональные блоки).
Нет, адреса Модбаса сейчас назначаются вручную (или через импорт из Excel).
Добрый день! Уточните пож-та:
В проекте задействованы три контроллера ПЛК210-PL, каждый со своей корзиной модулей ввода-вывода. По задумке, сбор данных со всех трех контроллеров должен выполняться на одном из них для последующей передачи на верхний уровень. Прошу подсказать оптимальный способ организации обмена данными между этими ПЛК:
Возможна ли в среде Полигон реализация обмена через сетевые переменные по аналогии с CODESYS?
Или же единственным вариантом остается использование протокола Modbus (RTU/TCP)?
Предусмотрена ли в среде разработки «Полигон» возможность одновременного подключения к нескольким ПЛК в режиме онлайн-отладки?
Добрый день.
Механизма сетевых переменных по аналогии с CODESYS нет, но можно использовать обмен по Modbus / OPC UA.
В случае использования резервируемой пары ПЛК (с лицензией REDU) помимо синхронизации программ возможно задавать синхронизированный список глобальных переменных. Обмен данными по OPC UA в этом случае настраивается автоматически.
Одновременное подключение к нескольким ПЛК в режиме онлайн-отладки - да, предусмотрено.
Спасибо большое за ответы!
Прошу уточнить еще следующие моменты, сразу постараюсь примерах:
1.Как мне работать с выходом функционального блока (напр. Scale) в программе на языке ST?
2.Я создал структуру, в программе на ST присвоил переменной тип моей структуры, компилятор выдает ошибку:
"1/t[Синтаксическая ошибка] Cтрока 2:15 - no viable alternative at input 'STADVANCEBITS;'" В чем может быть проблема?
Заранее спасибо
Добрый день!
Если это блок где-то на странице программы на ФБ, то надо добавить его как ссылку в раздел Глобальных переменных (с нажатым Ctrl потянуть в раздел глобальных и там выбрать "Добавить") - тогда он станет доступен в коде на ST по своему имени, если объявить его в разделе VAR_EXTERNAL (или у программы добавить свойство "Подключить все глобальные объекты")
Если блок объявлен прямо в коде на ST то его выход доступен по обычным правилам (тут синтаксис совпадает со стандартом)
Наиболее вероятно, что не хватает конструкции VAR END_VAR вокруг объявления переменных. но чтобы сказать точнее надо посмотреть весь код.
С уважением,
Техподдержка Полигон
polygon@pa.ru
https://polygon2.ru/
Глобальную переменную удалось "привязать" ко входу блока на странице программы на ФБ, а вот с выходом блока не получается. При попытке перенести в раздел глобальных переменных выдает ошибку: "Не разрешена вставка объекта "выход" в объект "переменные"/"глобальные переменные"/"переменная" (пробовал перетаскивать во все три места)
Спасибо, помогло!
Возник еще один вопрос, почему может возникнуть ошибка: "[Семантическая ошибка] Строка 9:0: Блок 'FBTEST' не содержит 'F0'"
Код:
VAR_EXTERNAL
rTest,rTest2,rSumm:REAL;
END_VAR
VAR
fbTest:Add;
END_VAR
fbTest(f0:=rTest, f1:=rTest2);
rSumm:=fbTest.sum;
Я правильно понимаю, что в области глобальных переменных объявить массив не получится?
Добрый день!
Тут проблема в блоке Add из paCore, он содержит циклические входы (их может быть переменное число), использование таких блоков в ST на данный момент не поддерживается.
На данный момент не поддерживается.
С уважением,
Техподдержка Полигон
polygon@pa.ru
https://polygon2.ru/