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

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

Thema: Parallel laufende Programme - Timerproblem?

  1. #1
    Registriert seit
    02.05.2007
    Beiträge
    49
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo erstmal,
    habe mich jetzt eineige Zeit mit dem Forum beschäftigt und viele Sachen daraus gelernt. Danke schonmal dafür.

    Bin neu in dem Thema SIMATIC und muss mich von Grund auf darin einarbeiten. Bitte nachsichtig sein.

    Erstmal worum es geht:

    Ich habe hier Versuchsstände, in denen Geräte getestet werden sollen.

    Zwei Versuchsstände sollen durch eine CPU gesteuert werden. (aus Platzgründen). Für jeden Stand stehen eigene Ein- und Ausgabegruppen zur verfügung und somit jeweils andere Adressen.

    Auf beiden Ständen soll jeweils eines von vier Programmen gleichzeitig laufen können, d.h. z.B. auf Stand1 -> Prog1 und auf Stand2 -> Prog3

    Wie gesagt sollen die Programme gleichzeitig laufen können.
    Wollte diese Programme mit Instant-DBs aufrufen, um die unterschiedlichen Adressen zuordnen zu können.


    Nun zu meinem Problem:

    In den Programmen sollen Timer laufen die eine Wartezeit "erzeugen" bis die nächste Aktion ausgeführt werden soll.

    Wenn beide Programme glechzietig laufen und das eine durch einen Timer unterbrochen ist, so wird doch das andere auch nicht weiter bearbeitet?? Oder sehe ich das falsch?
    Sprich z.B.:
    - OB1 ruft FB1, DB1 auf, darin befindet sich ein Timer der 10s "warten" soll
    - solange der Timer läuft kann der OB1 nicht den FB1, DB2 aufrufen

    Die Programme (das Programm mit den Unterprogrammen) werden doch zyklisch sequeltiell abgearbeitet.
    Ist mein Vorhaben also gar nicht möglich?


    Ich bitte um Aufklärung.
    Zitieren Zitieren Parallel laufende Programme - Timerproblem?  

  2. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von ogstyle Beitrag anzeigen
    - OB1 ruft FB1, DB1 auf, darin befindet sich ein Timer der 10s "warten" soll
    - solange der Timer läuft kann der OB1 nicht den FB1, DB2 aufrufen
    Näm mich wunder wie du das "warten" programmierst. Mit einem rücksprung bist der Timer abgelaufen ist? Sehr gefährlich.

    Was du allerdings machen kannst wär mit dem Timer den Programmteil zu überspringen so wird das Zyklische Arbeiten nicht behindert.

    mfG René

  3. #3
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Du musst unterschiedliche Timer nutzen.

    Also, in deinem Baustein entweder die IEC SFB Timer nutzen oder die S5Timer von aussen parametrieren.
    Das geht bei FC bzw. FB´s.

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

  4. #4
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Hallo ogstyle,

    so wie ich das sehe , hast du die SPS noch nicht richtig verstanden.
    Das Programm wird immer zyklisch bearbeitet , und nicht wie z.B. eine NC sequenziell.
    Alle Programme werden nacheinander bearbeitet, aber z.B. bleibt die Schrittkette stehen bis die Zeit abläuft, das Programm läuft aber weiter.
    Wenn Du dann FB´s machen willst, die immer gleich sind, kann man z.B. auch die Zeiten von aussen dranschreiben als Parameter, so das immer verschieden Zeiten für die Programme benutzt werden.

  5. #5
    Registriert seit
    02.05.2007
    Beiträge
    49
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von jabba Beitrag anzeigen
    so wie ich das sehe , hast du die SPS noch nicht richtig verstanden.
    Das glaube ich allerding auch langsam.

    Zitat Zitat von jabba Beitrag anzeigen
    Alle Programme werden nacheinander bearbeitet, aber z.B. bleibt die Schrittkette stehen bis die Zeit abläuft, das Programm läuft aber weiter.
    Soll das heißen, dass der OB1 immer komplett durchlaufen wird, egal was in den aufgerufenen FBs und FCs passiert? Also ein Timer in einem FB würde nicht zur Unterbrechung des OB1-Ablaufs führen?

    Dann wäre das ja echt gut, weil sich mein Problem dann erledigt hätte.

  6. #6
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von ogstyle Beitrag anzeigen
    Das glaube ich allerding auch langsam.



    Soll das heißen, dass der OB1 immer komplett durchlaufen wird, egal was in den aufgerufenen FBs und FCs passiert? Also ein Timer in einem FB würde nicht zur Unterbrechung des OB1-Ablaufs führen?

    Dann wäre das ja echt gut, weil sich mein Problem dann erledigt hätte.
    Genau das heisst es!
    Jeder einzelne Befehl wird in ns - µs ausgeführt und nach dessen Bearbeitung eben der nächste. Es gibt keinen Befehl der ein Programm anhält- geht nur im Programm mit zB einer Schleife.

  7. #7
    Registriert seit
    02.05.2007
    Beiträge
    49
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke schonmal für die Aufklärung!

    Aber, wie genau funktioniert denn dann das mit den Timern?

    Wenn man z.B. eine Einschaltverzögerung programmiert - das Programm startet den Timer, das Prog läuft weiter (wo läuft es weiter? oder springt es aus der Schrittkette eine Programmebene zurück?) und weiß beim nächsten Durchlauf, dass der Timer schon eine besimmte Zeit läuft.

    Ist das so in etwa richtig?

  8. #8
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Nein nicht so, DU gehts immer noch von sequentieller Bearbeitung aus.

    Ich versuche es mal mit einfachen Worten zu beschreiben.

    Jede Zeile (Ausnahme unten) wird bei jedem Zyklus ausgeführt.
    Die Bedingung wird geprüft, und eventuell ein Merker oder Ausgang gesetzt.

    Du setzt jetzt die Zeit :
    Code:
          U     M      0.0
          L     S5T#5S
          SE    T      0
          NOP   0
          NOP   0
          NOP   0
          U     T      0
          =     M      0.1
    Mit dem Merker 0.0 wird die Zeit T0 gestartet, das Programm bearbeitet jetzt aber alle Zeile dahinter weiter.
    Unten steht U T1 =M0.1 , T1 läuft ja noch also wird M0.1 nicht gesetzt.
    Jetzt laufen (durch den OB1) die Zyklen halt z.B. alle 10ms durch.
    Irgendwann ist dann die Zeit T1 abgelaufen, und der Merker 0.1 wird gesetzt.
    FAZIT: Nur die Bedingung zum schalten des Merkers ist von der Zeit abhängig , nicht das Programm.
    *** Du kannst natürlich über Umwege den Programmcode von der Bearbeitung ausschliessen, oder den Programmcode für eine bestimmte Zeit überspringen.
    Oder: Den Aufruf der Bausteine abhängig machen.
    z.B.
    Code:
    U M1.0  // Programm 1
    SPB FC1  // Programmaublauf 1
    U M1.1 // Programm 2
    SPB FC2 // Programmablauf 2
    Hier würde abhängig vom Merker das jeweilige Programm ausgeführt.

    Ich hoffe ein wenig zur Verwirrung beigetragen zu haben

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

    ogstyle (27.06.2007)

  10. #9
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Schau dir mal die Ausbildungsunterlagen an.

    http://www.automation.siemens.com/fe...own_module.htm

  11. #10
    Registriert seit
    02.05.2007
    Beiträge
    49
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Unterlagen kenne ich.
    Da ist ja auch schön erklärt, wie man Programme srukturieren kann.
    Aber ich hatte ein Verständnisproblem im Bezug auf einen Timeraufruf und wie dieser dann arbeitet.

    Hat sich ja jetzt geklärt.
    Danke nochmal.

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 17.02.2011, 10:04
  2. Antworten: 12
    Letzter Beitrag: 15.05.2010, 13:03
  3. Timerproblem
    Von Tobias2k9 im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 14.01.2009, 13:29
  4. Timerproblem!
    Von Merker0.0 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.08.2006, 22:48
  5. Timerproblem im FB
    Von samson im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.09.2005, 13:20

Lesezeichen

Berechtigungen

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