1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Codesys 3.5 SP17 Patch 2 CheckBounds (POUs for Implicit Checks)

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Ответить

Автор темы
leon78
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 34 раза
Поблагодарили: 110 раз

Codesys 3.5 SP17 Patch 2 CheckBounds (POUs for Implicit Checks)

Сообщение leon78 »

Я использую CheckBounds (POUs для неявных проверок) для контроля выхода за диапазон массивов.
Но столкнулся с одной проблемой.
Если вход-выход (VAR_IN_OUT) функционального блока имеет тип "массив фиксированной длины" (объявлен как [1..10] например), то проверка работает, CheckBounds при обращении к этому массиву вызывается.
Если вход-выход (VAR_IN_OUT) функционального блока имеет тип "массив переменной длины" (объявлен как [*]), то проверка не работает, CheckBounds при обращении к этому массиву не вызывается.
Можно ли как-то сделать, чтобы во втором случае проверка тоже выполнялась?
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.

Автор темы
leon78
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 34 раза
Поблагодарили: 110 раз

Codesys 3.5 SP17 Patch 2 CheckBounds (POUs for Implicit Checks)

Сообщение leon78 »

Сам отвечу. К сожалению, этот баг исправлен только в SP19.
https://de.codesys.com/fileadmin/data/I ... 35190.html
CDS-82162 Bug Compiler: Checkbounds is not working for dynamic arrays with VAR_IN_OUT as index access Fixed [[GENERAL]] Compilerversion >= 3.5.19.0
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»