LINUX.ORG.RU

Доки такой не встречал.

По своему опыту знаю, что для управление приёмом и передачей необходимо использовать модемную линию DTR.

Управляется DTR через ioctl();

Обычно:

поднятый DTR - включение на передачу.

опущенный DTR - включение на приём.

Но надо учитывать тонкости передачи информации... перед сбросом DTR необходимо делать паузу, что бы данные успели уйти из буфера UARTa

Какой протокол юзаешь?

binr ★★
()
Ответ на: комментарий от binr

>Какой протокол юзаешь?

А что ты понимаешь под протоколом???

В общем задача такова: есть несколько устройств + 2 компа на одной шине rs-485. Необходимо чтобы каждый комп мог работать со своими устройствоми и при етом друг другу не мешали. В принципе ето реализуется. Вопрос как???

>перед сбросом DTR необходимо делать паузу, что бы данные успели уйти из буфера UARTa

а почему не tcdrain()???

PS. вобщем буду рад любой инфе на ету тему.

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

"В общем задача такова: есть несколько устройств + 2 компа на одной шине rs-485. Необходимо чтобы каждый комп мог работать со своими устройствоми и при етом друг другу не мешали."

Вот по этому протокол и нужен, что бы компы не мешали работать друг другу... потому что доступ к шине RS-485 надо разделять по времени между компами, одновременно несколько компов не могут посылать данные в RS-485, а слушать могут.

Тогда надо юзать открытый протокол http://www.modbus.org , но в нём только один мастер на шине RS-485 .

Либо другой протокол какой-нить маркерный с поддержкой мультимастеринга, но я с такими протоколами не работал.

RS-485 это промышленный интерфейс, попробуй зайди на http://www.qnx.org.ru там эти вопросы обсуждались.

Посмотри внимательно на доку по дивайсам, какой протокол они поддерживают?

binr ★★
()
Ответ на: комментарий от binr

>Посмотри внимательно на доку по дивайсам, какой протокол они поддерживают?

смотрел но ничего похожего там не увидел

Дивайс moxa cp-114

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

> По своему опыту знаю, что для управление приёмом и передачей

> необходимо использовать модемную линию DTR.

Не всегда, у MOXA есть режим ADDC, она сама опрелеляет передавать или принимать

Мастер на RS-485 один и используется там поллинг (опрос). Какая разница сколько компов, сколько "устройств", мастер всё равно один. какие модули на 485 интерфейсе? Что конкретно надо. Зачем две 485-ятой сети в одну мешать?

Whaler
()
Ответ на: комментарий от Whaler

>Мастер на RS-485 один и используется там поллинг (опрос). Какая разница сколько компов, сколько "устройств", мастер всё равно один.

Насколько я понял доки то главное отличие rs-485 от rs-422 заключается в возможности присутствия нескольких мастеров. Или я не правильно понял???

>какие модули на 485 интерфейсе?

например icp-7017

>Зачем две 485-ятой сети в одну мешать?

Затем что устройства необходимо шарить между двумя компами без коммутаций.

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

> мЮЯЙНКЭЙН Ъ ОНМЪК ДНЙХ РН ЦКЮБМНЕ НРКХВХЕ rs-485 НР rs-422

> ГЮЙКЧВЮЕРЯЪ Б БНГЛНФМНЯРХ ОПХЯСРЯРБХЪ МЕЯЙНКЭЙХУ ЛЮЯРЕПНБ. хКХ Ъ МЕ

> ОПЮБХКЭМН ОНМЪК???

