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

 
 
> Modbus RTU подобный протокол, проблема реализации, Может есть готовый с описанием.
Alex ma
сообщение Jul 29 2007, 17:34
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 81
Регистрация: 9-08-06
Пользователь №: 19 445



Вся фишка в проблеме определения стартовой последовательности, в Modbus – это пауза 3,5 кадра вроде, другой вариант уникальная стартовая последовательность, проблема исключения стартовой последовательности в данных, для МК мне кажется проще всего отслеживать паузу чем обрабатывать массив с поиском и заменой стартовой последовательности, чтоб она не встретилась в данных. Да, но на PC таймер под Windows только 1 мс дискретность.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
upc2
сообщение Jul 30 2007, 06:46
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Это все условно.Никто на практике паузу в 3,5 символа не анализирует. Все под контролем мастера.
Подчиненный контроллер должен сразу ответить.Согласен с rezident необходимо только правильно
организовать минимальную паузу перед началом ответа ,чтобы РС успел отреагировать на ответ и
максимальное время отведенное для ответа, чтобы долго не ожидать ответа.Обычно это около 1 сек.
Естественно минимальная пауза зависит от того какой у вас драйвер СОМ-порта в РС и времени
переключения RS-485 преобразователя.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 30 2007, 10:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(upc2 @ Jul 30 2007, 09:46) *
Это все условно. Никто на практике паузу в 3,5 символа не анализирует. Все под контролем мастера.
Подчиненный контроллер должен сразу ответить.Согласен с rezident необходимо только правильно
организовать минимальную паузу перед началом ответа ,чтобы РС успел отреагировать на ответ и
максимальное время отведенное для ответа, чтобы долго не ожидать ответа.Обычно это около 1 сек.
Естественно минимальная пауза зависит от того какой у вас драйвер СОМ-порта в РС и времени
переключения RS-485 преобразователя.


Простите, а зачем вы за всех отвечаете? Я например брал и полностью реализовывал весь протокол. И все паузы выдерживал. Насколько я помню там ни одна а несколько пауз определяющих. Потом брал программу тестирующую и проверял свой протокол на работоспособность.

Кстати когда я делал, то тоже считал всё это не очень важным. Потому что пользовал 232 интерфейс. Потом когда переходил на rs485 понял зачем паузы и почему они такие. Они ведь не из головы взяты, а банально расчитаны. И я считаю что надо именно придерживаться стандарта или использовать свой протокол. Просто потому, что иначе это Modbus не назовёшь. Мастером вы можете и увеличить паузы. Например указание по 3.5символа, там "не меньше". То есть если пауза превысила данный таймаут, то пошла новая посылка, а предыдущая оборвана.

Не знаю сбрасывал ли кто. Попробую сбросить я. Прога на PC для тестирования Modbus. Возможно есть более новая версия - не знаю. Я с этим работал лет 7 назад ещё на х51. smile.gif

Да кстати ещё один момент. Если у вас один мастер на PC и несколько слэйвов на МК, то не надо транслировать. Вы можете подать паралельно на все МК. Будет меньше обработки, а ПО на МК будет однотипное. Просто разные адреса и/или команды. У меня к примеру сейчас 7 слэйвов.
Прикрепленные файлы
Прикрепленный файл  MODSCAN.ZIP ( 167.75 килобайт ) Кол-во скачиваний: 141
 
Go to the top of the page
 
+Quote Post
upc2
сообщение Jul 30 2007, 13:06
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Цитата(SasaVitebsk @ Jul 30 2007, 13:58) *
Простите, а зачем вы за всех отвечаете? Я например брал и полностью реализовывал весь протокол. И все паузы выдерживал. Насколько я помню там ни одна а несколько пауз определяющих. Потом брал программу тестирующую и проверял свой протокол на работоспособность.

Кстати когда я делал, то тоже считал всё это не очень важным. Потому что пользовал 232 интерфейс. Потом когда переходил на rs485 понял зачем паузы и почему они такие. Они ведь не из головы взяты, а банально расчитаны. И я считаю что надо именно придерживаться стандарта или использовать свой протокол. Просто потому, что иначе это Modbus не назовёшь. Мастером вы можете и увеличить паузы. Например указание по 3.5символа, там "не меньше". То есть если пауза превысила данный таймаут, то пошла новая посылка, а предыдущая оборвана.

Не знаю сбрасывал ли кто. Попробую сбросить я. Прога на PC для тестирования Modbus. Возможно есть более новая версия - не знаю. Я с этим работал лет 7 назад ещё на х51. smile.gif

