|
FreeModbus |
|
|
|
 |
Ответов
|
Sep 30 2013, 11:02
|
Группа: Новичок
Сообщений: 4
Регистрация: 30-09-13
Пользователь №: 78 547

|
Помогите реализовать Modbus-slave на базе Atmega32A. Условие: применяемый на freemodbus 16-разрядный таймер1 использовать нельзя - он нужен мне для реализации 16-разрядного аппаратного ШИМа. Что уже сделано: 1) Материалы на freemodbus.org изучил (хотя и не во всем разобрался). 2) Нашел http://forum.easyelectronics.ru/viewtopic....mp;hilit=modbus - во втором посте выложено решение для 168й атмеги по замене таймера 1 на таймер 0. Скачал, собрал в свой проект, откомпилировал для 168й атмеги. 2) Заменил ссылки на таймер 0А (для 168й меги) на таймер 0 для 32й меги. 3) 2) Заменил ссылки на таймер 0В (для 168й меги) на таймер 2 для 32й меги. 4) Откомпилировал в AtmelStudio6 без ошибок. 5) Подключил контроллер через мах485 и конвертер i-7561 (485/usb) к компьютеру. 6) ОРС-сервером Lectus отправляю запрос 01 03 00 01 00 01 D5 CA, осциллографом наблюдаю соответствующую последовательность на ножке микроконтроллера, НО сам контроллер молчит и в ответ никаких сообщений не выдает. Предполагаю два варианта проблемы: 1) Простая замена таймеров оказалась некорректной. 2) Неверно "привязаны" регистры usRegInputBuf и usRegHoldingBuf. Помогите пожалуйста разобраться
|
|
|
|
|
Sep 30 2013, 11:31
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(veskon @ Sep 30 2013, 14:02)  Помогите пожалуйста разобраться Для начала, RTFM - Related Pages -> Porting for RTU/ASCII Ну а дальше тщательная трассировка. Самое простое, это банальный бит четности (проверка на четность по стандарту Modbus RTU/ASCII). Если прерывания ловятся и пакет принимается, должен выставляться эвент и функция поллинга перенаправляет в нужный коллбэк. Дальше убеждаемся, что формируется ответный пакет, и вот тут может всплыть 485-й с переключением потока.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
Сообщений в этой теме
andrewlekar FreeModbus Feb 3 2011, 09:13 MrYuran Цитата(andrewlekar @ Feb 3 2011, 12:13) Ч... Feb 3 2011, 09:18 andrewlekar Попробую, хотя вроде все так же делаю. Я версию мо... Feb 3 2011, 09:59 MrYuran Цитата(andrewlekar @ Feb 3 2011, 12:59) Н... Feb 3 2011, 10:16 Dimoza Цитата(andrewlekar @ Feb 3 2011, 12:59) в... Feb 24 2011, 07:44 andrewlekar Ну вот, стало сильно лучше. Помогло волшебное доба... Feb 3 2011, 10:40 MrYuran Цитата(andrewlekar @ Feb 3 2011, 13:40) П... Feb 3 2011, 11:25 andrewlekar Пути поиска просто скажут где находится тот или ин... Feb 3 2011, 11:52 MrYuran Цитата(andrewlekar @ Feb 3 2011, 14:52) П... Feb 3 2011, 12:14 andrewlekar А ещё подскажите, где код для мастера искать? В уп... Feb 4 2011, 08:51 alux При сборке проекта были ошибки линкера, пока не по... Mar 2 2011, 21:45 Dimoza Цитата(alux @ Mar 3 2011, 00:45) На запро... Mar 2 2011, 22:15 alux Код01 83 02 C0
Это ответ на запрос чтения (код 0x0... Mar 3 2011, 06:31 Dimoza Цитата(alux @ Mar 3 2011, 09:31) Код01 83... Mar 3 2011, 07:28 alux Это из примера freemodbus
Код#define REG_INPUT_STA... Mar 3 2011, 07:44 MrYuran Цитата(alux @ Mar 3 2011, 10:44) Так где ... Mar 3 2011, 08:28 Dimoza В разных реализациях по разному отсчитываются адре... Mar 3 2011, 08:28 alux Со стороны мастера (ПК)
Код//Modbus Functions
con... Mar 3 2011, 08:47 MrYuran Сдаётся мне, вы холдинги хотите прочитать вместо и... Mar 3 2011, 09:14 alux со стороны мастера изменил запрос на
Код 01 04 03... Mar 3 2011, 09:59 MrYuran Цитата(alux @ Mar 3 2011, 12:59) но это н... Mar 3 2011, 10:10 Dimoza Если я ничего не путаю, в ответе должно быть два б... Mar 3 2011, 10:17 alux Цитата(Dimoza @ Mar 3 2011, 14:17) в отве... Mar 3 2011, 10:27  MrYuran Цитата(alux @ Mar 3 2011, 13:27) А где не... Mar 4 2011, 09:05 alux Вот ответ автора freemodbus на проблему смещения а... Mar 4 2011, 22:35 Dimoza Насколько я уяснил это для себя, "по-простому... Mar 4 2011, 23:00 alux Как правильно передать код ошибки MB_EX_SLAVE_BUSY... Mar 5 2011, 10:26 MrYuran Цитата(alux @ Mar 5 2011, 13:26) Я вижу в... Mar 5 2011, 11:29 alux Еще для полного счастья нужно использовать функции... Mar 7 2011, 11:47 MrYuran Цитата(alux @ Mar 7 2011, 14:47) Еще для ... Mar 7 2011, 16:14 _Pasha Цитата(alux @ Mar 7 2011, 14:47) Еще для ... Mar 7 2011, 16:50 alux При использовании функции 0x10 PresetMultipleRegis... Mar 20 2011, 21:37 andrewlekar Callback написали для этой функции? Mar 21 2011, 05:29 alux как выяснилось, проблема не в этой функции (0x10),... Mar 21 2011, 07:09 ISK2010 Доброго времени суток!
Занимаюсь изучением МК... Apr 19 2011, 04:45 MrYuran Цитата(ISK2010 @ Apr 19 2011, 08:45) Не м... Apr 19 2011, 13:52 ISK2010 А как slave должен реагировать на прием пустого AD... May 13 2011, 13:11 yashok Цитатакоторый адресован ему и имеет правильный CRC... May 14 2011, 09:03 ISK2010 А CRC всех принятых пакетов рассчитывается? Или то... May 17 2011, 04:40 yashok По хорошему проверка должна идти в следующей очере... May 17 2011, 05:04 ISK2010 Цитата(yashok @ May 17 2011, 09:04) По хо... May 17 2011, 05:10 yashok Для простых случаев может и можно не проверять. А... May 17 2011, 05:17 ISK2010 Бесспорно проверка CRC обязательна. Но только для ... May 17 2011, 05:29 yashok Да согласен
Хотя у некторых есть счетчики которые... May 17 2011, 06:01 leshij Доброго дня всем.
Пытаюсь поднять FreeRTOS(7.2)+lw... Oct 17 2012, 07:26 leshij в sys_mbox_post() убрал цикл, заменил portMAX_DELA... Oct 18 2012, 06:25 leshij обнаружил, что структура pxQueue не подгружалась п... Oct 22 2012, 04:37 Lagman Цитата(veskon @ Sep 30 2013, 15:02) Помог... Sep 30 2013, 12:06  veskon Цитата(Lagman @ Sep 30 2013, 15:06) А мож... Sep 30 2013, 12:12   Lagman Цитата(veskon @ Sep 30 2013, 16:12) Спаси... Sep 30 2013, 13:05 _Pasha Цитата(veskon @ Sep 30 2013, 14:02) Помог... Sep 30 2013, 14:06  veskon Цитата(_Pasha @ Sep 30 2013, 17:06) Дык п... Sep 30 2013, 14:21 _Pasha Помогать так уж буквально не буду. Почитайте стр.8... Sep 30 2013, 16:36 veskon Цитата(_Pasha @ Sep 30 2013, 19:36) Помог... Oct 1 2013, 06:11 yanvasiij Ребят удалось портировать? Никак не могу разобрать... Apr 18 2014, 13:01 yanvasiij Вообщем портировать удалось, кажется все по правил... Apr 22 2014, 05:14 yanvasiij Люди, я может чего не понимаю, но получается следу... Apr 22 2014, 11:29 Сepгeй Доброго всем дня. Портирую freemodbus на stm32. Ho... Mar 24 2015, 06:40 smalcom сколько задаёте, столько и считывается. Mar 24 2015, 13:04 Сepгeй Цитата(smalcom @ Mar 24 2015, 16:04) скол... Mar 24 2015, 13:35 smalcom Цитатаоставшиеся 16 считываются как false хотя име... Mar 24 2015, 14:55 Сepгeй Цитата(smalcom @ Mar 24 2015, 17:55) вы р... Mar 25 2015, 05:42 Cruz21 У кого нибудь есть описание реализации Freemodbus ... Jul 2 2015, 07:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|