Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: S7-Real in TwinCAT verarbeiten

  1. #1
    Registriert seit
    24.01.2009
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgenes Problem:

    Von einem externen Gerät erhalte ich einen Messwert als real im S7-Datenformat. Zum Beispiel wird die Zahl 721,0 als 44344000h übertragen. Wenn ich diese Zahl nun im TwinCAT auf eine real Variable schreibe kommt eine völlig "blödsinnige" Zahl heraus. Auch das Drehen der Eingangsvariable (Motorolaformat -> Intelformat) 00403444h bringt nicht den gewünschten Erfolgt.

    Wer kann mir hier weiterhelfen?

    Vielen Dank!
    Zitieren Zitieren S7-Real in TwinCAT verarbeiten  

  2. #2
    Registriert seit
    29.08.2006
    Beiträge
    195
    Danke
    0
    Erhielt 35 Danke für 21 Beiträge

    Standard

    deine zahl kommt im hexadezimalformat

    geeignete bausteine für umwandlungen findest du in der oscat.lib unter www.oscat.de
    OSCAT
    Open Source Community for Automation Technolgy
    www.oscat.de

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von hugo Beitrag anzeigen
    deine zahl kommt im hexadezimalformat

    geeignete bausteine für umwandlungen findest du in der oscat.lib unter www.oscat.de
    Was ist denn das Hexadezimalformat?

    Irgendwie findet man in keiner Dokumentation wie das Real-Format bei TwinCat aufgebaut ist.

    Ich wollte mir gerade mal testweise die Bytes ansehen, allerdings fehlt in der IEC-Sprache ja das AT-Konstrukt.
    In SCL würde ich es mir so schreiben um die Bytes anzusehen:
    Code:
    rReal : REAL;
    bArr AT rReal : ARRAY[0..3] OF BYTE;
    Wie würde man sowas denn bei TwinCat/Codesys machen?

    Ich habs mal mit Zeigern versucht, aber da meckert der Compiler dass die Typen nicht passen, und sowas wie einen Cast scheint es nicht zu geben.

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Wie würde man sowas denn bei TwinCat/Codesys machen?

    Ich habs mal mit Zeigern versucht, aber da meckert der Compiler dass die Typen nicht passen, und sowas wie einen Cast scheint es nicht zu geben.
    OK, geht doch:
    Code:
    VAR
        rReal : REAL;
        ptr : POINTER TO BYTE;
        bArr : ARRAY [0..3] OF BYTE;
    END_VAR
    
    rReal := 721.0;
    
    ptr := ADR(rReal);
    bArr[0] := ptr^;
    ptr := ptr + 1;
    bArr[1] := ptr^;
    ptr := ptr + 1;
    bArr[2] := ptr^;
    ptr := ptr + 1;
    bArr[3] := ptr^;

Ähnliche Themen

  1. UDINT in TwinCAT verarbeiten und skalieren
    Von olitheis im Forum CODESYS und IEC61131
    Antworten: 13
    Letzter Beitrag: 06.12.2010, 08:19
  2. RS 485 Protokoll mit S7-200 verarbeiten?
    Von Azit im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 07.09.2010, 17:48
  3. SFC 14/15 im FB verarbeiten
    Von Steve38 im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 17.03.2010, 12:47
  4. Antworten: 4
    Letzter Beitrag: 03.11.2009, 14:05
  5. Impulse Verarbeiten
    Von fi1988 im Forum Simatic
    Antworten: 46
    Letzter Beitrag: 27.03.2008, 19:59

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •