ФБ №105 «Запись сетевых переменных»
ФБ реализует межмодульный обмен данными между контроллерами по протоколу RTM-MW, а так же при наличии этой ФБ в конфигурации контроллера с настроенными некоторыми параметрами делает этот контроллер Мастером канала и запускает процесс регистрации подчиненных устройств слейвов.
Режим мастер канала
В этом режиме контроллер является мастером (главным) в канале который указан в ФБ. Главный контроллер занимается регистрацией контроллеров слейвов подключенных по данному каналу, задает слейвам адрес в формате RTM64 и хранит список зарегистрированных слейвов. Каждому зарегистрированному слейву соответствует своя сетевая переменная Slave1… Slave32 в адресном пространстве мастера, в ней храниться мак адрес слейва, црц сетевых переменных, канал и адрес слейва который назначил ему мастер. Процесс регистрации слейвов происходит в следующем порядке:
Один слейв может быть зарегистрирован у мастера несколько раз, в зависимости от каналов к которым он подключен к мастеру. Слейв приняв специальный пакет ретранслирует его в другие каналы, тем самым если к слейву были подключены другие контроллеры то они тоже регистрируются у мастера и мастер присваивает им адрес.
Слот – это специальный номер который можно сопоставить с 1 из 32 слейвов. Это соответствие храниться в сетевой переменной MapTable (массив 32-х элементов типа Uint16) у мастера. Первые 2 слота зарезервироны. Допустим мы сопоставим к числу 3 первого слейва (Slave1), то тогда надо записать в сетевой перемен-ной MapTable в 3-м элементе массива число число 1, теперь используя в ФБ слот №3 мастер будет осуществлять межмодульный обмен с первым зарегистрированным слейвом.
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enabled | bit | Разрешение работы |
| Вход | Run | bit | Триггерный запуск обмена |
| Вход | NSlave | Номер слейва (слота) | |
| Вход | SizeSp | Размер (количество) сетевых переменных | |
| Вход | IDsp | ID сетевой переменной | |
| Вход | SPn | Записываемые значения сетевых переменных | |
| Выход | OUT | bit | «1» — логика выполнена |
| Выход | Exception | bit | Ошибка обмена |
| Выход | Ok | bit | Успешный обмен |
ФБ №103 «Чтение сетевых переменных»
ФБ реализует возможность записи значений в сетевые переменные контроллеров слейвов (Подробней в описании ФБ103).
| Вх/Вых | Имя | Тип | Назначение |
|---|---|---|---|
| Вход | Enabled | bit | «0» — только передача Run на выход |
| Вход | Run | bit | Триггерный; запуск обмена |
| Вход | Канал | Номер канала межмодульного обмена | |
| Вход | Выбор Адрес-1/Слот-0 | bit | «1» — на входе Адрес/Слот адрес RTM64; «0» — номер слота |
| Вход | Адрес/Слот | Адрес контроллера в формате RTM64 или номер слота | |
| Вход | Количество СП | Количество запрашиваемых сетевых переменных | |
| Вход | ID СП 1…ID СП 32 | ID запрашиваемых сетевых переменных | |
| Выход | Run | bit | «1» — выполнено; соединяется со входом Run следующей ФБ |
| Выход | Exception | bit | Триггерный; ошибка/таймаут |
| Выход | Ok | bit | Успешный межмодульный обмен |
| Выход | Данные | массив Uint8/Uint16 | Размер = сумма размеров запрошенных СП |