TIA Meldungen für HMI über Variablen

s-m-d

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Mitglieder,

ich bin Anfänger mit Step 7 V14 TIA.
Mein erstes Projekt lässt mich da schon etwas verzweifeln.
Ich hoffe daher hier von Profis Lösungsansätze erhalten zu können. Ich versuche mal mein Problem zu schildern:

AG ist ein S7 1200 mit HMI KPT 400 Basic. Ich erhalte aus einer Fremdanwendung Fehlercodes im BCD Format. Diese werte ich mit S7 aus und Konvertiere in die entsprechende Fehlernummer im Format INT als Variable. Diese Fehlernummern möchte ich jetzt gern auf dem Panel als Meldung generieren und Anzeigen lassen. Leider hänge ich jetzt bei HMI mit der Generation der Meldungen fest... Ich kann Bitmeldungen oder Analogmeldungen erstellen, hab aber absolut keinen Plan, wie ich auf einfache Weise meinen bereits vorhandenen Fehlercode (z.b. "125") über die Variable auswerten und die verschiedenen Meldungen generieren kann.
Ich hoffe, ich konnte mein Anliegen einigermassen gut beschreiben und danke schon mal vorab für Lösungsansätze.
 
kurz angebunden würde ich fix sagen:
Bleib bei den Bitmeldungen und in der SPS steuerst du dann einfach das Fehlerbit an.
If bcdcode = 10 then
fehler125 := true;
end_if;

kurz und doof beschrieben, aber im endeffekt brauchst du ein word und dort steuerst du dann einfach die triggerbits an, welche du auf der visu verknüpfst.

z.b.
oder du könntest dir auch nen array machen und deinen bcd wert dann als index für dieses array nehmen und den entsprechenden wert dann so auf true stellen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo s-m-d,

bei den Meldungen kommst du, wenn du mit dem integrierten Meldepuffer arbeiten möchtest, nicht umhin, deine Fehlermeldungen auf einzelne Triggerbits in einem INT/WORD zu schreiben.

Danach muss du den/die Int in deinem HMI deklarieren und unter Meldungen die darauf zugreifen, indem du die einzelnen Triggerbits dann die entsprechenden Meldetexte und Nummern zuweist.
 
Wenn du keinen Text nöchtest sondern nur die Fehlernummerkannst du wenn der Störcode ungleich 0 ist ein Fehlerbit setzen und den Störcode auch in das HMI übertragen.
Dann in der Bitmeldung den Störcode als Feld mit in den Meldetext einbinden.
Wenn du eine Liste der Stöcodes hast kannst du aber auch für jeden Störcode eine einzelne Bitmeldung erstellen.

Oder im HMI eine Textliste anlegen wo der entsprechende Meldetext der Störung an der Stelle des Störcodes steht.
Dann kannst du die Textliste in der Bitmeldung einbinden angesteuert vom Störcode.

Nutze das z.B. bei G120 Umrichtern.

Gruß

Jens
 
Ich habe das selbe Problem einmal so gelöst, indem ich aus der Fehlernummer, z.B. 99, in einem Array of Word, das Word und Bit das 99 entspricht berechnet habe, um dann die Fehlermeldung zu setzen. Fehler 99 war z.B. Kabinentür offen. In dem Array wurde dann Word 5 Bit 2 als TRUE gesetzt. Auf dem Panel wurde dann eine Meldung angezeigt die lautete :"Fehlernummer 99: Kabinentür offen". Wurde quittiert, wurden alle Bits in dem Array wieder FALSE gesetzt. Änderte sich die Fehlernummer ohne quittierung, blieb das Bit gesetzt und ein anderes, das der neuen Fehlernummer entsprach wurde gesetzt. Erst durch quittieren wurde alles zurückgesetzt.

Wenn du es dir einfach machen willst, kannst du das aber auch so regeln. Ist die Fehlernummer ungleich 0, setzt du ein Triggerbit, welches dir eine Meldung generiert. Der Meldungstext besteht nur aus dem Aufruf einer einzigen Variable mit etwas Text. (Du kannst im Meldungstext auch Variablen aufrufen, der Wert der Variablen wird dann angezeigt). Die Meldung könnte dann z.B. im TIA Portal so lauten: "Fehlermeldung Nr. <VARVAL>" und wird, wenn VARVAL einen Wert hat, in der Runtime so angezeigt: "Fehlermeldung Nr. 99". Nun muss der Bediener suchen, was Fehler 99 bedeutet.
Nachteilig ist, dass wenn mehrere Fehler auf einmal anliegen, die Fehlernummer nicht konstant ist, d.h. die Meldungsnummer in der Meldung ändert sich. Es liegen z.B. Fehler 99, 102 und 154 an und 154 kam zuletzt, werden Fehler 99 und 102 nicht direkt mitgemeldet. Man müsste dann Fehler 154 beheben, quittieren, Fehler 102 beheben, quittieren usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für Eure Antworten,

Ich habe etwas rumprobiert und habe meine Lösung gefunden. Sicher nicht die optimalste, aber mit zunehmender Erfahrung wird das sicher bald einfacher. Der enorme Umfang an Funktionen lässt einen oft den Wald vor lauter Bäumen nicht sehen...
Mein letzter Lehrgang ist n paar Jahre her, da hieß die Simatic noch S5;)
Der Umstieg vom Step7 aufs TIA-Portal war eigentlich recht Easy. Ich wollte eigentlich bei meiner beliebten AWL bleiben. Leider wusste ich vorher nicht, das beim AG1200 das ein Problem wird. Bin aber angenehm überrascht, wie übersichtlich doch so ein FUP ist. Werde wohl dabei bleiben. SCL ist mir ohne Lehrgang einfach zu hoch...

Ich setze meine Triggerbits in einem normalen DB, da ich jedem Bit einen Symbolnamen zuweisen kann (Im ARRAY scheinbar nicht möglich). Ich habe keinen Weg gefunden, alle Triggerbits mit einer Fuktion zu resetten. Wahrscheinlich nicht schwer, hab aber keine passende Funktion gefunden. Im ARRAY fand ich ne Lösung, aber die Triggerbits im ARRAY zu finden, war mir ohne Symbolik zu kompliziert. Jetzt habe ich mittels RS-Flip Flop jedem Triggerbit gleich den Reset mit verpasst.
Der Gedanke mit nur einem Triggerbit und Variablen/Textlisten klingt auch sehr interessant. Da haperts aber einfach an der Umsetzung. Im Moment wüsste ich nicht, wie ich das bewerkstelligen kann.

Trotzdem nochmals mein Dank für Eure Antworten.
Ich wünsche Euch ein paar geruhsame Feiertage und einen erfolgreichen Start ins neue Jahr.
 
Ich habe die quittierung der Triggerbits so gelöst:

Ich schreibe mit dem "Move" Befehl einfach eine 0 über den betreffenden Datenbereich des Störungs- DB´s.
Auf EN kommt dann einfach die Reset Taste.

Funktioniert zumindest mit nicht optimierten Datenbausteinen.
 
Bei uns ist das Beispielsweise so gelöst, das die Fehler in einem in einem Störungs_FB ausgewertet werden und auf win WORD gelegt werden. Dieses WORD ist in einem DB abgelegt. Die HMI Textliste greift nun auf diesen speziellen DB zu. siehe Bilder:

Störung_FB.png Störung_DB.jpg Störung_HMI_Textlist.jpg

Dann brauchst du die Fehler nur noch am FB Quittieren wenn sie weg sind.
 
Zurück
Oben