Да кстати ещё один момент. Если у вас один мастер на PC и несколько слэйвов на МК, то не надо транслировать. Вы можете подать паралельно на все МК. Будет меньше обработки, а ПО на МК будет однотипное. Просто разные адреса и/или команды. У меня к примеру сейчас 7 слэйвов.


Когда будет 2 и более мастера на шине, тогда я может-быть с вами и соглашусь.А сейчас все просто
Мастер дает запрос и ждет ответа. И RS485 здесь не причем.Не имею в виду реализацию Slave на РС.
Мой мастер прекрасно работает со стандартными датчиками и приборами ..Микрол,Элемер,Метран,
весы SBS и пр. Реализация мастера на МК проще чем на РС.
Больше хлопот доставляет Slave на микроконтроллере.Здесь есть много алгоритмов реализации.
Главное зависит от того , какую основную функцию выполняет МК. Главное не зацикливаться на Modbus.Modbus для него не главная задача.
С успехом в своих разработках применяю смешанный протокол.Посылка с начальным и завершающим
символом, а передаются байты.Все остальное от RTU .Это более скоростной протокол и проще программый код.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alex ma   Modbus RTU подобный протокол, проблема реализации   Jul 29 2007, 17:34
- - SasaVitebsk   Цитата(Alex ma @ Jul 29 2007, 20:34) Вся ...   Jul 29 2007, 18:18
- - oran-be   А разве в спецификации MODBUS RTU есть определение...   Jul 29 2007, 19:23
|- - Alex ma   У ведущего МК два USART один мастер второй слейв, ...   Jul 29 2007, 19:55
- - rezident   При реализации RTU-ных протоколов в контроллере на...   Jul 29 2007, 20:10
- - ALexx   Один из вариантов - в приложении. Представляет соб...   Jul 30 2007, 07:38
- - bodja74   Делать задержки на таймере не самое лучшее решение...   Jul 30 2007, 11:35
|- - singlskv   Цитата(bodja74 @ Jul 30 2007, 15:35) Дела...   Jul 30 2007, 13:26
|- - bodja74   Цитата(singlskv @ Jul 30 2007, 16:26) Sle...   Jul 30 2007, 16:16
|- - singlskv   Цитата(bodja74 @ Jul 30 2007, 20:16) ГЫ ,...   Jul 30 2007, 16:27
|- - bodja74   Цитата(singlskv @ Jul 30 2007, 19:27) Ну ...   Jul 30 2007, 20:44
|- - singlskv   Цитата(bodja74 @ Jul 31 2007, 00:44) Ей б...   Jul 30 2007, 21:04
- - Maddy   Ну Sleep как-то не кошерно для _таких_ задержек по...   Jul 30 2007, 17:41
|- - singlskv   Цитата(Maddy @ Jul 30 2007, 21:41) Ну Sle...   Jul 30 2007, 18:01
|- - SasaVitebsk   Цитата(singlskv @ Jul 30 2007, 21:01) Mil...   Jul 30 2007, 18:44
|- - upc2   Цитата(SasaVitebsk @ Jul 30 2007, 21:44) ...   Jul 31 2007, 04:49
- - defunct   Цитата(Alex ma @ Jul 29 2007, 20:34) Вся ...   Jul 30 2007, 20:15
|- - singlskv   Цитата(defunct @ Jul 31 2007, 00:15) Ну н...   Jul 30 2007, 22:45
|- - _Алекс   Цитата(defunct @ Jul 30 2007, 23:15) На М...   Jul 31 2007, 04:15
||- - defunct   Цитата(_Алекс @ Jul 31 2007, 07:15) или в...   Jul 31 2007, 10:15
|- - ALexx   Цитата(defunct @ Jul 30 2007, 23:15) Ну н...   Jul 31 2007, 06:53
- - oran-be   Тема получения точных задержек в виндозе очень бла...   Jul 30 2007, 20:23
- - rezident   oran-be, когда вы цитируете кого-то, то указывайте...   Jul 30 2007, 20:47
- - oran-be   Цитата(rezident)когда вы цитируете кого-то, то ука...   Jul 31 2007, 04:55
- - _Алекс   МК Slave: Скажем есть функция обработки принятого...   Jul 31 2007, 05:46
- - upc2   To _Алекс Прикрепил документ, где хорощо распиcа...   Jul 31 2007, 09:53


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

 


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


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