ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1390034 Топик полностью
reZident (05.01.2024 21:19, просмотров: 132) ответил symbions на В буфер надо сначала ответ положить, а для этого надо его сначала сформировать, а для этого надо сначала разобрать запрос, а для этого надо сначала посчитать контрольную сумму запроса, а для этого надо сначала дождаться окончания 3,5 байтного интервала после последнего байта запроса. Но даже на 1 МГц (реальной частоты) 51ом это не занимало много времени, уж точно не 10мс. Так что ожидание в 10мс - это более чем достаточно. Хотя у нас в одном приборе (из-за ограниченности
У нас в одном из (очень) старых приборов был всего один таймер. К прерыванию таймера были привязаны обработчики всех событий и период этот составлял 1/64сек=15,625мс. 

Был случай когда производитель контроллеров из Е-бурга присылал к нам своего программиста, чтобы тот совместно с нашим программистом вместе разобрались - почему их прибор не работает как slave по типичному RTU-протоколу с нашим ? Оказалось, что тот контроллер готовил ответ нашему мастеру очень быстро и выдавал его менее, чем через 1мс в то время, как наш master все еще формировал паузу после передачи запроса длительностью 15,625мс. Вполне естественно, что начало передачи ответа терялось из-за конфликта на линии. Программист из Е-бурга быстро добавил в свой прибор настраиваемый таймаут перед ответом и обмен между контроллерами тут же нормализовался. Причем замечу, что это не была проблема только нашего master. Даже, если бы наш прибор мог принять ответ через 1мс, но между приборами был бы простой репитер RS485 или модем, то проблема возникала точно такая же.