|
Modbus RTU подобный протокол, проблема реализации, Может есть готовый с описанием. |
|
|
|
 |
Ответов
|
Jul 30 2007, 17:41
|
Участник

Группа: Validating
Сообщений: 56
Регистрация: 15-10-06
Пользователь №: 21 335

|
Ну Sleep как-то не кошерно для _таких_ задержек пользовать ... Тогда-уж лучше в сторону multimedea timer'ов посмотреть .... там и четче можно ...
|
|
|
|
|
Jul 30 2007, 18:01
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Maddy @ Jul 30 2007, 21:41)  Ну Sleep как-то не кошерно для _таких_ задержек пользовать ... Тогда-уж лучше в сторону multimedea timer'ов посмотреть .... там и четче можно ... Miltimedia Timers намного лучше чем Sleep, по крайней мере они, насколько я помню, не дают при задержке например 3мс, задержку 150мкс  Правда точность мультимедейных таймеров тоже не "блестящая", примерно 1-3 мс. Так что если нужен полный контроль - PerformanceCounters, в остальных случаях мультимедиа таймеры, а Sleep это только на на случай если нашему процессу действительно нужно поспать по крайней мере 20 мс (максимальное время такта операционки которое я лично встречал)
|
|
|
|
|
Jul 30 2007, 18:44
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(singlskv @ Jul 30 2007, 21:01)  Miltimedia Timers намного лучше чем Sleep, по крайней мере они, насколько я помню, не дают при задержке например 3мс, задержку 150мкс  Правда точность мультимедейных таймеров тоже не "блестящая", примерно 1-3 мс. Так что если нужен полный контроль - PerformanceCounters, в остальных случаях мультимедиа таймеры, а Sleep это только на на случай если нашему процессу действительно нужно поспать по крайней мере 20 мс (максимальное время такта операционки которое я лично встречал) Совершенно с Вами согласен. Подписываюсь под всеми пунктами. Sleep я безусловно тоже использую. И потоки и MMTimer. Вариант процедуры его я и привёл. Но у меня поддёргивается чуть чуть. На взгляд синхронно с секундными тиками.  Думаю это тоже можно убрать, да просто нет необходимости пока. Цитата С успехом в своих разработках применяю смешанный протокол.Посылка с начальным и завершающим символом, а передаются байты.Все остальное от RTU .Это более скоростной протокол и проще программый код. Тоже так поступаю, но не называю это modbus. Ну а если делаешь modbus, то будь добр соблюдай весь протокол. Или называй его modbus- подобный протокол. Понятно, что если не можешь физически сделать, то что тут уже попишешь. Поэтому в мастере на PC я тоже отступаю от стандарта. Ну а теперь я вообще не придерживаюсь modbus. Считаю его устаревшим. Мы уже здесь где-то обсуждали эти вопросы. Хочется использовать стандартный, но не перегруженный условностями протокол, взявший лучшее от modbus. Тут обсуждалась "пирамида", "wake" и др. Надо как-нибудь собраться с силами и прочитать-вникнуть. Может я стану горячим поборником.
|
|
|
|
|
Jul 31 2007, 04:49
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Цитата(SasaVitebsk @ Jul 30 2007, 21:44)  Тоже так поступаю, но не называю это modbus. Ну а если делаешь modbus, то будь добр соблюдай весь протокол. Или называй его modbus- подобный протокол. Понятно, что если не можешь физически сделать, то что тут уже попишешь. Поэтому в мастере на PC я тоже отступаю от стандарта. Ну а теперь я вообще не придерживаюсь modbus. Считаю его устаревшим. Мы уже здесь где-то обсуждали эти вопросы. Хочется использовать стандартный, но не перегруженный условностями протокол, взявший лучшее от modbus. Тут обсуждалась "пирамида", "wake" и др. Надо как-нибудь собраться с силами и прочитать-вникнуть. Может я стану горячим поборником.  Ну, там где надо, я протокол не нарушаю Мне тоже не нравится Modbus, но многие фирмы реализуют его в своей продукции и тут ничего не поделаешь.Конечно, если готовишь продукцию для рынка, то надо более четко реализовать протокол. Цитата(_Алекс @ Jul 31 2007, 07:15)  А как вы сделали, «Приняв любой байт по УАРТу взвожу таймер», в это время по юарту идут байты, таймер тикает, и переполняется, устанавливается флаг переполнения, или вы по приему байта с юарта сбрасываете счетчик таймера? Спецификация Modbus RTU предписывает непрерывный поток данных.Поэтому по каждому символу необходимо сбрасывать (устанавливать) таймер настроенный на интервал равный 3,5 символам.Когда символы кончатся , сработает таймер.По срабатыванию таймера можно считать, что пакет пришел. Есть и другие методы приема.
|
|
|
|
Сообщений в этой теме
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 upc2 Это все условно.Никто на практике паузу в 3,5 сим... Jul 30 2007, 06:46 SasaVitebsk Цитата(upc2 @ Jul 30 2007, 09:46) Это все... Jul 30 2007, 10:58  upc2 Цитата(SasaVitebsk @ Jul 30 2007, 13:58) ... Jul 30 2007, 13:06 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 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|