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

Ergebnis 1 bis 8 von 8

Thema: S7-1200 - Word in DB vergleichen

  1. #1
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen,

    warum kann ich im TIA V11 SP2 - S7 1200 kein Word aus einem DB mit einer konstanten Zahl vergleichen??

    Beispiel:

    Code:
    //Störung ist aktiv
    IF  "DB Stoerungen allgemein".Errors <> 0 THEN
      "DB Betriebsart".D_BO_Störung_aktiv := true;
    ELSE
      "DB Betriebsart".D_BO_Störung_aktiv := false;
    END_IF;
    Beim Übersetzen bringt er immer "ungültiger Datentyp".....

    Oder mache ich da was falsch????

    S1.jpg S2.jpg

    Grüße Pico
    Zitieren Zitieren S7-1200 - Word in DB vergleichen  

  2. #2
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    16#w#0

    Grüße

    Marcel

  3. #3
    Pico1184 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard

    16#w#0
    Nee das wars nicht wenn dann überhaupt W#16#0!

    Denk mal dass das damit zu tun hat das es im DB ein Datentyp "STRUCT" ist ich aber mit WORD/INT vergleiche.

    Gibts da ne Umwandlung??

    Grüße Pico

  4. #4
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Zitat Zitat von Pico1184 Beitrag anzeigen
    Guten Morgen,

    warum kann ich im TIA V11 SP2 - S7 1200 kein Word aus einem DB mit einer konstanten Zahl vergleichen??

    Beispiel:

    Code:
    //Störung ist aktiv
    IF  "DB Stoerungen allgemein".Errors <> 0 THEN
      "DB Betriebsart".D_BO_Störung_aktiv := true;
    ELSE
      "DB Betriebsart".D_BO_Störung_aktiv := false;
    END_IF;

    Grüße Pico
    "DB Stoerungen allgemein".Errors ist eine Struct, Du vergleichst die Struct mit einem Integer.

    Du musst also sehen, ob eines der Elemente (sind wohl alle bool Typen) true ist und dann das Ergebnis auf true oder false überprüfen.

    Vielleicht kannst Du alternativ auch die Struct gegen eine andere Struct vergleichen. Die Referenz Struct sollte dann alle Elemente auf false stehen haben. Ob das aber so von Siemens implementiert ist, muss nachgelesen oder getestet werden.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  5. #5
    Registriert seit
    26.04.2010
    Beiträge
    292
    Danke
    31
    Erhielt 51 Danke für 50 Beiträge

    Standard

    Hi!

    Du kannst mit dem Befehl "AT" ein überlagertes "WORD" aus "Array of Bool[1..16]" anstatt einer Struktur erzeugen.
    Somit kannst du dann die "Sicht" auf diese boolschen Variablen auch als "WORD" durchführen.

    Hier:
    http://support.automation.siemens.co...ew/de/57132241


    Gruß,

    Ottmar

  6. #6
    Pico1184 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Kann das denn wahr sein??????

  7. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Diese Vorgehensweise mit dem nachträglichen Vergleichen der Störwörter um eine Sammelstörung zu generieren ist einfach ein Programm-Designfehler.
    Wenn man an der Stelle an dem die Störungen erfasst werden auch gleich ein Sammelbit setzt, ergibt sich dieses Problem erst garnicht.
    Bei uns gibt es z.B. Baustein zur Erfassung für 8 oder 16 Störmeldungen, und der handelt auch die Sammelbits (inkl. quittiert/unquittiert) ab. Dann entfällt das Rumgeschmiere mit Absolutadressen ohne Symbol in AWL, und AT-Sichten braucht man auch keine.

  8. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Matze001 (05.06.2013)

  9. #8
    Pico1184 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bei uns gibt es z.B. Baustein zur Erfassung für 8 oder 16 Störmeldungen, und der handelt auch die Sammelbits (inkl. quittiert/unquittiert) ab.
    Normalwerweise (in Step7 Classic) benutzen wir auch einen "FC Copy Alarme" welcher Störwörter etc. durchsucht und dann ein Sammelbit z.B. im Betriebsarten DB setzt.

    Aber leider ist der unter S7-1200 und TIA nicht ohne weiteres einzusetzen. Deshalb musste ich mir auf die schnelle was basteln.

    Aber gut recht hast du mit dem Designfehler.

    Grüße Pico

Ähnliche Themen

  1. Word vergleichen
    Von RON_87 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 15.03.2013, 17:03
  2. Antworten: 21
    Letzter Beitrag: 25.01.2013, 09:10
  3. Word mit String vergleichen Step 7 AWL
    Von phil122 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.07.2012, 00:11
  4. Step 7 1200 Word zurücksetzen
    Von Hume#19 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 24.02.2011, 16:49
  5. BYTE/WORD/DWORD vergleichen
    Von slma im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 06.07.2007, 15:11

Lesezeichen

Berechtigungen

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