Глобальные переменные

Глобальные переменные работают почти так же, как и обычные переменные контроллера. Одно из отличий заключается в том, что глобальные переменные являются общими для всех макросов контроллера. Список глобальных переменных находится в Обозревателе проекта внутри шаблона контроллера и называется Глобальные переменные. По двойному нажатию на этот элемент откроется окно Глобальные переменные :

_images/global_var1.png

В верхней части окна расположена панель инструментов со следующими кнопками:

  • Добавить - добавление новой переменной (если выделена группа, новая переменная будет добавлена в нее);

  • Добавить группу - добавление группы переменных для удобства представления или хранения данных в виде структуры:

  • Удалить - удаляет переменную, если выбрана переменная, или группу со всеми переменными, входящими в нее;

  • Переименовать - команда устанавливает имя группе переменных по определенному шаблону, заданному в диалоговом окне (см. описание ниже);

  • Свойства - открытие диспетчера свойств для одной или нескольких выделенных переменных;

  • Кнопка со стрелками - служит для быстрого сворачивания/разворачивания групп.

  • Импорт - импорт переменных;

  • Экспорт - экспорт всех переменных;

Экспорт переменных производится в двух форматах: xml и csv. При экспорте в XML создается файл специального формата, который потом можно импортировать в список глобальных переменных другого шаблона. При таком импорте все переменные, хранящиеся в импортируемом файле будут добавлены к существующим переменным. При экспорте в формате csv создается тестовый файл, в котором в табличном виде представлены все переменные и свойства. Просмотр этого файла возможен в любом тестовом редакторе или в Excel. Импорт из формата csv невозможен.

_images/group_rename.png

Диалог группового переименования

Двойным щелчком мыши по строке с переменной (или группой) открывается окно Свойств переменной, где можно задать ее название, тип и т.д.:

_images/global_var2.png

Все свойства соответствуют таковым в обычной переменной, за одним исключением - поле Размер массива. Переменная может быть массивом, если указать размер больше единицы. И тогда к ней можно будет обращаться по индексу в блоках чтения и записи. Также, размер массива можно устанавливать и для групп.

Для добавления глобальной переменной на сцену FBD-программы необходимо выделить элемент проекта Глобальные переменные, затем перетащить нужную переменную из области в нижней части Обозревателя проекта в нужное место на сцене:

Свойства блока для глобальной переменной аналогичны свойствам блока локальной переменной, за исключением одного параметра - Показывать полный путь. Если этот флаг установлен, то к названию переменной внутри блока будет дописано имя группы, в которой она находится.

Если глобальная переменная имеет размер массива 1, то блок чтения/записи будет таким же, как и для локальной переменной. Если установить значение размера массива больше единицы (или если переменная находится в группе со значением размера массива больше единицы), то у блока появляется набор входов, для выбора индекса. Эти входы обозначаются с0, с1 и т.д.

_images/global_var3.png

Многомерный массив возникает в том случае, если и у переменной и у группы, к которой эта переменная принадлежит, свойство Размер массива больше единицы. Вход c0 относится к индексу переменной, вход с1 - индекс группы.

_images/global_vars2.png

Массивы и группы нужны для упрощения создания переменных для однотипных объектов. Возьмем, к примеру, несколько одинаковых контроллеров, у которых есть набор переменных: температура, влажность, содержание CO2. Контроллер, который является мастером для них должен собирать эту информацию и затем отображать на индикаторе или хранить для дальнейшего использования. С помощью групп и массивов это можно сделать следующим образом:

1. Создаем группу глобальных переменных;

2. Устанавливаем группе размер массива (например, 5):

_images/global_var10.png

3. Создаем схему для чтения данных из устройства и записи значений в глобальные переменные:

_images/global_var11.png

Переменная Address содержит адрес устройства. Этот адрес подается на блок чтения Modbus и на индексный вход блока записи переменной.

4. Теперь можно читать данные из этих переменных с помощью блока чтения, подавая на вход индекса константу или динамическое значение:

_images/global_var12.png