Вопрос с 03 хоть и не решенный, но уже не важный. Почему то терминал не отображает байты со значением 03. Задал адрес устройства 03 и он и его пропустил, так что считаю, что он там есть на самом деле.

Попробывал функцию 06
Запрос создан верно функцией из библиотеки modbus.lib: 02 06 01 30 00 14 88 05
Адрес устройства 02 функция 06 регистр 304 значение 20 ну и црц

Ответ, если запрос верен, судя по документации на привод должен быть аналогичным, но это не так: 30 b0 30 00 14 88 05.
Откуда взялось 30 b0 мне не ясно - думаю в этом и проблема. Самое интересное, что параметр в приводе всё таки изменил свое значение на 20, значит запрос то он понял верно, а вот ответил коряво. Можно ли сделать так, чтобы функция не зависала в случае неверного ответа? Это в принципе решило бы мою проблемму, поскольку мне всего и нужно включить/выключить привод на определенной скорости, считывать с него я ничего не собираюсь.