реклама на сайте
подробности

 
 
> затруднение с RS485
Athlon128
сообщение Oct 24 2007, 04:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 18-04-06
Пользователь №: 16 238



По RS485 объединены мастер и несколько слейвов (все на mega128) мастер с интервалом в 100мс шлёт команду вида: префикс ":", байт - номер команды, байт - id слейва, 2 байта - аргументы для команды, постфикс ";". 1 из слейвов должен ответить что он подключен. Вот фрагмент кода слейва (codevisionAVR):

Код
while (1)
      {
delay_ms(50);

command=0;
number=0;

while (getchar() != ':');

command=getchar();
number=getchar();

if ((command==1)&&(number==id))
{
PORTE.7=1;
printf(":%d online;",id);
PORTE.7=0;
}
// delay_ms(50);

      };
}

на деле отвечает только 1 раз первый запрошенный слейв.
что я делаю неправильно подскажите плз


поигрался интервалом отправки команд с мастера, начали отвечать несколько слейвов smile.gif
Прикрепленные файлы
Прикрепленный файл  proteus_prj.rar ( 14.59 килобайт ) Кол-во скачиваний: 51
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Oct 24 2007, 04:51
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



ИМХО, слэйв отвечает на команду мастера не дождавшись окончания передачи мастера: передача слэйва начинается. когда получен id слэйва, но мастер еще передаёт 3 байта (аргументы и постфикс)
Go to the top of the page
 
+Quote Post
Athlon128
сообщение Oct 24 2007, 05:21
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 18-04-06
Пользователь №: 16 238



Цитата(Палыч @ Oct 24 2007, 10:51) *
ИМХО, слэйв отвечает на команду мастера не дождавшись окончания передачи мастера: передача слэйва начинается. когда получен id слэйва, но мастер еще передаёт 3 байта (аргументы и постфикс)


Вы правы.
Поставил задержку перед ответом, все слейвы отвечают нормально
Дальше экспериментирую..
Буду благодарен за фрагмент исходника для слейвов с RS485 или хотябы словесное объяснение алгоритма.
Вечером отпишу что получилось у меня

Сообщение отредактировал Athlon128 - Oct 24 2007, 05:46
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 24 2007, 07:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Athlon128 @ Oct 24 2007, 09:21) *
Буду благодарен за фрагмент исходника для слейвов с RS485 или хотябы словесное объяснение алгоритма.


В глаза бросаются недостатки примененного в Вашей работе протокола. Например, префикс и постфикс могут совпадать с другими полями команды (кодом, адресом, аргументами); если они применяются для целей нахождения начала и конца команды, то в этом случае - это будет сделать затруднительно. Да, и проверка "правильности" приема пакета (например, с помощью контрольной суммы) - дело не последнее. Рекомендую ознакомится с тем, как это делают другие. Например, тут http://www.caxapa.ru/lib/wake/ И исходники для AVR приведены...
Go to the top of the page
 
+Quote Post
alexander55
сообщение Oct 24 2007, 08:09
Сообщение #5


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Палыч @ Oct 24 2007, 11:54) *
В глаза бросаются недостатки примененного в Вашей работе протокола.

Я рекомендую протокол ModBus. Дешево и сердито.
PS. Какой у нас народ шустрый.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Athlon128   затруднение с RS485   Oct 24 2007, 04:09
- - DASM   Не понял - это симулятор ? А где код вкл-выключени...   Oct 24 2007, 04:20
|- - Athlon128   код вкл-выключения 485 драйвера на передачу КодPOR...   Oct 24 2007, 04:28
- - DASM   Ничего не понял. Какого буфера переполнение ? Заче...   Oct 24 2007, 04:32
|- - alexander55   Цитата(Палыч @ Oct 24 2007, 08:51) ИМХО, ...   Oct 24 2007, 05:19
- - DASM   Точно   Oct 24 2007, 04:59
- - prm   Работу слейва,как вариант, можно описать следующим...   Oct 24 2007, 07:10
- - DASM   В данном случае думаю проще Modbus ASCII использов...   Oct 24 2007, 08:05
- - prm   Либо ModBus RTU, тоже вещь очень хорошая. Я бы даж...   Oct 24 2007, 08:08
- - DASM   Modbus RTU не люблю по причине определенных сложно...   Oct 24 2007, 08:13
- - prm   Пользую ModBus RTU (вернее ModBus RTU-подобный про...   Oct 24 2007, 09:22
- - DASM   Цитатаесли данные не идут в течении определенного ...   Oct 24 2007, 09:32
|- - alexander55   Цитата(DASM @ Oct 24 2007, 13:32) А Modbu...   Oct 24 2007, 10:07
|- - defunct   Цитата(DASM @ Oct 24 2007, 12:32) А Modbu...   Oct 24 2007, 11:41
|- - alexander55   Цитата(defunct @ Oct 24 2007, 15:41) Рабо...   Oct 24 2007, 11:48
- - prm   Нет, перед приемом пакета устанавливаю время, в те...   Oct 24 2007, 10:41
|- - alexander55   Цитата(prm @ Oct 24 2007, 14:41) Нет, пер...   Oct 24 2007, 11:02
- - DASM   Ну так в любом случае этот ложный таймаут может по...   Oct 24 2007, 10:52
- - DASM   Мужики, то, что ложных пакетов таким образом не на...   Oct 24 2007, 11:10
|- - alexander55   Цитата(DASM @ Oct 24 2007, 15:10) Мужики,...   Oct 24 2007, 11:16
- - DASM   Ну не знаю.. меня системы на жесткой времянке нерв...   Oct 24 2007, 11:43
|- - defunct   Цитата(DASM @ Oct 24 2007, 14:43) Ну не з...   Oct 24 2007, 12:01
- - DASM   А зачем ? Если есть Wake ? Стаффинг и ноль проблем...   Oct 24 2007, 12:04
|- - defunct   Цитата(DASM @ Oct 24 2007, 15:04) А зачем...   Oct 24 2007, 12:15
|- - alexander55   Цитата(defunct @ Oct 24 2007, 16:15) Приг...   Oct 24 2007, 12:22
- - DASM   RS485 вообще программный уровень не стандартизируе...   Oct 24 2007, 12:35
|- - alexander55   Цитата(DASM @ Oct 24 2007, 16:35) RS485 в...   Oct 24 2007, 12:53
- - Athlon128   Пытался днём на бумаге прикинуть программу. В ос...   Oct 24 2007, 16:22
|- - Прохожий   Цитата(Athlon128 @ Oct 24 2007, 20:22) Пы...   Oct 24 2007, 16:36
|- - Dog Pawlowa   Цитата(Прохожий @ Oct 24 2007, 20:36) От ...   Oct 24 2007, 18:18
|- - Т.Достоевский   hттp://ru.wikipedia.org/wiki/Modbus Удивительно х...   Oct 24 2007, 20:28
- - Athlon128   Ладно, всем спасибо, буду читать про modbus   Oct 25 2007, 01:01


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.0141 секунд с 7
ELECTRONIX ©2004-2016