ISaGRAF. Version 3.4


CСохранение переменных приложения - часть 2


Для хранения таймерной переменной требуется 256 байт.

Требования

-  Должны быть специфицированы все поля для всех типов даже если Вы не собираетесь сохранять все типы переменных. В таком случае для неиспользуемого типа переменных Вы должны указать нулевой размер (за исключением аналогов, где минимальный размер - 4) и любой отличный от нуля адрес.

Пример:

Предположим, требуется резервирование

20 булевских переменных

0 аналоговых переменных

0 таймерных переменных

3 строковых переменных

Пусть память, питаемая от батареи, находится по адресу 0xA2F200.

Предположим, что:

Булевские переменные будут храниться, по адресу 0xA2F200 и будут занимать в точности 20 байт.

Аналоги будут по адресу 0xA2F214, и для них нужно 4 байта.

Фиктивный адрес для таймеров будет 0xA2F200, т.к. размер памяти - нулевой.

Строковые переменные будут храниться по адресу 0xA2F218, причем им требуется 3*256 байт.

Таким образом, в системе разработке должна быть введена строка

A2F200,14,A2F214,4,A2F200,0,A2F218,300

        Функциональный вызов SYSTEM

Если нужно хранить большинство переменных приложения, то следует использовать функцию SYSTEM, чтобы иметь дело со всем множеством переменных (подробнее о функции SYSTEM см. в Руководстве пользователя). Заметим, что в этом случае резервирование и восстановление управляются программистом на уровне приложения.

Прежде всего, Вы должны определить место расположения резервных копий всех типов переменных:

<новый_адрес>:=SYSTEM(SYS_INITxxx,<адрес>);

где

-  <адрес> адрес расположения памяти для резервирования (16#шестнадцацеричное значение). Он должен иметь четное значение, в противном случае операция не выполнится.

-  SYS_INITxxx может быть:

* SYS_INTBOO для определения начала памяти под булевские переменные.

* SYS_INTANA для определения начала памяти под аналоговые переменные.

* SYS_INTTMR для определения начала памяти под таймерные переменные.

* SYS_INTALL для определения начала памяти под все булевские, аналоговые и таймерные переменные.




- Начало -  - Назад -  - Вперед -