- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
modbus rtu
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 30 янв 2024, 18:12
- Имя: Сергей
- Страна: Россия
- город/регион: Челябинск
modbus rtu
Добрый вечер! Опрашиваем 10 slave устройств , в регистрах наших устройств нету регистра отвечающего за СВЯЗЬ с устройством, при обрыве связи, все данные в блоках данных сохраняются в тех же состояниях в которых они были до обрыва связи, внимание вопрос, можно ли как то с помощью блока "MB_MASTER_DB" выявлять обрыв связи? Сразу скажу, что опыта в связке modbus rtu - tia portal(seiemns) мало. Заранее спасибо!
-
- не первый раз у нас
- Сообщения: 318
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 16 раз
- Поблагодарили: 72 раза
modbus rtu
pocheto, у MB_MASTER есть выходная переменная ERROR, она установится в true при ошибке связи
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 30 янв 2024, 18:12
- Имя: Сергей
- Страна: Россия
- город/регион: Челябинск
modbus rtu
А что делать если при обрыве связи ERROR не меняет свой статус? Как буд то бы ошибка не возникает вообще. Если я правильно понимаю то переменная DONE меняет свое значение в true при выполнение блока, я вот думаю может её использовать? Что то примерное никидал.
//Связь true
IF "Mdone" AND "Clock_1Hz" AND NOT "modbus".takt THEN
"modbus".x := "modbus".x + 1;
"modbus".s := 1;//Связь есть
ELSIF
"modbus".x = 3 THEN
"modbus".x := 0;
"modbus".f := 0;
END_IF;
//Связь false
IF NOT "Mdone" AND "Clock_1Hz" AND NOT "modbus".takt THEN
"modbus".f := "modbus".f + 1;
IF "modbus".f = 15 THEN
"modbus".s := 0;//Отсутствие связи
"modbus".f := 0;
END_IF;
END_IF;
"modbus".takt := "Clock_1Hz";
-
- не первый раз у нас
- Сообщения: 306
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 30 янв 2024, 18:12
- Имя: Сергей
- Страна: Россия
- город/регион: Челябинск
modbus rtu
Александр, спасибо! Пока что использовал свой вариант, всё работает, как говориться будем посмотреть.
-
- не первый раз у нас
- Сообщения: 306
- Зарегистрирован: 26 май 2022, 12:10
- Имя: Александр
- Страна: Россия
- город/регион: lipetsk
- Благодарил (а): 5 раз
- Поблагодарили: 28 раз