Ho provato così:
non da errore ma il numero restituito è sbagliatocodice: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;
:master:

Rispondi quotando