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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Delay Funktion in µs

  1. #1
    Registriert seit
    08.09.2011
    Beiträge
    38
    Danke
    14
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Alles
    Ich möchte eine Funktion zur Zeitverzögerung mit µs erstellen, diese Funktion kann als ein Zeitintervall in While-Struktur zwischen zwei Schleifen funktionieren, d.h. nächste While-Schleife kann erst XX µs nach Ende aktueller Schleife starten. Wie kann ich diese Funktion mit "ST" schreiben.

    Vielen Dank
    Zitieren Zitieren Delay Funktion in µs  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Was hast du denn für eine SPS?
    Ich glaube eine Zeitverzögerung in µs wird schon allein daran scheitern, dass die meisten Steuerungen Zykluszeiten im ms Bereich haben.

    Und While Schleifen sind in der SPS-Programmierung allgmein eine sehr ungünstige Lösung. So wie ich dein Anliegen deute versuchst du eine SPS wie einen PC zu programmieren ?

    In der Regel werden für Zeitverzögerungen Funktionen wie Ein-/Ausschaltverzögerungstimer oder Impulstimer verwendet, aber wie gesagt alles in ms.

  3. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    ysh032 (13.09.2011)

  4. #3
    ysh032 ist offline Benutzer
    Themenstarter
    Registriert seit
    08.09.2011
    Beiträge
    38
    Danke
    14
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Vielen Dank für Ihre schnelle Antwort
    Ich habe momentar einen Laptop, darauf wird ein SPS-Programm installiert, mit dem einige Daten in CSV-Format auf Computer gespeichert werden können. In dem Programm werden Funktionsblöcke "fbFileOpen, fbFilePuts und fbFileClose" geruft, um die Pfad der Datei zu geben. Nach Anrufen dieser Funktionsblöcke
    muss Programm warten bis zu die boolsche Variable "fbFileOpen.bBusy, fbFilePuts.bBusy sowie fbFileClose.bBusy" nicht "TRUE" sind. Ich möchte While-Schleife benutzen, um diese Warten-Funktion zu realisieren:
    WHILE fbFileClose.bBusy DO
    XXXXXXX
    END_WHILE
    Der Teil XXXX in Schleife muss die Verzögerung mit µs funktionieren, weil die Zykluszeit meines Programm 1ms ist.

    Haben Sie noch bessere Idee, soweise Warten-Funktion zu realisieren.

  5. #4
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Überspring doch den nächsten Teil des Programms und bearbeite es im nächsten Zylus.
    mfG Aventinus

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

    ysh032 (13.09.2011)

  7. #5
    ysh032 ist offline Benutzer
    Themenstarter
    Registriert seit
    08.09.2011
    Beiträge
    38
    Danke
    14
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Aber das Programm muss die Überprüfung und Bearbeitung in derselbem Zyklus durchgeführt werden, um die zu speichende Daten und übernommene Daten synchron sein zu können.

  8. #6
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Ok, ich persönlich halte ja gar nix davon, den Prozessor mit nichts zu beschäftigen. Kannst du andere Programmteile dazwischenschieben?

    Aber insgesamt ist mir das ganze zu PC-lastig, und da hab ich nicht so viel Ahnung, sorry.
    mfG Aventinus

  9. Folgender Benutzer sagt Danke zu Aventinus für den nützlichen Beitrag:

    ysh032 (13.09.2011)

  10. #7
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Selbst wenn da eine Soft SPS auf dem PC läuft, hat diese immer noch eine definierte Zykluszeit. Die SPS muss in einem Zyklus den gesamten Programcode abarbeiten können, sonst gibts Fehler.
    Wenn du jetzt in einer While-Schleife für einen unbestimmten Zeitraum das Programm blockierst, ist Ärger vorprogrammiert.

    Also besser mit jedem Zyklus abfragen ob die FBs noch Busy sind oder nicht. Das synchronisieren der Daten kann doch auch anders gelöst werden (z.B. in dem man keine neuen Daten speichert bis die Übertragung an den PC abgeschlossen ist, oder du nimmst 2 Dateien und speicherst in der 2ten während die 1te gesendet wird .... )

    Ohne genauer zu wissen was du vor hast kann dir da auch keiner wirklich weiter helfen.

  11. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    ysh032 (13.09.2011)

  12. #8
    ysh032 ist offline Benutzer
    Themenstarter
    Registriert seit
    08.09.2011
    Beiträge
    38
    Danke
    14
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Vielen Dank für Ihre wichtige Tipps!

    Momentar habe ich einen Buskoppler EK1100 mit XFC A/D-Klemmer EL3702, die an meinem Laptop über Netzkarte "Broadcom NetXtreme Gigabit Ethernet" angeschlossen. Jetzt habe ich schon das Beispielprogramm von Beckhoff, mit dem die von EL3702 genommene Daten eines jeden Zyklus in einen Puffer im Programm geschoben damit übergeordnet werden. Jetzt möchte ich diese Beispielprogramm erweitern, um die in Puffer geordnete Daten in einer bestimmten CSV-Datei gespeichert werden zu können.

    An Anhang finden Sie dieses Beispielprogramm ,die zugehörende .tsm Datei
    und von mir selbst geschriebenes Test-programm, um CSV-datei zu schreiben
    Angehängte Dateien Angehängte Dateien

  13. #9
    Registriert seit
    10.08.2011
    Beiträge
    24
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Also ich stelle mir das echt schwierig vor - gerade da die meisten File Bausteine asynchron zum zyclus in einer speziellen Task abgearbeitet werden.

    Du fängst dir also möglicherweise einen Watchdog ein ... oder du legst keinen Wert auf die eingestellte Zykluszeit - kann ja auch sein.

    Hast du schon mal nachgefragt ob die Bausteine asynchron zu den Anwendertasken abgearbeitet werden?

    Gruß,
    Kollo.

  14. #10
    Registriert seit
    01.09.2010
    Beiträge
    35
    Danke
    6
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich realisiere eigentlich genau diese Aufgabenstellung in einem Projekt.
    Also die XFC-Klemme übermittelt ein Array mit Daten pro PLC-Cycle (z.B. 10 Werte bei 100µs Task oder 100 Werte alle ms-Task) Ich glaube es geht nicht parallel die Datenmenge in ein CSV File zu schreiben. Also in einer ms File Open/Write/Close geht bestimmt nicht. Ich speichre mir die Daten in einem grossen Array und schiebe dann das ganze Array auf einmal in die CSV (20000 Werte). War das ein Ansatz?

Ähnliche Themen

  1. funktion SPS
    Von SheepLord im Forum Stammtisch
    Antworten: 19
    Letzter Beitrag: 19.12.2010, 18:20
  2. 200ms delay beim CP 243-1 read mit libnodave
    Von Wollli im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 02.06.2009, 14:25
  3. Funktion
    Von Placidjam im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.05.2009, 15:26
  4. Delay in SCL?
    Von hobel im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 29.08.2006, 20:42
  5. Funktion
    Von isensa im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 26.07.2006, 18:07

Lesezeichen

Berechtigungen

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