мЕЯЙНКЭЙН ГЮОСРЮММШИ БНОПНЯ. еЯРЭ МЮОПХЛЕП ЛМЕМХЕ, ВРН 422 ЩРН РНКЭЙН РНВЙЮ-РНВЙЮ (л цСЙ "юООЮПЮРМШЕ ХМРЕПТЕИЯШ ой" 2003Ц ЯРП 57). дПСЦХЕ ОНД 422 ХЛЕЧР ББХДС ВЕРШП?УОПНБНДМШИ 485. йЮЙ ОХЬЕР РНР ФЕ цСЙ "хМРЕПТЕИЯШ (422 485) ЩКЕЙРПХВЕЯЙХ ЯНБЛЕЯРХЛШ ЛЕФДС ЯНАНИ, УНРЪ Х ХЛЕЧР МЕЙНРНПШЕ ПЮГКХВХЪ Б НЦПЮМХВЕМХЪУ. оПХМЖХОХЮКЭМНЕ НРКХВХЕ ОЕПЕДЮРВХЙНБ RS-485 ≈ БНГЛНФМНЯРЭ ОЕПЕЙКЧВЕМХЪ Б РПЕРЭЕ ЯНЯРНЪМХЕ."

еЯКХ ХЛЕРЭ ББХДС ДБСУ ОПНБНДМШИ 485, РН ЯЛШЯК Б РНЛ ВРН БЯЕ СГКШ ПЮБМНОПЮБМШ, РН ЕЯРЭ ЛНЦСР Х ОЕПЕДЮБЮРЭ Х ЯКСЬЮРЭ НДМС Х РС ФЕ ЬХМС (ОЮПЮ ОПНБНДНБ). вРН ЯЙЮГЮК НДХМ ЯКШЬЮР БЯЕ. мЮОПНРХБ Б 4-ОПНБНДМНЛ БЮПХЮМРЕ ЯОПЮЬХБЮЕР НДХМ (ОН НДМНИ ОЮПЕ), Х НРБЕВЮЧР РНКЭЙН ЕЛС (ОН ДПСЦНИ ОЮПЕ). оНЩРНЛС БЮЬЕ БШЯЙЮГШБЮМХЕ БЕПМН МЮОНКНБХМС. дЮ МЮ 4-ЕУ ОПНБНДМНИ ЯХЯРЕЛЕ МЕ ЯДЕКЮРЭ ЛМНЦН ЛЮЯРЕПНБ, МН ЩРН МЕ ГМЮВХР ВРН 2-У ОПНБНДМЮЪ МЮ ЩРН ПЮЯВХРЮМЮ. мЮДН НРДЕКЪРЭ ЩКЕЙРПХВЕЯЙХИ СПНБЕМЭ НР КНЦХВЕЯЙНЦН. щКЕЙРПХВЕЯЙХИ СПНБЕМЭ ОНГБНКЪЕР (БЯЕ ПЮБМШ). мН РНЦДЮ МЮДН НПЦЮМХГНБЮРЭ БГЮХЛНДЕИЯРБХЕ МЮ КНЦХВЕЯЙНЛ (ЙЮЙ ОПЮБХКЭМН ЦНБНПХКХ ДН ЛЕМЪ ХЯОНКЭГНБЮРЭ ЯННРБЕРЯРБСЧЫХИ ОПНРНЙНК). ъ ЛНЦС ОПЕДКНФХРЭ ДБЮ БЮПХЮМРЮ.

1. ОНЯРЮБХРЭ ЙНМРПНККЕП 7188 Й МЕЛС ОН ДБСЛ ХМРЕПТЕИЯЮЛ АСДСР ОПХУНДХРЭ ГЮОПНЯШ НР 2 ЙНЛОНБ НМ ХУ АСДЕР АСТЕПЕГХПНБЮРЭ Х БШДНБЮРЭ ХУ ОННВЕПЕДХ Б РПЕРХИ ХМРЕПТЕИЯ (ЦДЕ БЕЯЪР 7017 ЛНДСК?ВЙХ)

