Страница 1 из 2

ModBus (RS485) кривой!

Добавлено: 17.10.2015{, 15:04}
Max
Во всяком случае у меня так.

Если у вас два устройства, одно из которых мастер, а другое слейв соединенные кабелем витая пара и находится на расстоянии друг от друга более 10 метров и передает слейв данные например с датчиков (у меня 14 датчиков типа DS18), то нормально работать они не будут. Мастер начинает работать  только с нескольких принудительных перезагрузок и не всегда надежно и может в последствии опять зависать.

Так что крайне не рекомендую пока пользоваться возможностями FLProg в реализации интерфейса ModBus!

Сейчас думаю, как выходить из положения (перед заказчиком неудобно очень). Понадеялся я....

Думаю сделать принудительную перезагрузку внутри программы мастера связанное с контролем сигнала со слейва... Но это конкретные костыли, но надо что то делать.

P.S. Если у Разработчика будет желание, то свои файлы проекта могу ему отправить.

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 00:02}
Skull
Макс, ты бы не спешил кидать кирпичи в огород Сергея, лучше выложи схему, опиши условия работы, какие БП используешь. Вообще идеально- несколько фото девайса.
Возможно, что проблема совсем не в FlProg.

Во-первых забудь про витуху как физический канал для RS485.Она не подходит, проверено многолетним опытом.
Идеально- МКЭШ или двухпроводный микрофонный кабель в экране(КММ 2х0,35 ). Обязательно  заземли экран кабеля в ОДНОЙ точке. Заземли минусы обоих девайсов.
Иначе при такой длине кабеля ты рискуешь остаться вообще без плат- электромагнитную совместимость,статику и разность потенциалов импульсных БП никто не отменял )
Терминаторы, кстати поставил ?

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 11:09}
Max
Skull писал(а):Возможно, что проблема совсем не в FlProg.
Так автор сам признал косяки в Мастере.

Другого кабеля под рукой не было. Хотя вот здесь указано про витую пару: Ссылка
Схема обычная. Датчики темп. записывают в переменные ModBus и передают в сеть.
Терминаторы не поставил....
Там все коммуникации (Интернет, датчики все на витой паре).
Шины заземления там нет. Сделаю тогда на стороне мастера к его минусу.

Питание обычное на импульсный б/п на 9В 2А, а на самой плате 7805 со стандартной обвязкой. Раздельно для Ардуино, раздельно для интерфейса. Так на обоих концах.

Схема подключения:
6172826.jpg
Выложите ссылку на схему подключения. Буду очень рад!

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 13:21}
Skull
Макс, витая пара это не только комповый сетевой кабель.Подходит только (если не ошибаюсь) кат.6 в экране.
А проблема твоя может быть в этом :
Изображение
Или в этом :

Изображение

Емкости в первом случае создают делитель напряжения а во втором- потенциал относительно земли, что и может загонять твои платы в ступор. Земли все, минусы соединяй. Ставь терминаторы ОБЯЗАТЕЛЬНО, потому как проблема твоя проявилась именно на длинной линии. Рядом же все работало.

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 15:01}
Max
Возможно, возможно. Хотя думал, что терминаторы встроены в трансиверы.... Все опять перепроверю.

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 15:03}
Skull
Нет, не встроены. Производитель же не знает сколько  у тебя на линии устройств. Их может быть до 255 ))

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 16:00}
Max
Цитата Skull ()200?'200px':''+(this.scrollHeight+5)+'px');">Нет, не встроены. Производитель же не знает сколько у тебя на линии устройств. Их может быть до 255 ))
Терминаторы, как правило 120 Ом, бывают часто встроены.
Проверял омметром вход тех плат что у меня (как на фото у моего поста выше). A и B звонится как 120 Ом..... И на схеме он есть:

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 20:26}
Skull
Тогда убирай все, кроме крайних. Должно быть вот так :
Изображение

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 22:19}
Max
Skull писал(а):Тогда убирай все, кроме крайних.
Как это убирай? Выпаивать что ли? Они же SMD микроскопические....

К тому же, все вроде по правилам ( на моей схеме модуля RS485 это видно) - терминальные резисторы есть, шунтирующие есть.

Думаю надо подключить дренажный провод, вот так:
2520152.gif
Остальное оставлю все как есть. Если нормально не будет работать, то попробуем заменить кабель и уйти от витой пары...

