|
|
 |
Ответов
|
Jan 9 2007, 15:19
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Ссылка на WAKE http://www.spetspribor.com/support/software/wake/wake.htmlк сожалению не работает  , поэтому выложил сохраненную страницу со всеми файлами на ФТП /upload/DOCs/WAKE.rar байт-стаффинг конечно не очень хорошо, но жесткая времянка еще хуже(ИМХО). А то что MODBUS закрытый может я и ошибся, но всякие там оговорки типа: Цитата After 30 days, the ActiveX Controls stop communicating and return a result indicating that trial has expired мне не нравятся. ПС 2 prottoss На Вашем сайте исходников MODBUS нет, значит это закрытый протокол  .
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jan 9 2007, 19:15
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(otrog @ Jan 9 2007, 19:19)  2 prottoss На Вашем сайте исходников MODBUS нет, значит это закрытый протокол  . Мдя, после того, что я тут выложил, и Ваших слов некоторые точно подумают, что MODBUS придумал я  , хм....я уже подумываю о новой версии - PROTTOSSBUS, а че? звучит  ... Зато на моем сайте есть достаточное количество информации, что бы разобраться в протоколе и начать продуктивно работать в этом направлении. Что касается исходников - я уже говорил выше - есть на http://modbus.org совершенно БЕЗВОЗМЕЗДНЫЕ готовые исходники (под PIC, но переделывается влет за неделю) и для клиента и для сервера. Все на Сях. Может быть выложу и свои - надо их причесать немного...
--------------------
|
|
|
|
|
Jan 10 2007, 13:42
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(prottoss @ Jan 9 2007, 20:15)  Цитата(otrog @ Jan 9 2007, 19:19)  2 prottoss На Вашем сайте исходников MODBUS нет, значит это закрытый протокол  . Мдя, после того, что я тут выложил, и Ваших слов некоторые точно подумают, что MODBUS придумал я  , хм....я уже подумываю о новой версии - PROTTOSSBUS, а че? звучит  ... Зато на моем сайте есть достаточное количество информации, что бы разобраться в протоколе и начать продуктивно работать в этом направлении. Что касается исходников - я уже говорил выше - есть на http://modbus.org совершенно БЕЗВОЗМЕЗДНЫЕ готовые исходники (под PIC, но переделывается влет за неделю) и для клиента и для сервера. Все на Сях. Может быть выложу и свои - надо их причесать немного... Это замечательно, может кому то понадобитсся именно полный MODBUS. Я, правда достаточно давно, реализовывал его на ASM51. В принципе с точки зрения микроконтроллера ничего сложного нет. Но для меня немного нафталином попахивает. А вот с точки зрения PC, всё не так просто. Например задача - контроллировать задержку в 1.5 символа (пишу по памяти) на высоких скоростях (а RS485 поддерживает до 2Мбит) представляется сомнительной. Я столкнулся с тем что у меня PC самопроизвольно рвала пакеты. Иногда вставляя незначительные промежутки, но и скорость у меня не рекордная! А что будет на большой? Кроме того незнание момента окончания передачи для PC, а расчёт его, - тоже вызывает ощущение - не очень. Всё идейно важное, - на мой взгляд из первого уровня (как я бы сказал) из MODBUS взял тот же WAKE. А для меня красивым протоколом на втором уровне является X-modem. Я исследовал для себя. Он даёт самую высокую скорость при ошибках в линии. Очень идея красивая. Правда я делал адаптивные размеры пакетов и анализировал статистику. Интересно было бы повозится с LIN и с CAN. Чтобы самому составить своё собственное мнение. А вообще интересно наблюдать, что все более-менее современные протоколы в конечном итоге приближаются к сетевым.
|
|
|
|
|
Jan 11 2007, 01:04
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(SasaVitebsk @ Jan 10 2007, 13:42)  Например задача - контроллировать задержку в 1.5 символа (пишу по памяти) на высоких скоростях (а RS485 поддерживает до 2Мбит) представляется сомнительной. Я столкнулся с тем что у меня PC самопроизвольно рвала пакеты. Иногда вставляя незначительные промежутки, но и скорость у меня не рекордная! А что будет на большой? Кроме того незнание момента окончания передачи для PC, а расчёт его, - тоже вызывает ощущение - не очень. Разве идея MODBUS это не master-slave (запрос-ответ)? Насколько помню там тупо до ужаса. Посылаешь пакет, ставишь тайм-аут (отфонарный) ~100ms, если в ответ что-то пришло - хорошо, считаешь CRC, 0 - отлично, проверяешь код функции, совпал - значит ответ на наш запрос, ну а дальше парсишь сообщение. Слейву еще проще. Получил команду - отправил незамедлительно ответ. Где там задержки в 1.5 символа-то? фунции modbus драйвера: Код void mb_SendPacket(U8 *pData, U8 size) { while (size--) uq_PutChar( *pData++ ); }
void mb_PutMessage(PModbusDesc pDesc) { pDesc->CRC = mb_crc16( (U8 *)pDesc, sizeof(*pDesc) - 2 ); mb_SendPacket( (U8 *)pDesc, sizeof(*pDesc)); }
U8 mb_GetMessage(U8 *pStorage, U8 *retsize, U8 maxsize) { U32 tempclock = Kernel_GetClock() + 100; // 100 ms timeout U8 temp; *retsize = 0; do { if ( (uq_GetChar(&temp)) && (*retsize < maxsize)) { pStorage[(*retsize)++] = temp; } Kernel_idle(); } while (Kernel_GetClock() < tempclock); return ((*retsize) == 0) ? FAILED : SUCCESS; }
|
|
|
|
|
Jan 11 2007, 02:22
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(defunct @ Jan 11 2007, 01:04)  Слейву еще проще. Получил команду - отправил незамедлительно ответ. Не, незамедлительно нельзя! по стандарту нужно выдержать интервал не менее 4 длительностей байта Цитата Посылаешь пакет, ставишь тайм-аут (отфонарный) ~100ms, если в ответ что-то пришло - хорошо если ставить слишком большие таймауты, то это очень плохим образом может сказаться на производительности линии, если она слегка шумит Цитата Где там задержки в 1.5 символа-то? По стандарту нужно чтобы каждый принимаемый байт попадал в фрейм длительностью 1,5 байта на данной скорости. Правда эту часть стандарта обычно никто не контролирует строго. Главное это чтобы межбайтовые промежутки не превышали межпакетные. Ну и контролировать можно только со стороны слейва. Если слейв микроконтроллер то это сделать легко, а вот если PC под Win да и еще скорость приличная, то тогда легче сразу повеситься Когда мастер PC под Win то существует проблема обрезания длинных пакетов: Цитата(SasaVitebsk @ Jan 10 2007, 13:42)  Например задача - контроллировать задержку в 1.5 символа (пишу по памяти) на высоких скоростях (а RS485 поддерживает до 2Мбит) представляется сомнительной. Я столкнулся с тем что у меня PC самопроизвольно рвала пакеты. Иногда вставляя незначительные промежутки, но и скорость у меня не рекордная! А что будет на большой? Кроме того незнание момента окончания передачи для PC, а расчёт его, - тоже вызывает ощущение - не очень. Кстати SasaVitebsk какая у Вас скорость ? Удалось ли победить обрезание пакетов ?
|
|
|
|
Сообщений в этой теме
li4 3 ATMega8 к 1 COM-порту ПК Jan 5 2007, 20:45 Сергей Борщ Цитата(li4 @ Jan 5 2007, 19:45) Подскажит... Jan 5 2007, 21:34 Dopler Цитата(li4 @ Jan 5 2007, 20:45) Подскажит... Jan 5 2007, 21:35 defunct Цитата(Dopler @ Jan 5 2007, 21:35) ...
Ид... Jan 5 2007, 21:54  vvs157 Цитата(defunct @ Jan 5 2007, 21:54) Толку... Jan 5 2007, 22:01  Dopler Цитата(defunct @ Jan 5 2007, 21:54) Цитат... Jan 5 2007, 22:30   defunct Цитата(Dopler @ Jan 5 2007, 22:30) Линии ... Jan 5 2007, 22:40    Dopler ЦитатаЦитатаЛинии TX от мег соединяются в одну и п... Jan 5 2007, 23:01     defunct Цитата(Dopler @ Jan 5 2007, 23:01) Посмот... Jan 5 2007, 23:11      Dopler Цитата(defunct @ Jan 5 2007, 23:11) Цитат... Jan 5 2007, 23:18   Dog Pawlowa Цитата(Dopler @ Jan 5 2007, 23:30) Да ну,... Jan 6 2007, 07:05 jorikdima А можно я тут несколько в сторону отойду. У меня п... Jan 5 2007, 23:41 Сергей Борщ Цитата(jorikdima @ Jan 5 2007, 22:41) Вне... Jan 6 2007, 11:20  li4 Цитата(Сергей Борщ @ Jan 6 2007, 11:20) Я... Jan 6 2007, 12:52   Dopler Цитата(li4 @ Jan 6 2007, 12:52) Цитата(Се... Jan 6 2007, 13:34   SasaVitebsk Цитата(li4 @ Jan 6 2007, 13:52) Цитата(Се... Jan 6 2007, 14:30    Dog Pawlowa Цитата(SasaVitebsk @ Jan 6 2007, 15:30) .... Jan 6 2007, 15:22     Dopler Цитата(Dog Pawlowa @ Jan 6 2007, 15:22) Ц... Jan 6 2007, 17:00     Сергей Борщ Цитата(Dog Pawlowa @ Jan 6 2007, 14:22) Н... Jan 6 2007, 20:54     SasaVitebsk Цитата(Dog Pawlowa @ Jan 6 2007, 16:22) Ц... Jan 6 2007, 22:34      Сергей Борщ Цитата(SasaVitebsk @ Jan 6 2007, 21:34) В... Jan 6 2007, 23:28      Dog Pawlowa Цитата(SasaVitebsk @ Jan 6 2007, 23:34) В... Jan 7 2007, 16:03       SasaVitebsk Цитата(Dog Pawlowa @ Jan 7 2007, 17:03) Д... Jan 7 2007, 19:12        Dog Pawlowa Цитата(SasaVitebsk @ Jan 7 2007, 20:12) .... Jan 7 2007, 21:42         prottoss Цитата(Dog Pawlowa @ Jan 8 2007, 01:42) .... Jan 7 2007, 22:02          singlskv Цитата(prottoss @ Jan 7 2007, 22:02) Я ко... Jan 8 2007, 01:34           prottoss Цитата(singlskv @ Jan 8 2007, 05:34) Прош... Jan 8 2007, 04:52            singlskv Цитата(prottoss @ Jan 8 2007, 04:52) Цита... Jan 8 2007, 13:35             prottoss Цитата(singlskv @ Jan 8 2007, 17:35) Есть... Jan 8 2007, 13:52              singlskv Цитата(prottoss @ Jan 8 2007, 13:52) Цита... Jan 8 2007, 14:40             prottoss [quote name='singlskv' date='Jan 8 200... Jan 8 2007, 14:51          Dog Pawlowa Цитата(prottoss @ Jan 7 2007, 23:02) Цита... Jan 8 2007, 10:31           prottoss Цитата(Dog Pawlowa @ Jan 8 2007, 14:31) З... Jan 8 2007, 10:48            Dog Pawlowa Цитата(prottoss @ Jan 8 2007, 11:48) ребя... Jan 8 2007, 13:00             prottoss Цитата(Dog Pawlowa @ Jan 8 2007, 17:00) Ц... Jan 8 2007, 13:13             SasaVitebsk Цитата(Dog Pawlowa @ Jan 8 2007, 14:00) Ц... Jan 8 2007, 20:30              prottoss Цитата(SasaVitebsk @ Jan 9 2007, 00:30) М... Jan 8 2007, 20:54               singlskv Цитата(prottoss @ Jan 8 2007, 20:54) ЗЫ: ... Jan 9 2007, 01:43                prottoss Цитата(singlskv @ Jan 9 2007, 05:43) Цита... Jan 9 2007, 03:55         SasaVitebsk Цитата(Dog Pawlowa @ Jan 7 2007, 22:42) Ц... Jan 8 2007, 04:05 Serj78 Подтверждаю, можно отдельно включать и приемник и... Jan 5 2007, 23:46 li4 Спасибо всем ответившим.ЦитатаЛинии TX от мег соед... Jan 6 2007, 09:15 beer_warrior ЦитатаА почему нельзя RS232 так объединить?
А пото... Jan 6 2007, 13:25 li4 ЦитатаПочему нельзя применить RS485?
Я спросил пот... Jan 6 2007, 23:16 defunct Цитата(li4 @ Jan 6 2007, 23:16) Цитата По... Jan 7 2007, 00:35 li4 Значит выбираю RS485 .
Достаточно каждый контролле... Jan 7 2007, 01:17 SasaVitebsk Цитата(li4 @ Jan 7 2007, 02:17) Значит вы... Jan 7 2007, 02:37 li4 С USB это интересно и перспективно, но сначала хоч... Jan 7 2007, 12:20 defunct Цитата(li4 @ Jan 7 2007, 12:20) С USB это... Jan 7 2007, 12:55 Сергей Борщ Цитата(li4 @ Jan 7 2007, 11:20) Выводы TX... Jan 7 2007, 13:48 prottoss Цитата(li4 @ Jan 6 2007, 00:45) Подскажит... Jan 7 2007, 14:31 li4 ЦитатаПочитайте даташит, сравните уровни напряжени... Jan 7 2007, 17:14 prottoss Цитата(li4 @ Jan 7 2007, 21:14) Значит на... Jan 7 2007, 17:26 Сергей Борщ Цитата(li4 @ Jan 7 2007, 16:14) Из описан... Jan 8 2007, 01:51 Stanislav Граждане, а можно и мне свой пятачок вставить?
Ч... Jan 8 2007, 02:08 Сергей Борщ Цитата(Stanislav @ Jan 8 2007, 01:08) Име... Jan 8 2007, 03:02 li4 Подумал и решил что избавиться от программного кон... Jan 8 2007, 15:27 Сергей Борщ Цитата(li4 @ Jan 8 2007, 14:27) прошу пос... Jan 8 2007, 15:56 li4 Все исправил, схемы приняли вид:
RS232 to RS485:
... Jan 8 2007, 18:56 Сергей Борщ Цитата(li4 @ Jan 8 2007, 17:56) Все испра... Jan 8 2007, 21:20  prottoss Цитата(Сергей Борщ @ Jan 9 2007, 01:20) В... Jan 8 2007, 21:29   WHALE Цитата(prottoss @ Jan 8 2007, 21:29) Цита... Jan 8 2007, 21:59    SasaVitebsk Цитата(WHALE @ Jan 8 2007, 22:59) Цитата(... Jan 9 2007, 01:13 otrog Дабы не заморачиваться с микросекундными задержкам... Jan 9 2007, 13:46 prottoss Цитата(otrog @ Jan 9 2007, 17:46) Дабы не... Jan 9 2007, 13:57 GDI в WAKE используется байт-стаффинг, так что удвоени... Jan 9 2007, 14:13 prottoss Цитата(GDI @ Jan 9 2007, 18:13) в WAKE ис... Jan 9 2007, 14:31 GDI не все так плохо.. признаком стаффинга является ... Jan 9 2007, 15:01     SasaVitebsk Цитата(singlskv @ Jan 11 2007, 03:22) Кст... Jan 11 2007, 03:44     defunct Цитата(singlskv @ Jan 11 2007, 02:22) Не,... Jan 14 2007, 02:56      SasaVitebsk Я думаю всё это обосновано следующим. Должно быть ... Jan 14 2007, 20:53       otrog Цитата(SasaVitebsk @ Jan 14 2007, 20:53) ... Jan 15 2007, 15:36        SasaVitebsk Цитата(otrog @ Jan 15 2007, 16:36) Цитата... Jan 15 2007, 18:40         Dog Pawlowa Я потерял исходное сообщение, кто это высказал:
... Jan 16 2007, 21:01          SasaVitebsk Цитата(Dog Pawlowa @ Jan 16 2007, 22:01) ... Jan 16 2007, 23:28          otrog Цитата(Dog Pawlowa @ Jan 16 2007, 21:01) ... Jan 17 2007, 08:55 li4 Цитатаotrog: Выложил сохраненную страницу со всеми... Jan 9 2007, 19:01 otrog Цитата(li4 @ Jan 9 2007, 19:01) Цитатаotr... Jan 10 2007, 10:54 prottoss 2 singlskv
Зачем так щипетильно относится к станд... Jan 11 2007, 09:09 Leonty 1. В асинхронном режиме можно ввести метрику проце... Jan 12 2007, 16:37 singlskv Цитата(defunct @ Jan 14 2007, 02:56) Цита... Jan 15 2007, 00:01 SasaVitebsk Цитата(singlskv @ Jan 15 2007, 01:01) ...... Jan 15 2007, 14:29 Svin62 Скажите пожалуйста, вот если соединять слейвы с ма... Feb 8 2009, 09:38 demiurg_spb ИМХО никак.
Но может быть есть драйверы RS-232 кот... Feb 8 2009, 11:09 zltigo Цитата(Svin62 @ Feb 8 2009, 12:38) Короче... Feb 8 2009, 11:15  Svin62 Цитата(zltigo @ Feb 8 2009, 14:15) Управл... Feb 8 2009, 11:54   zltigo Цитата(Svin62 @ Feb 8 2009, 14:54) Значит... Feb 8 2009, 12:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|