TIA Wincc Adv. Bitmeldungen

DCDCDC

Level-3
Beiträge
1.735
Reaktionspunkte
366
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich stehe etwas auf dem Schlauch. Ein Bitmeldungskonzept zu entwerfen hatte ich bisher noch nie gemacht. Im Classic hatten wir unseren fertigen Standard und unter TIA hatten wir immer 1500er im Einsatz, mit entweder ProgramAlarm oder Prodiag Anwendungen, da kam ich also auch noch nie in Berührung mit Bitmeldungen.

TIA V18.2
KTP700F V17.0.0.0
1217C DCDCDC V4.6

Ich bin gerade dabei Bitmeldungen einzurichten und möchte das im gleichen Zug auch so anlegen, dass es sich standardisieren lässt.

Laut Hilfe kann ich für PLC Variablen nur INT bzw WORD verwenden. So habe ich das jetzt auch mal angelegt:
Screenshot 2023-10-13 112105.png
- ich würde gerne Arrays verwenden, eventuell sogar eine UDT erzeugen

Dann in der Hilfe weiter:
Hinweis

Beachten Sie bei der Angabe des Bits die Zählweise der Bits in der verwendeten Steuerung. Weitere Hinweise dazu finden Sie in der Online-Hilfe zu der jeweiligen Steuerung im Abschnitt "Kommunikation".
Hab ich hier auch schon im Forum gelesen über die Suchfunktion, also einmal high/low byte drehen, oder einfach lieber versetzt die Meldungen parametrieren?

Dann hab ich meine Variablen in die HMI Variablen eingebunden und in den Bitmeldungen verwendet:
Screenshot 2023-10-13 112408.png

Fragen hierzu,

- wieso lässt TIA nicht WORD in einem Array zu, hat das was mit optimierten Bausteinen zu tun?
- Wie funktioniert die "PLC-Quittierung"? Muss ich quasi .x1 setzen um die Meldung zu quittieren?
- Ich habe ja eine Quittierfunktion in der erweiterten Meldeanzeige, muss ich die noch zusätzlich bei den Bitmeldungen verknüpfen?
- Ich habe auch auf einer F-Taste, ein Quittiersignal für meine PLC, das würde ich gerne parallel zur Quittierfunktion der Meldeanzeige nutzen, wie kann ich jetzt das Acknowledge-Bit, welches ich schon auf meiner Steuerung verwernde für die Bitmeldungen verwenden?
Screenshot 2023-10-13 114137.png

Zusatzfragen:
Wozu könnte ich Meldegruppen, Protokollierung und Infotexte verwenden?

Danke für die Hilfe!
 
Zuletzt bearbeitet:
Gibt es irgendwie eine zum projektieren einfachere Lösung für das PLC Quittierbit?

Ich würde gerne nämlich wie oben beschrieben, mit dem Hardware Button F8 alle Meldungen gerne quittieren wollen.. den müsste ich ja dann händisch auf jedes Quittierbit, im Meldungs-Wort legen, oder mir für jedes Wort einen FC basteln, was irgendwie auch unschön ist.

Screenshot 2023-10-16 104044.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest das mit dem einzelnen Quittierbits komplett lassen und nur die Bitmeldungen selbst benutzen. Wenn du diese in einem Array of Word (oder ähnlich) hast dann kannst du die innerhalb der SPS auch komplett löschen - also alle WORDs mit 0 beschreiben über einen Tastendruck - so habe ich das zumindestens immer gemacht ...
 
Du könntest das mit dem einzelnen Quittierbits komplett lassen und nur die Bitmeldungen selbst benutzen. Wenn du diese in einem Array of Word (oder ähnlich) hast dann kannst du die innerhalb der SPS auch komplett löschen - also alle WORDs mit 0 beschreiben über einen Tastendruck - so habe ich das zumindestens immer gemacht ...
funktioniert...
Vorteil vom Quittierbit ist meine ich, daß Du das dann auch in der Historie hast: Du kannst feststellen, wann quittiert wurde (und ggf. durch wen). Wenn Du das in der SPS ablöschst, bekommt das HMI ja nicht mit, ob die Meldung gegangen ist oder quittiert wurde.

