Page 1 of 1

Erstellen einer Textdatei über ein Skript

Posted: Fri 21. Jun 2013, 14:46
by AndreasZ
Hallo,

ist es möglich über ein Skript eine Textdatei zu erstellen und einen Inhalt einzufügen bzw zu bearbeiten?

Im Grunde möchte ich für jeden Prüfvorgang eine Datei mit einer Seriennummer erstellen und diese bearbeiten.

Leider komme ich über die Dokumentation nicht weiter.

MfG

Andi

Re: Erstellen einer Textdatei über ein Skript

Posted: Fri 21. Jun 2013, 21:13
by PEAK-Support
Hier mal ein kleines Bsp. wie man es machen könnte:

Code: Select all

'------------------------------------------------
' FILE DESCRIPTION: Macros for CAN logging
' (c) 2013 PEAK-System Technik GmbH 
' very simple logger Demo for Signal values in customer Text format
'------------------------------------------------

Sub RunForever()

' Benötige Variablen erzeugen

Dim sig1
Dim sig2
Dim speed
Dim position
Dim old_speed
Dim old_position
Dim logtext

' Die Datenreferenzen holen
Set sig1 = Signals("SpeedVar")
Set sig2 = Signals("PositionVar")

Dim fso, tf

' Datei erzeugen !!ACHTUNG die vorhandene wird gelöscht !!
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile("c:\Trace\CAN-LOG.txt", true)
' Zeile mit Zeilenumbruchzeichen schreiben.
tf.WriteLine("Logfile for CAN")
' Drei Zeilenumbruchzeichen in die Datei schreiben.
tf.WriteBlankLines(1)
tf.Close

position = sig2.Value
speed = sig1.Value
old_speed = speed
old_tion = position

' solange bis Macro gestoppt wird !!
do

 ' Value changed ?
 if position <> old_position Then
	' Grenzen abfragen 
	if position>5000 Then
		PrintToOutputWindow("Position out of range !")
		PrintToOutputWindow(position)
		PrintToOutputWindow(" ")
		'Logdatei schreiben
		logtext = "Position:" & position
		WriteLogEntry(logtext)  
		old_position = position
	end if
 end if	

  ' Value changed ?
 if speed <> old_speed Then 
	' Grenzen abfragen 
	if speed > 3000 Then
		PrintToOutputWindow("Speedout of range !")
		PrintToOutputWindow(speed)
		PrintToOutputWindow(" ")
		'Logdatei schreiben
		logtext = "Speed:" & speed
		WriteLogEntry(logtext)  
		old_speed = speed
	end if
 end if	

 ' aktuelle Werte holen
 position = sig2.Value
 speed = sig1.Value

 
 Wait(10) ' Time for other tasks on the system


Loop While 1=1


End Sub


Sub WriteLogEntry(text)
   Dim fso, tf

   Dim HourString
   Dim MinuteString
   Dim SecondString
   Dim datetext
 
   HourString =  Hour(Now)
   MinuteString = Minute(Now)
   SecondString = Second(Now)
   datetext = HourString & ":" & MinuteString & ":" & SecondString & "  " & text
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set tf = fso.OpenTextFile("c:\Trace\CAN-LOG.txt", 8, false)
   ' Zeile mit Zeilenumbruchzeichen schreiben.
   tf.WriteLine(datetext)
   tf.Close
End Sub
und hier die SYM Datei

Code: Select all

FormatVersion=3.1 // Do not edit!
MuxChar=*
DecimalSeparator=.
UniqueVariables=True

{SENDRECEIVE}

[PositionID]
ID=1D5h
Picture=aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa 
a=PositionVar	unsigned  /u:mm	// Variable in Intel format

[SpeedID]
ID=2D5h
Picture=aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa 
a=SpeedVar	unsigned  /u:mm/sec.	// Intel Format 


Re: Erstellen einer Textdatei über ein Skript

Posted: Tue 25. Jun 2013, 14:23
by AndreasZ
Vielen Dank. Bin nun ein gutes Stück weiter.