MetaKit Руководство по компонентам

WDSlave — ответ на проверку связи

WDSlave отвечает на запросы WDMaster и следит, продолжают ли они поступать. Полученное контрольное число он возвращает отправителю. Если число перестало меняться, компонент сообщает о потере связи.

Используйте WDSlave на ответной стороне обмена между двумя устройствами. На стороне, которая начинает проверку, нужен WDMaster.

Состав и связи

WDSlave: WDSlave возвращает принятое число. Он контролирует поступление запросов, а WDMaster на другой стороне проверяет получение ответа.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

WDSlave возвращает принятое число. Он контролирует поступление запросов, а WDMaster на другой стороне проверяет получение ответа.

Первое подключение

Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.

Главный шкаф проверяет связь со шкафом котла. В главном шкафу работает WDMaster, а в шкафу котла установим WDSlave.

1. Подключите запрос и ответ

Параметр Значение для примера Что означает
WDSlaveId MainLink ID проверки
WDSlaveComment Связь с главным шкафом Название связи
WDSlaveIn wBoilerRequest Число, полученное от главного шкафа
WDSlaveOut wBoilerReply Число, возвращаемое главному шкафу

Обе переменные имеют тип WORD. Передачу wBoilerRequest в шкаф котла и wBoilerReply обратно нужно настроить в обмене между шкафами.

WDSlave сам копирует запрос в ответ. Например, получил 10 — вернул 10; получил 11 — вернул 11.

2. Задайте допустимый перерыв

Настройка Значение для примера
Conf.MainLink_WDSlave_diTimeout 5

Если WDMaster отправляет новое число раз в секунду, такая настройка позволяет переждать краткий перерыв в обмене. Если число не меняется 5 секунд, связь считается потерянной.

3. Используйте состояние связи

MainLink_WDSlave_Inst.out_bConn = TRUE означает, что от главного шкафа поступают изменения контрольного числа.

Условие NOT MainLink_WDSlave_Inst.out_bConn можно передать в SignalsFilter как причину «Нет связи с главным шкафом». Его обработанный выход используется для нужного предупреждения или запрета работы.

Полный пример подключения обоих шкафов приведён в описании WDMaster.

Пуск, потеря и восстановление связи

Ситуация Результат
Проверка запущена, изменение числа ещё не получено Связь ещё не подтверждена
Получено изменение контрольного числа Связь подтверждается
Число меняется раньше окончания допустимого перерыва Связь сохраняется
Число не меняется всё заданное время Связь считается потерянной
После перерыва снова получено изменение Связь восстанавливается автоматически

WDSlave проверяет поступление запросов к себе. Дошёл ли ответ обратно до главного шкафа, проверяет WDMaster на той стороне.

Параметры компонента — Params

Параметр По умолчанию Назначение
$WDSlave Ведомый WatchDog Название группы параметров
WDSlaveId _ID_ ID проверки; для MainLink создаётся MainLink_WDSlave_Inst
WDSlaveComment Комментарий Название проверяемой связи
WDSlaveIn _WD_IN_ Контрольное число от WDMaster, WORD
WDSlaveOut _WD_OUT_ Переменная WORD для ответного числа
WDSlaveConf Пусто ID набора настроек. Если пусто, используется WDSlaveId
WDSlaveConfComment Пусто Название набора настроек. Если пусто, используются WDSlaveComment и $WDSlave
WDSlaveConnMsg Связь установлена Подпись состояния связи; на проверку не влияет

Настройка во время работы — Conf

Имя приведено для WDSlaveId = MainLink и пустого WDSlaveConf.

Настройка Тип Начальное значение Назначение
Conf.MainLink_WDSlave_diTimeout DINT 5 Сколько секунд допускается отсутствие изменений контрольного числа

Задавайте время больше периода отправки WDMaster, с запасом на задержки обмена. У WDSlave нет собственного периода: ответ копируется из полученного числа при каждом выполнении компонента.

Нулевое или отрицательное время не отключает контроль. При такой настройке связь снимается уже в первом цикле ПЛК без изменения входного числа.

Для одинакового времени ожидания у нескольких WDSlave задайте общий WDSlaveConf. Например, при WDSlaveConf = CabinetLinks настройка называется Conf.CabinetLinks_WDSlave_diTimeout. Каждая связь проверяется отдельно.

Выходы компонента

Выход для примера Тип Что означает
MainLink_WDSlave_Inst.out_wSlaveWD WORD Копия полученного числа; в примере записывается в wBoilerReply
MainLink_WDSlave_Inst.out_bConn BOOL От ведущей стороны поступают изменения, допустимый перерыв не превышен
MainLink_WDSlave_Inst.out_bSync BOOL В этом цикле ПЛК обнаружено изменение входного числа

out_bSync отмечает каждое изменение. Это не постоянно включённый признак связи — для него используется out_bConn.

При первом выполнении входное число сравнивается с нулём. Поэтому ненулевое число сразу считается первым изменением, а неизменный ноль ещё не подтверждает связь.

Для панели создаются View.MainLink_WDSlave_Inst_out_bConn и View.MainLink_WDSlave_Inst_out_bSync. Отдельных команд оператора у компонента нет.