Modbus Verbindung Codesys 3.5 und Huawei Sun2000 Smartmeter - Word in Realwerte wandeln

seebenischer

Level-2
Beiträge
31
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich benötige mal wieder eure Hilfe. Ich habe gerade die Kopplung, zwischen PFC und Huawei Wechselrichter initialisiert. Nun stehe ich vor dem Problem, dass negative Werte sie Bild in Form eines 32bit Word noch nicht angezeigt werden. Sprich ich würde diese gerne wandeln in eine Dezimalzahl mit entsprechenden Vorzeichen. Habt ihr ein Lösungsvorschlag für mich?

Danke Grüße Maik

1716758477981.png
 
Was heißt bei dir "ActivePower_leer_W" ??? :unsure: Ist das das H-Word eines I32 (DINT)?
Da musst du die beiden WORD zu einem DWORD zusammensetzen und dann als DINT interpretieren oder in REAL wandeln:
Code:
diActivePower_W := TO_DINT( SHL(TO_DWORD(ActivePower_leer_W), 16) OR TO_DWORD(ActivePower_W) );

oder über eine UNION:
Code:
TYPE U_I32WORDS :
  UNION
    uDint  : DINT;
    uaWord : ARRAY[0..1] OF WORD;
  END_UNION
END_TYPE

tempU : U_I32WORDS;


tempU.uaWord[0] := ActivePower_leer_W;
tempU.uaWord[1] := ActivePower_W;
diActivePower_W := tempU.uDint;
rActivePower_W := TO_REAL(tempU.uDint);
 
Zurück
Oben