ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1308505 Топик полностью
Eddy_Em (11.05.2023 08:53, просмотров: 305) Cкpипaч ответил Eddy_Em на [censored] - единственное, что я могу сказать любителям этого сгнившего говна мамонта!
А как вообще модбас может напрямую с ПК работать, если на ПК стоит совершенно не ртось? 

Я так намучился, было дело, с метеостанцией, которая мастеру по модбасу данные гоняла (причем, не сама была мастером, что было бы логично, а таки была слейвом!). В итоге комп надо было в эту линию RS-485 встроить так, чтобы он пассивно слушал линию (там еще и метеопараметры мастер не все сразу забирал, а поочередно, запрашивая каждый раз по одному - хотя вменяемый разработчик сразу бы считывал подряд N регистров).

В качестве приемника - преобразователь USB-485 на PL2303. Между прочим, не спас бы и аппаратный RS-485, т.к. ядро буферизует порты ввода/вывода и тебе достаются уже недетерминированные данные, аккуратно уложенные в буфер. Вот и пришлось по сути не только ориентироваться на большие паузы (около 0.5с) между запросами данных, но и анализировать пакеты, чтобы видеть, где начало, а где конец!..

А был бы нормальный протокол с четко ограниченными границами кадра, таких проблем бы не возникло.

Ну и уж самое интересное было бы, если б метеостанция соблюдала протокол, а я бы попытался с ней работать с ПК. Ну и как, скажите на милость, я бы эти паузы в 3.5 байта выдерживал?? Писать свой модуль ядра что ли? Да вот делать мне нечего! Проще уж тогда на том же STM32F072 сделать переходник модбас-USB, который убогие пакеты модбаса будет запихивать в "\n"-terminated строки (выполняя заодно и сериализацию данных)…

eddy-em.livejournal.com github.com/eddyem