Modbus Slave на Arduino UNO

Использование протоколов Modbus, SPI, I2c и прочих, проблемы и решения
Ответить
Alexsem76

Modbus Slave на Arduino UNO

#1

Сообщение Alexsem76 » 24.06.2017{, 15:09}

Здравствуйте уважаемые форумчане
Может кто сталкивался с такой проблемой:

Берем ардуино уно - задаем ее как Modbus Master - в настройках modbus выбираем ComPort0 - с другими устройствами slave все работает (проект выкладывать смысла нет, работает во всех).

Делаем то же самое, но теперь задаем как Modbus Slave - в настройках выбираем ComPort0. И вот здесь стопор. Как slave устройство мастером сети уже не видится . Конвертер rs485 подключен к 0 и 1 пинам. Пин DE значения не имеет (в двух случаях подключен одинаково).

Через сканер Modbus RTU scanner все видно, при подключенном usb кабеле и выборе порта ардуино уно.

Вопрос в следующем : как Modbus Slave усройство ардуино уно через comPort0 работать не может?
Последний раз редактировалось Alexsem76 24.06.2017{, 15:15}, всего редактировалось 1 раз.

KSP
Сержант
Сообщения: 240
Зарегистрирован: 18.09.2015{, 14:00}
Репутация: 27
Откуда: Саратов
Имя: Сергей

Modbus Slave на Arduino UNO

#2

Сообщение KSP » 24.06.2017{, 16:20}

При подключении конвертера rs485 сканер Modbus RTU с ЮСБ кабеля работать перестает на любой плате УНО, НАНО . Отсоедини конвертер rs485 будет работать с компьютером, а при присоединенном конвертере rs485 если хочешь проверить сканером нужен конвертер ЮСБ- RS-485. соответственно их между собой соединяй как нужно А и В.
S

Alexsem76

Modbus Slave на Arduino UNO

#3

Сообщение Alexsem76 » 24.06.2017{, 16:55}

Если бы через конвертер, который я подключаю к плате все работало, вопроса на форуме и не было бы.
Делаем то же самое, но теперь задаем как Modbus Slave - в настройках выбираем ComPort0. И вот здесь стопор. Как slave устройство мастером сети уже не видится . Конвертер rs485 подключен к 0 и 1 пинам. Пин DE значения не имеет (в двух случаях подключен одинаково).

Аватара пользователя
Sancho
Полковник
Сообщения: 3068
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 384
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Modbus Slave на Arduino UNO

#4

Сообщение Sancho » 25.06.2017{, 07:39}

Alexsem76, Вам KSP предложил для проверки правильный вариант. Хотел бы его немного дополнить использованием в качестве мастера инсатовский сервер. Итого получаем: ардуино - RS485 - RS485 - USB - OPC INSAT. Питание на ардуино отдельно, не через USB.
Уверен, что возможно ошибка окажется в небольшой невнимательности к мелочи...
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

KSP
Сержант
Сообщения: 240
Зарегистрирован: 18.09.2015{, 14:00}
Репутация: 27
Откуда: Саратов
Имя: Сергей

Modbus Slave на Arduino UNO

#5

Сообщение KSP » 25.06.2017{, 08:40}

Если мелочь то скорее всего при перекомпеляции программа автоматически выставляет скорость по умллчанию 9600, либо с адресами беда.
S

Alexsem76

Modbus Slave на Arduino UNO

#6

Сообщение Alexsem76 » 25.06.2017{, 09:34}

Спасибо за Ваш ответ. Попробую сформулировать по другому: берем две платки на одинаковых процессорах (Atmega328p) ардуино уно и про мини (одна с usb, повешенного на пины 0 и 1, другая без него). Заливаем одну и туже программу (используем как modbus slave устройство). И аля фокус: Через преобразователь usb-rs485, подключенный к пинам 0 и 1 первая не работает, вторая - РАБОТАЕТ! Зачем дополнительно еще что-то подключать.
Вопрос формулировал такой : в режиме Modbus Slave использовать ComPort0 нельзя?
Дополняю вопрос: нужно использовать SoftSerialPort (на других пинах)?
Добавлено (25.06.2017, 09:34)
---------------------------------------------
KSP писал(а):Если мелочь то скорее всего при перекомпеляции программа автоматически выставляет скорость по умллчанию 9600, либо с адресами беда.
Скорость, если я ошибся, не важна, так как использую одно устройство, подключенное через конвертер и использую программу под название Modbus RTU scanner. Там выбираю несколько скоростей. Сканирую. Что получается выше написал.
Последний раз редактировалось Alexsem76 25.06.2017{, 09:29}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 3068
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 384
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Modbus Slave на Arduino UNO

#7

Сообщение Sancho » 25.06.2017{, 11:02}

На плате нано с usb таких фокусов нет, возможно  всё дело  в чипе uart|usb.
P.S. Если всё-таки уно работает нормально при всё тех-же условиях мастером нормально, то надо внимательно искать свою ошибку - чудес точно не бывает, просто где-то косячок...
Последний раз редактировалось Sancho 25.06.2017{, 17:13}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Alexsem76

Modbus Slave на Arduino UNO

#8

Сообщение Alexsem76 » 25.06.2017{, 23:00}

Буду искать. Попробую другую плату. Хотя та же самая беда на оригинальной плате uno.  А вообще у меня есть подозрения на библиотеку, что проверить не могу.
Тему хочу добить. По результатам отпишусь.

Добавлено (25.06.2017, 23:00)
---------------------------------------------
Проблема найдена. Она была в самодельном конвертере rs485. Ни туда запаял один из резисторов входа. Правда возникает другой вопрос - почему все работало в режиме master. Ну  это уже тема для других бесед.

Тему закрываю. Всем присоединившимся громадное спасибо. Натолкнули на мысли - куда идти.

Ответить

Вернуться в «Протоколы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость