Указатели и онлайн-изменения в TwinCAT и CoDeSys
Вопрос
Защищены ли указатели от онлайн-изменения запущенной программы ПЛК в TwinCAT 2.10 и CoDeSys 2.3, на которых основан первый из них?Что произойдет, если блок памяти будет перераспределен в ходе онлайн-изменения программы и появятся указатели, указывающие на этот блок памяти?
Решение
Описание ADR (оператор адреса) в справке TwinCAT гласит:
Внимание:После онлайн-изменения могут произойти изменения, касающиеся данных по определенным адресам.Обратите внимание на это в случае использования указателей на адреса.
Мне кажется, что указатели не могут храниться постоянно, если кто-то притворяется, что использует онлайн-модификацию программы.В противном случае, если указатели сохраняются (например, в качестве привязки между некоторыми структурами данных), следует избегать онлайн-изменения.