Реализация Modbus Ascii на МК

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Лютик
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Реализация Modbus Ascii на МК

Сообщение Лютик »

Всем добрый!
Занимаюсь реализации протокола Modbus Ascii на микроконтроллере ADUC841 и прочитав мануал по данному протоколу возникло несколько вопросов(неразобрался :( )
Разновидность протокла Ascii подразумевает под собой передачу каждого байта как 2 полубайта представленного в виде Ascii символов и это распространяется на все байты пакета или только данные, или данные и проверку LRC?
Из даташита, вроде как переводить в аски надо все кроме признаков начала и конца пакета(':','CR/LF'), однако хочу перестраховаться и убедиться в этом на все 100
Столкнулся с еще 1ой проблемой, в даташите с оф. сайта приведен пример
Example : The byte 0X5B is encoded as two characters : 0x35 and 0x42 ( 0x35 ="5", and 0x42 ="B" in ASCII ).
а в 1ом мануале на русском(http://elektrokip.narod.ru/19.doc) приведены примеры пакет запроса мастера и ответ слэйва
Ниже представлен пример запроса на чтение регистров 40108-40110 из SL с адресом 17: 1103006B00037ELRC
Ниже представлен пример ответного сообщения на чтение регистров 40108-40110, имеющих содержимое, соответственно, 555, 0, 100, из SL с адресом 17: 110306022B0000006455LRC
И как видно отсюда, нет никакого представления каждого байта, как 2 байта в аски. Я чтото неправильно понимаю или там ошибка?
Реклама
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6319
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Реализация Modbus Ascii на МК

Сообщение Jack_A »

Если только не предполагается использовать МК-устройство в сети, где присутствуют другие устройства с интерфейсом Modbus ASCII, то я бы советовал забить на это громоздкое у"""ще и использовать хотя бы Modbus RTU - и короче, и вероятность обнаружения битого пакета порядка на 3 выше. Это не мнение. Это жизнь. Намучился с этой х-ней.
Реклама
Лютик
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Re: Реализация Modbus Ascii на МК

Сообщение Лютик »

Jack_A писал(а):Если только не предполагается использовать МК-устройство в сети, где присутствуют другие устройства с интерфейсом Modbus ASCII, то я бы советовал забить на это громоздкое у"""ще и использовать хотя бы Modbus RTU - и короче, и вероятность обнаружения битого пакета порядка на 3 выше. Это не мнение. Это жизнь. Намучился с этой х-ней.
учусь на кафедре Автоматизация технологических процессов и производств и данный протокол был выбран не случайно, а в связи с широким применением в промышленности. RTU не катит, так как вроде существуют сложности при синхронизации(используется windows xp - котороя не является ОС реального времени), а в аски допустима задержка в 1 секунду между символами.
В общем надо именно модбас аски и не что другое, хоть и сам понимаю что можно и проще и лучше, но, это не моя прихоть
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6319
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Реализация Modbus Ascii на МК

Сообщение Jack_A »

Слухи о нереалтаймовости винды сильно преувеличены. В своих первых системах я использовал ASCII и имел неповоротливую и глючную связь. Когда перешел на RTU, граблей никаких не было. Конечно, если ведется связь, а еще параллельно на компе CD пишется, музыка звучит и стрелялки играют, может быть. Но я на такой экстрим не закладывался.
Насчет вопроса : все символы, кроме стартовой ':' и CR LF, переводятся в 2 HEX-байта. Откуда взят этот страшный пример - страницу укажите. Я что-то такого там не заметил.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Pavel V.
Мявтор!
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва
Контактная информация:

Re: Реализация Modbus Ascii на МК

Сообщение Pavel V. »

Реклама
Лютик
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Re: Реализация Modbus Ascii на МК

Сообщение Лютик »

Jack_A писал(а):Насчет вопроса : все символы, кроме стартовой ':' и CR LF, переводятся в 2 HEX-байта. Откуда взят этот страшный пример - страницу укажите. Я что-то такого там не заметил.
Это спецификация modbus http://www.modbus.org/docs/Modbus_over_ ... _V1_01.pdf страница 16
When devices are setup to communicate on a MODBUS serial line using ASCII (American Standard Code for Information
Interchange) mode, each 8–bit byte in a message is sent as two ASCII characters. This mode is used when the physical
communication link or the capabilities of the device does not allow the conformance with RTU mode requirements regarding timers
management.
Remark : this mode is less efficient than RTU since each byte needs two characters.
Example : The byte 0X5B is encoded as two characters : 0x35 and 0x42 ( 0x35 ="5", and 0x42 ="B" in ASCII ).
Pavel V., как понимать данную ссылку? я то уже по ней был, но без пояснения, имхо - она не имеет смысла(можно было ссылку и на гугл предоставить)
Реклама
Аватара пользователя
Pavel V.
Мявтор!
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва
Контактная информация:

Re: Реализация Modbus Ascii на МК

Сообщение Pavel V. »

Лютик писал(а):Pavel V., как понимать данную ссылку? я то уже по ней был, но без пояснения, имхо - она не имеет смысла(можно было ссылку и на гугл предоставить)
Хм.. Так там есть исходники реализации протокола и для PC и для кучи микроконтроллеров. Зачем велосипед изобретать?
Лютик
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Re: Реализация Modbus Ascii на МК

Сообщение Лютик »

Pavel V. писал(а):
Лютик писал(а):Pavel V., как понимать данную ссылку? я то уже по ней был, но без пояснения, имхо - она не имеет смысла(можно было ссылку и на гугл предоставить)
Хм.. Так там есть исходники реализации протокола и для PC и для кучи микроконтроллеров. Зачем велосипед изобретать?
я велосипед не изобретаю, специфиация на модбас есть - по ней я и собираюсь писать прошивку для моего МК 8051 серии.
А вот, кстати, разбираться в чужих кодах, порой, куда сложнее чем написать свой
Лютик
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Re: Реализация Modbus Ascii на МК

Сообщение Лютик »

все, тему можно завкрывать. все было бонально просто. по дурости не посмотрел что шлю в хексе,а в хексе я пересылаю ни что иное как аски(в хексе), в общем как таковой проблемы не было, просто надо было перебороть свое мировоззрение относительно данной ситуации :))
спасибо всем
GYUR22
Родился
Сообщения: 13
Зарегистрирован: Сб июл 31, 2010 15:03:31

Re: Реализация Modbus Ascii на МК

Сообщение GYUR22 »

Винде если она не слейв на весь реалтайм покласть три раза.
Отправили пакет - ждем - получаем байты проверяем походу CRC - совпало хорошо нет - значит перезапрос через таймоут
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»