Александр Рябиков @rsashka
Системный архитектор
Information
- Rating
- 2,043-rd
- Location
- Россия
- Date of birth
- Registered
- Activity
Specialization
Embedded Software Engineer, Software Architect
Lead
C++
OOP
Linux
Programming microcontrollers
Embedded system
C
Qt
Software development
Конечно, должно сложиться много условий (определенная комбинация данных или наведенная помеха), но ведь и не заряженное ружье иногда стреляет.
Ведь смена скорости порта практически мгновенная операция, и причин для этого можно найти много (например для помехозащищенности, что бы скорость передачи могла подстраиваться в зависимости от внешних помех).
Какой нибудь сертификационный ключ для разработчика или что-то в этом роде.
Очень хорошо, что ошибся в своих мрачных предположения.
В протоколе Modbus начало передачи определяется паузой на линии. И если на одной и той же линии сидят устройства с какими нибудь бинарными протоколами, то вполне вероятна ситуация, когда Modbus устройство ловит паузу в бинарном протоколе и считает это моментом передачи мастера. Ну а дальше все зависит от везения.
Лучше реализовать расширение протокола Modbus (у него есть зарезервированные коды функций, которые можно использовать как раз для таких случаев). Уж если все равно нужно писать, но тут хоть будет гарантия от различных «неждачиков».
При работе в последовательной сети он требует назначение уникальных Slave ID для каждого ведомого устройства. И из-за этого у него определенные сложности с динамической конфигурацией сети (сложно выявить конфликт работы двух устройств с одинаковым Slave ID на одной последовательной линии связи).
Причем, даже если докажешь, что ты не виноват, времени и денег на адвокатов потратишь немало.