Wechsel eines Bildes in WinCC flexible bei Fehlermeldung

brossi_lgs

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Mahlzeit,

habe folgendes Problem bzw. folgenden Wunsch.

Wenn ich in meinem Programm eine bestimmtest Bit setze (z.B. Netzspannungsausfall), dann soll auf meinem TP270 ein Bild sich öffnen mit der entsprechenden Fehlermeldung (Netzspannungsausfall).
Jetzt bin ich nicht so tief in der Materie von WinCC flexible2005. Wie kann ich, egal welches Bild gerade geöffnet ist, bei Auftreten meines o.g. Fehlers ein Bild öffnen, welches nach Behebung des Fehlers (Bit = 0) von alleine sich wieder schliesst?

Gruß
Andreas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
solange die cpu läuft, so wie sps-concept das schreibt.

um einen cpu-ausfall anzuzeigen kannst du folgendes script minütlich durch einen wecker aufrufen.
Code:
z_cpu_ausfall = 0
If Right (dt_ag_zeit,8) = z_ag_zeit_gespeichert Then
	z_cpu_ausfall = 1
	Call PtFct.Bildanwahl_fest(PtScn.zz_cpu_ausfall, 0)
End If
z_ag_zeit_gespeichert = Right (dt_ag_zeit,8)
 
Pop-Up Fenster bei Störungen? Dazu finde ich nciht mal was in der Hilfe

Meldefenster: Da habe ich ein Problem damit. Habe ein Bild mit einer Meldeanzeige gebastelt. Jetzt braucht die Meldeanzeige noch eine Meldung. Diese wollte ich in Bitmeldung erzeugen. Jedoch benötige ich dafür eine Variabele im Format Int oder Word. Habe ich aber nicht. Habe nur ein einzelnes Bit. Was mache ich verkehrt?
 
WinCC flex

Hallo,

dann reserviere doch ein Datenwort oder Merkerwort und beschreibe 1 Bit. Willst du erweitern beschreib das nächste. Hast du die Runtime und PLCSIM auf dem Recher? Dann mach mal nen Trockentest.

MfG
André Räppel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Soweit so gut. Habe mir eine Variable erschaffen nud frage dort ein Bit ab. Zur weiteren Verständnis:
Habe ein Bild namens "Störung". In diesem habe ich die Meldeanzeige eingebaut. Dieses Bild soll bei Auftreten des Fehlers, egal in welchem Bild ich mich gerade befinde, erscheinen.
Was muss ich jetzt noch machen, damit mein Wunsch in Erfüllung geht?
 
WinCC flex

Hallo,

das Bild kannst du ganz normal aus dem Menü aufrufen. Das Popupfenster kommt automatisch. Hast du die Runtime und PLCSIM?

MfG
André Räppel
 
danke für die Diskussion, hatte gerade genau das gleiche Problem, habe jetzt im Aufgabenplaner einfach folgendes Skript aufgerufen:

If UPSactive<>0 Then
ActivateScreen "0-UPS active", 0
End If

UPSactive kommt als Bit aus der SPS, das Panel springt dann einfach auf das Bild, wo ein entsprechendes Textfenster plaziert ist.
Unschön ist nur, das man, wenn das Bit zuückgesetzt ist, die Seite wieder manuell verlassen muss.

Wer also eine elegantere Lösung hat - gerne nochmal posten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde das nicht so kompliziert machen abgesehen davon ein Skript sei es noch so klein min aufzurufen ist ein bischen ungeschickt das zieht an der Performance!!!
:twisted:

Ich würde an die Variable die die FEhlermeldung bringen soll im Punkt Wertänderung folgendes Skript anhängen

If Variable = true then
ActivateScreen "Fehlerbild",0
else
ActivateScreen "anderes BIld",0
end if

so springt man auch automatisch wieder aus dem Bild wenn der Fehler behoben ist!!!
und man ruft das Skript wirklich nur dann auf wenn man denn Fehler bekommt und nicht jede Minute!!! :D
 
Reblaus schrieb:
Ich würde das nicht so kompliziert machen abgesehen davon ein Skript sei es noch so klein min aufzurufen ist ein bischen ungeschickt das zieht an der Performance!!!
:twisted:

Ich würde an die Variable die die FEhlermeldung bringen soll im Punkt Wertänderung folgendes Skript anhängen

If Variable = true then
ActivateScreen "Fehlerbild",0
else
ActivateScreen "anderes BIld",0
end if

