Ho provato così:
codice:
function TModBusConnection.ReadRegister(Adress: Cardinal;
         var Value: Single): Cardinal;
var
  PointerToDWordBuffer: TpDWordBuffer;
  PointerToSingleBuffer: TpSingleBuffer;
  DWordValue: LongWord;
begin
  f_Adress   := Adress;
  f_Quantity := 2;
  f_FunctionCode := mbfREADREGISTER;
  result := Execute;
  if result = 0 then begin
    PointerToDWordBuffer := @f_ReadBuffer;
    DWordValue := MBTSwapDWord(PointerToDWordBuffer[0]);
    PointerToSingleBuffer := @DWordValue;
    Value := PointerToSingleBuffer^[0];
  end;
end;
non da errore ma il numero restituito è sbagliato
:master: