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

 
 
> Как лучше организовать протокол (логический) для RS-485
Diusha
сообщение Feb 22 2010, 09:15
Сообщение #1


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



На главный блок должна стекаться инфа с нескольких периферийных.
Есть такие варианты:
1) Каждый периферийный посылает данные (по мере их готовности) и в теч. нек. времени ждет подтверждение от главного. Если подтверждения нет, посылает еще раз. Если случайно 2 периферийных пошлют одновременно, то контрольная сумма не совпадет -> не будет подтверждения -> повтор.
2) Главный постоянно периферийным шлет запросы. Если у периферийного данные готовы, то он посылает.

Вроде оба варианта имеют право на существование, но чего-то не нравятся. Может предложите получше варианты или есть решения, проверенные временем?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Feb 23 2010, 04:40
Сообщение #2


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Не мучайтесь, сделайте Модбас.
Заодно получите возможность подключать вместе с Вашими ещё кучу других устройств и опрашивать их не только своей программой, но и многими другими системами сбора данных.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Diusha
сообщение Feb 23 2010, 08:04
Сообщение #3


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(ASN @ Feb 22 2010, 18:50) *
Линию в любом случае кто-то должен держать.

Зачем ее обязательно кому-то держать? (я не спорю, а просто спрашиваю smile.gif )

Цитата(ASN @ Feb 22 2010, 18:50) *
Большая частота - это какая величина?

Пока только расплывчато… Чтобы на глаз задержка не была заметна. Думаю, миллисек 50 от готовности данных до их получения на центральном.

Цитата(ASN @ Feb 22 2010, 18:50) *
Чем не устраивает такой протокол?

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

Цитата(Andron_ @ Feb 22 2010, 20:06) *
а гарантированная доставка пакета от периферийного устройства необходима?

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

Цитата(rezident @ Feb 22 2010, 20:32) *
Я с ходу могу предложить ситуацию в которой будет коллизия, которую разрулить будет весьма сложно. Представьте, что на контролируемом объекте произошла авария и все устройства с этого объекта пытаются одновременно передать информацию об аварийном событии. laughing.gif

Разруливается весьма легко: У каждого устройства свой период повторной передачи в случае неполучения подтверждения.

Цитата(Сергей Борщ @ Feb 22 2010, 20:17) *
Для 485 коллизия является нештатной ситуацией. Производитель не гарантирует, что драйвера выдержат сколь-нибудь долгую эксплуатацию в таком режиме.

Логично! Не подумал об этом. Чего-то не нашел в ДШ на МАХ485 про допустимую нагрузку.

Цитата(SSerge @ Feb 23 2010, 07:40) *
Не мучайтесь, сделайте Модбас.
Заодно получите возможность подключать вместе с Вашими ещё кучу других устройств и опрашивать их не только своей программой, но и многими другими системами сбора данных.

«Куча» не понадобится и опрос другими системами тоже. Так что подгонгять под определенный готовый стандарт и проверять, действительно ли оно соответствует, – как раз лишнее мучение. Но общие принципы модбаса стоит взять на вооружение.
Go to the top of the page
 
+Quote Post
ASN
сообщение Feb 23 2010, 10:12
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



Diusha
Держать желательно, чтобы не линия "болтала".
Были в практике неприятные истории, когда устройства постоянно "дёргались" обрабатывать запросы по UART, потому что линией никто не управлял и она "ловила" шумы.
При скорости 19200 время передачи одного байта около 0,5 мс.
Даже если сообщение состоит из 10 байт + время на включение/выключение опрос одного устройства займёт не более 5 мс.
Сколько у Вас устройств? Для 10, IMHO, времени достаточно.
Плюс к тому, чтобы на глаз задержка не была заметна для нескольких байт ограничение будет выступать, IMHO, не задержки передачи, а задержки отрисовки в ПЭВМ.
Если надо опрашивать много устройств, IMHO, лучше сделать концентраторы, которые собирают информацию с удалённых объектов и отсылают её в host.
На подобие дерева.
P.S. Я бы рекомендовал Modbus - лучше день потерять, потом за час долететь smile.gif Просто, надёжно.
Go to the top of the page
 
+Quote Post
Diusha
сообщение Feb 23 2010, 13:34
Сообщение #5


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(ASN @ Feb 23 2010, 13:12) *
Держать желательно, чтобы не линия "болтала".
Были в практике неприятные истории, когда устройства постоянно "дёргались" обрабатывать запросы по UART, потому что линией никто не управлял и она "ловила" шумы.

