- 
	- Еще вопрос: а как обычно делают, подчиненное устройство отвечает сразу после запроса (фактически, это через 3.5T) или перед ответом вводят какую-то паузу? - Лeoнид Ивaнoвич(31.10.2011 12:59)
			- обычно нужна пауза, тем более если это 485, а не 232  koyodza(974 знак., 31.10.2011 13:16)
					- Т.е. надо понимать, что у мастера Modbus таймаут приема ответа конфигурируемый, и он обычно больше 3.5T?  Лeoнид Ивaнoвич(750 знак., 31.10.2011 13:29)
							- таймаут приёма ответа мастером обычно сотни мсек (ну десятки в крайнем случае)  koyodza(825 знак., 31.10.2011 13:38 - 13:53)
									- Еще раз насчет лидирующих FF: их воспринимать как паузу? Т.е. вместо паузы 3.5t возможна передача 4-х FF, или все-таки пауза должна быть обязательно? - Лeoнид Ивaнoвич(02.11.2011 14:19)
											- в конце пакета их воспринимать как данные. Ну а после паузы ждать прихода байта меньше F8 (большие игнорировать), следующие за ним принимать все до наступления паузы. Т.е. заполнять весь межпакетный интервал FF не могут. Байт-стаффинга тут нет,  koyodza(157 знак., 02.11.2011 14:22 - 14:27)
													- Я тоже так сделал. Смутило про формирование паузы: "This is most easily implemented as a multiple of character times at the baud rate that is being used on the network". Вот и подумал, не передают ли FF вместо паузы для формирования интервала.  Лeoнид Ивaнoвич(850 знак., 02.11.2011 15:17)
															- конечно связана  koyodza(487 знак., 02.11.2011 22:53)
																	- Вот что вышло: Лeoнид Ивaнoвич(04.11.2011 03:41)
 
 
- конечно связана  koyodza(487 знак., 02.11.2011 22:53)
																	
 
- Я тоже так сделал. Смутило про формирование паузы: "This is most easily implemented as a multiple of character times at the baud rate that is being used on the network". Вот и подумал, не передают ли FF вместо паузы для формирования интервала.  Лeoнид Ивaнoвич(850 знак., 02.11.2011 15:17)
															
 
- в конце пакета их воспринимать как данные. Ну а после паузы ждать прихода байта меньше F8 (большие игнорировать), следующие за ним принимать все до наступления паузы. Т.е. заполнять весь межпакетный интервал FF не могут. Байт-стаффинга тут нет,  koyodza(157 знак., 02.11.2011 14:22 - 14:27)
													
- Спасибо! - Лeoнид Ивaнoвич(31.10.2011 13:49)
 
- Еще раз насчет лидирующих FF: их воспринимать как паузу? Т.е. вместо паузы 3.5t возможна передача 4-х FF, или все-таки пауза должна быть обязательно? - Лeoнид Ивaнoвич(02.11.2011 14:19)
											
 
- таймаут приёма ответа мастером обычно сотни мсек (ну десятки в крайнем случае)  koyodza(825 знак., 31.10.2011 13:38 - 13:53)
									
 
- Т.е. надо понимать, что у мастера Modbus таймаут приема ответа конфигурируемый, и он обычно больше 3.5T?  Лeoнид Ивaнoвич(750 знак., 31.10.2011 13:29)
							
 
- обычно нужна пауза, тем более если это 485, а не 232  koyodza(974 знак., 31.10.2011 13:16)
					
- Так что же делать, если внутри пакета пауза 1.5T?  Лeoнид Ивaнoвич(499 знак., 31.10.2011 12:16)
			- да, я при меньше 3,5Т продолжаю приём. Если хотите меньше проблем - меняйте логику и делайте всё через регистры, а не пользовательскими функциями - koyodza(31.10.2011 12:20)
					- Спасибо! Еще вопрос для общего развития: что я должен был бы делать при паузе 1.5T, если бы чётко соблюдал спецификацию? - Лeoнид Ивaнoвич(31.10.2011 12:26)
							- Если больше t1.5 и меньше t3.5 то считать фрейм битым. - diper(31.10.2011 12:35)
- сбросить буфера, считать пакет бытым и даже не пытаться считать его CRC, инкрементировать счётчик битых пакетов - koyodza(31.10.2011 12:34)
									- Похоже, что так. Теперь понятно. На диаграмме после паузы 1.5T переходим в другой цикл, где ждем оставшееся до 3.5T время. Если за это время приходит символ - пакет битый (NOK). Если символ не приходит - считаем CRC. Но это уже фактически после Лeoнид Ивaнoвич(12 знак., 31.10.2011 12:40)
- Не совсем так. Нужно пометить пакет битым и все равно дождаться конца фрейма по таймауту t3.5 Но имхо лучше вообще один таймаут заложить и не мучаться, а то бывает что байты бегут неравномерно и проще железке назначить вручную больший таймаут чем  diper(25 знак., 31.10.2011 12:38)
											- всё верно - koyodza(31.10.2011 13:29)
 
 
 
 
- Спасибо! Еще вопрос для общего развития: что я должен был бы делать при паузе 1.5T, если бы чётко соблюдал спецификацию? - Лeoнид Ивaнoвич(31.10.2011 12:26)
							
 
- да, я при меньше 3,5Т продолжаю приём. Если хотите меньше проблем - меняйте логику и делайте всё через регистры, а не пользовательскими функциями - koyodza(31.10.2011 12:20)
					
 
- Еще вопрос: а как обычно делают, подчиненное устройство отвечает сразу после запроса (фактически, это через 3.5T) или перед ответом вводят какую-то паузу? - Лeoнид Ивaнoвич(31.10.2011 12:59)