SPSKILLER
Level-2
- Beiträge
- 742
- Reaktionspunkte
- 161
-> Hier kostenlos registrieren
Ich muss das erst noch etwas aufräumen.
Gegen Abend...
Gegen Abend...
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Sub ScreenSel(ByRef ScreenName)
ScreenName = LCase(Replace(ScreenName," ", ""))
If ScreenName = "motor1" _
Or ScreenName = "motor2" _
Then
ActivateScreen "Motor_1", 0
ElseIf ScreenName = "motor3" _
Or ScreenName = "motor4" _
Then
ActivateScreen "Motor_3", 0
Else
'...
End If
End Sub
Sub ScreenSel(ByRef ScreenName)
On Error Resume Next ' Activate error handling
HmiRuntime.BaseScreenName = ScreenName ' Change screen
If Err.Number > 0 Then ' Screen is missing?
'...
End If
On Error GoTo 0 ' Deactivate error handling
End Sub
Sub vbObjektdateiErstellen(ByVal Bildnummer, ByVal Bildname)
Dim f,fs, path, file
Dim obj
Dim dummy
Dim n
n = 0
If HmiRuntime.ActiveScreen.ObjectName <> "Overview" Then
ActivateScreenByNumber n,0
ShowSystemAlarm "Keine Datei angelegt, weil der Focus nicht im Permanentbereich war."
Exit Sub
End If
Set f= CreateObject("filectl.file")
Set fs = CreateObject("filectl.filesystem")
path = "flash\CSV"
file = Bildname & ".csv"
file = path + file
ShowSystemAlarm "Datei angelegt: " & file
Set file = file.LinePrint(file, True)
file.LinePrint "Bildnummer"
file.LinePrint "Bildname"
ActivateScreenByNumber Bildnummer,0
dummy = HmiRuntime.ActiveScreen.ObjectName 'irgendeinen Scheiss ansprechen
If HmiRuntime.Screens(Bildname).ScreenItems.Count > 0 Then
For Each obj In HmiRuntime.Screens(Bildname).ScreenItems
file.LinePrint obj.ObjectName
'ShowSystemAlarm "Untersuchtes Objekt: " & obj.ObjectName
Next
End If
file.Close
ActivatePreviousScreen
Set fs = Nothing
Set file = Nothing
Set obj = Nothing
End Sub
Dim fso, path, file
Dim obj
Dim dummy
Dim n
n = 0
If HmiRuntime.ActiveScreen.ObjectName <> "Overview" Then
ActivateScreenByNumber n,1
ShowSystemAlarm "Keine Datei angelegt, weil der Focus nicht im Permanentbereich war."
Exit Sub
End If
Set fso = CreateObject("filectl.filesystem")
path = "flash\CSV\"
file = Bildname & ".csv"
If fso.dir(path) <> "" Then fso.kill(path)
fso.mkdir(path)
file = path + file
ShowSystemAlarm "Datei angelegt: " & file
Set fso = CreateObject("filectl.file")
fso.open file,2
fso.lineprint Bildnummer
fso.lineprint Bildname
ActivateScreenByNumber Bildnummer,0
dummy = HmiRuntime.ActiveScreen.ObjectName 'irgendeinen Scheiss ansprechen
If HmiRuntime.Screens(Bildname).ScreenItems.Count > 0 Then
For Each obj In HmiRuntime.Screens(Bildname).ScreenItems
fso.lineprint obj.ObjectName
'ShowSystemAlarm "Untersuchtes Objekt: " & obj.ObjectName
Next
End If
fso.Close
ActivatePreviousScreen
Set fso = Nothing
'Set file = Nothing
Set obj = Nothing
path = "\FLASH\CSV\"
file = Bildname & ".csv"
allfiles = path & "*.*"
If fso.dir(allfiles) <> "" Then fso.kill(allfiles)
fso.mkdir(path)
file = path & file
Dim fso,fs, path, file,allfiles
Dim obj
Dim dummy
Dim n
n = 0
If HmiRuntime.ActiveScreen.ObjectName <> "Overview" Then
ActivateScreenByNumber n,1
ShowSystemAlarm "Keine Datei angelegt, weil der Focus nicht im Permanentbereich war."
Exit Sub
End If
Set fso = CreateObject("filectl.filesystem")
path = "\FLASH\CSV\"
file = Bildname & ".csv"
allfiles = path & "*.*"
If fso.dir(allfiles) <> "" Then fso.kill(allfiles)
fso.mkdir("\FLASH\CSV\")
file = path & file
file = path + file
ShowSystemAlarm "Datei angelegt: " & file
Set fso = CreateObject("filectl.file")
fso. open file
fso.lineprint Bildnummer
fso.lineprint Bildname
ActivateScreenByNumber Bildnummer,0
dummy = HmiRuntime.ActiveScreen.ObjectName 'irgendeinen Scheiss ansprechen
If HmiRuntime.Screens(Bildname).ScreenItems.Count > 0 Then
For Each obj In HmiRuntime.Screens(Bildname).ScreenItems
fso.lineprint obj.ObjectName
'ShowSystemAlarm "Untersuchtes Objekt: " & obj.ObjectName
Next
End If
fso.Close
ActivatePreviousScreen
Set fso = Nothing
Set file = Nothing
Set obj = Nothing
End Sub
If fso.dir(path) = "" Then ' Path not available?
fso.mkdir(path) ' Create new directory
else
fso.kill(allfiles) ' Delete all files
end if
If fso.dir(path) = "" Then fso.mkdir(path) ' Path not available?
If fso.dir(allfiles) <> "" Then fso.kill(allfiles)
CONST FILE_MODE = 8 ' File mode: 1 = read, 2 = write, 8 = attend
...
fso.open file, FILE_MODE
So habe das ganze wieder getestet.
das erste Problem war fso.mkdir(path) dort hat er mir einen Fehler gebracht, das habe ich behoben indem ich statt path den Pfad angegeben habe \Flash\CSV\
allerdings erstellt er dir Ordner nur einmal. Wenn ich wieder auf den Button drücke meckert er das das Verzeichnis schon existiert, dann muss ich es erst händisch löschen.
Den zweiten Fehler bringt er mir bei fso.open file (Wrong number of Arguments or invalid proberty assignment "fso.open"
Code:Dim fso,fs, path, file,allfiles Dim obj Dim dummy Dim n n = 0 If HmiRuntime.ActiveScreen.ObjectName <> "Overview" Then ActivateScreenByNumber n,1 ShowSystemAlarm "Keine Datei angelegt, weil der Focus nicht im Permanentbereich war." Exit Sub End If Set fso = CreateObject("filectl.filesystem") path = "\FLASH\CSV\" file = Bildname & ".csv" allfiles = path & "*.*" If fso.dir(allfiles) <> "" Then fso.kill(allfiles) fso.mkdir("\FLASH\CSV\") file = path & file file = path + file ShowSystemAlarm "Datei angelegt: " & file Set fso = CreateObject("filectl.file") fso. open file fso.lineprint Bildnummer fso.lineprint Bildname ActivateScreenByNumber Bildnummer,0 dummy = HmiRuntime.ActiveScreen.ObjectName 'irgendeinen Scheiss ansprechen If HmiRuntime.Screens(Bildname).ScreenItems.Count > 0 Then For Each obj In HmiRuntime.Screens(Bildname).ScreenItems fso.lineprint obj.ObjectName 'ShowSystemAlarm "Untersuchtes Objekt: " & obj.ObjectName Next End If fso.Close ActivatePreviousScreen Set fso = Nothing Set file = Nothing Set obj = Nothing End Sub
Vom überflüssigen Leerzeichen nach dem Punkt verschluckt:Wo ist das ,2 aus meinem Script geblieben
Code:fso. open file
Sub vbObjektdateiErstellen(ByVal Bildnummer, ByVal Bildname)
Dim fso,fs, path, file,allfiles
Dim obj
Dim dummy
Dim n
Const file_mode = 8
n = 0
If HmiRuntime.ActiveScreen.ObjectName <> "Overview" Then
ActivateScreenByNumber n,1
ShowSystemAlarm "Keine Datei angelegt, weil der Focus nicht im Permanentbereich war."
Exit Sub
End If
Set fso = CreateObject("filectl.filesystem")
path = "\FLASH\CSV\"
file = Bildname & ".csv"
allfiles = path & "*.*"
If fso.dir(path) = "" Then ' Path not available?
fso.mkdir(path) ' Create new directory
End If
file = path + file
ShowSystemAlarm "Datei angelegt: " & file
Set fso = CreateObject("filectl.file")
fso.open file,file_mode
fso.lineprint Bildnummer
fso.lineprint Bildname
ActivateScreenByNumber Bildnummer,0
If HmiRuntime.Screens(Bildname).ScreenItems.Count > 0 Then
For Each obj In HmiRuntime.Screens(Bildname).ScreenItems
fso.lineprint obj.ObjectName
'ShowSystemAlarm "Untersuchtes Objekt: " & obj.ObjectName
Next
End If
fso.Close
ActivatePreviousScreen
Set fso = Nothing
Set file = Nothing
Set obj = Nothing
End Sub
IMHO besagt die Fehlermeldung, dass da ein Objekt auf Deinem Hauptbild keinen Namen besitzt, den man lesen und in die CSV schreiben könnte.Fehler ´screen item unnamed (item(3,91) of type ´HMIIOField´in screen ´14.0.Hauptbild
Fehler in Zeile 39 das wäre fso.lineprint obj.ObjectName
37If HmiRuntime.Screens(Bildname).ScreenItems.Count > 0 Then
38 For Each obj In HmiRuntime.Screens(Bildname).ScreenItems
39 fso.lineprint obj.ObjectName
40 'ShowSystemAlarm "Untersuchtes Objekt: " & obj.ObjectName
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen