|
Modbus RTU подобный протокол, проблема реализации, Может есть готовый с описанием. |
|
|
|
 |
Ответов
|
Jul 30 2007, 10:58
|
Гуру
     
Группа: Свой
Сообщений: 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. Да кстати ещё один момент. Если у вас один мастер на PC и несколько слэйвов на МК, то не надо транслировать. Вы можете подать паралельно на все МК. Будет меньше обработки, а ПО на МК будет однотипное. Просто разные адреса и/или команды. У меня к примеру сейчас 7 слэйвов.
|
|
|
|
|
Jul 30 2007, 13:06
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Цитата(SasaVitebsk @ Jul 30 2007, 13:58)  Простите, а зачем вы за всех отвечаете? Я например брал и полностью реализовывал весь протокол. И все паузы выдерживал. Насколько я помню там ни одна а несколько пауз определяющих. Потом брал программу тестирующую и проверял свой протокол на работоспособность. Кстати когда я делал, то тоже считал всё это не очень важным. Потому что пользовал 232 интерфейс. Потом когда переходил на rs485 понял зачем паузы и почему они такие. Они ведь не из головы взяты, а банально расчитаны. И я считаю что надо именно придерживаться стандарта или использовать свой протокол. Просто потому, что иначе это Modbus не назовёшь. Мастером вы можете и увеличить паузы. Например указание по 3.5символа, там "не меньше". То есть если пауза превысила данный таймаут, то пошла новая посылка, а предыдущая оборвана. Не знаю сбрасывал ли кто. Попробую сбросить я. Прога на PC для тестирования Modbus. Возможно есть более новая версия - не знаю. Я с этим работал лет 7 назад ещё на х51. Да кстати ещё один момент. Если у вас один мастер на PC и несколько слэйвов на МК, то не надо транслировать. Вы можете подать паралельно на все МК. Будет меньше обработки, а ПО на МК будет однотипное. Просто разные адреса и/или команды. У меня к примеру сейчас 7 слэйвов. Когда будет 2 и более мастера на шине, тогда я может-быть с вами и соглашусь.А сейчас все просто Мастер дает запрос и ждет ответа. И RS485 здесь не причем.Не имею в виду реализацию Slave на РС. Мой мастер прекрасно работает со стандартными датчиками и приборами ..Микрол,Элемер,Метран, весы SBS и пр. Реализация мастера на МК проще чем на РС. Больше хлопот доставляет Slave на микроконтроллере.Здесь есть много алгоритмов реализации. Главное зависит от того , какую основную функцию выполняет МК. Главное не зацикливаться на Modbus.Modbus для него не главная задача. С успехом в своих разработках применяю смешанный протокол.Посылка с начальным и завершающим символом, а передаются байты.Все остальное от RTU .Это более скоростной протокол и проще программый код.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|