ФБ RTM-Master
При задании маршрута следования RTM64-пакета через цепочку ретрансляторов, необходимо подать на входы RTM64-Master ФБ адреса всех ретрансляторов и виды связи, в которые они должны ретранслировать пакет данного ФБ (см. Приложение В. Виды связи протокола RTM64).
ФБ №35 «RTM64var Master»
Требования к типам входов и выходов и их количеству:
- Вход Enable - строго bit. Разрешает ФБ отправлять пакеты.
- Вход «CRC16» - дискретный. «1» указывает, что контрольную сумму в исходящем пакете следует рассчитывать по алгоритму CRC16. В противном случае, считается как простая сумма байт пакета. Тип контрольной суммы ответного пакета ФБ определит автоматически.
- Входы «адрес i2c-модуля», «внутренний адрес» и «кол-во байт» - целочисленные.
- Входы «RTM-адрес N» - адреса ретрансляторов и получателя пакета. Допустимы адреса в диапазоне от 1 до 4095, кроме адреса 126. Тип входа – uint16.
- Входы «Вид связи N» - значение (0x10/0x20/0x30/0x40/0x50/0x60 – см. Приложение В. Ви-ды связи протокола RTM64), обозначающее вид связи, который должен быть использован устройством при ретрансляции пакета. У получателя пакета вход «Вид связи» должен быть равен «0». Тип входа – uint8.
- Максимальный TimeOut ответа = 6350 мс.
- Внутренняя переменная «№ пакета» обязательна. Она нужна для идентификации пакета в очереди пакетов и корректного отрабатывания истечения тайм-аута ответа и переключе-ния нескольких интерфейсных ФБ на одном канале связи, её тип uint8.
ФБ №36 «RTM64 Master»
Требования к типам входов и выходов и их количеству:
- Вход Enable - строго bit. Разрешает ФБ отправлять пакеты.
- Входы «адрес i2c-модуля», «внутренний адрес» и «кол-во байт» - целочисленные.
- Входы «RTM-адрес N» и «RTM-адрес «кому»» - адреса и ретрансляторов и получателя пакета. Допустимы адреса в диапазоне от 1 до 4095, кроме адреса 126. Тип входа – int16.
- Входы «Вид связи N» и «Вид связи «кому»» - значение (0x10/0x20/0x30/0x40/0x50/0x60 – см. Приложение В. Виды связи протокола RTM64), обозначающее вид связи, который должен быть использован устройством при ретрансляции пакета. У получателя пакета вход «Вид связи» равен «0». Тип входа – uint8.
- Максимальный TimeOut ответа = 6350 мс.
- Внутренняя переменная «№ пакета» обязательна. Она нужна для идентификации пакета в очереди пакетов и корректного отрабатывания истечения тайм-аута ответа и переключения нескольких интерфейсных ФБ на одном канале связи, её тип uint8.
ФБ №105 «Запись сетевых переменных»
ФБ реализует межмодульный обмен данными между контроллерами по протоколу RTM-MW, а так же при наличии этой ФБ в конфигурации контроллера с настроенными некоторыми параметрами делает этот контроллер Мастером канала и запускает процесс регистрации подчиненных устройств слейвов.
- Вход Enabled - строго bit. Разрешает работу ФБ. Если Enabled = 0 то ФБ только передает свое значение входа Run в выход Run, для того чтобы при последовательном соединении нескольких ФБ процесс обмена не прерывался если у одной из ФБ вход Enabled = 0.
- Вход Run - строго bit. Вход Триггерный. При изменении состояния запускает процесс обмена данными – отправка запроса контроллеру. После отправки запроса ФБ ожидает ответа от контроллера некоторое установленное время (таймаут) для каждого канала таймаут установлен разный. Если был получен ответ или ответ за отведенное время не пришел логика ФБ считается выполненной и выход Run = 1, следовательно, на вход Run должен приходить сигнал с выхода Run предыдущей ФБ (при последовательном соединении нескольких ФБ) или с выхода Run текущей ФБ. Для начала запуска обмена данными на вход Run один раз нужно подать 1, дальше эта 1 на входе будет присутствовать с выхода Run текущей ФБ или предыдущей ФБ№103. Соединение нескольких ФБ последовательно будет более правильным, особенно если эти ФБ производят обмен по одному каналу, так как в те-кущий момент времени происходит обмен данными только с одним из контроллеров на данном канале.
- Вход «Канал» задает номер канала для межмодульного обмена.
- Вход «Количество СП» задает количество запрашиваемых сетевых переменных у контрол-лера.
- Вход «ID СПх» Задает ID сетевой переменной запрашиваемой у контроллера, где х чисто запрашиваемых сетевых переменных.
- Вход Выбор Адрес-1/Слот-0 - строго bit. Задает способ работы ФБ, если установлено «1» то считается что на входе Адрес/Слот записан адрес контроллера формате RTM64. Если «0» то номер слота (подробней описано ниже), контроллер работает в режиме Мастера канала и запускает процесс регистрации подчиненных устройств слейвов.
- Вход «Адрес/Слот» задает адрес контроллера в формате RTM64 или номер слота в зависимости от входа Выбор Адрес-1/Слот-0.
- Выход «Run» - строго bit. Равен «1» когда логика ФБ выполнена и был получен ответ или ответ за отведенное время не пришел. Должен быть соединен с входом Run.
- Выход «Exception» - строго bit. Информирует об ошибке в процессе обмена данными, неверные данные или ответ за время таймаута не пришел. Выход Триггерный.
- Выход «Ok» - строго bit. Информирует об успешном межмодульном обмене данными, когда равен «1».
- Выход Данные. Массив данных контроллера полученный в ходе успешного межмодульного обмена. Может быть в формате Uint8 или Uint16. Количество элементов массива задается самостоятельно путем сложения размера данных каждой запрашиваемой сетевой переменной контроллера.
Режим мастер канала
В этом режиме контроллер является мастером (главным) в канале который указан в ФБ. Главный контроллер занимается регистрацией контроллеров слейвов подключенных по данному каналу, задает слейвам адрес в формате RTM64 и хранит список зарегистрированных слейвов. Каждому зарегистрированному слейву соответствует своя сетевая переменная Slave1… Slave32 в адресном пространстве мастера, в ней храниться мак адрес слейва, црц сетевых переменных, канал и адрес слейва который назначил ему мастер. Процесс регистрации слейвов происходит в следующем порядке:
- Мастер 1 раз в минуту отправляет специальный пакет (содержащий текущее время мастера) в канал указанный в ФБ.
- Слейвы которые еще не зарегистрированы у Мастера подключенные к данному каналу принимают пакет, светодиод «Otvet’’ у слейва начинает часто мигать. Теперь текущее время слейва такое же как и у мастера.
- Один раз в минуту в определенный промежуток времени (для каждого типа канала свой) Мастер приостанавливает межмодульный обмен (Время тишины).
- Во время тишины не зарегистрированные слейвы отправляют запрос регистрации мастеру канала.
- Мастер на запрос о регистрации отправляет слейву его новый адрес в формате RTM64 и записывает информацию о нем в сетевую переменную Slave1… Slave32. Если пришел запрос о регистрации уже зарегистрированного ранее слейва то ему присвоится тот же адрес с которым он и был ранее зарегистрирован.
- Светодион «Otvet’’ у слейва перестает мигать.
Один слейв может быть зарегистрирован у мастера несколько раз, в зависимости от каналов к которым он подключен к мастеру. Слейв приняв специальный пакет ретранслирует его в другие каналы, тем самым если к слейву были подключены другие контроллеры то они тоже регистрируются у мастера и мастер присваивает им адрес.
Слот – это специальный номер который можно сопоставить с 1 из 32 слейвов. Это соответствие храниться в сетевой переменной MapTable (массив 32-х элементов типа Uint16) у мастера. Первые 2 слота зарезервироны. Допустим мы сопоставим к числу 3 первого слейва (Slave1), то тогда надо записать в сетевой перемен-ной MapTable в 3-м элементе массива число число 1, теперь используя в ФБ слот №3 мастер будет осуществлять межмодульный обмен с первым зарегистрированным слейвом.
ФБ №103 «Чтение сетевых переменных»
ФБ реализует возможность записи значений в сетевые переменные контроллеров слейвов (Подробней в описании ФБ103).
- Вход «Enabled» - строго bit. Разрешает работу ФБ. Если Enabled = 0 то ФБ только передает свое значение входа Run в выход OUT, для того чтобы при последовательном соединении нескольких ФБ процесс обмена не прерывался если у одной из ФБ вход Enabled = 0.
- Вход «Run» - строго bit. Вход Триггерный. При изменении состояния запускает процесс записи значения сетевой переменной контроллера Слейва. После отправки запроса на запись ФБ ожидает ответа от контроллера об успешной записи некоторое установленное время (таймаут) для каждого канала таймаут установлен разный. Если был получен не верный ответ или ответ за отведенное время не пришел логика ФБ считается выполненной и выход OUT = 1.
- Вход «№ Слота». Вход задает число которому сопоставлен слейв (подробней в описании ФБ103).
- Вход «Количество СП». Задает количество элементов(1 элемент = 1 тип данных Uint8,16,32) на запись в зависимости от типа входа - Данные.
- Вход «ID СП». Задает id сетевой переменной, в которую происходит запись данных.
- Вход «Данные». Задается массив данных, который надо записать в сетевую переменную слейва. Может быть в формате Uint8, Uint16, Uint32.
- Выход «OUT» - строго bit. Равен «1» когда логика ФБ выполнена и был получен ответ о успешной записи значения или ответ за отведенное время не пришел.
- Выход «Exception» - строго bit. Информирует об ошибке в процессе записи данных.
- Выход «Ok» - строго bit. Информирует об успешном процессе записи данных.
ФБ №123 «Чтение сетевых переменных по GUID»
ФБ реализует возможность чтения сетевых перемнных по GUID.
На вход подаются:
- Enable – Разешает работу ФБ
- IntervalRequest – Период опроса
- TimeOut – Таймаут ожидания ответа
- Channel – Канал
- NodeAddress – Адрес ретранслятора
- NodeChannel – Канал ретранслятора
Выходы:
- Status – Статус выполнения:
- «0» – ФБ в работе;
- «1» – было установлено соединение;
- «2» – ФБ освободило канал.
- PackNum – Номер пакета в очереди
- TimeOutCounter – Счетчик TimeOut
- IntervalTimer – Таймер интервала
- RestartCounter – Счетчик перезагрузок ФБ
Выход OutData – прочитанное значение.
Настройка маршрутизации происходит аналогично ФБ №110 «MODBUS-Модем».
ФБ №124 «Запись сетевых переменных по GUID»
ФБ реализует возможность записи сетевых перемнных по GUID.
На вход подаются:
- Enable – Разешает работу ФБ
- IntervalRequest – Период опроса
- TimeOut – Таймаут ожидания ответа
- Channel – Канал
- NodeAddress – Адрес ретранслятора
- NodeChannel – Канал ретранслятора
- GuidAddress – Адрес GUID
- GuidSize – Размер GUID
Выходы:
- Status – Статус выполнения:
- «0» – ФБ в работе;
- «1» – было установлено соединение;
- «2» – ФБ освободило канал.
- PackNum – Номер пакета в очереди
- TimeOutCounter – Счетчик TimeOut
- IntervalTimer – Таймер интервала
- RestartCounter – Счетчик перезагрузок ФБ
Настройка маршрутизации происходит аналогично ФБ №110 «MODBUS-Модем».