WDSlave — ответ на проверку связи
WDSlave отвечает на запросы WDMaster и следит, продолжают ли они поступать. Полученное контрольное число он возвращает отправителю. Если число перестало меняться, компонент сообщает о потере связи.
Используйте 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. Отдельных команд оператора у компонента нет.