[WinCC V13 Professional] Meldeanzeige markierte Meldung auswerten

ahaenle

Member
Beiträge
24
Punkte Reaktionen
3
Zuviel Werbung?
->Hier kostenlos registrieren
Kennt wer eine Möglichkeit aus der Meldeanzeige die Werte einer (vom Bediener) markierten Meldung auszulesen? Ich bräuchte vor allem Datum/Uhrzeit und Dauer.

Hintergrund: Der Bediener soll eine Meldung markieren können und mit den entsprechenden Zeitwerten soll dann eine Kurvenanzeige versorgt werden damit dort der Werteverlauf für die Zeit in der die Meldung anstand ausgegeben wird.

Hab leider bisher in den Propertys der Meldeanzeige nix passendes finden können.
 
OP
ahaenle

ahaenle

Member
Beiträge
24
Punkte Reaktionen
3
Hab mich jetzt durchgewühlt. Zugriff auf diese Infos geht nur über Script, nicht direkt als Property rausgeführt. So funzt es:

Code:
Sub OnClick(ByVal item)


Dim MeldList, Diag
Dim selectedRow
Dim Start, Dauer, Ende
Dim DiffZeit


' Gewählte Zeile der Meldeanzeige bestimmen
Set MeldList = ScreenItems("ProtoCIP")
Set selectedRow = MeldList.GetSelectedRow


' Start und Dauer auslesen
Start = selectedRow.CellText(1)
Dauer = selectedRow.CellText(2)


' Differenzzeit zerlegen
DiffZeit = Split(Dauer, ":")


' Nur so funktioniert die Addition einer Zeitspanne!
Ende = DateAdd("h", DiffZeit(0), Start)
Ende = DateAdd("n", DiffZeit(1), Ende)
Ende = DateAdd("s", DiffZeit(2), Ende)


' Kurvenanzeige
Set Diag = ScreenItems("DiagCIP")


' Ausgelesene/Berechnete Zeiten auf die Kurvenanzeige setzen
Diag.TimeAxisBeginTime = Start
Diag.TimeAxisEndTime = Ende


End Sub

Vielleicht kanns ja wer mal brauchen.
 

Fragsau

Active member
Beiträge
42
Punkte Reaktionen
1
Hi,

auch wenn der Beitrag schon etwas älter ist.
Ich möchte etwas ähnliches tun und habe irgendwie nur Probleme.
Hat sich die Syntax inzwischen geändert?
Ich nutze WinCC AdvancedV17.

Code:
Dim MeldList, Diag1, Diag2
Dim selectedRow
Dim Start, Dauer, Ende
Dim DiffZeit

GetObject
' Gewählte Zeile der Meldeanzeige bestimmen
Set MeldList = HmiRuntime.Screens("05_alarm_message_buffer").ScreenItems("Meldeanzeige_1")
Set selectedRow = MeldList.getselectedrow


' Start und Dauer auslesen
Start = selectedRow.CellText(1)
Dauer = selectedRow.CellText(2)

' Ausgelesene/Berechnete Zeiten auf die Kurvenanzeige setzen
SmartTags("Test1") = Start
SmartTags("Test2") = Ende

Das hab ich soweit von dir übernommen. Aber die Methode GetSelctedRow wird mir nicht angeboten und er kompiliert es daher auch nicht.
Was mache ich denn falsch?

Auch einfach
Code:
ScreenItems("ProtoCIP")
statt
Code:
HmiRuntime.Screens("05_alarm_message_buffer").ScreenItems("Meldeanzeige_1")
klappt bei mir nicht...
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
18.663
Punkte Reaktionen
5.563
Die Skripte funktionieren nicht unter WinCC Advanced, weil WinCC Advanced ist etwas ganz anderes als WinCC Professionell

Harald
 
Oben