|
Протокол modbus. Вопросы по интерфейсу |
|
|
|
Oct 16 2008, 10:46
|
Группа: Новичок
Сообщений: 2
Регистрация: 16-10-08
Пользователь №: 40 997

|
Здравствуйте. На работе дали задание разработать интерфейс сообщений между устройствами на основе протокола Modbus. Суть такова. Есть некоторое количество измерительных приборов, соединённых по RS-485. Нужно сделать так, чтобы с одного прибора можно было управлять другим - устанавливать режимы, принимать архивы измерений и т.д. За основу предложено взять протокол modbus. Уже месяц сижу и туплю. Вопросы: 1. Можно ли сделать так, чтобы любое устройство могло взять на себя роль главного? 2. Каким образом вообще передавать информацию главному? Через регистры, что ли? 3. С чего вообще начинать? Подскажите, пожалуйста, ткните носом во что-нибудь готовое, описание какое-нибудь. Протокол зачитал, но там, такое ощущение, всё привязано к конкретным контроллерам.
|
|
|
|
|
 |
Ответов
|
Nov 8 2009, 16:02
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
2 defunct, еще раз обращаю внимание, что я писал про общий случай, а не про тот, когда устройство только связью занимается. И не про канальный уровень, а про физический, когда обработка прерывания по времени должна занимать как можно меньше времени. Потому, что могут быть и другие прерывания тоже критичные ко времени. Ничего не имею против вашего мнения, но получается, что вы сами себе возражали, т.к. переиначили мое сообщение так, чтобы вам было удобно возражать
|
|
|
|
|
Nov 8 2009, 17:48
|

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

|
Цитата(rezident @ Nov 8 2009, 18:02)  И не про канальный уровень, а про физический, Выше Вы привели ссылку на модель OSI, вы ее читали? Физический уровень Самый нижний уровень модели предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством.Канальный уровень Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень.Физический уровень это сугубо природа сигналов, трансивер и иже с ним сдвиговый регистр и схема битового кодированая (манчестер, инверсия и т.п.). А выделением из мусора битов входного потока осмысленных данных, проверкой ошибок, занимается уже канальный уровень, на ступеньку выше. Прерывание от UART "кадр принят" это не физ, а канальный уровень. Цитата когда обработка прерывания по времени должна занимать как можно меньше времени. Потому, что могут быть и другие прерывания тоже критичные ко времени. Ничего не имею против вашего мнения, но получается, что вы сами себе возражали, т.к. переиначили мое сообщение так, чтобы вам было удобно возражать  просто показал что имеет смысл собирать пакеты побайтово прямо в прерывании, а не наваливать бездумно все байты в буфер перекладывая тем самым работу канального уровня на сетевой уровень. Для примера взял PPP который в отличие от Modbus является протоколом строго канального уровня.
|
|
|
|
|
Nov 8 2009, 18:39
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(defunct @ Nov 8 2009, 22:48)  Выше Вы привели ссылку на модель OSI, вы ее читали? Вот потому, что я ее читал (и неоднократно) и не называю его канальным. Т.к. часть характеристики Цитата Полученные с физического уровня данные он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень. в моем описании отсутствует. Вообще сетевая модель OSI это лишь идеал. В реальности крайне мало (стеков) протоколов которые бы полностью укладывались в эту модель. Возможно я вообще зря ее упомянул.
|
|
|
|
|
Nov 8 2009, 19:51
|

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

