реклама на сайте
подробности

 
 
> сниффер ком порта
Alex_2015
сообщение Sep 6 2016, 13:56
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 8-08-15
Пользователь №: 87 893



Всем доброго дня. Есть сеть устройств, работающих по протоколу модбас через RS485. Необходимо написать перехватчик сообщений для ком порта, способный ловить паузы между сообщениями.
Вот как поймать паузы, пока не соображу. Драйвер возвращает пачки по несколько байт, но поймать получается только длинные паузы (между запросами), а вот разделить запрос-ответ пока не могу.
Есть программы снифферы, которые как-то реализуют такую возможность. Надо написать свою, в которой данные преобразовать в удобоваримый вид, удобный для отладки работы сети устройств.
В винде это наверное тяжело будет сделать, но может есть способ, о котором я пока не знаю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
juvf
сообщение Sep 23 2016, 03:14
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
для любителей растяжек НИКОГДА не работавших с длинными реальными линиями.
А что такое длинная реальная линия? с линией в 1200 метров не работал..... но несколько сотен метров - был опыт. Ни чего в линию не дули, ни до ни после передачи... линия была на растяжках.

Цитата
За такую "подтяжку" криворуким дизайнерам надо отрывать гениталии. Она КАТОСТРОФИЧЕСКИ гробит дальность передачи.
Так в даташитах на драйвера эти растяжки в схемах как ..... Typical Half-Duplex RS-485 Network.

zltigo, а вы как с 485-ым работаете? вообще без растяжек? Иногда разработчики забывали растяжку на линии сделать... так, когда линия свободна - все на линии непрерывно ловят мусор... непрерывно по уарту а процессор идёт мусор и связи толком нет.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 23 2016, 09:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (juvf @ Sep 23 2016, 06:14) *
zltigo, а вы как с 485-ым работаете? вообще без растяжек?

Разумеется без.
Предпочтение отдается, как уже писал, Failsafe приемникам (разумеется тем, которые True), но это для уменьшения помех, а не для того что бы мечтать, что помех не будет.
Растяжки опциональные в железе предусмотрены, но ТОЛЬКО на случай подключений чужого железа которое делали убогие программисты не поддерживающие активное состояние линии перед началом передачи. Увы, сие не редкость sad.gif и Вы тому живое свидетельство. Для систем в котором используется гарантрованно свое оборудование на своем протоколе - нет и этой опции за полной ненадобностью.
QUOTE
Иногда разработчики забывали растяжку на линии сделать... так, когда линия свободна - все на линии непрерывно ловят мусор... непрерывно по уарту а процессор идёт мусор и связи толком нет.

Все это совершенно нормально БЕСПРОБЛЕМНО фильтруется. Для фильтрации, например, в случае MODBUS и заложены те самые 1,5 и 3,5 интервалы АКТИВНОГО состояния, но без передачи, и само собой обработка ошибок собственно UART.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
juvf
сообщение Sep 23 2016, 10:34
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(zltigo @ Sep 23 2016, 14:08) *
Все это совершенно нормально БЕСПРОБЛЕМНО фильтруется. Для фильтрации, например, в случае MODBUS и заложены те самые 1,5 и 3,5 интервалы АКТИВНОГО состояния, но без передачи, и само собой обработка ошибок собственно UART.
не ради холевара.... а ради прокачки скила.... как допустим, ПК БЕСПРОБЛЕМНО делает интервал активного состояния без передачи данных? как в покупных преобразователях усб-485 или 232-485 ПК делает активные паузы? это раз

2)но понятно.... что перед отправкой пакета сделать паузу, то вероятность ошибок будет меньше.... линяя будет "нешумная" и слейв получит пакет нормально. Но если линяя брошена... растяжек нет... то в УАРТ постоянно сыплет мусор. Понятно, что слейв считает црц и вероятность что получился из мусора годный пакет бесконечно мала.... Слейв в мусоре годного пакета не найдет. Но мусор то есть... и слейву нужно этот мусор обрабатывать... т.е. слейв непрерывно копается в мусоре и тратит свои ресурсы. Кто-то скажет - что эти ресурсы ничтожно малы.... но на каком нить АтТини не так уж и малы. с растяжками мусора нет.... может и могут быть помехи.... но они очень редки

