Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
28.12.2010, 15:34
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Re: Modbus RTU
Ну там так и написано,чего спрашивать?
Цитата:
|
RTU фрейм.
В RTU режиме сообщение начинается с интервала тишины равного времени передачи 3.5 символов при данной скорости передачи в сети. Первым полем затем передается адрес устройства.
Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3.5 символов. Новое сообщение может начинаться после этого интервала.
Фрейм сообщения передается непрерывно. Если интервал тишины продолжительностью 1.5 возник во время передачи фрейма, принимающее устройство заканчивает прием сообщения и следующий байт будет воспринят как начало следующего сообщения.
Таким образом, если новое сообщение начнется раньше 3.5 интервала, принимающее устройство воспримет его как продолжение предыдущего сообщения. В этом случае устанавливается ошибка, так как будет несовпадение контрольных сумм.
|
Добавлю.Этот протокол надо соблюдать если вы хотите соединить свой девайс со стандартным устройством,например промышленный контроллер.А если вы хотите связать два своих микроконтроллера,то зачем он (этот протокол)вам нужен.Пишите свой.
Последний раз редактировалось Vov123; 28.12.2010 в 15:44.
|
|
|
|
28.12.2010, 15:43
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Modbus RTU
Сообщение от Vov123
|
Ну вот,а говорили читали
|
Вы наверное не поняли что я имел в виду, или я плохо объяснил.
Когда мы через Com порт терминал посылаем символ 8 битный, посылка выглядит так:
старт бит, 8 бит данных, стоп бит.
Но!
В описании модбаса ничего не сказано о том, что между двумя соседними байтами пакета есть какие-то старт и стоп биты, как будто их там нет!
Вопрос: есть они там или нет?
Как нужно задать вопрос, чтобы было понятно что я имею в виду?
|
|
|
|
28.12.2010, 15:50
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Re: Modbus RTU
В каждой посылке(8 бит) есть "старт" и "стоп"(1 или 1,5 или 2 бита)биты.Соответственно чтобы отправить 1 байт - уйдёт от 10 до 11 бит.
|
|
|
|
28.12.2010, 15:54
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Modbus RTU
Сообщение от Vov123
|
В каждой посылке(8 бит) есть "старт" и "стоп"(1 или 1,5 или 2 бита)биты.Соответственно чтобы отправить 1 байт - уйдёт от 10 до 11 бит.
|
Спасибо огромное, именно это я и хотел услышать. Теперь вопросов к Modbus больше нет.
|
|
|
|
11.01.2011, 14:31
|
|
Прописка
Регистрация: 24.08.2005
Сообщений: 139
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
|
Re: Modbus RTU
возможно кто выложит часть кода под Modbus где именно идет формирование пакета к отправке, нужно свезать два микроконтроллера Mega
пока неполучается, можно в писать личку.
|
|
|
|
12.01.2011, 01:26
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Re: Modbus RTU
Кстати, насчет вышеприведенной цитаты:
Цитата:
|
Если интервал тишины продолжительностью 1.5 возник во время передачи фрейма, принимающее устройство заканчивает прием сообщения и следующий байт будет воспринят как начало следующего сообщения.
Таким образом, если новое сообщение начнется раньше 3.5 интервала, принимающее устройство воспримет его как продолжение предыдущего сообщения.
|
Не кажется ли Вам, что эти два предложения противоречат друг другу? Вот если бы и в первом предложении вместо 1.5 было 3.5, тогда все логично. По-моему, на каком то этапе в описание протокола вкралась опечатка, а все ее копируют из документа в документ...
|
|
|
|
12.01.2011, 11:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Modbus RTU
tsb,
различайте разрыв фрейма, т.е. макс. интервал между байтами/символами в сообщении, и мин. интервал между фреймами, т.е. сообщениями
|
|
|
|
13.01.2011, 01:08
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Re: Modbus RTU
Сообщение от jump
|
tsb,
различайте разрыв фрейма, т.е. макс. интервал между байтами/символами в сообщении, и мин. интервал между фреймами, т.е. сообщениями
|
Я понимаю, что эти интервалы могут быть не одинаковыми. Например, если интервал между байтами/символами в сообщении допускается не более 1,5 символа, то при его превышении прием прерывается с ошибкой, так как пакет получился не полный. Если интервал между сообщениями получился менее 3,5 символа, то пакет будет проигнорирован, так как не было достаточной длительности "тишины". Но не так же, как в вышеприведенной цитате из документа. Там говорится, что при паузе ›1,5 будет считаться новое сообщение, а при паузе ‹3,5 будет считаться продолжение старого.
|
|
|
|
13.03.2011, 08:42
|
|
Частый гость
Регистрация: 15.10.2009
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Modbus RTU
помогите не могу понять в чем дело. modbus poll пишет Timeout error. использовал исходник, который выложил и заверил что работает Hold[On]. modbus poll настраивал так
Com1
скорость 19200
паритет - none
стоп бит - 1
частота опроса-1000мс
Slave ID - 1
Функция - 03 HOLDING REGISTER
адрес - 1
квонтити -1
в исходнике изменил частоту кварца с 16000000 на 11059200 Гц. соответственно пересчитал таймер счетчик 0, и поменял настройку УСАРТа (UBRRL=0x35 для 11059200 Гц 19200);. код подправил для AVR studio (был написан для IAR), заменил только вектора прерывания
Код приложил. вроде понял модбас, но не получается
может у кого нибудь есть рабочий проект, если не жалко выложите!
Последний раз редактировалось dronow87; 13.03.2011 в 09:05.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
управление по modbus
|
antibiotic0000 |
Микроконтроллеры, АЦП, память и т.д |
1 |
17.11.2009 13:23 |
Часовой пояс GMT +4, время: 16:15.
|
|