Bei einer Massen-Quittierung bitte bedenken: Es werden auch Meldungen quittiert, die ggf. nicht sichtbar sind, wenn es mehrere Seiten lange Listen von Meldungen sind. Es können ggf. wichtige andere Meldungen dabei sein.
 
Ich kann direkt auf das Array zugreifen, aber nicht auf das Wort im Array?
Das liegt daran weil wir hier ja von BIT-Meldungen sprechen - ein WORD ist kein BIT ...
Du müßtest es aber eigentlch auch so projektiert bekommen, dass du die Meldungen dem jeweiligen Bit im WORD zuordnest ...
Was versprichst du dir von deiner Bitmeldung_1000 ?
 
Zuletzt bearbeitet:
Das liegt daran weil wir hier ja von BIT-Meldungen sprechen - ein WORD ist kein BIT ...
Du müßtest es aber eigentöich auch so projektiert bekommen, dass du die Meldungen dem jeweiligen Bit im WORD zuordnest ...
Was versprichst du dir von deiner Bitmeldung_1000 ?
Screenshot 2023-10-16 165238.png

Das bekomme ich ja hin

1000 ist nur eine Zahl, kein größerer Hintergrund

1000 Fehler
2000 Warnungen
3000 Info

Wenn's über das gesamte Array funktioniert ist das für mich auch in Ordnung, dachte immer nur dass es Wortweise funktioniert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hinweis

Beachten Sie bei der Angabe des Bits die Zählweise der Bits in der verwendeten Steuerung. Weitere Hinweise dazu finden Sie in der Online-Hilfe zu der jeweiligen Steuerung im Abschnitt "Kommunikation".
Hab ich hier auch schon im Forum gelesen über die Suchfunktion, also einmal high/low byte drehen, oder einfach lieber versetzt die Meldungen parametrieren?
Das lästige ist, das obwohl es eine Siemens PLC ist, und eine Siemens HMI ist, dann hantiert Siemens nicht die Byte-Verdrehung automatisch.
Das heist, wenn man die Alarmmeldung per Trigger-Bit sortiert, dann muss man die Alarmvariabeln in die SPS selber sortieren.
Wenn z.B. man eine Alarmbit Array ab DB10.DBX0.0 hat, dann sortieren die Bits sich so:
Code:
Trigger bit Nummer, Trigger Bit Adresse, SPS Array Bit
0                   DB10.DBX1.0          "Alarm"[8]
1                   DB10.DBX1.1          "Alarm"[9]
2                   DB10.DBX1.2          "Alarm"[10]
3                   DB10.DBX1.3          "Alarm"[11]
4                   DB10.DBX1.4          "Alarm"[12]
5                   DB10.DBX1.5          "Alarm"[13]
6                   DB10.DBX1.6          "Alarm"[14]
7                   DB10.DBX1.7          "Alarm"[15]
8                   DB10.DBX0.0          "Alarm"[0]
..
15                  DB10.DBX0.7          "Alarm"[7]
16                  DB10.DBX3.0          "Alarm"[24]
17                  DB10.DBX3.1          "Alarm"[25]                        
..
23                  DB10.DBX3.7          "Alarm"[31]
24                  DB10.DBX2.0          "Alarm"[16]
25                  DB10.DBX2.1          "Alarm"[17]
Ich erzeuge alle Alarmmeldungen in ein Excel welche die Alarmtekste mit das SPS Array Nummer kombiniert. Diese Excel importiere ich dann ins TIA so dass ich die korrekte Alarm-Nummern habe. Das von Hand zu machen ist viel zu fehlerauffällig.
 
Screenshot 2023-11-20 103145.png

Screenshot 2023-11-20 103644.png

Guten Morgen, ich habe aktuell das Problem, dass quittierte Meldungen nicht wieder "gehen".

Screenshot 2023-11-20 103312.png

Ich hab auch jetzt im Handbuch keine Beschreibungen zu den Meldezuständen gefunden. Liegt es daran?
 