А там в FLProg будет починен Мастер.

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 22:28}
Skull
У тебя сколько трансиверов на линии висит ? 
А что, выпаять- проблема ? )))

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 22:32}
Max
Skull писал(а):У тебя сколько трансиверов на линии висит ? А что, выпаять- проблема ? )))
У меня пока один мастер и один слейв. Потом прибавится еще два слейва.

А зачем выпаивать, если все и так стоит?

ModBus (RS485) кривой!

Добавлено: 18.10.2015{, 23:18}
Skull
Если всего 2 трансивера- ничего паять не надо. Если больше- оставлять надо только по краям линии. Иначе работать не будет.

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 06:57}
Max
Skull писал(а):Иначе работать не будет.
Так зависает в текущем состоянии. Попробую подключить дренажную линию, может поможет.
Еще вижу тему замены кабеля.

Еще. Если есть у Вас хорошая библиотека ModBus для Ардуино, может поделитесь с автором?
У него как раз проблема в библиотеке, на базе которой он написал протокол.

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 08:28}
vlad
у меня правда расстояние порядка 4м и данные ходят булеановские но проблем с зависаниями (тфу 3 раза) нет. обе ардуинки запитанны от одного бп. трансиверы берут питание каждый со своей ардуино. соединенно  все витой парой.

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 08:39}
Max
vlad писал(а):у меня правда расстояние порядка 4м и данные ходят булеановские но проблем с зависаниями (тфу 3 раза) нет. обе ардуинки запитанны от одного бп. трансиверы берут питание каждый со своей ардуино. соединенно все витой парой.
Как сказать "зависание". Данные передаются, но с большими промежутками. Может вообще 15-20-30 мин "молчать", а потом данные поступают... Как бы подвисания. Иногда начинает нормально работать...
У меня на 10 метрах работало нормально (в домашних условиях). Но на объекте порядка 30 метров провод от мастера до слейва.
Вы же не согласовывали сопротивлениями? Дренажный кабель не соединяли?

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 10:19}
vlad
нет, я ничего не делал. все подключил как на самой верхней картинке. всетаки попробуйте все запитать от одного бп. все таки бп импульсные да и фазы наверняка разные . может какая нить проблема связанная с отсутствием заземления. я конечно не спец но есть к примеру проблема с фазозависимымы котлами, которая решается подачей заземления

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 13:06}
Skull
Макс, у меня 485х по заводу разбросано километрами, и на все грабли уже наступлено )
Дренаж не нужно с резисторами, минусы на корпус и на землю. Терминаторы только по краям. Если есть желание, то можешь 120 Ом поделить на количество потребителей и каждому впаять свой резик. (например у тебя их 5, поэтому 120*5=600 Ом в каждую плату).
Землить все жестко обязательно, а то иногда и контрольная сумма совпадает, а приходит мусор.
Если все совсем плохо будет- придется гальванически отвязываться от линии.

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 14:18}
Max
Skull писал(а):минусы на корпус и на землю.
Это получается к Мастеру надо контур заземления подводить?
Устройства у меня находятся на тех. этаже многоквартирного дома....
Корпуса у меня пластиковые, значит минус придется заземлять на минус питания внутри прибора?
В схемах без гальванической развязки (как у меня) рекомендуют выравнивать потенциал между приборами путем задействования дренажного провода с сопротивлениями по 100 Ом на концах. В моем случае есть в кабеле свободные жилы, их и задействую.
Skull писал(а):Терминаторы только по краям.
Про это я знаю. У меня пока один мастер и один слейв, так что схеме соответствует на данном этапе.

Я бы хотел это все сделать с минимальными затратами, т.к. мой козырь в этом проекте - дешевизна.

ModBus (RS485) кривой!

Добавлено: 19.10.2015{, 16:33}
Skull
Пластик для промышленного применения- не очень, но терпимо.
Выводи минус БП на землю (на техэтаже она есть, все дома имеют контур заземления). + ко всему соедини минусы, про резики забудь- это для микротоков.

ModBus (RS485) кривой!

Добавлено: 20.10.2015{, 17:51}
Oleg1345140
из чужого опыта. на объекте (промышленный комплекс из нескольких заводов ), по 485 протянуто много и на разные расстояния через обысный не витой и не экранированный телефонный кабель марки тппэп (через негоже и телефония раскинута ) тоже оборудование у ребят не стабильно работало или вообще не работало. нашли простой выход взяли и второй парой соединили минусы устройств и все заработало.