|
Цитата(rezident @ Nov 8 2009, 20:39)  Вот потому, что я ее читал (и неоднократно) и не называю его канальным. Т.к. часть характеристики в моем описании отсутствует. Не совсем, у Вас в описании просматривается часть характеристки канального уровня - проверка правильности принятых данных (по крайней мере четность). Цитата Вообще сетевая модель OSI это лишь идеал. В реальности крайне мало (стеков) протоколов которые бы полностью укладывались в эту модель. Возможно я вообще зря ее упомянул.  Согласен, однако если грань между верхними тремя уровнями (session/presentation/app) настолько мала что ее часто трудно найти особенно в embedded сфере, то границы между нижними уровнями физ, канал, транспорт - просматриваются довольно четко. И хотя бы на этих трех уровнях можно пытаться стремиться к идеалу: <физ уровень> --> сводится к драйверу железа или эмулятору железа (программый UART/ программный SPI) <канальный уровень> ---> разбиение пакетов на голые байты и передача их драйверу железа, прием голых данных от железа и укладка в пакеты <сеть> --> маршрутизация (проверка сетевого адреса). <транспорт> --> укладка и выделение пользовательских данных в/из пакетов. сетевой уровень (который лежит между транспортом и каналом) можно взависимости от конкретного протокола, объединять или с транспортным или с канальным уровнем. В случае одноранговой сети Modbus его выгоднее объединить с канальным уровнем, в случае многоранговой IP сети - с транспортным.
|
|
|
|
|
Nov 8 2009, 20:08
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(defunct @ Nov 9 2009, 00:51)  Не совсем, у Вас в описании просматривается часть характеристки канального уровня - проверка правильности принятых данных (по крайней мере четность). В некоторых UART есть возможность отсеивать неправильно принятые байты, при этом (ошибках приема) прерывания просто не будет. И хотя это не очень правильно, но возможно. Цитата(defunct @ Nov 9 2009, 00:51)  <физ уровень> --> сводится к драйверу железа или эмулятору железа (программый UART/ программный SPI) <канальный уровень> ---> разбиение пакетов на голые байты и передача их драйверу железа, прием голых данных от железа и укладка в пакеты <сеть> --> поиск и проверка маршрутов <транспорт> --> укладка и выделение пользовательских данных в/из пакетов. ОК. Достаточно. Я вас понял. Вы канальный уровень вешаете на прерывания. Я где-то раньше так тоже делал. Но в других проектах мне показалось это нецелесообразным.
|
|
|
|
Сообщений в этой теме
Phuntik Протокол modbus. Вопросы по интерфейсу Oct 16 2008, 10:46 MrYuran Правильный протокол - на modbus.org
Если нужно мен... Oct 16 2008, 11:24 Phuntik Цитата(MrYuran @ Oct 16 2008, 14:24) Если... Oct 16 2008, 11:27  MrYuran Цитата(Phuntik @ Oct 16 2008, 15:27) Т.е.... Oct 16 2008, 11:33 Andy Great Цитата(MrYuran @ Oct 16 2008, 14:24) Если... Oct 17 2008, 07:56  MrYuran Цитата(Andy Great @ Oct 17 2008, 11:56) P... Oct 17 2008, 08:27 Bovolk Тоже поставили задачу прикрутить Modbus.
В о... Nov 16 2008, 11:01 defunct Цитата(Bovolk @ Nov 16 2008, 13:01) Подчи... Jan 1 2009, 05:05  koyodza Цитата(defunct @ Jan 1 2009, 08:05) По за... Oct 17 2009, 19:30 ucMike Наверное, главной проблемой станет борьба с коллиз... Dec 3 2008, 22:13 ucMike Цитата(ucMike @ Dec 4 2008, 01:13) P.S. С... Dec 4 2008, 11:10 ukpyr modbus plus - multimaster :
http://prodcs.ru/files... Jan 1 2009, 08:40 @Ark ЦитатаВопросы:
1. Можно ли сделать так, чтобы любо... Oct 17 2009, 21:29 rezident koyodza, @Ark, зачем нужно старую тему поднимать? ... Oct 17 2009, 21:36 koyodza Цитата(rezident @ Oct 18 2009, 00:36) koy... Oct 18 2009, 17:51  defunct Цитата(koyodza @ Oct 18 2009, 19:51) Я от... Nov 8 2009, 00:09   koyodza Цитата(defunct @ Nov 8 2009, 02:09) Станд... Nov 9 2009, 17:17    defunct Цитата(koyodza @ Nov 9 2009, 19:17) Или В... Nov 10 2009, 03:21    defunct Цитата(koyodza @ Nov 9 2009, 19:17) Полно... Nov 10 2009, 05:00     Verifi Цитата(defunct @ Nov 10 2009, 08:00) Заче... Nov 10 2009, 07:06     rezident Цитата(defunct @ Nov 10 2009, 10:00) Ниче... Nov 10 2009, 11:41     rezident На досуге я тут кое-что обдумывал и вернулся вот к... Nov 15 2009, 01:53      defunct Цитата(rezident @ Nov 15 2009, 03:53) def... Nov 15 2009, 02:49   demiurg_spb Цитата(defunct @ Nov 8 2009, 03:09) у вас... Nov 28 2009, 20:54    defunct Цитата(demiurg_spb @ Nov 28 2009, 22:54) ... Dec 8 2009, 20:45     demiurg_spb Цитата(defunct @ Dec 8 2009, 23:45) В AMD... Dec 9 2009, 15:43 @Ark Sorry, не посмотрел на дату. Просто тема показал... Oct 17 2009, 21:40 D&M Здравствуйте.У меня такой вопрос: Есть теплосчетчи... Oct 24 2009, 06:12 HARMHARM Цитата(D&M @ Oct 24 2009, 09:12) Можн... Oct 24 2009, 07:18 D&M устройство с виртуальным USB CDC- это как я понял ... Oct 24 2009, 08:13 D&M или как ? жду разных предложений.. Кстати- USB CDC... Oct 24 2009, 20:41 rezident Цитата(D&M @ Oct 25 2009, 01:41) или ... Oct 25 2009, 02:15 D&M Тогда может посоветуете OPC-сервер,который может д... Oct 25 2009, 07:36 D&M Посмотрел,продумал разные варианты и пришел к выво... Oct 26 2009, 15:46 Ronin Цитата(D&M @ Oct 26 2009, 18:46) Посм... Nov 3 2009, 19:15  zltigo Цитата(Ronin @ Nov 3 2009, 22:15) GPRS эт... Nov 4 2009, 19:17   MrYuran Цитата(zltigo @ Nov 4 2009, 22:17) Ну а в... Nov 5 2009, 06:17    zltigo Цитата(MrYuran @ Nov 5 2009, 09:17) По ГП... Nov 5 2009, 15:50   Ronin Цитата(zltigo @ Nov 4 2009, 22:17) Ну а в... Nov 6 2009, 11:21 rezident D&M, я вам в личку написал. Не смотрели? Oct 26 2009, 17:59 D&M ответил Oct 26 2009, 18:23 D&M 1,3 варианты продумал,говорил про модем teleofis-r... Nov 4 2009, 18:49 D&M Нету Modbus-TCP, есть Modbus-RTU в моем рассказе. Nov 5 2009, 15:04 D&M У счетчика Modbus-RTU, а в модеме только CSD.. Nov 6 2009, 12:41 Ronin Цитата(D&M @ Nov 6 2009, 15:41) У сче... Nov 6 2009, 13:10 @Ark Цитата... Я ответил скорее не топикпастеру, а на ф... Nov 8 2009, 01:37 aaarrr Цитата(@Ark @ Nov 8 2009, 04:37) А вот, н... Nov 8 2009, 01:43 @Ark ЦитатаИз всего перечисленного какой-то практически... Nov 8 2009, 01:56 aaarrr Ну, сколько удалось наносекунд сэкономить, а? Серь... Nov 8 2009, 02:01 @Ark Цитата... значит что-то не так с выбором протоколо... Nov 8 2009, 02:21 aaarrr Ну, как и следовало ожидать, конкретные цифры озву... Nov 8 2009, 02:55 rezident Ради справедливости хотелось бы заметить, что не в... Nov 8 2009, 02:32 defunct Цитата(rezident @ Nov 8 2009, 04:32) Но в... Nov 8 2009, 03:27 @Ark ЦитатаНу, как и следовало ожидать, конкретные цифр... Nov 8 2009, 06:30 aaarrr Пример из пальца высосан: вдруг, по команде извне,... Nov 8 2009, 15:11 @Ark Цитата... вдруг, по команде извне, начинаем АЦПиро... Nov 8 2009, 15:30 aaarrr Цитата(@Ark @ Nov 8 2009, 18:30) ... Толь... Nov 8 2009, 15:46     defunct Цитата(rezident @ Nov 8 2009, 22:08) Вы к... Nov 8 2009, 23:12      rezident Цитата(defunct @ Nov 9 2009, 04:12) Можно... Nov 9 2009, 16:31 @Ark Цитата... скорее вряд ли кому нужно "мгновенн... Nov 8 2009, 16:06 aaarrr Цитата(@Ark @ Nov 8 2009, 19:06) Вашими м... Nov 8 2009, 16:24 @Ark Ну, хорошо, давайте продолжим...
ЦитатаА что будет... Nov 8 2009, 17:15 aaarrr Цитата(@Ark @ Nov 8 2009, 20:15) Ничего с... Nov 8 2009, 17:27 @Ark ЦитатаВыпадет просто, да? А таймаут ответа "с... Nov 8 2009, 17:43 aaarrr Цитата(@Ark @ Nov 8 2009, 20:43) С чего в... Nov 8 2009, 18:25 @Ark ЦитатаКак вы считаете, сколько времени будет сэкон... Nov 8 2009, 19:24 aaarrr Цитата(@Ark @ Nov 8 2009, 22:24) То есть,... Nov 8 2009, 19:42 @Ark ЦитатаЯ предлагаю снабдить слейв минимальным интел... Nov 8 2009, 20:07 aaarrr Цитата(@Ark @ Nov 8 2009, 23:07) Ну, а ка... Nov 8 2009, 20:20 @Ark ЦитатаА реальное время будет спокойно жить в слейв... Nov 8 2009, 20:38 aaarrr Цитата(@Ark @ Nov 8 2009, 23:38) Я опять ... Nov 8 2009, 21:04 @Ark Цитата... что данные будут получены с некоторой ап... Nov 8 2009, 21:24 aaarrr Цитата(@Ark @ Nov 9 2009, 00:24) С какой?... Nov 8 2009, 21:36 @Ark ЦитатаПреимущество блочной передачи вполне очевидн... Nov 8 2009, 21:51 aaarrr Цитата(@Ark @ Nov 9 2009, 00:51) Здесь мы... Nov 8 2009, 22:17 @Ark ЦитатаЦитата(aaarrr @ Nov 9 2009, 00:17)
Да, я вс... Nov 9 2009, 11:09 forever failure Прально, зачем ждать на светофоре зелёного, если н... Nov 10 2009, 07:34 rezident Ну вот и консенсус наметился Считайте, что у меня... Nov 15 2009, 03:19 defunct Цитата(rezident @ Nov 15 2009, 05:19) Счи... Nov 15 2009, 03:22  rezident Цитата(defunct @ Nov 15 2009, 08:22) Толь... Nov 15 2009, 03:27   defunct Цитата(rezident @ Nov 15 2009, 05:27) Не ... Nov 15 2009, 03:33    rezident Цитата(defunct @ Nov 15 2009, 08:33) След... Nov 15 2009, 03:59     defunct Цитата(rezident @ Nov 15 2009, 05:59) Это... Nov 15 2009, 04:10      rezident Цитата(defunct @ Nov 15 2009, 09:10) Да н... Nov 15 2009, 18:15       defunct Цитата(rezident @ Nov 15 2009, 20:15) Нет... Nov 15 2009, 22:27        rezident Цитата(defunct @ Nov 16 2009, 03:27) Но в... Nov 15 2009, 22:50         defunct Цитата(rezident @ Nov 16 2009, 00:50) Нет... Nov 15 2009, 23:08          rezident Цитата(defunct @ Nov 16 2009, 04:08) Функ... Nov 16 2009, 00:20           defunct Цитата(rezident @ Nov 16 2009, 02:20) Нич... Nov 16 2009, 00:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|