Добрый день ! Прошу подсказать решение проблемы с модулем WB-MIR v2. Модуль работал пока читал с него только температуру, наступила необходимость подключать возможности IR, после нескольких чтений из регистров от 2000 и далее, модуль перестал отзываться по шине RS485.
Александр, здравствуйте!
Подскажите, чем читали? Какая была последовательность ваших действий, прежде чем модуль отказал? Вы используете наш контроллер Wiren Board?
Попробуйте заново установить modbus-адрес модуля или узнать текущие параметры коммуникации, воспользовавшись скриптом из нашей статьи https://contactless.ru/wiki/index.php/UART_Communication_Settings
Отвечу по порядку:
- я использую достаточно много и достаточно долго вашего оборудования, кроме самого контроллера
- никаких нареканий не было (бывают программные глюки в виде зависаний на несколько секунд при чтении регистров не по документации, но прошивка восстанавливает работу)
- работаю по ModbusRTU множеством способов (кроме Ваших технологий)
- с WB-MIR проделал все возможное и согласно Ваших рекомендаций на WiKi и тупым мониторингом RS485, модуль молчит, светодиодик внутри горит постоянно, не моргает как у других модулей (пришлось вскрыть от безисходности)
Вопрос больше принципиальный, возможен ли выход из строя аппаратно или прошивка затерлось ?
Если прошить заново низя, придется покупать новый модуль(ли) и очень осторожненько их юзать.
Если что-то затерлось, то не прошивка, а память команд/настроек. Ну и выход из строя железа тоже нельзя полностью исключить, но вряд ли.
Я правильно понял, что ни установка адрес, не обращение к модулю с перебором всех возможных коммуникационных параметров не дало результата? Каким образом и на какой платформе вы выполняли скрипт из wiki? Работает ли он у вас с другими, исправными устройствами?
Серийный номер можете сказать? Будем решать, что делать.
SN: 4272156422
A: 53
У меня контроллер свой под Windows работает, я не скрипт Ваш использовал, а методику поиска модуля, пройтись по адресам от 1 до 247(255) с разными параметрами Com порта.
Все модули работают, кроме этого.
Очень нехорошее ощущение (как разработчика), записью в регистры на что-то очень важное наехал.
Если возможности залить Вашу работающую прошивку и конфигурацию нет, то закроем тему.
Уточните, ещё, пожалуйста, вы адрес тоже пытались прошить новый?
ПО и хранение данных в памяти устроено таким образом, что теоретически вы не могли затереть записью в одни регистры содержимое других.
Мы пробуем воспроизвести вашу ошибку, вы можете более подробно описать, что именно вы делали с контроллером. Я полагаю, что возможность восстановить работоспособность вашего модуля есть.
Добрый день!
Как вариант, можете прислать нам WB-MIR на диагностику. Если там действительно что-то сломалось, то мы разумеется бесплатно починим. Если с устройством всё в порядке, то нужно будет оплатить стоимость работы инженера (500-1000 рублей).
Так и сделаю, при следующей закупке Ваших модулей, этот вышлю.
Спасибо всем за помощь!
Добрый день еще раз !
Докопался до истины своей (Вашей - если захотите исправить прошивку) проблемы )))
При чтении начиная с регистра адресом 2000 и количеством более 100 регистров, Ваша прошивка (софт залитый в микрочипик) сбрасывает портовую (RS485) скорость до 1200bits/sec, сам, молча, без предупреждения. Проверил трижды, все точно. Было потрачено два дня на поиски причины )
Попутно выяснилась еще одна проблема - люди - не используйте адаптеры USB-RS485 от фирмы БОЛИД, глюканутые!
Все хорошо, модуль работает, но надо учитывать поведение прошивки.
Дополнение по модулю WB-MIR v2
регистры 5000, 5001 и 5002 - это coil регистры, что бы в них появилось значение 1 нужно записывать 0xFF00, а не как указанно в документации 0x0001.
Александр, мы посмотрели версию прошивки вашего устройства – это последняя версия, которая стоит на большинстве устройств WB-MIR v2.
-
Мы провели тестирование на устройстве с такой же прошивкой. Мы читали по 125 регистров, начиная с адреса 2000, одной командой сначала с помощью modbus_client и нашего контроллера, затем с помощью Modbus Poll с рабочей станции с Windows 10 и адаптера “Болид USB-RS485 изм.9”. Ни в каком из перечисленных вариантов сбоев не происходило. Возможно, проблемы с вашим конкретным адаптером или ПО.
-
В нашей документации нигде не сказано, что надо записывать 0x0001 в coil-регистр. Там сказано “Чтобы удалить все записанные сигналы, запишите 1 в регистр флагов по адресу 5000.” Coil-регистры по определению однобитовые, и записать в них можно 0 или 1. Какие данные передаются при этом по шине – другой вопрос. Если вы читали нашу статью об основах протокола Modbus (https://contactless.ru/wiki/index.php/Протокол_Modbus), то там четко сказано, какие данные передаются для записи 0 (выключить) и 1(включить) в coil-регистры: “Значение, которое нужно записать (0 — выключить, 0xFF00 — включить)”. Разное ПО по-разному записывает эту единицу. Применительно к софту на наших контроллерах: программе modbus_client достаточно указать 1 в качестве аргумента при записи в coil-регистр. modbus_client передаст нужные 0xFF00 по RS-485. Другое ПО может работать иначе.
Прочитайте 150 регистров и все поймете. А в документации приведите (если хотите) к одному виду, ваше оборудование принимает 0xFF00 для coil, так и пишите везде.
Я вам ничего не доказываю, а натыкаюсь на несоответствие описания и работы модуля. У меня нет цели вас уличать в ошибках, при разработках это нормально.
А вот это интересно. “Максимальный размер ADU в последовательных коммуникационных линиях составляет 253 байта (из максимальных, разрешенных спецификацией 256 байт вычитается 1 байт адреса и два байта контрольной суммы).” То есть holding-регистров можно прочесть не больше 125 за одну команду. А вам удается прочесть 150 и при этом что-то портится. Протестируем завтра.
Наше оборудование поддерживает стандарт Modbus RTU для последовательных линий связи, он всё и определяет, и количество регистров при одновременном считывании, и как записывать 1 и 0 в coil-регистры.
Я специально подробно останавливаюсь на этом вопросе, чтобы все, читающие этот форум после нас, чётко представляли себе, что к чему.
Добрый день! У нас две проблемы с работой модуля wb-mir v2. Были модули wb-mir v2 с прошивкой 3.9, нам поменяли на модули с прошивкой 4.6. Подключил пока один модуль (SN: 4266456870) к контроллеру WB6, но проблема с воспроизведением команд осталась, т.е. кондиционер (MSZ-LN35VGB) не реагирует на записанные команды с пульта. Потом решил проверить на телевизоре (Philips 15PF5121/58), он так же не реагирует: команды записываются в модуль, но, видимо, некорректно воспроизводятся. Через web-интерфейс модуль управляется, но через modbus_client не отвечает. Что с этим можно сделать ?
Arti-san/, добрый день! Очень много неизвестных, давайте разбираться.
- Какой шаблон вы используете?
- Какую последовательность обучения вы применяете?
- Пришлите скриншот веб-интерфейса с модулем
- Пришлите фотографию инсталляции (например, с кондиционером)
- При нажатии кнопки воспроизведения видно ли камерой обычного ИК-чувствительного телефона BR-сигнал (видит ли эта камера так же сигнал с пульта)?
- На какую команду modbus_client модуль не отвечает?
- WB-MIR v2
- Через вебинтерфейс. Например, переводим переключатель “Learn to RAM” в положение “ON”, нажимаем кнопку “On/Off” на пульте предварительно поднеся к ИК-приемнику модуля, затем переводим переключатель “Learn to RAM” в положение “OFF”.
- Сигнал видно, но он отличается.
- Все нормально, отвечает. Оказывается, неправильно вводил команду.
Замечательно! Скажите, а какой этап операции оказался для вас “камнем преткновения”, менее всего понятным. Может, стоит подробнее описать в документации?
Смущает, что в итоге при нажатии в вебинтерфейсе на кнопку “Play from RAM” кондиционер никак не реагирует. Аналогично и с телевизором, при обучении соответственно от пульта телевизора.
Так вам и не удалось через RAM воспроизвести команду – не очень понял? Передатчик вы относительно вплотную к приемному окну устройства (телевизора, кондиционера) располагали?