ModBus (RS485) кривой!

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#1

Сообщение Max » 17.10.2015{, 15:04}

Во всяком случае у меня так.

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

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

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

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

P.S. Если у Разработчика будет желание, то свои файлы проекта могу ему отправить.
Последний раз редактировалось Max 17.10.2015{, 18:32}, всего редактировалось 1 раз.

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#2

Сообщение Skull » 18.10.2015{, 00:02}

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

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#3

Сообщение Max » 18.10.2015{, 11:09}

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

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

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

Схема подключения:
6172826.jpg
Выложите ссылку на схему подключения. Буду очень рад!
Последний раз редактировалось Max 18.10.2015{, 11:23}, всего редактировалось 1 раз.

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#4

Сообщение Skull » 18.10.2015{, 13:21}

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

Изображение

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#5

Сообщение Max » 18.10.2015{, 15:01}

Возможно, возможно. Хотя думал, что терминаторы встроены в трансиверы.... Все опять перепроверю.
Последний раз редактировалось Max 18.10.2015{, 15:02}, всего редактировалось 1 раз.

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#6

Сообщение Skull » 18.10.2015{, 15:03}

Нет, не встроены. Производитель же не знает сколько  у тебя на линии устройств. Их может быть до 255 ))

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#7

Сообщение Max » 18.10.2015{, 16:00}

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

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#8

Сообщение Skull » 18.10.2015{, 20:26}

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#9

Сообщение Max » 18.10.2015{, 22:19}

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

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

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

А там в FLProg будет починен Мастер.
Последний раз редактировалось Max 18.10.2015{, 22:27}, всего редактировалось 1 раз.

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#10

Сообщение Skull » 18.10.2015{, 22:28}

У тебя сколько трансиверов на линии висит ? 
А что, выпаять- проблема ? )))

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#11

Сообщение Max » 18.10.2015{, 22:32}

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

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

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#12

Сообщение Skull » 18.10.2015{, 23:18}

Если всего 2 трансивера- ничего паять не надо. Если больше- оставлять надо только по краям линии. Иначе работать не будет.

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#13

Сообщение Max » 19.10.2015{, 06:57}

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

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

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

ModBus (RS485) кривой!

#14

Сообщение vlad » 19.10.2015{, 08:28}

у меня правда расстояние порядка 4м и данные ходят булеановские но проблем с зависаниями (тфу 3 раза) нет. обе ардуинки запитанны от одного бп. трансиверы берут питание каждый со своей ардуино. соединенно  все витой парой.

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#15

Сообщение Max » 19.10.2015{, 08:39}

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

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

ModBus (RS485) кривой!

#16

Сообщение vlad » 19.10.2015{, 10:19}

нет, я ничего не делал. все подключил как на самой верхней картинке. всетаки попробуйте все запитать от одного бп. все таки бп импульсные да и фазы наверняка разные . может какая нить проблема связанная с отсутствием заземления. я конечно не спец но есть к примеру проблема с фазозависимымы котлами, которая решается подачей заземления

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#17

Сообщение Skull » 19.10.2015{, 13:06}

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

ModBus (RS485) кривой!

#18

Сообщение Max » 19.10.2015{, 14:18}

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

Я бы хотел это все сделать с минимальными затратами, т.к. мой козырь в этом проекте - дешевизна.
Последний раз редактировалось Max 19.10.2015{, 14:30}, всего редактировалось 1 раз.

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

ModBus (RS485) кривой!

#19

Сообщение Skull » 19.10.2015{, 16:33}

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

Oleg1345140
Лейтенант
Сообщения: 539
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

ModBus (RS485) кривой!

#20

Сообщение Oleg1345140 » 20.10.2015{, 17:51}

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

Ответить

Вернуться в «Архив (Версия 1.11.1)»