PDA

Просмотр полной версии : ПЛК 150. Как поймать ошибку связи с приборами modbus slave?



Yury Evgenev
21.05.2018, 15:25
Приветствую!
В модуле Modbus Master есть 2 переменные:
Last address и Last Error
Кто знает, какие у этих переменных временные диаграммы?
Имею ввиду: при отключенном приборе (ну... МК110) эти переменные изменятся одновременно или сначала изменится Last address, а через некоторое время Last Error?
Может ли получиться неопределённость в данной ситуации?

Зинько Владислав
21.05.2018, 17:31
Приветствую!
В модуле Modbus Master есть 2 переменные:
Last address и Last Error
Кто знает, какие у этих переменных временные диаграммы?
Имею ввиду: при отключенном приборе (ну... МК110) эти переменные изменятся одновременно или сначала изменится Last address, а через некоторое время Last Error?
Может ли получиться неопределённость в данной ситуации?

Добрый день!

При изменении переменной Last address значение Last Error первым делом обнуляется.

Если мы говорим об ошибке обрыва связи (81), то Last Error покажет ошибку только после тайм-аута. При этом Last address не изменяется, а "ожидает" завершения работы по определению значения Last Error.

Время ожидания восстановления связи устанавливается в настройках (см. скрин ниже)

Таким образом, никакой неопределенности здесь нет.

37357

Yury Evgenev
22.05.2018, 08:30
Спасибо за отклик.
То есть получается некоторая неопределённость: при срабатывании ошибки по обрыву связи на следующий цикл опроса эта ошибка обнулится.
Пытаюсь придумать алгоритм контроля сети:


(* если адрес тестируемого прибора опрошен*)
IF "Last address" = deviceAddr THEN
(* связь восстановлена / соединение есть *)
IF Last Error = 0 THEN
deviceConnection:=TRUE;
ELSE
(* если опрос прошёл с ошибкой *)
deviceConnection:=FALSE;
END_IF;
END_IF;


Подскажите, как можно сделать так, чтобы переменная deviceConnection обнулялась при обрыве связи и становилась TRUE только после появления (удачного соединения)?

UPD


При этом Last address не изменяется, а "ожидает" завершения работы по определению значения Last Error.

Вроде бы понял. То есть сначала измениться Last Address и только потом Last Error. То есть изменение происходит при переключении опроса на следующий прибор.
Если так, то всё должно работать. Попробую проверить.