Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: SKript_Daten schreiben

  1. #1
    Registriert seit
    26.11.2011
    Beiträge
    139
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe den Skrit PC auf meine Rechner getestet, es funktioniert soweit super, und ich habe diesen Code für Panel angepasst
    und ich habe momentan leider kein Panel zur verfügung zum testen. Darum frage ich den Experten ob der Code richtig angepasst?


    [CODE------------------Panel------------------------------------
    Dim f,fs,Datei,Datum,strHeader,strDatenzeile
    On Error Resume Next
    Set f=CreateObject("filectl.file")
    Set fs=CreateObject("filectl.filesystem")
    '---------Verzeichnis erstellen--------------------
    If fs.dir("Storage Card MMC\Ordner")="" Then fs.mkdir("Storage Card MMC\Ordner")
    '---------Daten auf MMC schreiben----------
    Datei = "\Storage Card MMC\Ordner\werte.csv"
    Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
    strHeader="Datum;"&"Uhrzeit;"&"Wert_B1[°C];"&"wert_B2[°C]
    strDatenzeile=CStr(Date)& ";" &CStr(Time)&";"& SmartTags("DB_Mess.wert_B1")&";"& SmartTags("DB_Mess.wert_B2")
    If SmartTags ("Var_Script_Start")= True Then
    If fs.dir("Datei")="" Then

    f.open Datei,2
    f.LinePrint "Prozesswerte"
    f.LinePrint strHeader
    f.LinePrint strDatenzeile

    Else

    f.open Datei,8
    f.LinePrint strDatenzeile

    End If

    End If
    ------------------------------------------------------------
    ---------------------PC-------------------------------------
    Dim f,fs,fso,Datei,Datum,strHeader,strDatenzeile,textfile1
    On Error Resume Next
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fs = CreateObject("WScript.Shell")
    '---------Verzeichnis erstellen--------------------
    If Not fso.FolderExists("C:\Ordner") Then fso.CreateFolder("C:\Ordner")
    '---------Daten im MMC schreiben----------
    Datei = "C:\Ordner\werte.csv"
    Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
    strHeader="Datum;"&"Uhrzeit;"&"Wert_B1[°C];"&"wert_B2[°C]
    strDatenzeile=CStr(Date)& ";" &CStr(Time)&";"& SmartTags("DB_Mess.wert_B1")&";"& SmartTags("DB_Mess.wert_B2")
    If SmartTags ("Var_SCript_Start")= True Then

    If Not fso.FileExists (Datei) Then
    Set textfile1 = fso.CreateTextFile(Datei, True)

    textfile1.WriteLine "Prozesswerte"
    textfile1.WriteLine strHeader
    textfile1.WriteLine strDatenzeile

    Else

    If fso.FileExists (Datei) Then
    Set textfile1 = fso.OpenTextFile(Datei,
    textfile1.WriteLine strDatenzeile
    End If

    End If

    End If ][/CODE]
    Zitieren Zitieren SKript_Daten schreiben  

  2. #2
    ka1978 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.11.2011
    Beiträge
    139
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    Also ich habe heute den Code am Panel getestet, leider es hat nicht geklappt. es wird nur eine Zeile geschrieben.
    was ist im obigen Code (Panel) falsch geschrieben?

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ist das hier Dein Skript? (das hat zwar Fehler, die passen aber eigentlich nicht zu Deiner ungenauen Fehlerbeschreibung)
    Code:
    '------------------Panel------------------------------------
    Dim f,fs,Datei,Datum,strHeader,strDatenzeile
    On Error Resume Next
    Set f=CreateObject("filectl.file")
    Set fs=CreateObject("filectl.filesystem")
    '---------Verzeichnis erstellen--------------------
    If fs.dir("Storage Card MMC\Ordner")="" Then fs.mkdir("Storage Card MMC\Ordner")
    '---------Daten auf MMC schreiben----------
    Datei = "\Storage Card MMC\Ordner\werte.csv"
    Datum= "20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
    ' strHeader="Datum;"&"Uhrzeit;"&"Wert_B1[°C];"&"wert_B2[°C]  <-- hier fehlt ein "
    strHeader="Datum;Uhrzeit;Wert_B1[°C];wert_B2[°C]" ' <-- so ist besser
    strDatenzeile=CStr(Date)& ";" &CStr(Time)&";"& SmartTags("DB_Mess.wert_B1")&";"& SmartTags("DB_Mess.wert_B2")
    If SmartTags ("Var_Script_Start")= True  Then
    ' If  fs.dir("Datei")="" Then  <-- hier muß Datei ohne ""
      If  fs.dir(Datei)="" Then  ' <-- so ist besser
        
        f.open Datei,2
        f.LinePrint "Prozesswerte"
        f.LinePrint strHeader
        f.LinePrint strDatenzeile
       
      Else 
        
        f.open Datei,8 
        f.LinePrint strDatenzeile
         
      End If
     
    End If
    PS: gibt es auf Deinem Panel eine Datei, die "Datei" heißt?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    ka1978 (10.02.2014)

  5. #4
    Registriert seit
    25.02.2010
    Beiträge
    618
    Danke
    35
    Erhielt 121 Danke für 110 Beiträge

    Standard

    Wo ist dein Datei Close?
    Holger

  6. Folgender Benutzer sagt Danke zu holgermaik für den nützlichen Beitrag:

    ka1978 (10.02.2014)

  7. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ich glaube das Close wird sowieso überbewertet seine PC-Version hat auch kein Close aber "funktioniert soweit super".
    Scheinbar gibt es in dem VBS ein Auto-Close? (so wie die Objekte wieder freigegeben werden)

    Ich schätze, ein paar Fehler sind vielleicht durch ein gekürztes Abtippen für das Forum reingekommen. Die fehlenden " bei strHeader fehlen auch bei der "super funktionierenden" PC-Version. Die WinCCflex-Skriptprüfung meckert das aber immer als Fehler an. Wenn das Skript im Projekt verwendet wird, dann läßt auch der Projekt-Generator diesen Fehler nicht durchgehen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #6
    ka1978 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.11.2011
    Beiträge
    139
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    es gibt auf meinem Panel keine Datei, die "Datei" heißt. Es wird erstellt, wenn erstellt, wenn der Skript ausgeruffen wird, oder liege ich falsch?

    ich werde die Fehler Korrigieren und versuchen, ob es klappen wird.

    Die Close , wo wird im Programm eingeführt werden.

  9. #7
    Registriert seit
    25.02.2010
    Beiträge
    618
    Danke
    35
    Erhielt 121 Danke für 110 Beiträge

    Standard

    öffnen
    schreiben
    schließen.

    Du schreibst es wird nur eine Zeile geschrieben. Welche? mit Open als Write oder mit Open als Append?
    Wenn dein Panel Fileexists unterstützt ist dies besser als if .dir(...)="" / If (objFSO.FileExists(File)) then
    Grüsse Holger

  10. #8
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.354
    Danke
    455
    Erhielt 694 Danke für 519 Beiträge

    Standard

    Zitat Zitat von ka1978 Beitrag anzeigen
    es gibt auf meinem Panel keine Datei, die "Datei" heißt. Es wird erstellt, wenn erstellt, wenn der Skript ausgeruffen wird, oder liege ich falsch?
    Du hast aber eine Variable names "Datei" deklariert in der du den Dateiname im String-Format zwischenspeicherst.
    Code:
    Dim f,fs,Datei,Datum,strHeader,strDatenzeile
    ...
    Datei = "\Storage Card MMC\Ordner\werte.csv"
    Sofern dein Code also richtig funktioniert sollte beim Skriptaufruf, sofern nicht schon vorhanden, die Datei "werte.csv" im Order "Ordner" erstellt werden.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  11. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von ka1978 Beitrag anzeigen
    es gibt auf meinem Panel keine Datei, die "Datei" heißt.
    Die Frage hatte ich gestellt, weil Du schriebst, Dein Skript würde nur 1 Zeile schreiben - das habe ich mal so interpretiert, daß Du die Datenzeile meinst, daß also nie der Header geschrieben wird. Dies wäre in dem vorliegenden Skript nur möglich, wenn die Abfrage If fs.dir("Datei")="" nicht erfüllt ist, d.h. wenn eine Datei mit dem Name "Datei" gefunden wird. Möglicherweise hast Du ja durch einen Fehler in einem anderen Skript diese Datei auf dem Panel erzeugt ... prüfe das mal.

    Zitat Zitat von ka1978 Beitrag anzeigen
    Die Close , wo wird im Programm eingeführt werden.
    Geht es bei Dir immer noch um das MP377 12" Touch?
    In Deinem Thread Skript Error hatten wir den Fehler mit dem "Datei" doch schon korrigiert und da waren auch die Close noch vorhanden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  12. #10
    ka1978 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    26.11.2011
    Beiträge
    139
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    es wird der Datenzeile und nur eine Messung, jede Minute wird die Neue Messung der Vorherige messung ersetz.
    ich habe vorher das Problem falsch interpretiert.
    Sorry für diese Missverständnis

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 01.08.2013, 11:04
  2. Web2Plc- Werte über Browser schreiben in Steuerung schreiben
    Von pantau86 im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 21.03.2012, 16:23
  3. Daten in DB schreiben
    Von zloyduh im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.01.2011, 11:20
  4. Zähler in DB schreiben
    Von Pockebrd im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 02.11.2010, 15:00
  5. Variable schreiben
    Von stricky im Forum CODESYS und IEC61131
    Antworten: 15
    Letzter Beitrag: 06.02.2009, 20:27

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •