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

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

_images/global_var1.png

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

  • Добавить - добавление новой переменной (если выделена группа, новая переменная будет добавлена в нее);
  • Добавить группу - добавление группы переменных для удобства представления или хранения данных в виде структуры:
  • Удалить - удаляет переменную, если выбрана переменная, или группу со всеми переменными, входящими в нее;
  • Переименовать - команда устанавливает имя группе переменных по определенному шаблону, заданному в диалоговом окне (см. описание ниже);
  • Свойства - открытие диспетчера свойств для одной или нескольких выделенных переменных;
  • Кнопка со стрелками - служит для быстрого сворачивания/разворачивания групп.
  • Импорт - импорт переменных;
  • Экспорт - экспорт всех переменных;

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

_images/group_rename.png

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

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

_images/global_var2.png

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

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

Блок чтения/записи глобальной переменной имеет следующие свойства:

  • Показывать полный путь - к названию переменной внутри блока будет дописано имя группы, в которой она находится
  • Алгоритм приоритета записи - выбирает способ работы с параметром Приоритет записи

Есть три варианта алгоритма:

  • Входа нет, использовать свойства - приоритет задается свойством
  • Использовать вход «prio» - приоритет задается на входе блока prio
  • Использовать вход, показ. выход для след. блока - приоритет задается на входе блока prio, в блоке появляется дополнительный выход next_prio, на который выдается значение входного приоритета увеличенного на единицу.
_images/global_var_block1.png

Блок записи со входом prior

_images/global_var_block2.png

Блок записи с выходом next_prior

Вход приоритета можно использовать в том случае, если блоки записи располагаются в макросах и необходимо «вытащить» значение приоритета на его вход. Выход next_prio удобен при наличии нескольких блоков записи одной переменной, позволяет задать им последовательный порядок записи в переменную.

!!!Внимание На вход приоритета допускается устанавливать только константу.

Остальные свойства блока аналогичны блокам чтения/записи локальных переменных.

Если глобальная переменная имеет размер массива 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