Показать сообщение отдельно
Старый 31.01.2014, 10:58   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили: 665 раз(а) в 607 сообщениях
По умолчанию Ответ: Блок Device (Link)

Цитата:
Сообщение от tvf Посмотреть сообщение
Под штатными средствами подразумевается не требующее взамной увязки алгоритмов на мастере/слейве и роли контроллера в сети.
Проблема в том, что в протоколах типа "запрос-ответ" принципиально не существует "красивых" решений контроля связи со стороны слейва.

Возьмём упомянутый вами частотник. Вы предложили один костыль заменить на другой костыль. И я объясню, почему.

Объективно, команды на частотник нужно отправлять только при смене режимов работы. Т.е. отправили с утра команду "пуск", а команду "стоп" отправили вечером. Состояние самого частотника считываем раз в час. Этого для работы некоторых объектов достаточно.

Но что сделает частотник? Он через 10 секунд (такое у большинства частотников время предустановленное) разорётся, что связь пропала.

А она не пропала. Просто харатер обмена такой.

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

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

Другими словами: два костыля - пара (c)

Один костыль ничем не лучше другого, просто с первым костылём вы уже привыкли работать и принимаете его как должное и естественное. И не замечаете, как происходит "увязывание алгоритмов на мастере/слейве".


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием