Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Коллекция глюков Здесь публикуются все известные глюки, баги микроконтроллеров, памяти, АЦП и т.д.

Закрытая тема
Опции темы
Непрочитано 02.07.2012, 18:58   #1
Master-Ti
Прохожий
 
Регистрация: 05.11.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Master-Ti на пути к лучшему
По умолчанию FreeModbus + AVR

Здравствуйте! Появилась необходимость создать Slave устройство AVR с протоколом Modbus.
Исходники модуля с сайта http://freemodbus.berlios.de/. Создал проект в AVR Studio 4.18, скомпилировал. Создал проект в протеусе.
Понимаю, что нужно посылать в МК команду, по которой выдается результат. ТОлько как это грамотно сделать, используя функции Freemodbus? Есть функция eMBASCIISend( UCHAR ucSlaveAddress, const UCHAR * pucFrame, USHORT usLength ). С помощью нее пробовал кидать элементы массива на выход. Терминал в Proteus пишет что-то типа :03F304. Понимаю, что надо сделать по-другому.
Вопрос - в какой поседовательности какие функии вызывать и что им передавать?
Реклама:
Master-Ti вне форума  
Сказали "Спасибо" Master-Ti
warel (29.06.2019)
Непрочитано 02.07.2012, 19:35   #2
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: FreeModbus + AVR

Master-Ti,
протокол модбас в сети искали? документы от модикон-а читали? только после прочтения их в оригинале, а потом по-русски советую пробовать.
для этого неообходим брайтерминал и модбас туллз.
без досконального знания протокола вопросы ваши выглядят просто смешно
jump вне форума  
Сказали "Спасибо" jump
warel (29.06.2019)
Непрочитано 02.07.2012, 19:40   #3
Master-Ti
Прохожий
 
Регистрация: 05.11.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Master-Ti на пути к лучшему
По умолчанию Re: FreeModbus + AVR

jump, искал, просматривал. Не понимаю, как работать с регистрами, как их подсовывать. Регистр на master и slave должен называться одинаково? Я понимаю что нелепые вопросы. И еще в исходниках есть функция eMBRegisterCB( UCHAR ucFunctionCode, pxMBFunctionHandler pxHandler ), как ее применять?
Master-Ti вне форума  
Сказали "Спасибо" Master-Ti
warel (29.06.2019)
Непрочитано 02.07.2012, 20:09   #4
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: FreeModbus + AVR

вот поисковая строка, там даже по-русски. читали? вижу, что - нет. ибо вот этот документ дает основы понимания (есть перевод). без знания порядка в посылке, как вычисляется КС вы ничего не сделаете.
да, еще - рано вам за фри модбас браться - учите теорию.
кстати, там, вовнутре фри модбаса, не набор ли библиотечных функций и вам необходимо еще свой прикладной уровень мастерить? если так, то тем более нужно знать теорию.
жду умных вопросов. а не детский лепет. учиться!!!

кстати вот еще - основа
jump вне форума  
Сказали "Спасибо" jump
warel (29.06.2019)
Непрочитано 04.07.2012, 19:58   #5
Master-Ti
Прохожий
 
Регистрация: 05.11.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Master-Ti на пути к лучшему
По умолчанию Re: FreeModbus + AVR

Поднял протокол
В качестве мастера выступает Modbus Poll, в качесте слейва - ATmega32.
Только не понимаю, как работать непосредственно с регистрами модбасовскими.
Например, использую функцию 06 - Write Single Register. Пишу, к примеру, в 1200 регистр, в Modbus Poll приходит ответ что данные записались. А как их забрать из регистра в микроконтроллере? Я так понял, надо использовать eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs,
eMBRegisterMode eMode ) ? Можете пояснить? Спасибо
Master-Ti вне форума  
Сказали "Спасибо" Master-Ti
warel (29.06.2019)
Непрочитано 05.07.2012, 15:59   #6
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: FreeModbus + AVR

это не ваш случай?
jump вне форума  
Сказали "Спасибо" jump
warel (29.06.2019)
Непрочитано 05.07.2012, 21:45   #7
Master-Ti
Прохожий
 
Регистрация: 05.11.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Master-Ti на пути к лучшему
По умолчанию Re: FreeModbus + AVR

Цитата:
Правильно ли я понял, что нужно свои функции приема-посылки написать?
Вот что я подчерпнул на той странице. Не знаю.
Мне нужно как-то вытащить данные из холдинг регистра, и грубо говоря, к примеру, выдать их на порт микроконтроллера. Я понимаю, что те же самые холдинги висят где-то в ОЗУ, я с компьютера связываюсь с МК, кидаю в них данные, забираю. Но мне хочется для начала, к примеру, отправить в 1201 холдинг регистр и зажечь светодиод на выходе. Если бы мне предоставили пример такого взаимодействия, я бы разобрался и решил бы любую задачу
Master-Ti вне форума  
Сказали "Спасибо" Master-Ti
warel (29.06.2019)
Непрочитано 05.07.2012, 22:43   #8
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,016
Сказал спасибо: 0
Сказали Спасибо 4,954 раз(а) в 2,378 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: FreeModbus + AVR

я видел ваши посты по всем форумам
кстати, вы разобрались со структурой проекта FreeModbus согласно OSI?
в железе что получается? есть житаг айс для проверки содержимого памяти? так бы увидели, что происходит с данными в озу, а далее организуете прикладной уровень ПО, которое получает-обрабатывает-передает данные по запросу от мастера согласно ваших алгоритмов.

например, у вас объявлены в проекте регистры 1200,... или базовый адрес массива или буфера в озу, куда валятся данные от мастера и откуда читаются по запросу - напишите ПО, которое читает данные из рег.1200 в порт и записывает данные с пинов в рег.1201. далее можете проверить пересылку данных Modbus Poll
jump вне форума  
Сказали "Спасибо" jump
warel (29.06.2019)
Непрочитано 05.07.2012, 23:26   #9
Master-Ti
Прохожий
 
Регистрация: 05.11.2011
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Master-Ti на пути к лучшему
По умолчанию Re: FreeModbus + AVR

Спасибо, я разобрался только что ))) Да, не на всех форумах мне отвечали ))
Есть массив usRegHoldingBuf[], там всё и хранится. Ответ был на поверхности )
Оказалось всё просто как 2 пальца.. )

Сейчас думаю что делать с этой конструкцией:
for( ;; )
{
( void )eMBPoll( );

/* Here we simply count the number of poll cycles. */
usRegInputBuf[0]++;
}
В ней мы зацикливаемся, что не есть хорошо для моих задач. Может туда поставить флаг и return?
Master-Ti вне форума  
Сказали "Спасибо" Master-Ti
warel (29.06.2019)
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR IAR 5.4 + AVR DRAGON = ? nml Микроконтроллеры, АЦП, память и т.д 13 17.12.2011 13:33
Codevision AVR + AVR Studio помогите разобраться с отладкой Daget Микроконтроллеры, АЦП, память и т.д 24 07.03.2011 14:41
Собираем глюки и "подводные камни" AVR и AVR Studi Don_Ambrosio Коллекция глюков 27 14.11.2010 12:24
Программирование МК AVR другим МК AVR vaek Микроконтроллеры, АЦП, память и т.д 4 08.09.2010 11:16


Часовой пояс GMT +4, время: 06:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot