TIA Strings in Textfeld einfügen

Neurorancer

Level-2
Beiträge
572
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich möchte gerne wissen, ob es möglich ist zur Laufzeit Strings in ein Textfeld einzutragen und wieder entfernen.
Hintergrund ist, dass ich eine Benutzerführung einrichten möchte.
Das heißt, der Benutzer bekommt Anweisungen, die er befolgen soll.

Schönen Feiertag!
 
OK, habs hinbekommen.

Kann jetzt das Textfeld mit Strings beschreiben.

Nun möchte ich das Feld mit mehreren Strings beschreiben (Strings anhängen).

Das Problem dabei ist, dass manche Strings dazwischen entfern werden sollen.

Jetzt bin ich wieder bei dem Ausgangspunkt.

Ich habe mir ein Array aus Strings angelegt und habe dann nach einer bestimmten Zeit beschriebene Array-Elemente angezeigt.
Das Problem dabei ist, dass man dann einen bestimmten Array Index für einen bestimmten Text nehmen muss, da man sonst durcheinander kommt.

Wie macht Ihr das?
 
Ich möchte mehrere Meldungen nacheinander in einer Text-Liste anzeigen.

So wie ich es im Moment verstehe, kann man eine Meldung der Text-Liste mit einem gesetzten Bit aktivieren.
Was passiert, wenn ich mehrere Bits setze? Welche Meldung wird dann angezeigt?
Gewünscht wäre: gesetzte Meldungen nach einander in einer bestimmten Zeit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt habe ich im HMI eine Textliste angelegt, diese heißt: txt_meldungen.

Dabei entspricht
Bit0 = A
Bit1 = B
Bit2 = C

Frage: Wie setze ich die Bits der Struktur txt_meldungen aus der plc heraus?
 
OK, habs verstanden.

Eins ist aber merkwürdig.
Beim Setzen von Bit 0 bekomme ich A => ok
Beim Setzen von Bit 1 bekomme ich B => ok

Beim Setzen von Bit 0 und Bit 1 bekomme ich keine Ausgabe.
Warum?
 
Weil das eingentlich nicht Bits, sondern Zahlen sind.

Also 1 --> Text 1, 2 --> Text 2, 3 --> Text 3

Hast du einen Text mit der Zahl 3 in der Textliste definiert? Wenn nicht, probiere es einmal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte mehrere Meldungen nacheinander in einer Text-Liste anzeigen.

So wie ich es im Moment verstehe, kann man eine Meldung der Text-Liste mit einem gesetzten Bit aktivieren.
Was passiert, wenn ich mehrere Bits setze? Welche Meldung wird dann angezeigt?
Gewünscht wäre: gesetzte Meldungen nach einander in einer bestimmten Zeit.

Deine Formulierung beschreibt eigentlich schon exakt eine zweite Möglichkeit der "Bedienerführung". Und zwar kann man die entsprechenden Texte als "Meldungen ohne Quittierung" bzw. als "Betriebsmeldung" anlegen. Dann werden jeweils alle Meldungen ausgegeben, deren Meldebits gesetzt sind. Das Meldefenster zur Ausgabe kann man zu diesem Zweck so gestalten dass nur die Texte zu sehen sind, also ohne Meldenummern, ohne Zeitstempel, ohne Tabellenhintergrund etc.
 
OK, das mit der Textliste funktioniert jetzt. Ich kann je nach Zahl eine entsprechende Meldung anzeigen lassen.

Nun möchte ich, dass die Liste bestimmte Meldungen nacheinander anzeigt.
Die Textliste ist bei mir auf dem HMI eine Zeile, in der die Meldungen nacheinander
angezeigt werden sollen.

Ich habe mir folgendes überlegt, aber vielleicht kennt Ihr einen andren Weg:

Ich habe ein Array var_meldung mit n Elementen (z.B. n=10).

Das Array ist eine 1:1 Beziehung mit der Text-Liste.
Im Quellcode werde ich an bestimmten stellen bestimmte Array-Elemente der var_meldung auf true setzen.
In einer Schleife werde ich dann die Text-Listen Einträge mit der Nummer dem gesetzten Array-Element var_meldung
mit einer Verzörgerung anzeigen.

Bsp:

var_meldung Textliste-nr Textlisten-Text
[0] = true => [0] 'Steuerspannung einschalten' => Wird angezeigt
[1] = false => [1] 'Hauben verriegeln' => wird nicht angezeigt
 
So wie du es beschreibst wird es leider nicht funktionieren mit die in WinCC vorhandene Text-Listen.
Mit die in WinCC vorhandene Text-Listen wird es immer nur eine Text aktiviert.
Wenn eine Text-Liste mit ein bit nummer (0-31) getriggert wird, und mehrere bits aktive sind, dann hat den bit Vorrang der als der erste in den Liste definiert ist.

Wenn man es überlegt, wie sollte es auch praktisch funktionieren ?
Sollen die Texte nacheinander angezeigt werden. Das wurde eine sehr lange Zeile benötigen.
Oder mehrere Zeilen, mit eine Zeile pro Text. Das wurde jeden mal 32 Zeilen benötigen, und es wurde leere Zeilen geben zwisschen die aktive Zeilen. Das wäre unschön.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Weitere Möglichkeit wäre natürlich, dass du die Einzel-Strings in der SPS in einem Datenbaustein ablegst und dann je nach Bedarf deine Strings selbst zusammenbaust und diesen zusammengbeauten String im Panel anzeigst.
 
Oder du definierst mehrere Ausgabefelder, die nach Bedarf unsichtbar/sichtbar geschalten werden.
 
OK, das mit der Textliste funktioniert jetzt. Ich kann je nach Zahl eine entsprechende Meldung anzeigen lassen.

Nun möchte ich, dass die Liste bestimmte Meldungen nacheinander anzeigt.
Die Textliste ist bei mir auf dem HMI eine Zeile, in der die Meldungen nacheinander
angezeigt werden sollen.

Ich habe mir folgendes überlegt, aber vielleicht kennt Ihr einen andren Weg:

Ich habe ein Array var_meldung mit n Elementen (z.B. n=10).

Das Array ist eine 1:1 Beziehung mit der Text-Liste.
Im Quellcode werde ich an bestimmten stellen bestimmte Array-Elemente der var_meldung auf true setzen.
In einer Schleife werde ich dann die Text-Listen Einträge mit der Nummer dem gesetzten Array-Element var_meldung
mit einer Verzörgerung anzeigen.

Bsp:

var_meldung Textliste-nr Textlisten-Text
[0] = true => [0] 'Steuerspannung einschalten' => Wird angezeigt
[1] = false => [1] 'Hauben verriegeln' => wird nicht angezeigt


Wenn du deine Textliste schon hast, musst du doch nur die Variable auf der SPS richtig beschalten. Das kannst du in einem Ablauf (z.B. GRAPH, oder wie du halt Abläufe der Maschine programmierst) oder Zustandstandsgetriggert.

Also. z.B. deine Textliste auf der Visu ist:
0: Ungültig
1: Steuerspannung ein (was ich nicht ganz verstehe, bei Steuerspannung aus -> ist auch die SPS im Normalfall aus)
2: Schutzeinrichtung schließen
3: Not-Halt quittieren
4: Zur Grundstellung fahren
5: Automatik starten
usw.

Und nun auf der SPS, im Beispiel Zustandsgesteuert:

UN e_Schutzhaube_zu -> MOVE 2 auf Textlistenvariable
U e_NotHalt -> MOVE 1 auf Textlistenvariable

Oder in einem Ablauf:

Step1 : N Textlistenvariable := 1
Transition 1: UN e_NotHalt
Step 2: N Textlistenvariable :=2
Transition 2: U e_Schutzhaube zu

usw.
 
Man kann auch eine HMI-interne String-Variable an ein EA-Feld verschalten und per Skript oder Systemfunktion der Variable wechselnde Texte zuweisen.

Harald
 
Zurück
Oben