Кто-нибудь имеет большой опыт работы с Modbus и RS-485 ???
Моя задача - управлять двигателем постоянного тока с помощью микро PIC24. Настройки двигателя, такие как угол, задержка, пуск/останов, рабочий цикл и т. д., будут отправлены с ПК с помощью Modbus на PIC24.
Система такая:
PIC24 -> UART -> IC MAX3471 -> Преобразователь RS-485 в RJ-45 -> RJ-45 в USB -> ПК (работает утилита modbuspoll)
Используемый формат Modbus — Modbus RTU.
Во-первых, работает функция регистра временного хранения данных Modbus и функция записи одного регистра. Но после того, как я отправил некоторые настройки двигателя с помощью функции записи единого регистра Modbus, двигатель начал работать, и тогда связь Modbus всегда была ошибкой тайм-аута.
И как только произойдет ошибка тайм-аута, в следующий раз, когда я снова включу систему, она будет продолжать выдавать ошибку тайм-аута. Я попытался изменить скорость передачи UART с 9600 до 115200. Попробуйте заменить плату преобразователя RS-485 в RJ-45 (на случай, если она сломается), явления просто повторяются.
Может ли кто-нибудь дать мне несколько советов о том, что может быть возможной причиной?
Также я не уверен в этом, в формате Modbus RTU в начале и конце должно быть 28 бит (минимум длина 3 1/2 символа), но должен ли код микро прошивки заботиться об этом, так как при использовании ПК инструмент modbuspoll?
Я прослушиваю сигнал A и B с помощью логического анализатора, если я отправляю какой-либо символ с uC на RS-485 (но не подключен к ПК), символ правильно отображается в строке A и B. Но если я нажимаю сигнал линии A и B, когда я отправляю функцию чтения регистра хранения с ПК с помощью опроса Modbus (выдает ошибку тайм-аута), я получаю какой-то странный сигнал:
Таким образом, похоже, проблема не в коде прошивки UC, а в одном из них: конвертере USB в RS-485, прямом кабеле Ethernet или интерфейсной плате RS-485. Вот преобразователь USB в RS-485, который я использовал:
В некоторых случаях пуск двигателя или какие-либо мощные устройства создают помехи при сигнале заземления. Если у вас нет хорошего заземления шасси и экранирования, это повлияет на ваш сигнал.
для отладки: 1) запустите ваш контроллер без большой нагрузки, просто проверьте контроллер со светодиодом или любой небольшой нагрузкой, после включения / выключения светодиода, если у вас есть проблема, у вас проблема с кодом и реализацией .
2) если у вас нет проблем на первом этапе, вы должны проверить заземление и заземление шасси.
Рекомендация : если вы работаете с высоковольтной нагрузкой, в целях безопасности лучше использовать изолированный модуль USB_to_485.
Кренц
Кренц
М КС
Кренц
Лундин
М КС
Кренц
Кренц
М КС
Кренц
М КС
Кренц
М КС
Кренц