TIA Comfort Panel - VB - Now()

hub

Level-1
Beiträge
251
Reaktionspunkte
17
Hallo,

ich möchte in VB das aktuelle Datum und Uhrzeit ermitteln.
Einzeln geht das mit Date() und Time() Funktionen.
Nur die Funktion Now() liefert nicht den aktuellen Wert.

Geht die Funktion Now() mit Comfort-Panel nicht?
Oder geht es nur in der Simulation (TIA V15) nicht?
Ich habe momentan kein Panel zum Testen zur Hand.
 
Geht bei uns mit TP700 comfort und KTP700 mobile sowohl in Natura als auch in der Sim.

Allerdings ohne Klammern, z.B.:
Code:
StartTime = Now


PS:
In dieser Hilfedatei: "Anleitungen VBScript" wird's auch ohne Klammer angegeben.
 
Zuletzt bearbeitet:
Code:
  [FONT=Calibri]Dim Datum, Uhr, Jetzt[/FONT]
  
  [FONT=Calibri]Datum = Date()[/FONT]
  [FONT=Calibri]Uhr   = Time()[/FONT]
  [FONT=Calibri]Jetzt = Now()[/FONT]
  
  [FONT=Calibri]SmartTags("HST_Datum") = Datum[/FONT]
  [FONT=Calibri]SmartTags("HST_Uhr")   = Uhr[/FONT]
  [FONT=Calibri]SmartTags("HST_Now")   = Jetzt[/FONT]
  [FONT=Calibri]SmartTags("HST_Now1")  = CStr(Jetzt)[/FONT]
  [FONT=Calibri]SmartTags("HST_Now2")  = Jetzt[/FONT]

Die internen Variablen sind als WString definiert.
Nur die Variable HST_Now2 ist als DateTime definiert.

Now001.PNG

Now geht bei mir mit und ohne Klammer nicht.

 
alles probiert
geht leider noch immer nicht
ich werde erst mal ein neues Projekt anlegen und nochmal testen
 
war ein Fehler bei der Längendefinition der internen Variable HST_Now
Danke an alle für die Hilfe und Ratschläge.
 
Im folgendem VB Skript habe ich das Problem das der "200_DB_Datenspeicherung_OwnFileName" nicht geschrieben wird. Das ganze funktioniert in anderen Anlage ohne Probleme und ich weiß nicht warum es jetzt nichtmehr geht.:

'Deklaration der lokalen Variablen
Dim YearStr
Dim MonthStr
Dim DayStr
Dim HourStr
Dim MinuteStr
Dim SecondStr
Dim FileNameStr

'Starten der Fehlerroutine
On Error Resume Next

'Datumsstrings erstellen
YearStr=CStr(Year(Now))

MonthStr=CStr(Month(Now))
If Len(MonthStr)=1 Then
MonthStr="0" & MonthStr
End If

DayStr=CStr(Day(Now))
If Len(DayStr)=1 Then
DayStr="0" & DayStr
End If

HourStr=CStr(Hour(Now))
If Len(HourStr)=1 Then
HourStr="0" & HourStr
End If

MinuteStr=CStr(Minute(Now))
If Len(MinuteStr)=1 Then
MinuteStr="0" & MinuteStr
End If

SecondStr=CStr(Second(Now))
If Len(SecondStr)=1 Then
SecondStr="0" & SecondStr
End If

'Dateiname ablegen
FileNameStr = YearStr & "." & MonthStr & "." & DayStr & "-" & _
HourStr & "." & MinuteStr & "." & SecondStr & "-" & SmartTags("210_DB_DATEN_SPEICHER_Versuchsname") & ".csv"
SmartTags("200_DB_Datenspeicherung_OwnFileName")=FileNameStr
 
Ich habe mir dein Skript jetzt nicht genau angeschaut aber zeigt dein Systemmeldefenster VB-Fehler an?

Was bedeutet "wird nicht geschrieben"? Kannst du den Fehler mal genauer erklären?
Wenn es an anderer Stelle funktioniert, ist die Erfassungsart der Variablen gleich? Hast du mal das Projekt komplett übersetzt und übertragen?
 
Nein es wird kein VB-Fehler angezeigt.
eigentlich Steht in der Variable dann etwas wie '2022.01.01-09.30.10-Versuchsname'
Habe das Skript sowie die Verknüpfungen überprüft und sehe keinen unterschied zu den Funktionierenden Projekten.
habe nur das HMI nochmal komplett übersetzt und neu geladen werde jetzt aber mal alles neu laden.
 
Nein es wird kein VB-Fehler angezeigt.
Ist denn in deinem Meldefenster überhaupt aktiviert, dass Systemmeldungen angezeigt werden?
sowie die Verknüpfungen überprüft
Was heißt "Verknüpfungen überprüft"? Die Einstellungen der angelegten Variable?
eigentlich Steht in der Variable dann etwas wie '2022.01.01-09.30.10-Versuchsname'
Und was steht jetzt drin?
 
Ist denn in deinem Meldefenster überhaupt aktiviert, dass Systemmeldungen angezeigt werden?
ja Systemmeldungen sind ausgewählt aber keine Diagnosis events.
Was heißt "Verknüpfungen überprüft"? Die Einstellungen der angelegten Variable?
Habe die zwei verknüpfungen die ich in der PLC verwende überprüft ob dies die richtigen sind.
Und was steht jetzt drin?
jetzt steht nichts drin also nur die ''
 
Im folgendem VB Skript habe ich das Problem das der "200_DB_Datenspeicherung_OwnFileName" nicht geschrieben wird.
Dein Skript ist so unnötig umständlich und auch leicht falsch, schau mal die FAQ: Datum und Uhrzeit für Dateinamen formatieren
Datum und Uhrzeit für Dateinamen formatieren

Oft benötigt man für Dateien das aktuelle Datum und Uhrzeit im Dateiname. Um sicherzustellen, daß keine für Dateinamen unzulässige Zeichen verwendet werden (z.B. '/' oder ':') und die Dateien später in einer Auflistung (z.B. im Windows Explorer) zeitrichtig sortiert aufgelistet werden, sollte man den String mit Datum und Uhrzeit unabhängig von den Regional Settings und die Zeit-Teile immer zweistellig (Jahr: vierstellig) formatieren.

Code:
'aus der Systemzeit einen String in der Form "YYYYMMDD_hhmmss" (z.B. "20991231_015959") erzeugen
Dim t, s

t = Now  'Systemzeit (Lokalzeit des HMI)
s = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
  & Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)



Für deinen Code: Lösche/deaktiviere das On Error Resume Next und schreibe das Skript mal so:
Code:
'Dateiname zusammenbasteln nach dem Format: "2099.12.31-01.59.59-versuchsname.csv"
Dim t, FileNameStr

t = Now
FileNameStr = Year(t) & "." & Right("0" & Month(t), 2) & "." & Right("0" & Day(t), 2) & "-" _
  & Right("0" & Hour(t), 2) & "." & Right("0" & Minute(t), 2) & "." & Right("0" & Second(t), 2) & "-" _
  & SmartTags("210_DB_DATEN_SPEICHER_Versuchsname") & ".csv"

'Debug-Ausgabe als Systemmeldung, später entfernen/deaktivieren
ShowSystemalarm "FileNameStr='" & FileNameStr & "'"

SmartTags("200_DB_Datenspeicherung_OwnFileName") = FileNameStr
 
Nicht nur überprüfen, dass dies die richtigen sind sondern vor allem auch die Einstellung prüfen.
Welche Erfassungsart ist eingestellt bei diesem Panel ( und welche bei dem anderen ).
Danke für den Tipp dadurch konnte ich meinen Fehler finden.
Die Erfassungsart einer Variable stand auf Zyklisch im Betrieb musste aber auf Zyklisch fortlaufend.

Für deinen Code: Lösche/deaktiviere das On Error Resume Next und schreibe das Skript mal so:
Danke für den Tipp, mein Skript läuft zwar jetzt aber für Verbesserungen bin ich immer offen.
 
Zurück
Oben