Режим подчиненного ------------------ Чтобы обмениваться данными с подчиненным, мастер (например, ОРС-сервер) должен обращаться к его карте памяти. Карта памяти создается автоматически, во время компиляции проекта. Компилятор берет данные для карты из локальных переменных, расположенных в схемах проекта. Для того, чтобы переменная попала в карту памяти, необходимо установить ей соответствующую опцию, указать тип доступа и адрес: .. figure:: ../../zwb/lib/variable_property.png :align: center Если установлены права ``Чтение``, то эта переменная может только читаться функциями, зависящими от типа данных переменных. Если установлены права ``Чтение/Запись``, то переменная может и писаться и читаться. В Таблице приведены функции, Modbus по которым происходит доступ к переменным в зависимости от их типа: +--------------+------------------------+---------------------------+ |**Тип данных**| **Чтение** | **Запись** | +--------------+------------------------+---------------------------+ | Логический |Read Coil Read |Write Single Coil | | | | | | |Discrete Inputs |Write Multiple Coils | +--------------+------------------------+---------------------------+ | Числовой |Read Holding Registers |Write Single Register | | | | | | |Read Input Registers |Write Multiple registers | +--------------+------------------------+---------------------------+ Установка адресов для переменных производится в окне редактирования списка сетевых переменных. Этот список генерируется автоматически для контроллера. В него входят все локальные переменные основной FBD-программы и и входящих в неё макросхем у которых установлено свойство "Сетевой доступ": .. figure:: ../../zwb/lib/Modbus2.png :align: center В этом окне можно установить следующие параметры: * ``Адрес`` - Modbus-адрес переменной. Адрес можно устанавливать как вручную, так и с помощью команды автонумерации. Если адреса переменных конфликтуют, то эти переменные будут выделены красным цветом; * ``Тип данных`` - тип данных используемой переменной; * ``Доступ`` - уровень доступа. Этот параметр можно изменить, то есть уровень доступа можно понизить, по отношению уровню, заданного в исходной переменной; * ``Блокировка`` - флаг, который блокирует автонумерацию адресов; * ``Комментарий`` - описание переменной. При нажатии на кнопку :guilabel:`Автонумерация` производится автоматическая раздача адресов. Переменные, у которых установлен флаг блокировки, пропускаются. Раздача адресов производится с учетом типов данных переменных. Например 4-х байтовые переменные занимаю 2 регистра, соответственно адресация будет меняться с шагом 2. В случае, если при редактировании программы некоторые макроблоки, содержащие сетевые переменные, будут удалены, ссылки на них в списке не пропадут, а будут помечены как невалидные (будут выделены желтым цветом). При проверки программы, при симуляции и программировании в устройство эти переменные не будут учитываться. Для удаления таких переменных необходимо нажать кнопку :guilabel:`Очистить`: .. figure:: ../../zwb/lib/Modbus3.png :align: center