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

Ergebnis 1 bis 3 von 3

Thema: B&R Datentypkonvertierung

  1. #1
    Registriert seit
    02.02.2011
    Beiträge
    109
    Danke
    16
    Erhielt 13 Danke für 13 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Gemeinde!

    Über PV_xgetadr habe ich die Adresse einer Variablen ermittelt. Der Datentyp der Variablen kann unterschiedlich sein.

    Den Wert möchte ich auf eine andere Variable vom Typ DINT (fest) kopieren.

    Ein memcpy funktioniert bei positiven Werten.

    Bei neg. Werten nicht - aus einer -1 (SINT) wird in der DINT eine 255. Warum verstehe ich - die Bedeutung der Bit's in einer Var sind mir
    nicht fremd. Mit "access" komme ich auch nicht weiter.

    Wie komme ich da einfach ohne tausend IF's 'raus?

    Danke für einen Tip

    Gaiskasimir
    Zitieren Zitieren B&R Datentypkonvertierung  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    10.791
    Danke
    884
    Erhielt 3.161 Danke für 2.561 Beiträge

    Standard

    B&R kenne ich nicht, doch das Problem ist universell:
    Du darfst nicht einfach eine Variable, welche weniger Platz belegt in eine Variable mit größerem Platzbedarf kopieren, sondern mußt den kleinen Datentyp vorher vorzeichenrichtig in den großen Datentyp konvertieren. (gibt es SINT_TO_DINT ?, bei Siemens-AWL wäre das z.B. die Anweisung ITD)
    Alternativ lade den SINT in das höchste Byte des DINT und schiebe um 24 Bit "vorzeichenrichtig" nach rechts durch Hineinschieben des höchsten Bits in die 24 dazukommenden Bits. (bei Siemens-AWL wäre das die Anweisung SSD)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Avatar von gaiskasimir
    gaiskasimir ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.02.2011
    Beiträge
    109
    Danke
    16
    Erhielt 13 Danke für 13 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo PN/DP

    Jein

    Ja: das Problem ist universell.
    Nein: wenn ich weiß welches Byte ich wohin kopiere, kann ich sehr wohl eine "kleinere" auf eine "größere" Variable kopieren.

    Natürlich gibt es auch bei B&R umfangreiche Formatfunktionen.
    Denen übergebe ich Values aber keine Adressen.
    Und das ist mein Problem : der Eingangsdatentyp ist bei mir wie gesagt variabel
    Mit mehreren If's bekomme das Problem gelöst. Vielleicht gibt es doch eine cleverere Lösung


    Gruß

    Gaiskasimir

Ähnliche Themen

  1. USV & WinCCflexible RT 2008 SP2 HF2 & Simatic Net
    Von Onkel Dagobert im Forum HMI
    Antworten: 8
    Letzter Beitrag: 07.12.2012, 20:56
  2. Datentypkonvertierung SCL
    Von qpec_hagen im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 15.10.2012, 11:47
  3. Antworten: 0
    Letzter Beitrag: 04.04.2012, 15:12
  4. IBH Link S7++ & CPU314 & TP177B mit Profibus
    Von CrazyMC im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 25.03.2012, 22:12
  5. Antworten: 4
    Letzter Beitrag: 10.03.2008, 10:02

Lesezeichen

Berechtigungen

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