Step 7 Beautification Flankenauswertung --> Array[0..63] of Word/Byte

logo78

Level-1
Beiträge
84
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Thema: Flankenauswertung von 64 Bytes
Warum: WinCC Error Handling mit Einzelquittierung

Quelle:
Störungen.Array[0] as Word
Störungen Quittierungen
00000000 00000001

Die Störungen kommen durch die SPS (linkes byte).
Beim Quittieren in HMI wird der entsprechenden Bit im rechten Byte durch WinCC gesetzt.
Leider geht das mit der Tia-Welt nicht anders. Muss die gleiche Variable/Array sein.

Ziel:
HMI.Quittierung[0] as Byte
00000001
In der SPS wird es ein 'Array [0..63] of bytes' geben mit der TP-verzögert die Einzelquittierung ausgegeben wird.
Zudem werde ich auf NotNull prüfen um ein globales WinCC quittierung abzuleiten.

Bei einem 'Word' würde ich das mit INVI, UW und einem HilfsWord lösen.
Nur; ich habe 64 Wörter...Möchte dafür ungern 64-Hilfswörter opfern

Frage:
Wie würdet ihr eine Flankenauswertung über 64-Bytes lösen, ohne dafür 64 Hilfsbytes zu opfern?
Könnte man das dann auch mit einem TP/TOF verknüpfen, oder ist dann für jedes bool/Störung ein Zeitelement zu spendieren?

Danke schonmal...
 
Für eine Flankenauswertung muss man zwingend zwischenspeichern,
Also wirst du um das benutzen von Meckern oder DB Variablen nicht umher kommen.

Mach dir doch einen DB für die Flanken. 64 Byte ist doch keine große Menge. Dann kannst Du die Flankenauswertung wortweiße durchführen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hmm.. Danke, mir ist der Ansatz schon bekannt, wie man wortweise nach Flanken schaut.
Es geht mir prinzipiell um die intelligente Wiederverwendbarkeit von Hilfsvariablen, wenn man nach Zustandsveränderungen (Flanken, Wertveränderungen, etc..) in größeren Bereichen Ausschau halten muss.
Ich sehe es sportlich und bilde mir mal weiterhin ein, dass es eine grazilere Methode geben muss - irgendwo da draußen... :cool:
 
[Klugscheiß]
64 Worte != 64 Byte
[/Klugscheiß]

Ich hab jetzt mal so getan, als ob ich was wüßte...
:ROFLMAO:ROFLMAO:ROFLMAO:

Um die Hilfsworte wirst Du kaum drumherumkommen. Ist halt eine Frage des Satzbau's :cool:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Irgendwer wird sich den Altwert merken müssen.
Du kannst es ja mittels eines OP machen wo Du bei jedem Doppelwort die alte Bitkombination eintippst- einmal pro Zyklus, das spart dir Speicherplatz.
Und Speicherplatz ist echt teuer, also 64 Byte......
Ironie off!
 
Ja, ist angekommen. Danke.
Nicht jeder hat die Weisheit mit dem Löffel gefressen.

Hört bitte endlich auf, 64byte zu verniedlichen.
Meine Frage ist rein prinzipieller/startegischer Natur gewesen. So habe ich es auch definiert.
Vielleicht gibt es ja ein Algorithmus, beispielsweise mit Quersummenbildung etc..
Darum frage ich ja..

Wiederverwendbarkeit ist wichtig. Es geht hier um Vereinheitlichung/Standardisierung.
die auch mal System- und CPU-übergreifend genutzt werden sollen.
Man hat nicht immer eine 319F, oder eine 1517F. Du 64Byte können auch mal 512Byte sein,
und das vielleicht mehrmals.

btw:
Das erinnert mich an viele Spezialisten, die mehrere 100-Byte große Datentypen
in jedem FB als In,Out und sogar InOUT deklarieren und sich dann lauthals über
den Speicherschwund beschweren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was genau willst du überhaupt machen? Ich kann grad nicht verstehen, wozu du jede Meldung zeitverzögert quittieren willst.
Wen du zeitverzögert quittieren willst, könntest du auch einfache nicht quittierpflichtige Meldungen im HMI nutzen.
Dann kommt und geht die Meldung im HMI, wenn die SPS das Bit setzt oder zurücksetzt und fertig. So handelst du dann alles in der SPS.

Davon abgesehen, ich nutze ja auch den Quittiernmechanismus von WinCCFlex, 1 Bit Meldung, 1 Bit Quitt SPS, 1 Bit Quitt HMI.
Da kann man auch bei der 1500-er mit 3 Structs (oder auch Array) in einem DB (nicht optimiert) machen. Nicht optimiert macht bei den Meldungen ohnehin Sinn, da
HMI und 1500-er hier vom Sytem her nicht wirklich zusammenpassen.

Static
PLC_ERR "stERROR_BITS" 0.0 False True True False
PLC_ACK "stERROR_BITS" 64.0 False True True False
HMI_ACK "stERROR_BITS" 128.0 False True True False
 
Ich muss (leider) auch die Quittiermechanismen, incl. einer möglichen externen Quittierung nutzen.

Ich finde es unschön das die entsprechende Einzelquittierung durch WinCC immer auf '1' ist, so lange
keine Störung ansteht. Es soll nur dann quittiert werden, wenn auch die Einzelquittierung erfolgt ist.
Darum die Flankenauswertung.
Die Zeitverzögerung ist nur die Paranoia, das vielleicht ein Zyklus zum Quittieren nicht ausreichen könnte.
Ist aber an der Stelle vllt wirklich unnötig.

Ich hänge später mal die Funktionen und eine Funktionsübersicht hier rein.
Habe auch eine 'tolle' Excel-Tabelle gebastelt, die einem sehr viel Arbeit abnimmt. Vllt hilft sie ja dem einen oder anderen.
 
Die Einzelquittierung vom Panel nutzen wir schon lange nicht mehr.
Unsere Anlagenführer quittieren erstmal alles bevor überhaupt gelesen wird, was da überhaupt steht.
Deshalb benötigt man bei unseren neueren Anlagen generell zum Quittieren schwerer Fehler / Störungen einen RFID-Chip.
Dabei gibt es mehrere Berechtigungsstufen. So können bestimmte Störungen eben nur vom Meister oder von der Instandhaltung quittiert werden.
Das System hat sich bislang bewährt und ich spar mir die 64 Byte :p

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich mag die Einzelquittierung von WinCC auch nicht. Manchmal sind aber Kunden eben unvernünftig und sind bereit die Arbeit hierfür zu zahlen :)
Hardware Tokens sind sicherliche die bessere Variante. Hoffen wir mal, das sich das auch bis zu unseren Kunden/Vertrieb durchspricht...

P.S. bin eigentlich eher der Silent-Reader/Leecher, aber nun wird es mal Zeit, etwas zurückzugeben :)
Ich habe meine besagten Routinen/ExcelTabellen wie versprochen hier veröffentlicht und mit einem kurzen Video beschrieben.
http://www.sps-forum.de/simatic/839...ncc-fehlerauswertung-anzeige-einzelquitt.html
 
Zurück
Oben