1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Flitzpiepe84

Beiträge von Flitzpiepe84

  • zeitlich gesteuertes Logging

    • Flitzpiepe84
    • 30. Juli 2013 um 17:42

    so ich habe mich jetzt für folgende Variante entschieden um es zum Funktionieren zu bewegen:

    [autoit]

    Local $sZuluft = 0, $sMitte = 0, $sHarz = 0, $sSollwert = 0, $sLogFile = 0, $sText = 0
    $sZuluft = GUICtrlRead($DisplayDB_1)
    $sMitte = GUICtrlRead($DisplayDB_2)
    $sHarz = GUICtrlRead($DisplayDB_4)
    $sSollwert = GUICtrlRead($DisplayDB_6)
    $sLogFile = @ScriptDir & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".csv"
    $sText = @YEAR & "-" & @MON & "-" & @MDAY & ";" & @hour & ":" & @min & ";" & $sZuluft & ";" & $sMitte & ";" & $sHarz & ";" & $sSollwert & @CRLF
    If (@min=00 or @min=10 or @min=20 or @min=30 or @min=40 or @min=50) and @sec = 00 Then
    FileWrite($sLogFile, $sText)
    sleep (1000)
    EndIf

    [/autoit]

    Funktioniert auch soweit, sauberes Logfile, lässt sich dann mit Excel zu einem Diagramm verarbeiten...

    Nur jetzt hab ich das Problem, dass ich nach einigen Stunden Programm-Laufzeit einen AutoIt-Fehler der .exe bekomme: Error: allocating memory. Gibt nur die Möglichkeit OK zu klicken und dann ist das Programm zu. Neustart ist möglich, aber Fehler erscheint wieder. Wenn ich mir den Taskmanager aufrufe, dann sehe ich, dass die erstellte .exe immer mehr Speicher belegt.

    Woran könnte das liegen? Werden vielleicht irgendwie Variablen (Arrays?, Strings?, was weiß ich nicht...) mit ihren Werten nicht zurückgesetzt.
    Ich würde ja das Script mal posten, wenn jemand mal drauf schauen will.
    Mir wäre da jedenfall ziemlich geholfen, ich hab von reiner Software-Programmierung nicht allzuviel Plan bisher. Meine Programmier-Kenntnisse beschränken sich mehr auf Siemens-Steuerungen ala S7 und Co

  • zeitlich gesteuertes Logging

    • Flitzpiepe84
    • 25. Juli 2013 um 19:01

    hach, da war man mal 2 Tage nicht anwesend und schon hat man soviele Vorschläge zum Ausprobieren... Ich werd das ganze mal austesten und dann Bescheid geben was ich verwendet habe.

    Jedenfalls super Hilfe hier... :thumbup:

  • zeitlich gesteuertes Logging

    • Flitzpiepe84
    • 23. Juli 2013 um 09:46
    Zitat von m-obi

    Würde jetzt ne Logo nicht als Steuerung bezeichen ^^. Eher Spielzeug.

    Sicherlich ist eine Logo keine richtige oder vollwertige Steuerung, aber für das was sie hier realisieren soll, ist es vollkommen ausreichend. Wir haben hier auch noch anderes wie Logo! :D

  • zeitlich gesteuertes Logging

    • Flitzpiepe84
    • 22. Juli 2013 um 20:57

    Hi und Hallo,

    ich bin neu hier und benötige etwas Hilfe bei einem Problem.

    Ich habe mich an AutoIT und der LogAitDave_UDF.au3 für ein Logo-Programm versucht. Die Kommunikation haut super hin und auch meine gewandelten Analog-Werte kommen auf dem PC an.
    Nun möchte ich das Programm in sofern abwandeln / erweitern, dass bestimmte Analog- und Status-Werte in zeitlichen Abständen (10 Minuten) in ein Logfile geschrieben werden. Ansatzweise hab ich das auch hinbekommen, aber irgendwie schreibt mir die Funktion dann eine Minute lang Zeile um Zeile ins File. Ich möchte aber nur eine Zeile und dann soll erst nach 10 Minuten wieder eingetragen werden

    Hier ein Auszug wie ich es versucht habe zu realisieren:

    [autoit]


    _include <File.au3>
    ....
    $Datum = "" & @YEAR & @MON & @MDAY & ".csv"
    $logeintrag = ";" & $DisplayDB_1 & ";" & $DisplayDB_2 & ";" & $DisplayDB_4 & ";" & $DisplayDB_6
    If @MIN=00 then
    _FileWriteLog(@ScriptDir & $Datum, $logeintrag)

    ElseIf @min=10 Then
    _FileWriteLog(@ScriptDir & $Datum, $logeintrag)

    ElseIf @min=20 Then
    _FileWriteLog(@ScriptDir & $Datum, $logeintrag)

    ElseIf @min=30 Then
    _FileWriteLog(@ScriptDir & $Datum, $logeintrag)

    ElseIf @min=40 Then
    _FileWriteLog(@ScriptDir & $Datum, $logeintrag)

    ElseIf @min=50 Then
    _FileWriteLog(@ScriptDir & $Datum, $logeintrag)

    EndIf

    [/autoit]

    Ich muss dazu sagen, das ganze ist Neuland hier für mich, auch wenn ich auf Arbeit mit der Programmierung von Steuerungen zu tun habe.

    Schon mal Danke im Vorraus für euere Vorschläge und Hilfen

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™