зачем так извращаться переводя целое в строку, а затем строку парсить во float?
И почему выбран тип float, а не double?
Цикл по х можно делать для переменной double (float).
Так вы попробуйте подключиться каким-нибудь модбас клиентом (или сервером) и почитать регистры. Если устройство будет отвечать на запросы модбас, значит оно поддерживает модбас.