1700480391754.png
Hast du evtl. bei PLC-Quittiervariable noch etwas drinnenstehen?

Ich quittiere auch alle Bitmeldungen in der SPS und bei mir ist dort nichts eingetragen.
1700480544513.png
 
Guten Morgen, ich habe aktuell das Problem, dass quittierte Meldungen nicht wieder "gehen".
Wie genau quittierst du?
Setzt du einfach das Meldebit wieder auf FALSE? Wenn ja, wäre "KG" aus sicht es HMIs korrekt.
Die MEldung ist gekommen (Meldebit FALSE => TRUE) & wieder gegangen (Meldebit TRUE => FALSE).
Wenn du die interne Quittier-Mechanik des Meldesystems nicht nutzen willst, muss du die Quittierpflichtigkeit der Meldeklasse entfernen.
Unter: gemeinsame Daten => Meldeklassen => Haken bei "Quittierung" rausnehmen.
Damit würde die Meldung bei "gegangen" auch gleichzeitig wieder aus der Meldeanzeige verschwinden.

Willst du speziell den Quittierschritt mitnehmen, so musst du entweder per Quittierbit dem HMI mitteilen, dass die jeweilige Meldung von der SPS aus quittiert wurde oder du setzt per Schaltfläche einen Quittierbefehl im HMI an das HMI-interne Meldesystem ab.
Systemfunktion "QuittiereMeldung" bzw. "AcknowledgeAlarm".
 
Wie genau quittierst du?
Setzt du einfach das Meldebit wieder auf FALSE? Wenn ja, wäre "KG" aus sicht es HMIs korrekt.
Die MEldung ist gekommen (Meldebit FALSE => TRUE) & wieder gegangen (Meldebit TRUE => FALSE).
Wenn du die interne Quittier-Mechanik des Meldesystems nicht nutzen willst, muss du die Quittierpflichtigkeit der Meldeklasse entfernen.
Unter: gemeinsame Daten => Meldeklassen => Haken bei "Quittierung" rausnehmen.
Damit würde die Meldung bei "gegangen" auch gleichzeitig wieder aus der Meldeanzeige verschwinden.

Willst du speziell den Quittierschritt mitnehmen, so musst du entweder per Quittierbit dem HMI mitteilen, dass die jeweilige Meldung von der SPS aus quittiert wurde oder du setzt per Schaltfläche einen Quittierbefehl im HMI an das HMI-interne Meldesystem ab.
Systemfunktion "QuittiereMeldung" bzw. "AcknowledgeAlarm".
Aktuelle beschreibe ich meine Wörter erst mit leer sobald ich Acknowledge drücke, erst dann werte ich die einzelnen Meldungen aus:
Code:
IF "DB_Global".OperatingMode.Buttons.Acknowledge THEN
    "DB_Messages".Error := #tempMessagesEmpty;
END_IF;

REGION Error messages
    // Start at 1000
    REGION Word 0
        
        "DB_Messages".Error[0].%X0 := NOT "DB_IO".In.EstopOk;
        "DB_Messages".Error[0].%X1 := NOT "DB_IO".In.MotorsVoltageOk;
        "DB_Messages".Error[0].%X2 := NOT "DB_Global".PressureSwitchOk;
        "DB_Messages".Error[0].%X3 := NOT "DB_IO".In.Nutrunner.Byte00_NoError;
        "DB_Messages".Error[0].%X4 := "DB_Axis".X.Out.Error;
        "DB_Messages".Error[0].%X5 := "DB_Axis".Y.Out.Error;
        "DB_Messages".Error[0].%X6 := "DB_Axis".Z.Out.Error;

....
....
....

Willst du speziell den Quittierschritt mitnehmen, so musst du entweder per Quittierbit dem HMI mitteilen, dass die jeweilige Meldung von der SPS aus quittiert wurde oder du setzt per Schaltfläche einen Quittierbefehl im HMI an das HMI-interne Meldesystem ab.
Systemfunktion "QuittiereMeldung" bzw. "AcknowledgeAlarm".
Das probiere ich mal eben aus!
 
Zurück
Oben