Всем добрый день!
Подготовил проект в Flprog для организации связи по Modbus RTU между Arduino nano (slave) через автоматический преобразователь XY-017 (без PE/DE пина) к Овен ПЛК (master) для управления шаговым двигателем на клапане приточной вентиляции. RX/TX на Arduino используются отличные от предустановленных на плате. В данном конкретном случае это пины 8 и 9. В связи с чем в Flprog используется serial.
Проблема заключается в том, что независимо от указанного slave адреса в Flprog (сейчас это 86) при проверке соединения с Arduino, используя QModBus (сейчас, к сожалению, не могу приложить скриншот) slave выходит на связь и исправно выполняет команды исключительно по адресу 1. При выборе любого другого адреса соединение отсутствует.
Не могли бы, пожалуйста, подсказать, в чем может заключаться проблема? Описание библиотеки universalModbus.h читал, не вижу, чтобы в моем скетче были какие-либо противоречия с описанной в примере библиотеки логикой.
Скетч и проект Flprog во вложении.
Спасибо за помощь!
Не "изменяется" Slave адрес.
-
- Рядовой
- Сообщения: 77
- Зарегистрирован: 28 окт 2024, 04:02
- Откуда: Белогорск
- Имя: Илья
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: Не "изменяется" Slave адрес.
Если slave выходит на связь и исправно выполняет команды исключительно по адресу 1 . то его Адрес 1. (*_*) откуда Вы взяли 86?
Re: Не "изменяется" Slave адрес.
Я принудительно задаю slave адрес в flprog = 86, т.к. использую большое количество устройств. Можете убедиться в этом, посмотрев приложенный скетч и проект. Но arduino отвечает только по адресу =1, независимо от того, что задано в flprog. В этом и заключался вопрос.Alhim20 писал(а): 16 апр 2025, 18:32 Если slave выходит на связь и исправно выполняет команды исключительно по адресу 1 . то его Адрес 1. (*_*) откуда Вы взяли 86?
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
Re: Не "изменяется" Slave адрес.
Это мастер (ПР) шлет адресAlhim20 писал(а): 16 апр 2025, 18:32 Если slave выходит на связь и исправно выполняет команды исключительно по адресу 1 . то его Адрес 1. (*_*) откуда Вы взяли 86?
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 77
- Зарегистрирован: 28 окт 2024, 04:02
- Откуда: Белогорск
- Имя: Илья
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: Не "изменяется" Slave адрес.
ModbusSlaveRTU Slave_1_0; Где то в таких 1 цах и есть Ваша ошибка, почитайте внимательней толмут мануала
-
- Лейтенант
- Сообщения: 305
- Зарегистрирован: 18 сен 2015, 14:00
- Откуда: Саратов
- Имя: Сергей
- Поблагодарили: 1 раз
Re: Не "изменяется" Slave адрес.
Попробуйте этот проект в 7 версии загрузить, должно помочь библиотеки в версиях разные в 8 версии с Modbusom беда.
S
Re: Не "изменяется" Slave адрес.
Спасибо за совет! Установил 7.5.2, перезабил переменные и создал подключение modbus rtu, сразу обратил внимание, что в этой версии "индекс" у slave становится равным заданному адресу slave, чего не происходит в версии 8+. Также видно, что в 7.5.2 в принципе не происходит подключения библиотеки universalModbus.h, все делается через SoftwareSerial.h. В первом тесте все заработало по нужному мне адресу. Проверю еще на паре плат и дополню тему, если потребуется.KSP писал(а): 17 апр 2025, 09:44 Попробуйте этот проект в 7 версии загрузить, должно помочь библиотеки в версиях разные в 8 версии с Modbusom беда.
Еще раз спасибо!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей