Каждая переменная имеет такие свойства:
Имя каждой переменной должно быть уникальным в программе. В именах допускается использовать буквы, цифры и знаки подчеркивания. Пробелы недопустимы.
Тип переменной определяет диапазон значений, которые могут храниться в данной переменной и размер занимаемой памяти в контроллере.
Логический (boolean) - допустимые значения 0 или 1. Занимает 1 байт в памяти контроллера.
Целый (integer) - 16-битное целое число. Значения от -32768 до 32767. Занимает 2 байта.
Вещественный (float) - 32-битное число с плавающей точкой, соответствующее стандарту IEEE 754.
Значения от ±3.4E–38 до ±3.4E+38.
Занимает 4 байта.
В контроллере имеется 4 вида памяти - Flash, RAM, EEPROM и NVRAM. Соответственно, каждая переменная хранится в одной из этих областей памяти.
Flash - энергонезависимая постоянная память, в которой хранятся команды программы контроллера и неизменяемые значения (константы). То есть, если переменная расположена во Flash, то ее значение не может быть изменено - она является константой.
RAM - оперативная память. В этой памяти должны храниться все переменные, которые не нужно сохранять при выключении питания контроллера. При подаче питания на контроллер все переменные в этой памяти получают свои начальные значения.
EEPROM - энергонезависимая память с ограниченным количеством циклов перезаписи (около 100000). В этой памяти обычно сохраняются конфигурационные переменные и задания регуляторов. Из-за ограниченного ресурса этой памяти, переменные, расположенные в EEPROM недоступны для записи из программы. Их значения можно изменить только в меню контроллера или по сети MODBUS.
NVRAM - энергонезависимая память с неограниченным количеством циклов перезаписи. Содержимое этой памяти обнуляется, если извлечь батарейку из контроллера. Переменные, расположенные в NVRAM доступны для записи из программы, поэтому эту память удобно использовать для организации счетчиков моточасов, или других подобных задач.
Начальные значения всех переменных записываются в память контроллера при записи программы.
Все переменные, расположенные в RAM, получают свои начальные значения при каждом включении контроллера.