Цитата Сообщение от Евгений Кислов Посмотреть сообщение
Добрый день.



Если вы руками прописали этот "VAR_GLOBAL PERSISTENT RETAIN" в каком-то вашем списке глобальных переменных - то это ожидаемое поведение.
Для использования PERSISTENT-переменных нужно создавать специальный объект и объявлять переменные именно в нем.

Безымянный.png



См. библиотеку SysFile.
Пример записи показан здесь:
https://oscat.ru/wp-content/Video/Co...35_SysFile.mp4

Чтение происходит аналогичным образом с помощью функции SysFileRead.
PERSISTENT- переменные конечно созданны в специальном объекте, как вы показали

Пробовал разобраться с библиотекой SysFile и CAA File - Оказалось для меня сложновато, нашел более простое решение в https://youtu.be/u3xxEx9WEts?si=CBtkXOy-ygm_o2aJ

PROGRAM PLC_PRG
VAR
xSaveRetainToFile: BOOL;
xRestoreRetainFromFile: BOOL;
sPathToRetainFile: STRING:='Retain.bin';
pApp: POINTER TO CmpApp.APPLICATION;
udiResult: UDINT;
END_VAR
-------------------------------------------------------
IF xSaveRetainToFile THEN

pApp:=CmpApp.AppGetCurrent(ADR(udiResult));
udiResult:= CmpApp.AppStoreRetainsInFile(pApp, sPathToRetainFile);
xSaveRetainToFile:=FALSE;

END_IF

IF xRestoreRetainFromFile THEN

pApp:= CmpApp.AppGetCurrent(ADR(udiResult));
udiResult:= CmpApp.AppRestoreRetainsFromFile(pApp, sPathToRetainFile);
xRestoreRetainFromFile:=FALSE;

END_IF

***********
2 кнопки и все работает! Если кто то искал решение то есть готовое