so springt man auch automatisch wieder aus dem Bild wenn der Fehler behoben ist!!!
und man ruft das Skript wirklich nur dann auf wenn man denn Fehler bekommt und nicht jede Minute!!! :D

Joa aber mit anderes Bild kommste nun nicht zurück zum letzen aufgerufenen Bild!
 
Dann eben so


If Variable = true then
ActivateScreen "Fehlerbild",0
else
ActivatePreviousScreen
end if

das ist der Befehl für letztes BILD
 
Zuviel Werbung?
-> Hier kostenlos registrieren
seeba schrieb:
Joa aber mit anderes Bild kommste nun nicht zurück zum letzen aufgerufenen Bild!

wie das bei flex ist weiss ich nicht aber bei protool gibt es 3 möglichkeiten ein bild aus dem script zu wechseln

1. Call PtFct.Bildanwahl_zurück()
2. Call PtFct.Bildanwahl_fest(PtScn.BILDNAME, 0)
3. Call PtFct.Bildanwahl_variabel(PtVar.BILDNUMMER, 0)

ich denke ja mal dass das mit flex auch noch geht.

wenn du mich mit der minute meinst..... :wink:
solange die cpu läuft, kann man das script natürlich an eine variable binden und das script nur bei bedarf auslösen.

wenn die cpu nicht mehr läuft geht das aber nicht. deshalb die sache mit dem minütlichem wecker der das bild cpu-ausfall aufruft.
 
Da hast du recht :shock:
Ich kann natürlich auch nicht einschätzen wie groß das Projekt ist
Sollte es nicht zu groß sein kann man das auch mal machen!! Aber leider :evil: ist WinCC Flexible was Skripte angeht einfach sehr sehr empfindlich deshalb versuche ich möglichst viel ohne zu machen und wenn mit dann nur selten aufrufen!

Außerdem geht man mit dem Minütlichen aufruf ein Risiko ein. denn Skripte sind nieder prior sollte also durch zufall bei einem aufruf des Skriptes mehrere Aktionen ausgeführt werden wird das Skript hinten angestellt. Durch die Minütliche auslösung setzt man die Wahrscheinlichkeit also rauf das ein Fehler unerkannt bleibt! Vorallem wenn man ohne Meldefenster arbeitet sonder nur mit der Meldeanzeige!
 
Die Variante der Reblaus hört scih ja ganz gut an, jedoch hänge ich an der Stelle, der Variabelen unter dem Punkt Wertänderung ein Skript anzuhängen. Finde nicht den entsprechenden Punkt "Skript ausführen". Wie füge ich denn ein Skript unter Wertänderung an?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also:
Habe jetzt eine Variable, ein Skript nach Modell Reblaus und ein Bild. Der Variable habe ich bei Wertänderung das Skript angehängt (habe es gefunden). In dem Skript steht,
Code:
If Variable = false then
activatescreen "Bild",0
else
activatepreciousscreen
end if

Jetzt habe ich das ganz mal in Runtime starten wollen. Aber das Skript wird nicht wusgeführt, obwohl die Variable null ist. Geht das Testen in Runtime nicht?
 
eine funktion an eine bool-variable zu binden funktioniert nicht.
zumindest ist das bei protool so.
möglicherweise ist der fehler in flex auch noch nicht behoben.
versuchs mal mit einem byte und grenzwert überschritten.
 
Habe in Step7 die Variable in ein Byte abgeändert.

Jetzt bin ich in Flex und gehe zur Variable. Dort gebe ich bei Obergrenze eine Konstante ein (0) und bei Eigenschaften->Obergrenze Überschritten lasse ich das Skript aufrufen. Ist diese Vorgehensweise richtig?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
vom prinzip ja. nimm als obergrenze aber besser eine 1 und als untergrenze eine 0. wenn die funktion ausgelöst werden soll eine 2 in das byte transen bzw dbx0.1 (ist ja 2 ;-) ) setzen. das byte kannst du am ende des scripts auf 0 setzen. das ist besser als in der steuerung. so kannst du sicher sein, das das script auch aufgerufen wird.
 
Und wenn ich anstatt das Bit 0.1 zu setzen einfach
Code:
 = dbx0.1
sage, dann müsste das doch dann genauso funktionieren, oder? Wenn meine Bedingung nicht erfüllt ist, dann kein Bild, wenn erfüllt, dann Bild! Sehe ich das richtig?
 
Zurück
Oben