- Обновилась программа Modbus Slave (v8.2.2.1962) _x32_x64/ положил в
upload /лекарство прилагается.2023-07-20
-
- довольно старый и дубовый протокол, сложностей быть не должно koyodza(1513 знак., 31.10.2011 11:43)
- Еще вопрос: а как обычно делают, подчиненное устройство отвечает сразу после запроса (фактически, это через 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)
- Хм... Vit(954 знак., 31.10.2011 11:24)
- койл - это битовые команды типа. хз зачем оно нужно, вполне хватает 03 и 16 команд. одна читает вторая пишет слово целиком. - LordN(31.10.2011 11:03)
- ...тогда прийдется помучаться если источник записи не один. Ибо атомарность. У себя использую coils чтобы уйти от неатомарных чтение-маска-запись. - Скрипач(31.10.2011 19:30)
- никто не запрещает целый регистр на один бит отдать, особенно если логически связанных с ним битов больше нет и не предполагается групповое изменение - koyodza(31.10.2011 21:19)
- И то правда. Только жаба душит гонять по сети лишний трафик. Особенно на 9600... - Скрипач(31.10.2011 21:31)
- про траффик: MegaJohn(495 знак., 01.11.2011 09:30)
- Раз пошла такая пьянка, режь последний бутерброд :) - Скрипач(01.11.2011 19:23, ссылка)
- начал читать, было интересно. Дошёл до "резервирования мастера" и вспомнил картинку про буханку хлеба koyodza(69 знак., 01.11.2011 22:26 - 22:31, ссылка)
- Воспринимайте это как мысленный эксперимент, не более :) Впрочем, на момент выхода, эта статья таки вызвала активное
бурлениеобсуждение. - Скрипач(01.11.2011 22:39 - 22:41)- что-то не понял истории с тремя главными инженерами - koyodza(04.11.2011 21:16)
Рождественское яйцопасхалка :) - Скрипач(04.11.2011 21:31 - 22:09)
- что-то не понял истории с тремя главными инженерами - koyodza(04.11.2011 21:16)
- Воспринимайте это как мысленный эксперимент, не более :) Впрочем, на момент выхода, эта статья таки вызвала активное
- начал читать, было интересно. Дошёл до "резервирования мастера" и вспомнил картинку про буханку хлеба koyodza(69 знак., 01.11.2011 22:26 - 22:31, ссылка)
- Я так память графических дисплеев обновляю. Любое рисование в памяти расширяет границы области обновления, затем только эта область копируется в дисплей. А "трафик" пишется с одной "ф". - Лeoнид Ивaнoвич(01.11.2011 14:18)
- я, кстати, тоже так сделал с тиком - scorpion(01.11.2011 22:57)
- это имеет смысл для больших дисплеев. Мелкий проще полностью регенерировать - koyodza(01.11.2011 14:54)
- Мелкость дисплея компенсировала тормознутость I2C :) - Лeoнид Ивaнoвич(01.11.2011 15:44)
- а, ну тогда конечно да - koyodza(01.11.2011 17:53)
- Мелкость дисплея компенсировала тормознутость I2C :) - Лeoнид Ивaнoвич(01.11.2011 15:44)
- Это почему? По английски с двумя :-) - Shura(01.11.2011 14:32)
- Тогда и "оффис" :) - Лeoнид Ивaнoвич(01.11.2011 14:52)
- тогда уж надо писать "аддресс", а не "адрес" :> - Snaky(01.11.2011 14:47)
- Адрес не английское слово :-Р Оно от фр. adresse - Shura(01.11.2011 14:55)
- А у нас на билайне, хоть и пишется траФик, но часто реально траФФиг,но это офтоп здесь! - Make_Pic(01.11.2011 14:24)
- Раз пошла такая пьянка, режь последний бутерброд :) - Скрипач(01.11.2011 19:23, ссылка)
- согласен, поэтому и написал с оговорками - koyodza(31.10.2011 21:42)
- про траффик: MegaJohn(495 знак., 01.11.2011 09:30)
- И то правда. Только жаба душит гонять по сети лишний трафик. Особенно на 9600... - Скрипач(31.10.2011 21:31)
- никто не запрещает целый регистр на один бит отдать, особенно если логически связанных с ним битов больше нет и не предполагается групповое изменение - koyodza(31.10.2011 21:19)
- Я понимаю, что это. Но почему такое странное слово используют - "Coils"? - Лeoнид Ивaнoвич(31.10.2011 11:12)
- исторически использовались для управления реле Snaky(269 знак., 31.10.2011 11:23)
- А вот не скажите ! Еденичный выход нужен, когда цепляешь стандартный HMI и кнопочки надо опрашивать и лампочки включать ! - MegaJohn(31.10.2011 11:09, картинка)
- ...тогда прийдется помучаться если источник записи не один. Ибо атомарность. У себя использую coils чтобы уйти от неатомарных чтение-маска-запись. - Скрипач(31.10.2011 19:30)
- довольно старый и дубовый протокол, сложностей быть не должно koyodza(1513 знак., 31.10.2011 11:43)