implement modbus protocol