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

 
 
> Опросить слейвы по CAN.
Jenya7
сообщение Feb 7 2018, 06:20
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть мастер и три слейва. У каждого слейва три параметра. Мне нужно за один опрос взять все три параметра с каждого слейва.
То есть для принятия решения мне нужно все 9 параметров. Потом я делаю свои дела и потом делаю новый опрос слейвов.
Вопрос как знать что все слейвы ответили именно на этот опрос? Есть какое то красивое решение или как всегда обычно?

Сообщение отредактировал Jenya7 - Feb 7 2018, 06:25
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Feb 7 2018, 07:34
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Тогда сработает таймаут и большими красными буквами будет написано

ВАШЕ УСТРОЙСТВО ... СДОХЛО И НЕ ОТВЕЧАЕТ !!!
ИЩИТЕ ПАЯЛЬНИК !!!
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Feb 7 2018, 07:40
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(x893 @ Feb 7 2018, 12:34) *
Тогда сработает таймаут и большими красными буквами будет написано

ВАШЕ УСТРОЙСТВО ... СДОХЛО И НЕ ОТВЕЧАЕТ !!!
ИЩИТЕ ПАЯЛЬНИК !!!

а когда начать новый опрос? тут есть проблема принятия решения.

Сообщение отредактировал Jenya7 - Feb 7 2018, 07:43
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 7 2018, 08:30
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Jenya7 @ Feb 7 2018, 10:40) *
а когда начать новый опрос? тут есть проблема принятия решения.

У вас реалтайм-система или как?
Я делаю так как писали выше. Контроллеры сами с нужной частотой шлют данные.
Мастер пакеты получает и перезапускает таймеры для каждого слейва.
В любой момент мастер имеет информацию о "свежести" данных и может либо их использовать,
либо сигнализировать о потере связи со слейвом.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Feb 7 2018, 08:47
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(adnega @ Feb 7 2018, 13:30) *
У вас реалтайм-система или как?
Я делаю так как писали выше. Контроллеры сами с нужной частотой шлют данные.
Мастер пакеты получает и перезапускает таймеры для каждого слейва.
В любой момент мастер имеет информацию о "свежести" данных и может либо их использовать,
либо сигнализировать о потере связи со слейвом.

у меня слейвы не шлют данные сами по себе. они отвечают на запрос от мастера. а зачем нужны таймеры для каждого слейва?
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 7 2018, 09:15
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Jenya7 @ Feb 7 2018, 11:47) *
у меня слейвы не шлют данные сами по себе. они отвечают на запрос от мастера.

Просто нужно понимать, что слейвы могут слать данные и без запроса.
Например, мастер может сказать слейву: шли такие-то данные с такой-то периодичностью столько-то раз.

Цитата(Jenya7 @ Feb 7 2018, 11:47) *
а зачем нужны таймеры для каждого слейва?

У меня каждое устройство (узел) раз в секунду шлет SYNC-пакет с идентификационной информацией.
Мастер (я его/их называю Сервером) получает все SYNC-пакеты, пересбрасывает таймеры в таблице узлов,
при необходимости добавляет новые узлы в таблицу узлов, генерит сообщения "пропала/восстановлена" связь с узлом.
Если таймер в таблице узлов досчитал до 10 секунд, то это означает, что узел не пресылает SYNC-пакеты уже 10 секунд, а значит его нет.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Feb 7 2018, 09:33
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(adnega @ Feb 7 2018, 14:15) *
Просто нужно понимать, что слейвы могут слать данные и без запроса.
Например, мастер может сказать слейву: шли такие-то данные с такой-то периодичностью столько-то раз.


У меня каждое устройство (узел) раз в секунду шлет SYNC-пакет с идентификационной информацией.
Мастер (я его/их называю Сервером) получает все SYNC-пакеты, пересбрасывает таймеры в таблице узлов,
при необходимости добавляет новые узлы в таблицу узлов, генерит сообщения "пропала/восстановлена" связь с узлом.
Если таймер в таблице узлов досчитал до 10 секунд, то это означает, что узел не пресылает SYNC-пакеты уже 10 секунд, а значит его нет.

нет. мне не нужно чтоб слейвы заваливали мастера данными когда не нужно. все четко - мастер послал запрос - получил ответ - принял решение на основе пришедших данных - послал следующий запрос.
мне только нужен красивый механизм получения ответа от слейвов. у меня слейв он реально слейв - спросили - ответил, не спросили - сидит тихо не вякает.

Сообщение отредактировал Jenya7 - Feb 7 2018, 09:36
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 7 2018, 09:58
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Jenya7 @ Feb 7 2018, 11:33) *
нет. мне не нужно чтоб слейвы заваливали мастера данными когда не нужно. все четко - мастер послал запрос - получил ответ - принял решение на основе пришедших данных - послал следующий запрос.
Тогда зачем тут CAN? Потому что "стильно, модно, молодежно"? RS485 справился бы не хуже и дешевле. Изюминка CAN в том, что посылать могут все, при этом все смогут передать и конфликты будут разрешены на низком уровне в контроллере. Заложить в систему CAN и использовать его как RS485 по меньшей мере странно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Опросить слейвы по CAN.   Feb 7 2018, 06:20
- - adnega   Цитата(Jenya7 @ Feb 7 2018, 09:20) Вопрос...   Feb 7 2018, 07:03
- - mrKirill   Что изменится, если все условные Slave будут посто...   Feb 7 2018, 07:06
- - Jenya7   Допустим при посылке вместе с данными я буду посыл...   Feb 7 2018, 07:18
||- - Jenya7   Цитата(Сергей Борщ @ Feb 7 2018, 14:58) Т...   Feb 7 2018, 10:30
|- - k155la3   Цитата(adnega @ Feb 7 2018, 12:30) У вас ...   Feb 10 2018, 23:09
|- - adnega   Цитата(k155la3 @ Feb 11 2018, 02:09) ? 1....   Feb 11 2018, 07:02
||- - k155la3   Цитата(adnega @ Feb 11 2018, 11:02) . . ....   Feb 12 2018, 09:04
|- - ZASADA   Цитата(k155la3 @ Feb 11 2018, 02:09) У ме...   Feb 14 2018, 12:21
- - AlexandrY   Цитата(Jenya7 @ Feb 7 2018, 08:20) Есть к...   Feb 7 2018, 11:15
- - Baser   Так и не понял, в чем у ТС проблема? Если хочется...   Feb 7 2018, 13:46


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

 


RSS Текстовая версия Сейчас: 8th August 2025 - 11:55
Рейтинг@Mail.ru


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