Глобальные переменные¶
Глобальные переменные работают почти так же, как и обычные переменные контроллера. Одно из отличий заключается в том, что глобальные переменные являются общими для всех макросов контроллера. Список глобальных переменных находится в Обозревателе проекта внутри шаблона контроллера и называется Глобальные переменные
. По двойному нажатию на этот элемент откроется окно Глобальные переменные :
В верхней части окна расположена панель инструментов со следующими кнопками:
Добавить
- добавление новой переменной (если выделена группа, новая переменная будет добавлена в нее);Добавить группу
- добавление группы переменных для удобства представления или хранения данных в виде структуры:Удалить
- удаляет переменную, если выбрана переменная, или группу со всеми переменными, входящими в нее;Переименовать
- команда устанавливает имя группе переменных по определенному шаблону, заданному в диалоговом окне (см. описание ниже);Свойства
- открытие диспетчера свойств для одной или нескольких выделенных переменных;Кнопка со стрелками
- служит для быстрого сворачивания/разворачивания групп.Импорт
- импорт переменных;Экспорт
- экспорт всех переменных;
Экспорт переменных производится в двух форматах: xml и csv. При экспорте в XML создается файл специального формата, который потом можно импортировать в список глобальных переменных другого шаблона. При таком импорте все переменные, хранящиеся в импортируемом файле будут добавлены к существующим переменным. При экспорте в формате csv создается тестовый файл, в котором в табличном виде представлены все переменные и свойства. Просмотр этого файла возможен в любом тестовом редакторе или в Excel. Импорт из формата csv невозможен.
Двойным щелчком мыши по строке с переменной (или группой) открывается окно Свойств переменной, где можно задать ее название, тип и т.д.:
Все свойства соответствуют таковым в обычной переменной, за одним исключением - поле Размер массива
. Переменная может быть массивом, если указать размер больше единицы. И тогда к ней можно будет обращаться по индексу в блоках чтения и записи. Также, размер массива можно устанавливать и для групп.
Для добавления глобальной переменной на сцену FBD-программы необходимо выделить элемент проекта Глобальные переменные
, затем перетащить нужную переменную из области в нижней части Обозревателя проекта в нужное место на сцене:
Блок чтения/записи глобальной переменной имеет следующие свойства:
- Показывать полный путь - к названию переменной внутри блока будет дописано имя группы, в которой она находится
- Алгоритм приоритета записи - выбирает способ работы с параметром Приоритет записи
Есть три варианта алгоритма:
- Входа нет, использовать свойства - приоритет задается свойством
- Использовать вход «prio» - приоритет задается на входе блока prio
- Использовать вход, показ. выход для след. блока - приоритет задается на входе блока prio, в блоке появляется дополнительный выход next_prio, на который выдается значение входного приоритета увеличенного на единицу.
Вход приоритета можно использовать в том случае, если блоки записи располагаются в макросах и необходимо «вытащить» значение приоритета на его вход. Выход next_prio удобен при наличии нескольких блоков записи одной переменной, позволяет задать им последовательный порядок записи в переменную.
!!!Внимание На вход приоритета допускается устанавливать только константу.
Остальные свойства блока аналогичны блокам чтения/записи локальных переменных.
Если глобальная переменная имеет размер массива 1, то блок чтения/записи будет таким же, как и для локальной переменной. Если установить значение размера массива больше единицы (или если переменная находится в группе со значением размера массива больше единицы), то у блока появляется набор входов, для выбора индекса. Эти входы обозначаются с0, с1 и т.д.
Многомерный массив возникает в том случае, если и у переменной и у группы, к которой эта переменная принадлежит, свойство Размер массива больше единицы. Вход c0 относится к индексу переменной, вход с1 - индекс группы.
Массивы и группы нужны для упрощения создания переменных для однотипных объектов. Возьмем, к примеру, несколько одинаковых контроллеров, у которых есть набор переменных: температура, влажность, содержание CO2. Контроллер, который является мастером для них должен собирать эту информацию и затем отображать на индикаторе или хранить для дальнейшего использования. С помощью групп и массивов это можно сделать следующим образом:
1. Создаем группу глобальных переменных;
2. Устанавливаем группе размер массива (например, 5):
3. Создаем схему для чтения данных из устройства и записи значений в глобальные переменные:
Переменная Address содержит адрес устройства. Этот адрес подается на блок чтения Modbus и на индексный вход блока записи переменной.
4. Теперь можно читать данные из этих переменных с помощью блока чтения, подавая на вход индекса константу или динамическое значение: