ADR(%X.X) в указатель неверного типа — бип-бип и стоп
Если сделать вот так...
Код:
VAR
pointer: POINTER TO INT;
integer: INT;
END_VAR
pointer := ADR(%IB1.0);
integer := pointer^;
... то ПЛК160 начинает лихорадить: он проглатывает программу, но при её запуске пару секунд думает, издаёт сигнал и останавливается. КДС при этом теряет соединение и разлогинивается. При повторных попытках КДС перед заливкой проги сообщает об отсутствии программы на контроллере. Стоит переделать тип указателя на BYTE, как всё встаёт на свои места. А странно здесь то, что Codesys не знает размер %IB1.0 и не сообщает об ошибке в программе.