Приветы. Не думал никогда, что прилипну когда-нибудь с modbus'ом под TIA Portalo'ом, как вдруг..
Кто-нибудь сталкивался с проблемой, когда по опросу modbus RTU через modbus master, modbus_comm_load не идёт выполнение блоков (DONE) при их опросе? При том, что ошибок при старте опроса они не отдают. Но и ответов не отдают так же.
ИЗ железа: et200sp CPU, модуль CM PtP и несколько датчиков по rs485, modbus RTU.
Вызываю modbus_comm_load в стартап блоке, а дальше, в отдельном OB циклических прерываний (OB34) вызываю modbus MASTER, который последовательно, с шагом в цикл опрашивает разные, последовательно подключённые устройства.
Но раз первый опрос modbus_comm_load в блоке старта ПЛК не дал сигнал DONE, то и опрос не идёт. Есть кто-нибудь на опыте по этому вопросу? ХЭЛП
p.s. если схалтурить и засетить modbus_comm_load.DONE в единицу, и принудительно попытаться опросить modbus MASTER'ов, то DONE они так же отдавать не будут.
Посмотреть все изображения
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Передача по Modbus RTU через CM PtP (ET200SP CPU)
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 10 мар 2022, 16:21
- Имя: Антон
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 6 раз
Передача по Modbus RTU через CM PtP (ET200SP CPU)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
Передача по Modbus RTU через CM PtP (ET200SP CPU)
У меня блок "Modbus_Comm_Load" через OB100 не захотел работать, перекинул в FB с запуском через FirstScan и поехал.
Кстати было тоже на S7-1512SP + CM PtP.
Не забываем, что для "Modbus_Comm_Load" надо в его IDB прописывать Mode в Static переменных.
P.S. Раньше с блоком "MB_COMM_LOAD" было проще, запускался везде и без дополнительных параметров в IDB.
Кстати было тоже на S7-1512SP + CM PtP.
Не забываем, что для "Modbus_Comm_Load" надо в его IDB прописывать Mode в Static переменных.
P.S. Раньше с блоком "MB_COMM_LOAD" было проще, запускался везде и без дополнительных параметров в IDB.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 10 мар 2022, 16:21
- Имя: Антон
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 6 раз
Передача по Modbus RTU через CM PtP (ET200SP CPU)
Завёл Modbus_Comm_Load в FB блок, сделал его экземпляром в Static, указал ему в параметре MODE - 4, rs485 2-wire. До кучи по такому же принципу создал экземпляр в другом FB для Modbus_Master. Оба FB вызываю в блоке циклических прерываний.M3f писал(а): ↑17 авг 2022, 14:32 У меня блок "Modbus_Comm_Load" через OB100 не захотел работать, перекинул в FB с запуском через FirstScan и поехал.
Кстати было тоже на S7-1512SP + CM PtP.
Не забываем, что для "Modbus_Comm_Load" надо в его IDB прописывать Mode в Static переменных.
P.S. Раньше с блоком "MB_COMM_LOAD" было проще, запускался везде и без дополнительных параметров в IDB.
Но, к сожалению, это ни к чему не привело - Modbus_Comm_Load так же не взводит выходной параметр DONE, и весь последующий опрос Modbus_Master'ов не идёт...
До кучи, теперь STATE Modbus_Comm_Load в состоянии 7000, что, я так понимаю, является ошибкой, судя по описанию мануала. (раньше на нём был State 7001)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
Передача по Modbus RTU через CM PtP (ET200SP CPU)
fl4shback, посмотрел ваши блоки, у вас проблема в том, что ваш "Modbus_Master" требует постоянного TRUE от "Modbus_Comm_Load", а переменная DONE для "Modbus_Comm_Load" весит в TRUE всего один цикл после последнего запроса.
Состояние 16#7000 для "Modbus_Comm_Load" это не ошибка, а состояние (ошибки начинаются с 16#8000) и говорит о том, что блок сейчас ничего не делает так как REQ := 0. Состояния 16#7001-16#7002 это также статусы выполнения блока.
Состояние 16#7000 для "Modbus_Comm_Load" это не ошибка, а состояние (ошибки начинаются с 16#8000) и говорит о том, что блок сейчас ничего не делает так как REQ := 0. Состояния 16#7001-16#7002 это также статусы выполнения блока.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- здесь недавно
- Сообщения: 15
- Зарегистрирован: 10 мар 2022, 16:21
- Имя: Антон
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 6 раз
Передача по Modbus RTU через CM PtP (ET200SP CPU)
Да, получилось! Спасибо огромное. Поставил постоянную запись на REQ Modbus_Comm_Load'a, сделал время цикла для его OB программных прерываний чуть больше, чем для OB Modbus_Master, и всё заработало!M3f писал(а): ↑18 авг 2022, 13:19 fl4shback, посмотрел ваши блоки, у вас проблема в том, что ваш "Modbus_Master" требует постоянного TRUE от "Modbus_Comm_Load", а переменная DONE для "Modbus_Comm_Load" весит в TRUE всего один цикл после последнего запроса.
Состояние 16#7000 для "Modbus_Comm_Load" это не ошибка, а состояние (ошибки начинаются с 16#8000) и говорит о том, что блок сейчас ничего не делает так как REQ := 0. Состояния 16#7001-16#7002 это также статусы выполнения блока.
От души!
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
Передача по Modbus RTU через CM PtP (ET200SP CPU)
fl4shback, хорошо что получилось, но не стоит постоянно вызывать "Modbus_Comm_Load". Данный блок вызывается один раз при инициализации программы или, если требуется, при реинициализация параметров порта.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070