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

Ergebnis 1 bis 5 von 5

Thema: SCL-DB-Zugriff "Ungültiger Datentyp"

  1. #1
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    eigentlich habe ich mirs einfacher vorgestellt, aber ich bekomme die
    Fehlermeldung "Ungültiger Datentyp einfach nicht weg.
    Will ne Berechnungmit 2 INT's machen und auf einem DINT ausgeben.

    Mein Ansatz:
    Code:
        DB180.DBD328 :=  REAL_TO_DINT((DINT_TO_REAL (WORD_TO_DINT( db180.dbw280)) * 60.0 + DINT_TO_REAL(WORD_TO_DINT (db180.dbw282))));
    Habs auch mit :
    Code:
    DB180.DBD328 :=  WORD_TO_DINT( db180.dbw280) * 60 + WORD_TO_DINT (db180.dbw282);
    probiert - entweder liegts an der Hitze oder am nahen WE, k.A. es tut nicht, wieso ?

    Gruss
    Kienspan
    Zitieren Zitieren SCL-DB-Zugriff "Ungültiger Datentyp"  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Als was ist das Wort im DB definiert?
    Vielleicht nicht als WORD?
    Allerdings kenn ich SCL nicht und daher ist meine Frage vielleicht Schwachsinn.....

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Du must dein Ergebnis in DWORD und nicht in DINT umwandeln ...

  4. #4
    Avatar von kiestumpe
    kiestumpe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Als Int, jedoch wird dies durch dbw als WORD erkannt - also nochmehr Fehlermeldungen gibts bei folgender Variante:
    Code:
    DB180.DBD32 := WORD_TO_DINT( INT_TO_WORD (db180.dbw280)) * 60 + WORD_TO_DINT(INT_TO_WORD( (db180.dbw282));
    und auch nicht :

    Code:
       DB180.DBD328 := DINT_TO_TIME( WORD_TO_DINT( db180.dbw280) * 60 + WORD_TO_DINT( db180.dbw282));
    Gruss

    kienspan

  5. #5
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    WORD_TO_DWORD sollte es sein
    so sollte es funktionieren:
    Code:
    DB180.DBD32 := INT_TO_DWORD(WORD_TO_INT(db180.dbw280) * 60 + WORD_TO_INT(db180.dbw282));
    Geändert von godi (25.05.2007 um 18:09 Uhr)

  6. Folgender Benutzer sagt Danke zu godi für den nützlichen Beitrag:

    kiestumpe (29.05.2007)

Ähnliche Themen

  1. ANY Pointer. Wenn ist DatenTyp NICHT "Byte" ?
    Von JesperMP im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 05.03.2009, 23:11
  2. Probleme mit dem Datentyp "Real"
    Von Johannes F im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 15.01.2008, 22:34
  3. Profinet, langsamer "Online Zugriff" auf die CPU
    Von sps-freak im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 01.10.2007, 21:04
  4. Datentyp "ANY" in SCL zerlegen
    Von hubert im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.02.2006, 09:42
  5. Antworten: 5
    Letzter Beitrag: 21.10.2005, 09:09

Lesezeichen

Berechtigungen

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