Режим мастера ------------- Для работы порта в режиме мастера необходимо установить соответствующую настройку порта контроллера. После этого на схему можно устанавливать блоки, предназначенные для чтения и записи переменных подчиненных устройств, подключенных к соответствующему каналу связи. Для формирования запросов используется блок BACnet. .. figure:: image/bacnet/bacnet_master1.png :align: center Добавление блока BACnet Внешний вид блока и его свойства показаны на рисунке: .. figure:: image/bacnet/bacnet_master2.png :align: center Свойства блока BACnet Вход **en** задает активность блока: если установлено 1, команда будет выполняться, иначе – порт будет передан другому блоку. Если свойство блока **Удерживать en** не установлено, вход должен удерживаться в 1 в течение многих шагов выполнения схемы, чтобы было достаточно времени для выполнения всех этапов, т.е. до появления 1 на **rdy** или ненулевого **err**. Для ускорения срабатывания активных блоков рекомендуется устанавливать 0 на входы **en** блоков, которые выполнять не требуется. Вход **dev** – идентификатор подчиненного устройства BACnet, которому будет производиться запрос. Выход **rdy** устанавливается в 1 в случае успешного выполнения операции записи. В случае сбоя записи на выходе **err** выставляется код ошибки. Значения на выходах **rdy** и **err** устанавливаются только на один шаг программы (одиночное значение), поэтому для их фиксации необходимо использовать локальные переменные. В большинстве шагов выходы **rdy** и **err** равны 0 – это значит, что либо порт устройства занят другим блоком или порт находится находится в процессе выполнения запроса. Остальные входы и выходы создаются в зависимости от конфигурации блока, которая настраивается в свойстве **Конфигурация**. Свойство **Функция** выбирает режим работы блока: * **Read Property Multiple** - чтение множества свойств * **Write Property Multiple** - запись множества свойств * **Read Property Single** - чтение одного свойства * **Write Property Single** - запись одного свойства Свойство **Конфигурация** определяет параметры запроса блока. Редактирование этого свойства производится в специальном диалоговом окне. .. |folder_add| image:: image/ico/folder_add.png .. |add| image:: image/ico/add.png Конфигурация свойств блока ^^^^^^^^^^^^^^^^^^^^^^^^^^ Конфигурация блока позволяет задавать состав объектов и их свойств, которые читаются или пишутся блоком. Добавление объектов производится с помощью кнопки |folder_add| на панели инструментов, добавление свойств к объектам - с помощью кнопки |add|. Свойства добавляются в текущий выделенный объект. Настройки объектов ================== Блок BACnet работает с массивом объектов, которые реализованы в подчиненном устройстве. У каждого объекта может быть набор свойств. Свойство Present Value (id = 85) всегда присутствует у объекта по умолчанию, однако при необходимости его можно не использовать, сняв соответствующий флаг в настройках. При создании нового блока в нем присутствует один объект, у которого свойство Present Value активно. Настройка блока заключается в определении состава объектов и их свойств, а также настройке названий входов/выходов для чтения/записи параметров. .. figure:: image/bacnet/bacnet_master3.png :align: center Настройки объекта конфигурации блока BACnet **Тип объекта** - устанавливается тип данных для свойства объекта **Present Value**. Доступны следующие варианты: * Значение аналоговое(Analog Value) * Значение логическое(Binary Value) * Значение знаковое целое(Integer Value) * Значение беззнаковое целое(Positive integer Value) * Произвольный тип - тип данных указывается значением из стандартного перечисления типов BACnet В группе **Идентификатор объектов** задаётся идентификатор объекта в сети BACnet. Значение можно установить в поле **Значение** или указать имя входа блока в поле **Имя входа**, для установки значения идентификатора в FBD схеме. При работе с подчиненными устройствами **Zentec** идентификатором объекта является идентификатор сетевой переменной, который настраивается в разделе :ref:`BACnet_slave`. В группе **Свойство "Значение"** производится настройка значения объекта - Present Value. Если флаг группы установлен, то блок будет производить чтение/запись этого свойства объекта. По аналогии с идентификатором объекта можно указать имя входа/выхода блока, которое будет использоваться для записи или чтения свойства. Имя указывается в поле **Имя входа/выхода**. В случае, если имя не указано, оно будет создано автоматически и будет иметь вид **Piv0_val**. В поле **Значение для записи** указывается значение по умолчанию, которое устанавливается на входе для записи. Если флаг группы не установлен, то чтение/запись значения блоком не производится, объект используется только для группировки свойств. Поле **Тип данных** используется для указания типа данных значения, в том случае, если для объекта выбран произвольный тип данных. В группе **Индекс** расположены настройки для свойства, которое представляет собой массив. Индекс элемента массива указывается константой в поле **Значение** или на входе блока, название которого указывается в поле **Имя входа**. **Приоритет при записи** - это группа настроек для задания приоритета записи. Значение указывается константой в поле **Значение** или на входе блока, название которого указывается в поле **Имя входа**. На примере ниже показана конфигурация блока и соответствующий вид блока для нее. .. figure:: image/bacnet/bacnet_master_cnfg1.png :align: center Пример настройки конфигурации .. figure:: image/bacnet/bacnet_master_block.png :align: center Блок чтения значения объекта .. figure:: image/bacnet/bacnet_master_block2.png :align: center Блок записи значения объекта На этом примере в конфигурации блока добавлен один объект с типом "Значение знаковое целое". Идентификатор объекта задается с помощью входа "Объект1", значение по умолчанию - 25. Свойство объекта "Значение" выводится на ножку блока с именем "Value", значение по умолчанию для записи - 0. Значение является массивом, индекс массива устанавливается на входе с именем "Index", значение по умолчанию - 1. Настройки свойств ================= .. figure:: image/bacnet/bacnet_master4.png :align: center Настройки свойств объекта блока BACnet Настройки свойств аналогичны настройкам объекта. В отличии от объекта, где присутствует свойство Present Value с идентификатором 85, идентификатор настраиваемого свойства нужно задать вручную. Он устанавливается в группе настроек **Идентификатор свойств** с помощью константного значения или с помощью входа блока на FBD схеме. Имя входа задается в соответствующем поле **Имя входа**. Ниже приведен пример конфигурации и вид блока для чтения свойств объекта .. figure:: image/bacnet/bacnet_master_cnfg2.png :align: center Пример настройки конфигурации .. figure:: image/bacnet/bacnet_master_block3.png :align: center Блок чтения значений свойств .. figure:: image/bacnet/bacnet_master_block4.png :align: center Блок записи значений свойств В этом примере свойство **Present Value** для объекта отключено, вместо этого добавлены два свойства с идентификаторами 1(Свойство1) и 2(Свойство2). Значение свойства читается/записывается с помощью ножки блока с соответствующим именем **Параметр1** или **Параметр2**.