PDA

Просмотр полной версии : Потеря связи по Modbus



Deoxes
21.10.2014, 12:21
Подключил влагомер по модбасу к СПК107, всё работает нормально, данные считываються. Но заметил что в Кодесисе на странице модбас слейв где прописаны адреса по которым я беру данные в прибора где то раз в 10 сек проскакивает ошибка "Шина не подключена". Как можно учесть етот фактор что бы во время такой ошибки данные с прибора не брались?

Yegor
21.10.2014, 13:26
Попробуйте статус шины в это время посмотреть (внизу на вкладке привязки регистров, см. скриншот).

Deoxes
21.10.2014, 13:50
Не успеваю, ошибка исчезает за 0.5 секунды. Раз в 10сек такое происходит, ничего не рассмотреть в ето время. Я вот думаю как мне не использовать данные от устройства во время такой быстрой ошибки. Значение принимает вид 2.14Е13 что то типа такого.

capzap
21.10.2014, 13:55
А зачем Вам успевать, это плк должен следить если xError ИСТИНА то полученное значение не обрабатываем

Deoxes
22.10.2014, 10:14
"xError" ето и есть ошибка потери связи или вы так образно?

capzap
22.10.2014, 13:19
в третьем кдс, х обозначает булевое значение,оно может только сказать что блок обработал ошибку, теоретически любую, так же у них есть параметр отсылающий к бибке cmperror, в которой прописаны все встречающиеся ошибки

Deoxes
22.10.2014, 14:47
Где искать мою ошибку? Я и сам понял как сделать то что хотел, но проблема в том как написать ошибку.

Мурат Ахриев
22.10.2014, 15:42
"Имя слейв".xError - если нет связи по сети либо ошибка, данная переменная будет "TRUE"

Deoxes
23.10.2014, 16:34
IF Modbus_Slave_COM_Port.xError=TRUE THEN F1:=0;
END_IF
Modbus_Slave_COM_Port.xError всегда в состоянии FALSE даже при ошибке: "Шина не подключена".

capzap
23.10.2014, 16:51
может не у слейва надо искать ошибку, а у мастера

Deoxes
24.10.2014, 10:28
мастер.xError попробовал но ничего не получилось. Разбивает на переменные мастер и еррор

Мурат Ахриев
24.10.2014, 11:17
Имеется возможность прислать проект на проверку (можно в личные сообщения)?

Иван2
24.10.2014, 23:11
Добрый вечер!

Такая же проблема - только периодически отваливается опрос двух модулей МВА8 и одного МВУ8. Проверка .xError не ловит ошибку, хотя модули не опрашиваются. Время работы без сбоев от 5 до 50 минут.

Как можно оценить состояние шины? узнать ошибку или причину сбоя?

Мурат Ахриев
28.10.2014, 13:03
Пример пере подключения:




VAR
Blink_01: BLINK;
END_VAR


IF Modbus_Slave_COM_Port.xError THEN //Перезапуск подключения по Modbus
Blink_01(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#10MS);
Modbus_Slave_COM_Port.xReset:= Blink_01.OUT;
END_IF

Иван2
28.10.2014, 17:19
А зачем здесь генератор импульсов BLINK?
почему невозможно сделать так:
Modbus_Slave_COM_Port.xReset:=TRUE?

Nts
29.10.2014, 10:37
для импульсного сброса, но перед сбросом нужно остановить мастера. после ухода всех ошибок заново сбросить, а потом запустить мастера.

Иван2
29.10.2014, 11:46
спасибо!
а в случае, если мастер опрашивает несколько слейвов? нужно каждый из них перезапускать после ресета?

Nts
29.10.2014, 12:35
нет,достаточно те,которые с ошибкой были.

Иван2
29.10.2014, 14:19
Nts, Спасибо за пояснение