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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: Variablen aus TXT Datei zyklisch beschreiben

  1. #11
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.635
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn ich es richtig verstanden habe:
    Aufgabe: 9 analoge Messdaten mit 100 ms Zyklus ablesen und in ein CSV Datei speichern. Die Messdaten sollen in Spalten in der CSV aufgeteilt sein.

    Problem ist die 100 ms Zykluszeit.
    Das bekommst du nicht genau wenn du versuchst et völlig mit ein VBS Skripts zu lösen.
    Dazu gibt es mehrere weitere VBS Probleme, z.B. das von Volker genannte Problem.

    Lösungsvorschlag:
    Ein Zeitgetriggerte Interrupt in der SPS einrichten (OB35).
    Dann in der SPS mittels OB35, die Analogwerte einlesen und in ein (oder mehrere) DBs abspeichern.
    Wenn ein Satz Messdaten fertig eingelsen ist, über ein VBS Skript in der HMI die Messdaten in ein CSV Datei abspeichern.
    Einfach.

    edit: Einzigste Problem wäre wenn dies nicht in ein bestimmten Zeit fertig sein muss, mit ein bestimmte anzahl Messdaten.
    Wenn es prinzipiell "ständig" passieren muss, dann wird es problematisch weil das Speicher im SPS begrenzt ist.
    In den Fall brauchst du vielleicht ein echten datenerfassung/logging system.
    Geändert von JesperMP (17.05.2016 um 12:48 Uhr)
    Jesper M. Pedersen

  2. #12
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Wenn ich es richtig verstanden habe:
    Aufgabe: 9 analoge Messdaten mit 100 ms Zyklus ablesen und in ein CSV Datei speichern. Die Messdaten sollen in Spalten in der CSV aufgeteilt sein.
    Andersrum. er will die variablen mit den Daten aus der Textdatei füttern.

    @saumann
    die do..Loop auf jeden fall mal weglassen und, wie jespermp schon schrieb, das Skript über die Steuerung anstossen.

    100ms halte ich aber für zu schnell.
    selbst wenn du für deine variablen eine aktualisierungszeit von 100ms einstellst heisst das nicht das alle gleichzeitig aktualisierrt werden.
    um die Daten sicher nach jedem einlesen in die Steuerung zu bekommen musst du das ohnehin über eine Rezeptur lösen (falls wir hier über eine siemens-visu sprechen)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #13
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.635
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Ah !

    Dies mit 100 ms Genauigkeit und VBS zu lösen ist unmöglich.
    Ich bin einig, der beste und einfachste Lösung ist über Rezepte.
    Jesper M. Pedersen

  4. #14
    saumann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.05.2016
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die Vorschläge,
    habe jetzt eine

    pause = 0.1
    zeit = Timer
    Do While Timer < zeit + pause
    Loop

    auf alle Variablen gleichzeitig angewendet und siehe da es klappt. Allerdings nur auf meinem Projektierungsrechner (64Bit) sobald ich das auf den Anlagenrechner (32Bit) transferiere klappt das mit den 100ms nicht mehr. Kann das am Rechner liegen?
    Werde das mit den Rezepten mal versuchen allerdings kann das schwierig werden da ein Txt File schon mal an die 60000 Zeilen haben kann.
    Gruß

  5. #15
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.635
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Obwohl es scheint zu funktionieren auf der 64 bit Rechner, bedauere ich ob es wirklich funktioniert Zyklusgenau ohne "jitter".
    Jesper M. Pedersen

  6. #16
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    pause = 0.1
    zeit = Timer
    Do While Timer < zeit + pause
    Loop
    Wie ich schon schrieb verzögerst du mit dem do..Loop um (in deinem fall) 1 sekunde.
    zeit = timer z.b. 21000 Sekunden (06:00:00 Uhr)
    deine schleife kann keine pause von 0.1 sekunde machen da der nächste wert vom timer 21001 (06:00:01 Uhr) ist.

    außerdem wirst du ein Problem haben, wenn du 23:59:59 (86399) erreichst. deine schleife würde verlassen werden bei 86399,1 -> also 86400.
    den wert erreicht der timer aber nicht da als nächster wert 0 im timer steht. 86399 -> 0

    ich hatte schon mal gefragt. warum überhaupt die verzögerungsschleife?

    und ich behaupte mal, das du nicht 60000 zeilen alle 100ms einlesen kannst. und das mit einem Rezept dauert auch einen Moment.
    wenn die Daten konsitent in deinem Programm benötigt werden musst du die rückmeldung vom Rezept abwarten.
    also Rezept schreibt Daten in db10
    Rezept meldet 4 (alles ok) zurück.
    sps kopiert db10 in deinen arbeits-db.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  7. #17
    saumann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.05.2016
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    ja ihr hattet alle Recht do..Loop ist Mist und nicht für sowas geeignet. Ich würde das jetzt gerne mit Rezepten ausprobieren allerdings hab ich damit noch nicht wirklich viel zu tun gehabt und bin mir nicht sicher wie ich da vorgehen soll. hat jemand einen kurzen Ansatz?
    Danke und Gruß

  8. #18
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.532
    Danke
    1.152
    Erhielt 1.253 Danke für 982 Beiträge

    Standard

    60000 Zeilen in 100ms wird auch mit Rezepturen nix werden.
    Auf welcher Hardware soll das Ganze laufen?
    Bei solchen Anforderungen ist ein PC-basierter Controller wohl die beste Wahl.

    Gruß
    Dieter

  9. #19
    saumann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.05.2016
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Dieter,

    414-2XG04
    V 4.0.4

    weißt Du zufällig wo man sich da preislich befindet? Auf den Siemens Seiten finde ich keine Preise.

    Gruß

  10. #20
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn er an eine CSV-Datei immer nur Daten anhängen muss, ist das natürlich Unfug jede Zeite unnötigerweise einzulesen. Dazu setzt man den Dateizeiger auf das Ende der Datei, und schreibt an diese Position. Dann ist es mehr oder weniger egal, ob die Datei 10 oder 100.000 Zeilen besitzt.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 26.03.2014, 15:55
  2. Antworten: 5
    Letzter Beitrag: 05.07.2013, 22:08
  3. .txt Datei auslesen
    Von sps_sr im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 28.08.2012, 12:51
  4. aus Flexibel heraus eine TXT Datei ändern
    Von rostiger Nagel im Forum HMI
    Antworten: 17
    Letzter Beitrag: 23.01.2011, 14:55
  5. Antworten: 1
    Letzter Beitrag: 19.05.2005, 14:02

Lesezeichen

Berechtigungen

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