artofautomation
Level-1
- Beiträge
- 39
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo,
von einem Profibusgerät bekomme ich eine Real Variable. Leider sind die 4 Bytes aus denen das Real besteht vertauscht. Also hab ich mir versucht (auch mit der hilfe hier eine Funktion zu schreiben, die die vier Bytes in einen Real wandelt. Da ich aus der Backhoff Welt komme, verstehe ich gar nicht warum ich keinen pointer deklarieren kann. Wie soll ich das denn sonst lösen?
Fehler: Deklaration einer Aufrufinstanz oder verwendeter Parameterdatentyp in diesem Vereinbarungsblock nicht zulässig.
WTF?
Auch das hier https://support.industry.siemens.co...ointer-zusammengestellt-werden?dti=0&lc=de-WW beschriebene Any Pointer Construct aus dem Bild 01 lässt sich nicht übersetzen? Ich habe Simatic Manager V5.3 SP6 Upd2. Wurde da was geändert am Compiler? Pointer nur noch im TIA oder so?
Kann mich bitte jemand erleuchten?
AWL ist leider nicht so meins. Wenn es nicht anders geht, nehm ich auch das, dann aber bitte nachsichtig sein.
Vielen Dank
von einem Profibusgerät bekomme ich eine Real Variable. Leider sind die 4 Bytes aus denen das Real besteht vertauscht. Also hab ich mir versucht (auch mit der hilfe hier eine Funktion zu schreiben, die die vier Bytes in einen Real wandelt. Da ich aus der Backhoff Welt komme, verstehe ich gar nicht warum ich keinen pointer deklarieren kann. Wie soll ich das denn sonst lösen?
Code:
FUNCTION FC_4BYTE_TO_REAL : REAL
VAR_INPUT
b1 : BYTE;
b2 : BYTE;
b3 : BYTE;
b4 : BYTE;
END_VAR
VAR_TEMP
// temporäre Variablen
pt : POINTER TO BYTE;
temp_real : REAL;
END_VAR
// Anweisungsteil
(*Wert aus 4 Byte zusammensetzen*)
pt := ADR(temp_real);
pt^ := b2;
pt := (pt+1);
pt^ := b1;
pt := (pt+1);
pt^ := b4;
pt := (pt+1);
pt^ := b3;
FC_4BYTE_TO_REAL := temp_real;
END_FUNCTION
Fehler: Deklaration einer Aufrufinstanz oder verwendeter Parameterdatentyp in diesem Vereinbarungsblock nicht zulässig.
WTF?
Auch das hier https://support.industry.siemens.co...ointer-zusammengestellt-werden?dti=0&lc=de-WW beschriebene Any Pointer Construct aus dem Bild 01 lässt sich nicht übersetzen? Ich habe Simatic Manager V5.3 SP6 Upd2. Wurde da was geändert am Compiler? Pointer nur noch im TIA oder so?
Kann mich bitte jemand erleuchten?
AWL ist leider nicht so meins. Wenn es nicht anders geht, nehm ich auch das, dann aber bitte nachsichtig sein.
Vielen Dank