При использовании привязки переменных к памяти контроллера командой "АТ" перестаёт работать RETAIN. Записанные в регистры значения не сохраняются после перезагрузки контроллера. Привязка позволяет напрямую работать с регистрами MODBUS с разными форматами данных, без их конвертации что очень удобно. Если не использовать АТ, массив ModbusBuffer в RETAIN сохраняется.
В чем ошибка?
PROGRAM ModbusSlave
VAR
//ФБ Modbus Slave
fbTcpSlave : OCL.MB_TcpSlave;
END_VAR
VAR RETAIN
//Буфер MODBUS
ModbusBuffer AT %MW0:ARRAY [0..99] OF WORD;
//Регистр MODBUS в формате Real
Reg_REAL AT %MD1 :REAL;
END_VAR
//Программа MODBUS Slave
fbTcpSlave(xEnable:=TRUE,
pData:=ADR(ModbusBuffer),
szSize:=SIZEOF(ModbusBuffer),
);




