Пояснение механизма работы с Retain-переменными в ПЛК-40: в какой момент происходит запись (при пропадании питания, программно или еще как-нибудь), куда именно они сохраняются. Пояснение про "период сохранения" в TRetainStorage.
Запись области retain происходит программно, с использованием вызова тела экземпляра блока TRetainStorage. Этот фукциональный блок использует таймер, который сохраняет retain переменные либо во внутреннюю память, либо на uSD карту. Пути (взяты из исходников фукционального блока):
PATH_FS: string := '/usr/bin/codesys/PlcLogic/Retain.ret';
PATH_MMC: string := '/run/media/mmcblk0p1/Retain.ret';
Для работы необходимо указать место хранения retain переменных (EnStorageDevice.DevSysFS - файловая система, EnStorageDevice.DevSD - sd карта, период сохранения (рекомендуется от 1 минуты)).
Для сохранения переменных можно использовать встроенный таймер, указывая период сохранения. Для этого нужно постоянно вызывать тело фукционального блока, чтобы таймер работал. Либо можно использовать параметр ForceSave для принудительного сохранения.
Длительность процедуры записи переменных на накопитель может составлять от единиц до десятков мсек. Это зависит от загруженности ОС Linux, runtime Codesys и от того как используется блок TRetainStorage в программе.
Запись области retain происходит программно, с использованием вызова тела экземпляра блока TRetainStorage. Этот фукциональный блок использует таймер, который сохраняет retain переменные либо во внутреннюю память, либо на uSD карту. Пути (взяты из исходников фукционального блока):
PATH_FS: string := '/usr/bin/codesys/PlcLogic/Retain.ret';
PATH_MMC: string := '/run/media/mmcblk0p1/Retain.ret';
Для работы необходимо указать место хранения retain переменных (EnStorageDevice.DevSysFS - файловая система, EnStorageDevice.DevSD - sd карта, период сохранения (рекомендуется от 1 минуты)).
Для сохранения переменных можно использовать встроенный таймер, указывая период сохранения. Для этого нужно постоянно вызывать тело фукционального блока, чтобы таймер работал. Либо можно использовать параметр ForceSave для принудительного сохранения.
Длительность процедуры записи переменных на накопитель может составлять от единиц до десятков мсек. Это зависит от загруженности ОС Linux, runtime Codesys и от того как используется блок TRetainStorage в программе.
Комментарий