2. ОПХДСЛЮРЭ ЯОНЯНА ОЕПЕДЮВХ ТСМЙЖХИ ЛЮЯРЕПЮ. мЮОПХЛЕП НДХМ ЙНЛО (ЛЮЯРЕП) ЦНБНПХР Ъ АНКЭЬЕ МЕ УНВС АШРЭ ЛЮЯРЕПНЛ, ЛМЕ МЕ Н ВЕЛ ЯОПЮЬХБЮРЭ ЛНДСКХ Х БРНПНИ ЯРЮМНБХРЭЯЪ ЛЮЯРЕПНБ ОНЙЮ ЕЛС МЕ МЮДНЕЯР, Х ОНРНЛ ЯЮЛ ОЕПЕДЮЕР ОНКМНЛНВХЪ. лХМСЯШ НВЕБХДМШ (НДХМ ЙНЛО ГЮБХЯЮЕР Х БЯ?). лНФМН ОПХДСЛЮРЭ Х АНКЕЕ УХРПШЕ ЯОНЯНАШ ЯХМУПНМХГНБЮРЭЯЪ. мН ЛЮЯРЕП Б ЙЮФДШИ ЛНЛЕМР БПЕЛЕМХ МЮ ЬХМЕ НДХМ. НМ ЯОПЮЬХБЮЕР, ФД?Р НРБЕР. 485 МЕ ЛНФЕР ПЮГПЕЬЮРЭ ЙНККХГХИ:)

Whaler
()
Ответ на: комментарий от Whaler

> Насколько я понял доки то главное отличие rs-485 от rs-422 > заключается в возможности присутствия нескольких мастеров. Или я не

> правильно понял???

Несколько запутанный вопрос. Есть например мнение, что 422 это только точка-точка (М Гук "Аппаратные интерфейсы ПК" 2003г стр 57). Другие под 422 имеют ввиду четыр?хпроводный 485. Как пишет тот же Гук "Интерфейсы (422 485) электрически совместимы между собой, хотя и имеют некоторые различия в ограничениях. Принципиальное отличие передатчиков RS-485 - возможность переключения в третье состояние."

Если иметь ввиду двух проводный 485, то смысл в том что все узлы равноправны, то есть могут и передавать и слушать одну и ту же шину (пара проводов). Что сказал один слышат все. Напротив в 4-проводном варианте спрашивает один (по одной паре), и отвечают только ему (по другой паре). Поэтому ваше высказывание верно наполовину. Да на 4-ех проводной системе не сделать много мастеров, но это не значит что 2-х проводная на это расчитана. Надо отделять электрический уровень от логического. Электрический уровень позволяет (все равны). Но тогда надо организовать взаимодействие на логическом (как правильно говорили до меня использовать соответствующий протокол). Я могу предложить два варианта.

1. поставить контроллер 7188 к нему по двум интерфейсам будут приходить запросы от 2 компов он их будет буферезировать и выдовать их поочереди в третий интерфейс (где весят 7017 модул?чки)

2. придумать способ передачи функций мастера. Например один комп (мастер) говорит я больше не хочу быть мастером, мне не о чем спрашивать модули и второй становиться мастеров пока ему не надоест, и потом сам передает полномочия. Минусы очевидны (один комп зависает и вс?). Можно придумать и более хитрые способы синхронизоваться. Но мастер в каждый момент времени на шине один. он спрашивает, жд?т ответ. 485 не может разрешать коллизий:)

Whaler
()
Ответ на: комментарий от cvv

У 485 не может быть нескролько мастеров. "мультимастеринг" или "одномастеринг" поддерживает протокол передачи данных, а не интерфейс.

Например, в сети 485 по протоколу modbus может быть только один мастер. А специалезированный интерфейс modbus plus поддерживают мультимастеринг - маркер мастера переходит от одного устройства к другому. Но шнайдер электрик постепенно хоронит modbus plus, т.к. реализация открытого протокола modbus на 485 и TCP гораздо дешевле.

В 485 есть три провода (также как в CAN): +, -, земля. Все три провода используются для передачи и приёма данных с разделением доступа на запись во времени, в зависимости от режима приёма/передачи устройства.

Все дивайсы к ним подключаются параллельно. Поэтому все девайсы могут слушать сеть 485 одновременно, и только один может слать в неё пакет, и соответственно только один дивайс может отвечать на пакет.

