|
|
 |
Ответов
|
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 какая у Вас скорость ? Удалось ли победить обрезание пакетов ?
|
|
|
|
|
Jan 14 2007, 02:56
|

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

|
Цитата(singlskv @ Jan 11 2007, 02:22)  Не, незамедлительно нельзя! по стандарту нужно выдержать интервал не менее 4 длительностей байта Я не согласен c этой частью стандарта, потому что такая задержка ничем не обоснована, кроме кривизны мастера. Нормальный драйвер переключается на прием сразу после отправки последнего бита. Цитата если ставить слишком большие таймауты, то это очень плохим образом может сказаться на производительности линии, если она слегка шумит Однако это позволит запросто избавиться вот от этого: Цитата Когда мастер PC под Win то существует проблема обрезания длинных пакетов Цитата По стандарту нужно чтобы каждый принимаемый байт попадал в фрейм длительностью 1,5 байта на данной скорости. опять-таки, эта часть стандарта объясняется только кривизной мастера, и надумана только для ASCII режима. В RTU посылки-то с нормальным кодом защиты, т.о. нам не страшны любые искажения и смещения потока.
|
|
|
|
|
Jan 15 2007, 15:36
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(SasaVitebsk @ Jan 14 2007, 20:53)  Слейв должен по запросу выдавать свою програмную модель что-ли. Давно присматриваюсь к "Пирамиде". http://upload.caxapa.ru/pyramid/Цитата Целью проектирования является разработка простого метода доступа к внутренним параметрам приборов. Базовое условие - терминал не обязан знать или предполагать что- либо о приборе для решения этой задачи. Единственное требование к терминалу – реализация стандартов доступа, относящихся к системе Пирамида. Вся информация о параметрах, методах работы с ними, элементах навигации по параметрам должна храниться исключительно в приборе. Изумительно выглядела бы связка WAKE(транспортный уровень) + Пирамида(логический уровень).
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
Сообщений в этой теме
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        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
|
|
|