ismailocak
Level-2
- Beiträge
- 12
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe ein Skript mit folgende Funktion. Es soll in einem Ordnerpfad eine CSV-Datei erstellt werden (Funktion wird ausgeführt). Die Dateiname (Bauteil_ID) wird im Skript geschrieben (es wird dafür ein String von einer DB ausgelesen. Funktion wird ausgeführt). Überschriftzeilen in der Datei werden erstellt. Die Tabelle wird beim ausführen des Skripts befüllt. Alle Variablenwerte in REAL und BYTE werden in die Tabelle zugeordnet. Die Variablen in CHAR und String werden nicht in die Tabelle eingetragen. Sogar eintragen des Zeitstempel's funktioniert. Warum werden die String und Char nicht in die Tabelle eingetragen? Bin für jede Hilfe dankbar.
Mein Skript:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Ab hier gehört nicht mehr zum Skript. Haber nur raus kopiert um meine Fehler zu darstellen.
BAUTEIL_ID = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].BAUTEIL_ID").Value (ist mein String die nicht in die CSV-Datei geschrieben wird)
For j = 0 To 39
TEST_STEP_NAME = TEST_STEP_NAME & SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i &"].DATA.TEST_STEP_NAME[& j &]").Value
Next
UNIT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[0]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[1]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[2]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[3]").Value
UNIT_CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[0]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[1]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[2]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[3]").Value
(das sind die Char-Variablen die nicht in die Tabelle eingetragen werden)
mein DB:
mein csv-datei:
ich habe ein Skript mit folgende Funktion. Es soll in einem Ordnerpfad eine CSV-Datei erstellt werden (Funktion wird ausgeführt). Die Dateiname (Bauteil_ID) wird im Skript geschrieben (es wird dafür ein String von einer DB ausgelesen. Funktion wird ausgeführt). Überschriftzeilen in der Datei werden erstellt. Die Tabelle wird beim ausführen des Skripts befüllt. Alle Variablenwerte in REAL und BYTE werden in die Tabelle zugeordnet. Die Variablen in CHAR und String werden nicht in die Tabelle eingetragen. Sogar eintragen des Zeitstempel's funktioniert. Warum werden die String und Char nicht in die Tabelle eingetragen? Bin für jede Hilfe dankbar.
Mein Skript:
Code:
Sub MEAS_DATA_CSV_EXPORT_1(ByVal Folder_Path)
Dim Object_Way, Object_Write, i, File_name, j
HMIRuntime.Trace("Messdaten abspeichern gestartet" & vbCrLf)
''''''''''''Ordner erstellen''''''''''''
Set Object_Way = CreateObject("Scripting.FileSystemObject" )'Zugriff auf PC Ordnersystem
If Not Object_Way.FolderExists(Folder_Path) Then 'Erstellt Ordner in Zielpfad
Object_Way.CreateFolder Folder_Path
HMIRuntime.Trace("Ordner erstellt" & vbCrLf)
End If
''''''''''''Datei erstellen'''''''''''''
File_name = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].BT_ID").Value & ".csv"
If Not Object_Way.FileExists(Folder_Path & "\" & File_name) Then
Object_Way.CreateTextFile(Folder_Path & "\" & File_name)'Erstelle Datei in Zielpfad; Dateiendung ist in File_Name enthalten
HMIRuntime.Trace("Datei erstellt" & vbCrLf)
End If
''''''''''''Typen eintragen''''''''''''
Set Object_Write = Object_Way.OpenTextFile(Folder_Path & "\" & File_name,8) '8 bedeutet an der letzten Stelle schreiben
' Überschriftszeile
Object_Write.WriteLine("TEST_STEP_NUMBER ; TEST_METHOD_NUMBER ; TEST_STATUS ; RESULT ; ERROR_CODE ; TEST_TIME ; SET_POINT ; ACTUAL_VALUE ; MAX_LIMIT ; MIN_LIMIT ; UNIT ; CONDITION ; ACT_CONDITION ; MAX_CONDITION ; MIN_CONDITION ; UNIT_CONDITION ; TEST_STEP_NAME; TIMESTAMP ; BAUTEIL_ID" )
Object_Write.Write(vbCrLf)
Dim TEST_STEP_NUMBER , TEST_METHOD_NUMBER , TEST_STATUS , RESULT , ERROR_CODE , TEST_TIME , SET_POINT , ACTUAL_VALUE , MAX_LIMIT , MIN_LIMIT , UNIT , CONDITION , ACT_CONDITION , MAX_CONDITION , MIN_CONDITION , UNIT_CONDITION , TEST_STEP_NAME, TIMESTAMP, BAUTEIL_ID
' Schleife für alle Messreihen eines Moduls
For i = 0 To 39
TEST_STEP_NUMBER = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.TEST_STEP_NUMBER").Value
TEST_METHOD_NUMBER = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.TEST_METHOD_NUMBER").Value
TEST_STATUS = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.TEST_STATUS").Value
RESULT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.RESULT").Value
ERROR_CODE = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.ERROR_CODE").Value
TEST_TIME = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.TEST_TIME").Value
SET_POINT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.SET_POINT").Value
ACTUAL_VALUE = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.ACTUAL_VALUE").Value
MAX_LIMIT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.MAX_LIMIT").Value
MIN_LIMIT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.MIN_LIMIT").Value
UNIT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[0]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[1]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[2]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[3]").Value
CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.CONDITION").Value
ACT_CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.ACT_CONDITION").Value
MAX_CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.MAX_CONDITION").Value
MIN_CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.MIN_CONDITION").Value
UNIT_CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[0]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[1]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[2]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[3]").Value
TIMESTAMP = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].TIMESTAMP").Value
BAUTEIL_ID = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].BAUTEIL_ID").Value
For j = 0 To 39
TEST_STEP_NAME = TEST_STEP_NAME & SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i &"].DATA.TEST_STEP_NAME[& j &]").Value
Next
' Werte für Messreihe schreiben
Object_Write.WriteLine(TEST_STEP_NUMBER & ";" & TEST_METHOD_NUMBER & ";" & TEST_STATUS & ";" & RESULT & ";" & ERROR_CODE & ";" & TEST_TIME & ";" & SET_POINT & ";" & ACTUAL_VALUE & ";" & MAX_LIMIT & ";" & MIN_LIMIT & ";" & UNIT & ";" & CONDITION & ";" & ACT_CONDITION & ";" & MAX_CONDITION & ";" & MIN_CONDITION & ";" & UNIT_CONDITION & ";" & TEST_STEP_NAME & ";" & TIMESTAMP & ";" & BAUTEIL_ID)
HMIRuntime.Trace("Messreihe " & i & " geschrieben" & vbCrLf)
Object_Write.Write(vbCrLf)
Next
''''''''''''Vorgang beendet''''''''''''
Object_Write.Close
Set Object_Way = Nothing
Set Object_Write = Nothing
HMIRuntime.Trace("Daten abspeichern beendet" & vbCrLf)
End Sub
Ab hier gehört nicht mehr zum Skript. Haber nur raus kopiert um meine Fehler zu darstellen.
BAUTEIL_ID = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].BAUTEIL_ID").Value (ist mein String die nicht in die CSV-Datei geschrieben wird)
For j = 0 To 39
TEST_STEP_NAME = TEST_STEP_NAME & SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i &"].DATA.TEST_STEP_NAME[& j &]").Value
Next
UNIT = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[0]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[1]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[2]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT[3]").Value
UNIT_CONDITION = SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[0]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[1]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[2]").Value &_
SmartTags("MEAS_DATA_DB.MEASURES.ARCHIVE[0].CELLROW["& i & "].DATA.UNIT_CONDITION[3]").Value
(das sind die Char-Variablen die nicht in die Tabelle eingetragen werden)
mein DB:
mein csv-datei:
Zuletzt bearbeitet: