Alarm Logging / TimeStamp in Millisekunden anzeigen

DAU-JONES

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Ich möchte mir unter WinCC6.0 SP3a gerne die Millisekunden der Timestamps anzeigen lassen. Genauso wie es mit dem Table und AlarmControl ja auch funktioniert. Für diese Aktion würde ich VB preferieren. Ich habe Testweise ein externes VB Programm geschrieben um mich generell mit der Zeit Problematik zu beschäftigen. Beim Zugriff mit diesem kleinen Programm auf den OPC Server bin ich ohne grosse Probleme in der Lage die enthaltenen Millisekunden im Timestamp einer Variablen zu extrahieren. Innerhalb eines VB Scripts in der Runtime bekomme ich nur Millisekundenwerte von 999 und 000. Beim Vergleich der erhaltenen Double-werte aus dem Timestamp durch das Externe Programm und durch die VB Aktion, sieht man sehr gut, dass der Timestamp während der Runtime dahingehend verändert wird, dass die Millisekunden weggerundet werden. Wie kann ich WinCC dieses Verhalten austreiben?
 
Zuletzt bearbeitet:
Hmm keiner eine Idee?

Zumindest Irgendein Feedback wäre nett:) Ohne hängt man irgendwie in der Luft und plagt sich mit Fragen wie: "War die Frage zu dumm, zu unverständlich oder schlicht zu simpel um darauf zu antworten?"

regards

Hier mal der VB Code meiner Action gebunden an Ausgabe/Änderung:

Code:
Sub OutputValue_OnPropertyChanged(ByVal Item, ByVal value)           
Dim Zeit
Dim Daypart
Dim Millisec
Dim objTag
Dim objStaticText
Set objTag = HMIRuntime.Tags("MyTag")
objTag.Read()
Zeit =  objTag.timestamp

Set objStaticText = ScreenItems("StatischerText1")
Daypart = "0," & Mid(CDbl(zeit),7)
Millisec = CLng(86400000 * daypart)
Millisec = Mid(Millisec,Len(Millisec)-2)
objStaticText.Text = zeit & "." & Millisec
End Sub
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo DAU-Jones !

Zumindest Irgendein Feedback wäre nett:) Ohne hängt man irgendwie in der Luft und plagt sich mit Fragen wie: "War die Frage zu dumm, zu unverständlich oder schlicht zu simpel um darauf zu antworten?"

Weder noch: hab schlicht und ergreifend einfach keine Ahnung

So, nun ist ein Feedback vorhanden. Nicht böse sein, aber vielleicht meldet
sich ja noch jemand der Dir weiterhilft.

Schönen Tag, nairolf
 
Hier eine kleiner Zwischenbericht für Interessierte,

Nachdem ich mit der Hotline von Siemens bzgl. des Millisekundenproblems Kontakt aufgenommen habe gibt es folgendes zu konstatieren.

VBS
Timestamps sind abrufbar, aber nur mit einer Sekundengenauigkeit

C-Script
Keine Möglichkeit TimeStamps vom OPC zu bekommen(O-Ton ODK Hotline)

Lösung

Nach eingehenden Versuchen mit VB bin ich zu der Überzeugung gelangt, dass es doch möglich ist. Der Weg ist allerdings recht steinig. Ich habe mein kleines VB Programm zu einer ActiveX.dll umgeschrieben. Innerhalb dieser DLL verweise ich auf die opcdaauto.dll bzw sopcdaauto.dll. Durch diese gekapselten DLL's bin ich in der Lage mit dem OPC aus einen VBS Script zu kommunizieren. Dies funktioniert, da ich meine eigene DLL innerhalb von VBS via CreateObjekt referenzieren kann. Die opcdaauto.dll und die siemensche Entsprechung sind nämlich nicht referenzierbar. Erste Versuche ergeben eine funktionierende Kommunikation. Bisher habe ich es leider noch nicht geschafft einen Timestamp zu erhalten, was wahrscheinlich daran liegt, dass ich die Verbindung nach dem Ereignis OPCGROUP_Datachange wieder trenne. Mitunter geht das ein wenig zu schnell. Wie auch immer, sollte ich die endgültige Lösung haben lasse ich es Euch wissen.
 
Zurück
Oben