1. По умолчанию, переменные сохраняются в файлы:
bootdrive:\TwinCat\Boot\TCPLC_R_x.wbp - retain variables;
bootdrive:\TwinCat\Boot\TCPLC_T_x.wbp - persistent variables.
Сохранение производится (по умолчанию) при завершении работы TwinCat ("shutting TwinCAT down"). При старте PLC программы TwinCat производит попытку чтения этих файлов. Если чтение удачно, переменные инициализируются данными из файлов. Наличие/отсутствие ошибок можно проконтролировать через поле bootDataFlags структуры SystemInfo (гуглить "bootDataFlags twincat").
2.
shnur-ik писал(а): :FB_WritePresistentData;
Думаю, в программе у Вас всё же FB_WritePersistentData. Вызывать блок необходимо только если требуется немедленное сохранение в файл. С NetId Вы разобрались, PORT указали правильно, если только PLC программу запускаете дефолтно - как первый процесс. Но функциональный блок срабатывает по "переднему фронту" сигнала START ("The function block is activated by a positive edge at this input."). Это значит, что перед вызовом FB_WritePersistentData с параметром START=True необходимо один или несколько раз вызвать FB_WritePersistentData с параметром START = False (возможно, в предыдущих PLC циклах). Проверьте, изменяет ли свое значение BCDZ1. Убедитесь, что в программе не может быть случая "нештатного" вызова блока FB_WritePersistentData с параметром START=True (т.е. в момент времени, когда MessProzent1 ещё не калибрована).
3. На всякий случай, проверьте батарейку CR2032 - она под крышкой между Ethernet коннекторами.