Цитата
в случае MODBUS и заложены те самые 1,5 и 3,5 интервалы АКТИВНОГО состояния
эээээ.... в MODBUS вроде нет ни каких интервалов активного состояния. там есть интервалы тишины.


ps я всегда в своих устройствах делаю счетчик пакетов с битыми црц, и счетчик пакетов адресованных "мне". всегда интересно.... на сколько качественная связь.... сколько пакетов потеряно? каковы помехи? Приятно увидеть через год, что счетчик битых либо не изменился, либо инкрементировался на 1.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 23 2016, 11:38
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (juvf @ Sep 23 2016, 13:34) *
не ради холевара.... а ради прокачки скила.... как допустим, ПК БЕСПРОБЛЕМНО делает интервал активного состояния без передачи данных? как в покупных преобразователях усб-485 или 232-485 ПК делает активные паузы? это раз

Мне безразлично кто и что НЕ делает и по какой причине. Я говорю о том, как НАДО делать и как делаю сам.
QUOTE
но понятно.... что перед отправкой пакета сделать паузу, то вероятность ошибок будет меньше.... линяя будет "нешумная" и слейв получит пакет нормально. Но если линяя брошена... растяжек нет... то в УАРТ постоянно сыплет мусор.

Ну и пусть сыпет. Всегда возможна, пусть даже и нештатая ситуация, когда посыпется мусор и с такой ситуацией надо уметь БЕСПРОБЛЕМНО справляться.
QUOTE
Понятно, что слейв считает црц и вероятность что получился из мусора годный пакет бесконечно мала.... Слейв в мусоре годного пакета не найдет. Но мусор то есть... и слейву нужно этот мусор обрабатывать... т.е. слейв непрерывно копается в мусоре и тратит свои ресурсы. Кто-то скажет - что эти ресурсы ничтожно малы.... но на каком нить АтТини не так уж и малы. с растяжками мусора нет.... может и могут быть помехи.... но они очень редки

Тем не менее тот же MODBUS начинался тогда, когда помянутая Вами тини была-бы более, чем крута на фоне чего либо типа 8080 мегагерцового. Тратить ресурсы на самом деле не приходится особо, поскольку первоначальный отсев мусора идет уже по ошибкам фиксируемым UART, потом по тем тому самому 1,5 интервалу. В случае MODBUS контроль адреса и так далее....
QUOTE
эээээ.... в MODBUS вроде нет ни каких интервалов активного состояния. там есть интервалы тишины.

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


QUOTE (demiurg_spb @ Sep 23 2016, 13:45) *
Про 1,5 байта в начале не понял.
Там ведь и в начале и в конце 3,5 байта, а от 1,5 до 3,5 - это признак битого пакета.

Вот в начале и делается 1,5 байтовая пауза, кторая
1) Обепечивает признак битого пакета для любого мусора возможно идущего из линии.
2) Обеспечивает гарантрованный стоп бит и соответственно захват байтовой синхронизации UART-ом.
Для других протоколов может быть достаточно однобайтовой паузы только для синхронизации.
QUOTE
Кстати про FAILSAFE - большая их часть нифига не FAILSAFE (т.е. без смещённого порога).