В 422 используются 4 провода: +, -, на приём и +, -, на передачу. Грубо говоря это 232, но с другой физикой - вместо одного Rx используется два провода + и -, вместо одного Tx используется ещё два провода + и -.

Поэтому сетки на 422 не сделать это связь точка-точка. А в 485 все висят на одной шине.

Поэтому если ты наёдешь открытый протокол для 485 с поддержкой мультимастеринга скинь мне на мыло ссылку плиз. Открытые библиотеки под Линух ты можешь найти по ссылкам в разделе "ссылки" на сайте http://www.modbus.org

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

binr ★★
()
Ответ на: комментарий от cvv

Думаю, что на будущее тебе имеет смысл присмотреть в Ниеншансе преобразователи 485/TCP для протокола modbus, тогда оба твоих компа смогут "одновременно" работать по TCP с modbus485 сеткой.

Только заранее их спроси смогут ли несколько modbusTCP мастеров одновременно коннектится к одному преобразователю moxa, потому что я с таким преобразователями пока не работал.

binr ★★
()
Ответ на: комментарий от binr

К сожалению модули ICP-DAS модулёчки не поддерживают modbus, у них ADAM 4000 совместимый протокол. Там только один мастер. Как правильно отметил binr

" У 485 не может быть нескролько мастеров. "мультимастеринг" или "одномастеринг" поддерживает протокол передачи данных, а не интерфейс."

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

> Если ты ICP и moxa в Ниеншансе брал....

Врядли, у cvv в инфе написано Запорожье, а там свои поставщики

Whaler
()
Ответ на: комментарий от Whaler

Сердечно благодарю Whaler и binr за то что хоть немного просветили в етом вопросе.

cvv ★★★★★
() автор топика
Ответ на: комментарий от Whaler

>К сожалению модули ICP-DAS модулёчки не поддерживают modbus, 
>у них ADAM 4000 совместимый протокол.
-------^^^^^^^^^----------------------

Откуда у вас такая инфа??? В документации по icp-das я ничего похожего не нашёл.

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

Они почти полная копия модулей ADAM от ADVANTECH (протоколы по крайне мере у них одинаковые), поэтому протокол, который они испольщзуют иногда так называют, но заглаза. Вообще такого стандарта-протокола нет, и конечно сам ICP-DAS так свой протокол не назавает....

Whaler
()
Ответ на: комментарий от Whaler

;)

Да совершенно точно известно, что разработчики ICP DAS и ADAM территориально находятся в одном здании на разных этажах.

Но "концепции" контроллеров начиная с 8000 серии начинают различаться.

Например ICP DAS сделала свой последний 8000 контроллер на базе Windows CE, а ADAM-8000 программируется с помощью закрытого немецкого STEP 7 (им же программируется PLC контроллеры siemens simatic S-7 300, 400...).

Наверно, STEP 7 поставили по желанию фирмы Прософт, похоже она хочет подвинуть сименс на рынке АСУ ТП. Но похоже эта затея с треском провалилась.

Если вдруг к нам попадёт ICP DAS-8000 думаю мы снесём CE и поставим туды Линух. Разработка и перенос софта под CE возможно очень дорого обойдётся.

ADAM-8000 - бесперспективная серия, там стоит наверно дохлый и задрипаный сименсовский С166 процессор и заморачиваться с ним не имеет смысла.

Резюме - всем рекомендую пользоваться "открытым" железом и софтом на базе Линуха (хотя и там не всё гладко). А также последним и самым полным дистрибутивом Debian. Он работает быстро и надёжно. При работе с Линухом софт легко переносится с одной платформы на другую :)

binr ★★
()
Ответ на: комментарий от binr

Ну по I-7000 док читать не перечитать аж тошнит скоко доков. Да же под линух утилиты есть В чем проблема то я так и не понял в физическом интерфейсе или как заставить работать??????????

Spicinpv
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.