В любом случае если не повесить подтяжки, линия болтать будет: мастер послал запрос и переключился на прием. Пока слейв не ответил, все устройства слушают болтавню.
Или я что-то не понимаю?

Цитата(ASN @ Feb 23 2010, 13:12) *
чтобы на глаз задержка не была заметна для нескольких байт ограничение будет выступать, IMHO, не задержки передачи, а задержки отрисовки в ПЭВМ.

Ну я имел в виду задержку не передачи, а периода посылки запросов мастером, если период будет велик

Сообщение отредактировал Diusha - Feb 23 2010, 13:30
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Diusha   Как лучше организовать протокол (логический) для RS-485   Feb 22 2010, 09:15
- - ASN   Diusha Второй способ используем достаточно давно. ...   Feb 22 2010, 10:40
- - Сергей Борщ   Цитата(Diusha @ Feb 22 2010, 11:15) 1) Ка...   Feb 22 2010, 14:05
|- - Diusha   Цитата(rezident @ Feb 22 2010, 17:53) Пер...   Feb 22 2010, 15:42
|- - ASN   Diusha Линию в любом случае кто-то должен держать....   Feb 22 2010, 15:50
|- - Сергей Борщ   Цитата(Diusha @ Feb 22 2010, 17:42) Дело ...   Feb 22 2010, 17:17
||- - Ruslan1   Цитата(Сергей Борщ @ Feb 22 2010, 19:17) ...   Feb 24 2010, 12:31
||- - Сергей Борщ   Цитата(Ruslan1 @ Feb 24 2010, 14:31) Назо...   Feb 24 2010, 13:28
||- - Diusha   Цитата(galjoen @ Feb 24 2010, 13:45) вклю...   Feb 25 2010, 05:47
|||- - Ruslan1   Цитата(Diusha @ Feb 25 2010, 07:47) Из по...   Feb 25 2010, 07:35
|||- - galjoen   Цитата(Diusha @ Feb 25 2010, 08:47) А не ...   Feb 25 2010, 10:03
|||- - Itch   Цитата(galjoen @ Feb 25 2010, 16:03) А во...   Feb 25 2010, 10:38
|||- - galjoen   Цитата(Itch @ Feb 25 2010, 13:38) чем не ...   Feb 25 2010, 11:08
||- - Ruslan1   Цитата(Сергей Борщ @ Feb 24 2010, 15:28) ...   Feb 25 2010, 07:12
|- - rezident   Цитата(Diusha @ Feb 22 2010, 20:42) Дело ...   Feb 22 2010, 17:32
- - rezident   Цитата(Diusha @ Feb 22 2010, 14:15) Вроде...   Feb 22 2010, 14:53
- - Andron_   а гарантированная доставка пакета от периферийного...   Feb 22 2010, 17:06
||- - ASN   Diusha А если длина линии (в смысле ёмкость) больш...   Feb 23 2010, 18:23
||- - Diusha   Цитата(ASN @ Feb 23 2010, 21:23) IMHO, Ва...   Feb 24 2010, 03:46
||- - galjoen   Если так боитесь коллизий и скорость передачи у ва...   Feb 24 2010, 10:45
|- - rezident   Цитата(Diusha @ Feb 23 2010, 13:04) Разру...   Feb 23 2010, 13:48
|- - Diusha   Цитата(rezident @ Feb 23 2010, 16:48) Хе-...   Feb 23 2010, 15:04
- - Don2   Цитата(Diusha @ Feb 22 2010, 12:15) Вроде...   Feb 23 2010, 07:24
|- - stells   Цитата(Don2 @ Feb 23 2010, 10:24) можете ...   Feb 23 2010, 07:45
- - bill_vs   А сколько устройств на линии по максиму? Может и п...   Feb 23 2010, 15:46
|- - Diusha   Цитата(bill_vs @ Feb 23 2010, 18:46) А ск...   Feb 23 2010, 16:09
|- - bill_vs   Цитата(Diusha @ Feb 23 2010, 19:09) ... Е...   Feb 23 2010, 17:46
- - Andron_   тут вот так вот на пальцах можно бесконечно долго ...   Feb 23 2010, 16:36
- - Andron_   2Ruslan1 Т.о. вы считаете, что система может стро...   Feb 25 2010, 07:28
- - MrYuran   Нда... Как говорится, мы трудностей не боимся. Не ...   Feb 25 2010, 07:55
- - Andron_   ЦитатаНо с точки зрения программинга упаси Боже Ва...   Feb 25 2010, 12:01
- - Diusha   Цитата(Ruslan1 @ Feb 25 2010, 10:35) Не н...   Feb 25 2010, 17:40


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:08
Рейтинг@Mail.ru


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