Редактор переменных системы разработки поддерживает атрибут ‘сохранять’ для каждой внутренней переменной (т.е. не входной и не выходной).
В конце каждого цикла целевой задачи значения сохраняемых переменных копируются в специальную область памяти. Этой областью обычно является питаемая от батареи RAM.
Во время старта если хотя бы одна переменная имела атрибут сохраняемой, ISaGRAF ищет сохраняемые переменные:
- Если данное приложение уже запускалось ранее, ISaGRAF находит сохраненные значения и присваивает их соответствующим сохраняемым переменным.
- Если ранее работало другое приложение или не было никакого, то ISaGRAF понимает, что сохраненные значения недействительны и переустанавливает все сохраняемые переменные в 0.
Область памяти для сохранения переменных определяется в системе разработки в меню Make/Опции выполнения приложения/Сохраняемые переменные. Указанная строка должна иметь следующий формат:
boo_add , boo_size , ana_add , ana_size , tmr_add , tmr_size , msg_add , msg_size
где:
boo_add Шестнадцатеричный адрес, используемый для сохранения булевских переменных. Должен быть отличен от 0.
boo_size Шестнадцатеричный размер памяти в байтах, выделяемый по этому адресу. Для хранения булевской переменной требуется 1 байт.
ana_add Шестнадцатеричный адрес, используемый для сохранения аналоговых переменных. Должен быть отличен от 0.
ana_size Шестнадцатеричный размер памяти в байтах, выделяемый по этому адресу. Всегда требуется минимум 4 байта плюс 4 байта для хранения каждой аналоговой переменной.
tmr_add Шестнадцатеричный адрес, используемый для сохранения таймерных переменных. Должен быть отличен от 0.
tmr_size Шестнадцатеричный размер памяти в байтах, выделяемый по этому адресу. Для хранения таймерной переменной требуется 5 байт.
msg_add Шестнадцатеричный адрес, используемый для сохранения строковых переменных. Должен быть отличен от 0.
msg_size Шестнадцатеричный размер памяти в байтах, выделяемый по этому адресу.