Передатчики? Наверняка оба конвертора - приёмопередатчики и умеют гонять информацию и туда, и сюда (то есть могут слушать линию). Другое дело, что каждый из них с точки зрения интерфейса и протокола - мастер, а ПК - слэйв. Я думаю, реализовать RS-485 с двумя мастерами можно, хотя сам этого не делал. Дабы избежать коллизий (то есть одновременной работы мастеров в линию), они должны следить каждый за работой другого, ну и слэйва, или как-то по-другому синхронизроваться. Если слэйв вообще не отвечает, то ещё проще, следить надо только за коллегой. Но если коллизии будут случаться, то, конечно, ПК ни черта не примет.
_________________ Морд - ни лап. Мат, око и дар. А колом? Массам кот или торт? Тротил и ток массам!
Сможет, если в отсутствие коллизий правильно обработает команду, т.е. программно (по используемому протоколу) определит, что она адресована именно ему.
в принципе 485 заране расчитывался под такое но...насколко девайсы соблюдат весь протокол вопрос неясный и таки да избежать колизий будет главная хотя и не 1 проблема
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Спасибо за участие в теме. Немного уточняющей информации по теме. Два мастера не синхронизированы между собой и не могут "двигатсья" по щучьему велению, в определенные для каждого мастера тайминги с мастера уходит команда устройству. Я так понимаю конструкция будет работать при условии того если оба устройства одновременно не будут "писать" в линию. Например мастер №1 раз в минуту опрашивает температуру с слейва. Второй мастер работает только при получении команды из вне, то есть в любой момент он может отправить команду например на чтение влажности. Развитие событий далее:
Если во время передачи данных от мастера 1 в линию напишет мастер 2, тогда слейв просто получит некорректную команду и ответит ошибкой?
И как аппаратно можно синхронизировать это? теоретически возможно? собрать переходник/конвертер 2USBx2RS485
ATMEGA328 можно заменить любым камнем с парочкой USART п/п. Перед USB можно добавить хаб типо FE1.1 или подобное, тогда получитсья один вход usb вместо двух) И на уровне мк регулировать "траффик" с ком портов. Например сделать один main каналом , при наличии входных данных на его буфере тормозить общий поток и отправлять данные только из него, а как данные кончатся снова отправлять данные из второго. Или сделать просто просто программную очередь пакетов. Это просто мысли, возможно глупые. Кто реализовывал что то подобное ? поделитесь опытом
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
mickbell
Заголовок сообщения: Re: Один приёмник, два передатчика на линии RS485
И как аппаратно можно синхронизировать это? теоретически возможно? собрать переходник/конвертер 2USBx2RS485
Конечно. Делается переходник только для второго мастера. Его алгоритм: получив от своего мастера (ПК) пакет, он его не сразу передаёт, а дожидается факта освобождения линии - скажем, переходник ждёт две секунды молчания в линии (предполагается, что слэйв в течение двух секунд обязательно ответит), а после этих двух секунд молчания передаёт пакет слэйву. Затем ждёт ответа слэйва - тоже в течение двух секунд, и, получив, передаёт его мастеру. А если не получил, то и хрен бы с ним, снова ждёт пакет от своего мастера. Сами пакеты никак не видоизменяются и даже не анализируются.
_________________ Морд - ни лап. Мат, око и дар. А колом? Массам кот или торт? Тротил и ток массам!
Два мастера не синхронизированы между собой и не могут "двигатсья" по щучьему велению, в определенные для каждого мастера тайминги с мастера уходит команда устройству. Я так понимаю конструкция будет работать при условии того если оба устройства одновременно не будут "писать" в линию. Например мастер №1 раз в минуту опрашивает температуру с слейва. Второй мастер работает только при получении команды из вне, то есть в любой момент он может отправить команду например на чтение влажности. Развитие событий далее:
Если во время передачи данных от мастера 1 в линию напишет мастер 2, тогда слейв просто получит некорректную команду и ответит ошибкой?
Зависит от того, насколько "умный" слэйв. Если не умеет обрабатывать некорректные команды, то может и выполнить.
И как аппаратно можно синхронизировать это? теоретически возможно? собрать переходник/конвертер 2USBx2RS485
В исходной постановке задачи, как я понял, оба COM-порта находятся на одном компьютере. Соответственно, должно быть гораздо проще, не добавляя никаких наворотов с лишним железом, программно на компе исключить любые коллизии на шине. Тем более что в определенные для каждого мастера тайминги с мастера уходит команда устройству.
Два мастера не синхронизированы между собой и не могут "двигатсья" по щучьему велению, в определенные для каждого мастера тайминги с мастера уходит команда устройству. Я так понимаю конструкция будет работать при условии того если оба устройства одновременно не будут "писать" в линию. Например мастер №1 раз в минуту опрашивает температуру с слейва. Второй мастер работает только при получении команды из вне, то есть в любой момент он может отправить команду например на чтение влажности. Развитие событий далее:
Если во время передачи данных от мастера 1 в линию напишет мастер 2, тогда слейв просто получит некорректную команду и ответит ошибкой?
Зависит от того, насколько "умный" слэйв. Если не умеет обрабатывать некорректные команды, то может и выполнить.
И как аппаратно можно синхронизировать это? теоретически возможно? собрать переходник/конвертер 2USBx2RS485
В исходной постановке задачи, как я понял, оба COM-порта находятся на одном компьютере. Соответственно, должно быть гораздо проще, не добавляя никаких наворотов с лишним железом, программно на компе исключить любые коллизии на шине. Тем более что в определенные для каждого мастера тайминги с мастера уходит команда устройству.
Да, верно. Оба ком порта на одном ПК. Вся проблема в том что 1 мастер , сильно много команд шлет в линию.Грубо говоря практически постоянно опрашивает slave устройство А мне нужно "вклиниться" в линию вторым мастером.Боюсь не попасть в тайминги. кроме того скорость обмена между устройствами по протоколу 4800.
В голову пришла идея, а что если решить этот вопрос программно, например в управляющем ПО сделать некую прослойку между COM портами мастеров и программно регулировать арбитраж пакетов. Например 1x аппаратный ком порт идет напрямую до slave устройства. Этот реальный ком порт открывает моё ПО(прослойка) Это же ПО создает виртуальный ком к которому как раз подключается основное управляющее ПО
Последний раз редактировалось icedev Вт сен 04, 2018 09:54:19, всего редактировалось 1 раз.
Вся проблема в том что 1 мастер , сильно много команд шлет в линию.Грубо говоря практически постоянно опрашивает slave устройство А мне нужно "вклиниться" в линию вторым мастером.Боюсь не попасть в тайминги. кроме того скорость обмена между устройствами по протоколу 4800.
Сделайте так, чтобы мастер-1 "не наглел", см.выше.
Вся проблема в том что 1 мастер , сильно много команд шлет в линию.Грубо говоря практически постоянно опрашивает slave устройство А мне нужно "вклиниться" в линию вторым мастером.Боюсь не попасть в тайминги. кроме того скорость обмена между устройствами по протоколу 4800.
Сделайте так, чтобы мастер-1 "не наглел", см.выше.
Проблема в том что ПО мастера №1 не моё, исходников нет( вот и приходиться крутиться
если на 1 компе проблем никаких задейсвуй контрол потока портоф и...сделай перекрестку ... 485 так разработан чо должен работать даже если к длиному шлейфу в разных местах подключено несколко датчикоф физически разнесеных далеко ДА ТЕРМИНАТОРЫ НА ШЛЕЙФЕ(на концах) ОБЯЗАТЕЛНЫ!! в промежуточных девайсах их не ставят
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
если на 1 компе проблем никаких задейсвуй контрол потока портоф и...сделай перекрестку ... 485 так разработан чо должен работать даже если к длиному шлейфу в разных местах подключено несколко датчикоф физически разнесеных далеко ДА ТЕРМИНАТОРЫ НА ШЛЕЙФЕ(на концах) ОБЯЗАТЕЛНЫ!! в промежуточных девайсах их не ставят
Я так понимаю, что если первый, наглый, мастер потеряет пакеты, то ему ничего от этого не будет? Если это не так и он вывалится с ошибкой, то дело плохо, вклиниться не получится. Мусор какую-то фигню ляпнул про два датчика, тут датчик, точнее, слэйв один, так что от коллизий только одними терминаторами не спасёшься, да и вообще - при короткой линии да на скорости 4800 бит/с толку от них немного.
_________________ Морд - ни лап. Мат, око и дар. А колом? Массам кот или торт? Тротил и ток массам!
Сейчас этот форум просматривают: Динозавр и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения