Demo Zeitschaltuhr auf VTP BC72 - Druckversion +- VISAM Support Forum (https://www.visam.com/forum) +-- Forum: VBASE / VisAM HMI/SCADA (https://www.visam.com/forum/forumdisplay.php?fid=1) +--- Forum: VBASE Basic (VB) Programmierung (https://www.visam.com/forum/forumdisplay.php?fid=29) +--- Thema: Demo Zeitschaltuhr auf VTP BC72 (/showthread.php?tid=604) |
Demo Zeitschaltuhr auf VTP BC72 - P.Schiffner - 21.02.2020 Hallo Zusammen, ich habe versucht, das Demoprojekt Zeitschaltuhr auf einem VTP BC72 laufen zu lassen, aber es erfolgt eine Fehlermeldung des Scripts, siehe Anhang. Das OS scheint da etwas nicht zu unterstützen: Dim nyear As Integer = System.DateTime.Now.ToString("yyyy") Dim nmonth As Integer = System.DateTime.Now.ToString("MM") Dim nday As Integer = System.DateTime.Now.ToString("dd") Dim nWeek As Integer = DatePart(DateInterval.WeekOfYear, New Date(nyear, nmonth, nday),FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays) '------------------------------------------------------------------------------------ WoTag = WeekDay(Date) Dim TaNam As String = WeekDayName(WoTag-1) wie kann das mit dem VTP realisiert werden? viele Grüße Peter Schiffner RE: Demo Zeitschaltuhr auf VTP BC72 - R.Best - 21.02.2020 Hallo Herr Schiffner, das Beispielprojekt hat schon einige Jahre auf dem Buckel und war zum Erstellungszeitpunkt nicht für CE ausgelegt. Mit den folgenden Anpassungen sollte es auch auf Ihrem VTP laufen : Code: Dim sYear As String = System.DateTime.Now.ToString("yyyy") CE mag es scheinbar nicht, wenn in der Deklaration direkt auch in einen anderen Datentyp gecastet wird, daher muss man dies leider einzeln ausführen. Für die Abfrage der Kalenderwoche benutzen wir eine interne VBASE Funktion, da dies um Längen einfacher ist, als die umständliche Art mit Datepart. Der Wochentag-Name kann aber einfacher mit der DateTime Funktion "dddd" im ASCII Feld eingetragen werden. Mit freundlichen Grüßen Roman Best RE: Demo Zeitschaltuhr auf VTP BC72 - P.Schiffner - 21.02.2020 Hallo Herr Best, es funktioniert noch nicht, ich bekommen nach wie vor eine Fehlermeldung, siehe Anhang. Dim sYear As String = System.DateTime.Now.ToString("yyyy") Dim nyear As Integer nyear = CInt(sYear) Dim sMonth As String = System.DateTime.Now.ToString("MM") Dim nMonth As Integer nMonth = CInt(sMonth) Dim sDay As String = System.DateTime.Now.ToString("dd") Dim nday As Integer nday = CInt(sDay) Dim nWeek As Integer nWeek = VDF.ReadInt(999,998) 'interne VBASE Funktion um die Kalenderwoche auszulesen '------------------------------------------------------------------------------------ Dim sWoTag As String = System.DateTime.Now.ToString("dddd") Dim WoTag As Integer WoTag = CInt(sWoTag) Dim TaNam As String = System.DateTime.Now.ToString("dddd") VDF.WriteAscii 3,7,"KW" & nWeek & " - " & TaNam & Space(13) VDF.WriteInt 3,5,WoTag Stund = VDF.ReadBitB(0,1,0,8) Minut = VDF.ReadBitB(0,1,8,8) AktTi = (Stund*60)+Minut VDF.WriteInt 3,6,AktTi mit freundlichen Grüßen Peter Schiffner RE: Demo Zeitschaltuhr auf VTP BC72 - R.Best - 21.02.2020 Hallo Herr Schiffner, im vorangegangenen Code Beispiel war noch eine fehlerhafte Wochentagkonvertierung vorhanden. Bei der Korrektur selbiger bin ich noch auf eine viel einfacher Methode gestoßen. Code: Dim nWeek As Integer Mit freundlichen Grüßen Roman Best RE: Demo Zeitschaltuhr auf VTP BC72 - P.Schiffner - 22.02.2020 Hallo Herr Best, danke, jetzt läuft' s. Mit freundlichen Grüßen Peter Schiffner |