ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
368652 Топик полностью
koyodza (15.11.2012 14:28 - 17:41, просмотров: 309) ответил koyodza на повторяю, идите нах с этими "новшествами". Не забывайте, что кто-то может почитать вашу писанину и сделать большую **йню не подумавши. Есть только один критерий конца пакета в ModBus RTU - таймаут, и всё. Не нравится - переходите на ModBus ASCII
вообще я использую примерно такой алгоритм 1. убрал, чтобы народ не 3.14дел 2. принимается весь пакет до таймаута. Никакие подсчёты CRC пока не делаются. 3. проверяется адрес, если он не BROADCAST (нулевой) и не нашего устройства, то пакет сразу отбрасывается. 4. считается CRC, если не совпала, пакет отбрасывается 5. разбирается пакет Т.е. подсчет CRC делается не для всех пакетов, а только для тех, которые могут оказаться интересными. Дополнительный п.1 даёт возможность использовать "пробивку" линии лидирующими 0xFF, тут как раз спрашивали о повторителях на 485 Для этого в начале передаваемых пакетов есть настраиваемое количество 0xFF, которые можно отключить полностью для полной совместимости со стандартными устройствами. Однако приём при этом не меняется, он полностью совместим со стандартом