Ну не большая, но много именно с хлипенькими "растяжками" внутри.
Причем это в основном левая китайская перемаркировка. Отличаются от настоящих легко по поведению при замыкании линии - растяжки сразу идут лесом в вылезает истинное личико sm.gif.
По этой причине я и писал ранее TRUE Falsafe.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alex_2015   сниффер ком порта   Sep 6 2016, 13:56
- - bolden   Добрый день, если вы ловите запрос+ответ и если не...   Sep 6 2016, 14:07
- - dm37   Можно принимать байты по одному с таймаутом, т.е. ...   Sep 6 2016, 14:24
- - Alex_2015   Такой вариант я рассматривал, но здесь ключевая фр...   Sep 6 2016, 14:39
|- - _3m   Цитата(Alex_2015 @ Sep 6 2016, 17:39) Осн...   Sep 6 2016, 18:08
- - dm37   т.е. вы подключаетесь к какой либо паре устройств ...   Sep 6 2016, 15:06
- - DASM   честно говоря я бы такую задачу решал иначе. А име...   Sep 6 2016, 15:56
|- - jcxz   Цитата(DASM @ Sep 6 2016, 21:56) честно г...   Sep 7 2016, 18:22
|- - zltigo   QUOTE (jcxz @ Sep 7 2016, 21:22) QueryPer...   Sep 7 2016, 21:06
||- - jcxz   Цитата(zltigo @ Sep 8 2016, 03:06) К чему...   Sep 8 2016, 03:53
||- - zltigo   QUOTE (jcxz @ Sep 8 2016, 06:53) ТСу нужн...   Sep 8 2016, 06:28
||- - jcxz   Цитата(zltigo @ Sep 8 2016, 12:28) Повтор...   Sep 8 2016, 09:10
||- - zltigo   QUOTE (jcxz @ Sep 8 2016, 12:10) Именно н...   Sep 8 2016, 10:42
||- - jcxz   Цитата(zltigo @ Sep 8 2016, 16:42) Разуме...   Sep 8 2016, 18:02
||- - zltigo   QUOTE (jcxz @ Sep 8 2016, 21:02) Т.е. - у...   Sep 9 2016, 07:23
||- - Ruslan1   Мне кажется, изначально вопрос некорректно поставл...   Sep 11 2016, 18:59
||- - jcxz   Цитата(zltigo @ Sep 9 2016, 13:23) Может,...   Sep 13 2016, 05:32
||- - zltigo   QUOTE (jcxz @ Sep 13 2016, 08:32) Вы пута...   Sep 13 2016, 07:28
|- - DASM   Цитата(jcxz @ Sep 7 2016, 21:22) Я бы тож...   Sep 8 2016, 08:14
- - Lagman   Очень давно, чем то подобным занимался (отлавливал...   Sep 6 2016, 20:35
- - k155la3   Если пишете сами, попробуйте использовать таймауты...   Sep 7 2016, 06:47
- - megajohn   Цитата(Alex_2015 @ Sep 6 2016, 17:56) Все...   Sep 7 2016, 08:36
- - Alex_2015   На тему конвертора мысли были. Но только на самый ...   Sep 7 2016, 12:42
- - Alex_2015   Читал я MSDN в своё время, когда осваивал программ...   Sep 8 2016, 01:23
- - k155la3   Если не требуется переносимость-универсальгность, ...   Sep 8 2016, 06:00
- - Alex_2015   Я не утверждаю, что MSDN врёт. Просто констатирую ...   Sep 8 2016, 06:11
- - Alex_2015   Я всё-таки внесу некоторые дополнения. Использую п...   Sep 9 2016, 01:11
- - juvf   2ТС Тут только аппаратный снифер поможет. Можно сд...   Sep 21 2016, 18:29
|- - Lagman   Цитата(juvf @ Sep 21 2016, 21:29) Сможет ...   Sep 22 2016, 10:16
|- - juvf   Цитата(Lagman @ Sep 22 2016, 15:16) it is...   Sep 22 2016, 10:20
|- - zltigo   QUOTE (Lagman @ Sep 22 2016, 13:16) и есл...   Sep 22 2016, 10:40
|- - Lagman   Цитата(zltigo @ Sep 22 2016, 13:40) В час...   Sep 22 2016, 11:18
|- - demiurg_spb   Добрый день коллеги! Захотелось обсудить вопро...   Sep 22 2016, 12:26
|- - megajohn   Цитата(demiurg_spb @ Sep 22 2016, 15:26) ...   Sep 22 2016, 12:35
||- - demiurg_spb   Нет. Интересует именно RS485! Наверное мне сто...   Sep 22 2016, 12:41
|- - zltigo   QUOTE (demiurg_spb @ Sep 22 2016, 15:26) ...   Sep 22 2016, 13:50
|- - demiurg_spb   Цитата(zltigo @ Sep 22 2016, 16:50) Увы, ...   Sep 23 2016, 10:45
|- - juvf   Цитата(demiurg_spb @ Sep 23 2016, 15:45) ...   Sep 23 2016, 11:16
|- - demiurg_spb   Цитата(juvf @ Sep 23 2016, 14:16) не един...   Sep 23 2016, 11:39
|- - zltigo   QUOTE (juvf @ Sep 23 2016, 14:16) не един...   Sep 23 2016, 11:55
- - juvf   ЦитатаМастер хочет передать и не знает был ли шум ...   Sep 22 2016, 12:47
|- - demiurg_spb   Цитата(juvf @ Sep 22 2016, 15:47) Мне бы ...   Sep 22 2016, 12:51
||- - juvf   Цитата(demiurg_spb @ Sep 22 2016, 17:51) ...   Sep 22 2016, 13:08
||- - demiurg_spb   Понятно что шумов быть не должно, но они как-бы ес...   Sep 22 2016, 13:13
||- - juvf   Цитата(demiurg_spb @ Sep 22 2016, 18:13) ...   Sep 22 2016, 13:19
||- - demiurg_spb   Понятно, что изолированный - это гальванически не ...   Sep 22 2016, 13:56
|- - zltigo   QUOTE (juvf @ Sep 22 2016, 15:47) Не нужн...   Sep 22 2016, 14:07
|- - Ruslan1   Цитата(juvf @ Sep 22 2016, 15:47) когда н...   Sep 23 2016, 12:44
|- - demiurg_spb   2juvf: Я стараюсь на комп не заводить MODBUS-RTU -...   Sep 23 2016, 13:04
- - juvf   ps Цитатапомехи могут дать ложный старт-бит.не вс...   Sep 22 2016, 12:56
|- - demiurg_spb   Цитата(juvf @ Sep 22 2016, 15:56) Про то,...   Sep 22 2016, 13:01
- - juvf   ЦитатаМне безразлично кто и что НЕ делает и по как...   Sep 23 2016, 12:09
|- - zltigo   QUOTE (juvf @ Sep 23 2016, 15:09) К слова...   Sep 23 2016, 12:41
- - juvf   ЦитатаПод голый ПК, ака DOS - без проблем.Поделите...   Sep 25 2016, 09:02
|- - zltigo   QUOTE (juvf @ Sep 25 2016, 12:02) Поделит...   Sep 25 2016, 14:28
|- - Ruslan1   juvf , Вы хотели что-то спросить, или просто еще р...   Sep 25 2016, 17:33
- - net   поддержу особенно про стаффинг есть же протокол ...   Sep 25 2016, 17:38
- - dm37   немного в поддержу juvf Если вы работаете по прото...   Sep 25 2016, 18:23
|- - AHTOXA   Добавлю сюда пару ссылок на предыдущие обсуждения ...   Sep 25 2016, 19:10
|- - net   QUOTE (dm37 @ Sep 25 2016, 21:23) немного...   Sep 26 2016, 08:37
|- - zltigo   QUOTE (dm37 @ Sep 25 2016, 21:23) немного...   Sep 26 2016, 09:51
|- - net   QUOTE (zltigo @ Sep 26 2016, 12:51) нет...   Sep 26 2016, 10:19
||- - zltigo   QUOTE (net @ Sep 26 2016, 13:19) попробуй...   Sep 26 2016, 11:47
||- - net   QUOTE (zltigo @ Sep 26 2016, 14:47) ктож...   Sep 26 2016, 11:56
||- - juvf   Цитата(zltigo @ Sep 26 2016, 16:47) у нег...   Sep 26 2016, 12:00
|- - juvf   Цитата(zltigo @ Sep 26 2016, 14:51) Поним...   Sep 26 2016, 10:20
- - dm37   Цитата"Стандарт" на MODBUS в котором про...   Sep 26 2016, 12:21
|- - zltigo   QUOTE (dm37 @ Sep 26 2016, 15:21) Надеюсь...   Sep 26 2016, 16:49
- - dm37   to zltigo для информации во вложении со страницы ...   Sep 26 2016, 17:00
|- - AHTOXA   Цитата(dm37 @ Sep 26 2016, 22:00) во влож...   Sep 26 2016, 19:35
|- - juvf   Цитата(AHTOXA @ Sep 27 2016, 00:35) Там к...   Sep 28 2016, 08:59
|- - AHTOXA   Цитата(juvf @ Sep 28 2016, 13:59) ну тут ...   Sep 28 2016, 10:07
|- - net   QUOTE (AHTOXA @ Sep 28 2016, 13:07) Но ес...   Sep 28 2016, 10:17
|- - _Pasha   Цитата(net @ Sep 28 2016, 13:17) а если б...   Sep 28 2016, 10:25
||- - net   QUOTE (_Pasha @ Sep 28 2016, 13:25) как В...   Sep 28 2016, 10:36
|- - demiurg_spb   Цитата(net @ Sep 28 2016, 13:17) а если б...   Sep 28 2016, 10:55
|- - net   QUOTE (demiurg_spb @ Sep 28 2016, 13:55) ...   Sep 28 2016, 11:12
|- - _Pasha   Цитата(demiurg_spb @ Sep 28 2016, 13:55) ...   Sep 28 2016, 11:24
- - juvf   срезюмирую.... Цитата(zltigo @ Sep 3 2015, 1...   Sep 27 2016, 06:49
|- - net   QUOTE (juvf @ Sep 27 2016, 09:49) QUOTE (...   Sep 27 2016, 11:18
|- - demiurg_spb   Цитата(juvf @ Sep 27 2016, 09:49) 2demiur...   Sep 27 2016, 14:45
|- - net   QUOTE (demiurg_spb @ Sep 27 2016, 17:45) ...   Sep 27 2016, 15:14
|- - _Pasha   Цитата(demiurg_spb @ Sep 27 2016, 17:45) ...   Sep 27 2016, 15:22
|- - zltigo   QUOTE (_Pasha @ Sep 27 2016, 18:22) Кста,...   Sep 27 2016, 20:46
|- - _Pasha   Цитата(zltigo @ Sep 27 2016, 23:46) 1) Аб...   Sep 28 2016, 06:55
||- - zltigo   QUOTE (_Pasha @ Sep 28 2016, 09:55) 1. Не...   Sep 28 2016, 11:52
||- - net   QUOTE (zltigo @ Sep 28 2016, 14:52) Не ре...   Sep 28 2016, 11:56
||- - AHTOXA   Цитата(zltigo @ Sep 28 2016, 16:52) Не ре...   Sep 28 2016, 12:15
||- - zltigo   QUOTE (AHTOXA @ Sep 28 2016, 15:15) Старт...   Sep 28 2016, 12:33
||- - net   QUOTE (zltigo @ Sep 28 2016, 15:33) Меня ...   Sep 28 2016, 12:47
||- - AHTOXA   Цитата(zltigo @ Sep 28 2016, 17:33) Если ...   Sep 28 2016, 12:55
||- - zltigo   QUOTE (AHTOXA @ Sep 28 2016, 15:55) Нет, ...   Sep 28 2016, 13:13
|- - net   QUOTE (zltigo @ Sep 27 2016, 23:46) 2) На...   Sep 28 2016, 07:16
- - dm37   to АНТОХА ЦитатаТам как раз сказано, что растяжки ...   Sep 27 2016, 13:22
- - _Pasha   да модбас RTU, что там оговаривать   Sep 28 2016, 07:42
- - net   QUOTE (_Pasha @ Sep 28 2016, 10:42) да мо...   Sep 28 2016, 08:19
2 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 13:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01521 секунд с 7
ELECTRONIX ©2004-2016