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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Skript Schreibt nicht in den DB

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von umi Beitrag anzeigen
    Code:
    'Dateinamen erzeugen
    FName = Ablagepfad & Dateiname & "_" & Datum & "_" & Zeit & ".csv"
    Der Ablage Ordner ist vorhanden.
    Bist Du 100% sicher?
    Laß Dir Ablagepfad und FName im Skript ausgeben (ShowSystemAlarm und gerne auch in SmartTags schreiben) und vergleiche penibel genau.
    Wenn Du ein EA-Feld für den/die SmartTags mit Ablagepfad und FName machst, dann kannst Du den Pfad aus dem EA-Feld kopieren und in die Adresszeile eines Explorer-Fensters einfügen. Findet der Explorer den Pfad?

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #12
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Wie Harald es bemerkt hat, fso.getfile(..) wird nicht benötigt.
    Zitat Zitat von umi Beitrag anzeigen
    hallo die Fehler Meldung kommt bei
    Code:
    'File Objekt erzeugen
    Set f = fso.GetFile(FName)
    Es sollte kein Fehler kommen (obwohl fso.getfile nicht notwendig ist).
    Genau welche Fehler Code ?

    Ich wurde Haralds Beispiel als Vorlage nehmen, und sehr wichtig sind die Zeilen mit den ERR Objekt.
    Code:
    ' Ausgabedatei für Append öffnen und eine Zeile anhängenConst ForAppending = 8
    Dim fso, f, outfile
    
    On Error Resume Next 'Dateioperations-Fehler auffangen
    
    outfile = SmartTags("System\LogFilename") 'z.B. "C:\Logs\logfile.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(outfile, ForAppending, True) 'True: Erstellen, falls noch nicht vorhanden
    
    If Err.Number <> 0 Then
      ShowSystemAlarm "Fehler # " & Hex(Err.Number) & " beim Öffnen '" & outfile & "': " & Err.Description
      Exit Sub
    End If
    
    ' eine Zeile an die Datei anhängen
    f.WriteLine "Temperatur zu hoch: " & SmartTags("Sensorwert1") & "°C"
    f.Close
    
    ' Fehler beim Datei-Schreiben oder -Schließen?
    If Err.Number <> 0 Then
      ShowSystemAlarm "Fehler # " & Hex(Err.Number) & " beim Schreiben '" & outfile & "': " & Err.Description
      ' Exit Sub 
    
    End If
    Harald, warum Hex code ? Die Fehlernummer in Dezimal stimmen überein mit die Systemmeldungen wie sie in den Betriebsanleitung aufgelistet sind.
    Jesper M. Pedersen

  3. #13
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... ich hatte mich so ein bißchen an der Aussage "es hat schon funktioniert" orientiert - das war wohl falsch ...

    @TE:
    Du solltest deine Scripte "Step by Step" durchgehen. Am Besten auch das Beispiel von Harald anpassen - so ähnlich sieht das bei mir auch immer aus.
    Du dann die Alarm-Meldungen ausgeben - ggf. auch wenn es gar keinen Fehler gegeben hat - einfach um mal zu schauen, mit was du da so arbeitest ...

    Gruß
    Larry

  4. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Harald, warum Hex code ? Die Fehlernummer in Dezimal stimmen überein mit die Systemmeldungen wie sie in den Betriebsanleitung aufgelistet sind.
    Jesper, das weiß ich nicht mehr. Vielleicht gibt oder gab es negative Fehlernummern???
    Normal fange ich 99% der Fehlermöglichkeiten vorher ab, so daß ich mich nicht erinnern kann, daß es in einem produktiven System zu Runtime-errors gekommen wäre. Die Fehler-Ausgabe wird höchstens mal bei Programmtests, Kopieren in andere Projekte oder Inbetriebnahmen aktiv.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von umi Beitrag anzeigen
    Was mir aufgefallen ist das wenn ich im sage das er das Archiv erstellen soll`, er nicht den Dateinamen erzeugt.
    Nicht einfach zu verstehen was du meinst...
    Meinst Du Dein Skript "Archiv_erstellen"? Meinst Du vielleicht, daß die hier nicht gezeigte äußere Verwendung des Rückgabewertes der Function nichts bewirkt?
    Code:
    Archiv_erstellen Typ: Function
    'Erstellt eine neue Archivdatei und liefert den Pfadnamen zurück
    ...
    
    'Dateinamen erzeugen
    FName = Ablagepfad & Dateiname & "_" & Datum & "_" & Zeit & ".csv"
    ...
    
    'Pfad der erzeugten Datei zurückliefern
    Archiv_erstellen =FName
    Ich schätze, daß der Dateiname durchaus zusammengebastelt wird und der Skript-internen Variable FName zugewiesen wird, das Skript aber wegen einem Runtime-Error gar nicht bis zur letzten Zeile kommt, sondern schon vorher unsanft abgebrochen wird, weil keine "On Error"-Anweisung vorhanden ist.
    Ich würde FName schon im Skript einem SmartTag zuweisen (panelinterne Variable), zumindest zum testweisen Beobachten (falls das Skript "multiinstanzfähig" sein muß).

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Buskoppler schreibt/liest nicht von den Klemmen
    Von ssommera im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 03.02.2011, 17:45
  2. Antworten: 61
    Letzter Beitrag: 18.11.2008, 18:09
  3. daveReadBytes schreibt nicht in den Buffer (Excel VBA)
    Von Martin Glarner im Forum Hochsprachen - OPC
    Antworten: 20
    Letzter Beitrag: 02.12.2005, 10:21
  4. Antworten: 1
    Letzter Beitrag: 18.11.2005, 16:36

Lesezeichen

Berechtigungen

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