16 809
правок
Строка 117: | Строка 117: | ||
== Решение возможных проблем == | == Решение возможных проблем == | ||
=== Обмен с устройствами происходит с ошибками === | |||
В первую очередь, проверьте качество физического подключения устройств и только потом следуйте советам ниже. | |||
Стандартом Modbus RTU предусмотрен обязательный интервал тишины в 3.5 символа между фреймами данных (под символом подразумевается посылка, состоящая из стартового бита, битов данных, бита четности и стоп-битов). | Стандартом Modbus RTU предусмотрен обязательный интервал тишины в 3.5 символа между фреймами данных (под символом подразумевается посылка, состоящая из стартового бита, битов данных, бита четности и стоп-битов). | ||
Строка 128: | Строка 131: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Например, для скорости 9600 бит/с <code>guard_interval_us = (3.5*11*106)/9600 = 4000 мкс</code>. При проблемах с подключением стороннего устройства для теста это значение можно увеличить (например до 100000 мкс), так как сторонние устройства иногда работают не совсем корректно. | Например, для скорости 9600 бит/с <code>guard_interval_us = (3.5*11*106)/9600 = 4000 мкс</code>. При проблемах с подключением стороннего устройства для теста это значение можно увеличить (например до 100000 мкс), так как сторонние устройства иногда работают не совсем корректно. | ||
=== Регистры только для записи === | |||
Иногда в сторонних устройствах встречаются грубые нарушения стандарта: | |||
# В некоторые регистры можно только писать информацию, но нельзя считывать. | |||
#. Один и тот же параметра может читаться по одному адресу, а записываться по другому. | |||
Для того, чтобы драйвер работал с такими устройствами без ошибок, мы добавили параметр '''write_address'''. |