1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Передача по Modbus RTU через CM PtP (ET200SP CPU)

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Ответить
Аватара пользователя

Автор темы
fl4shback
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 10 мар 2022, 16:21
Имя: Антон
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 6 раз

Передача по Modbus RTU через CM PtP (ET200SP CPU)

Сообщение fl4shback »

Приветы. Не думал никогда, что прилипну когда-нибудь с 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 они так же отдавать не будут.
Посмотреть все изображения
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

M3f
не первый раз у нас
не первый раз у нас
Сообщения: 377
Зарегистрирован: 31 янв 2017, 11:08
Имя: Николай
Благодарил (а): 8 раз
Поблагодарили: 116 раз

Передача по Modbus RTU через CM PtP (ET200SP CPU)

Сообщение M3f »

У меня блок "Modbus_Comm_Load" через OB100 не захотел работать, перекинул в FB с запуском через FirstScan и поехал.
Кстати было тоже на 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
Аватара пользователя

Автор темы
fl4shback
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 10 мар 2022, 16:21
Имя: Антон
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 6 раз

Передача по Modbus RTU через CM PtP (ET200SP CPU)

Сообщение fl4shback »

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 в FB блок, сделал его экземпляром в Static, указал ему в параметре MODE - 4, rs485 2-wire. До кучи по такому же принципу создал экземпляр в другом FB для Modbus_Master. Оба FB вызываю в блоке циклических прерываний.
Но, к сожалению, это ни к чему не привело - Modbus_Comm_Load так же не взводит выходной параметр DONE, и весь последующий опрос Modbus_Master'ов не идёт...

До кучи, теперь STATE Modbus_Comm_Load в состоянии 7000, что, я так понимаю, является ошибкой, судя по описанию мануала. (раньше на нём был State 7001)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

M3f
не первый раз у нас
не первый раз у нас
Сообщения: 377
Зарегистрирован: 31 янв 2017, 11:08
Имя: Николай
Благодарил (а): 8 раз
Поблагодарили: 116 раз

Передача по Modbus RTU через CM PtP (ET200SP CPU)

Сообщение M3f »

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 это также статусы выполнения блока.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
Аватара пользователя

Автор темы
fl4shback
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 10 мар 2022, 16:21
Имя: Антон
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 6 раз

Передача по Modbus RTU через CM PtP (ET200SP CPU)

Сообщение fl4shback »

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 это также статусы выполнения блока.
Да, получилось! Спасибо огромное. Поставил постоянную запись на REQ Modbus_Comm_Load'a, сделал время цикла для его OB программных прерываний чуть больше, чем для OB Modbus_Master, и всё заработало!
От души!
Аватара пользователя

M3f
не первый раз у нас
не первый раз у нас
Сообщения: 377
Зарегистрирован: 31 янв 2017, 11:08
Имя: Николай
Благодарил (а): 8 раз
Поблагодарили: 116 раз

Передача по Modbus RTU через CM PtP (ET200SP CPU)

Сообщение M3f »

fl4shback, хорошо что получилось, но не стоит постоянно вызывать "Modbus_Comm_Load". Данный блок вызывается один раз при инициализации программы или, если требуется, при реинициализация параметров порта.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
Ответить

Вернуться в «Интерфейсы, протоколы, связь»