Test: различия между версиями

Строка 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'''.