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

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

Thema: Synchronisationsaufgabe zweier ET200S in 2ms

  1. #1
    merless Gast

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Community,

    Ich bin neu hier im Forum und hoffe mal, dass mir hier vielleicht jemand bei folgendem Problem helfen kann:

    Ich suche nach einer Möglichkeit zwei Peripheriebaugruppen ET200S, genauer ET200S IM151-8 PN/DP CPU, miteinander zu synchronisieren. Beide haben die Aufgabe jeweils einen Geber auszulesen und den Werten entsprechend jeweils einen Aktor zu regeln. Beide Aktoren beeinflussen aber das selbe mechanische System. Auf beiden Prozessoren läuft im schnellsten OB (35) das gleiche Programm mit einer Zykluszeit von 2ms. Auf 1ms geht die CPU in den STOP - erstmal egal. Es gibt keine höherprioren Interrupts die den OB35 unterbrechen könnten.
    Nun sollen diese Prozessoren aber zur selben Zeit ihren jeweiligen Geber auslesen, müssen das Programm also parallel abarbeiten. Die ET200 kommunizieren nämlich auch untereinander und brauchen beide zur selben Zeit die AKTUELLEN Werte der jeweils anderen ET. Das maximale Alter der Daten sollte also im Bereich der Datenlaufzeit über Profinet liegen, genauer über einen PN/PN-Coupler.
    Die Kommunikation der beiden untereinander ist bereits realisiert und die Datenlaufzeit beträgt kleiner 1ms.
    Kurzgesagt ich brauche eine Möglichkeit entweder mit Triggern untereinander oder Triggern von extern, beide OB 35 bzw. beide ET200s und damit deren Programmabarbeitung gleichzeitig zu starten.

    Hat dazu jemand eine Idee? Für jede Anregung wäre ich dankbar. Bisher stellt es sich so dar, dass die beste Synchronisation mit +/- einem Zyklus machbar ist, was aber leider immernoch zu viel ist.

    Ich hoffe mal ich habe nicht total verloren Aber wenn jemand meint, es geht 100%ig nicht, dann auch mit Begründung eine Antwort hinterlassen Dankeschön schonmal.

    Gruß

    merless
    Zitieren Zitieren Gelöst: Synchronisationsaufgabe zweier ET200S in 2ms  

  2. "Ich geh mal davon aus das Die SPSen schon vor Ort sind."


  3. #2
    Registriert seit
    28.01.2009
    Ort
    Hamburg
    Beiträge
    199
    Danke
    52
    Erhielt 54 Danke für 34 Beiträge

    Standard

    Mit dem OB 35 wird Dir das nicht gelingen.

    Versuch es mit dem OB40 Interupt und der Baugruppe
    6ES7 131-4BD01-0AB0.Diese Baugruppe kann auf Impuls eines Einganges dann den ob 40 starten.Die Syschronsierung erfolgt von extern mittelsTaktgenerator z.B 500 HZ.
    Zitieren Zitieren Synchronisationsaufgabe zweier ET200S in 2ms  

  4. #3
    merless Gast

    Standard

    Vielen Dank für die flotte Anwort Bernhard!

    Diese Idee hatte ich auch schon. Habe hier ein 8DI DC24V 6ES7 131-4BF00-0AA0. Sollte damit ja auch gehen denke ich. Problem dabei ist, dass zwischen der Triggerung Werte verloren gehen können. Es müsste also so sein, dass der OB40 auf beiden ETs einmal getriggert wird und danach selbständig zyklisch weiterläuft. Soweit ich weiß ist dies aber nicht der Fall und der OB40 reagiert erst wieder bei neuer Triggerung. Trotzdem werde ich mir das nochmals genauer anschauen. Vielleicht kann ich synchronitätsrelevanten Code dahin auslagern und anderen eher zeitrelevanten Code weiterhin im OB35 belassen. Vorausgesetzt die CPU kommt damit von der Rechenleistung her klar.

    Gruß

    merless

  5. #4
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    wie hast du das aufgebaut?
    ich würde einen der antriebe als master und einen als slave definieren.

    der master schickt zyklisch seinen positosistwert an den slave, und dieser muss sich selber darum kümmern diesem zu folgen. dann müsste der "regeltakt" nicht zwangsläufig synchron sein...

    2ms ist schon flott, was hast du für aktoren? kommen die damit überhaupt zurecht?
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  6. #5
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.812
    Danke
    1.232
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    Zitat Zitat von Markus Beitrag anzeigen
    der master schickt zyklisch seinen positosistwert an den slave, und dieser muss sich selber darum kümmern diesem zu folgen. dann müsste der "regeltakt" nicht zwangsläufig synchron sein...
    wenn der slave zu weit hinten dran hängt, dann sollte das aber konstant sein. somit könntest du den schleppabstand reduzieren indem du auf den istwert vom master ( also sollwert vom slve) einen offset addierst. bzw. den p-regler etwas höher nimmst.

    etwa so:

    stellwert_slave = P(istpos_master - istpos_slave)
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  7. #6
    Registriert seit
    28.01.2009
    Ort
    Hamburg
    Beiträge
    199
    Danke
    52
    Erhielt 54 Danke für 34 Beiträge

    Standard

    Ich glaube du bringst da etwas durcheinander.
    Folgendes,der OB 40 hat eine Priorität von 16 der OB 35 von12 somit
    wude der OB40 den OB 35 jederzeit Unterbrechen.Mit der Taktung auf 500HZ erzeugst du einen sysnchron Laufenden Pseudo_ob_1 innerhalb beider Syteme.Mehr Geschwindihkeit kannst mit dieser CPU Type sicherlich nicht erreichen.
    Zitieren Zitieren Synchronisationsaufgabe zweier ET200S in 2ms  

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

    Standard

    Also 2ms sind meines Erachtens schon sehr grenzwertig für eine S7 ET200S-CPU mit Profinet. Wieso müssen es überhaupt 2 CPUs sein? Kannst du das ganze nicht in eine einzige packen? Dann hättest du "nur" noch die Zykluszeit und den PN-Takt.

    Gruß
    Dieter

  9. #8
    Registriert seit
    28.01.2009
    Ort
    Hamburg
    Beiträge
    199
    Danke
    52
    Erhielt 54 Danke für 34 Beiträge

    Standard

    Die Summe der SPSen spielt keine Rolle,eine einzelne wir auch nicht schneller sein.
    Zugegeben viel code kann man bei 2ms im OB 40 nicht erstellen
    Geändert von Bernard (06.10.2009 um 17:16 Uhr)
    Zitieren Zitieren Also 2ms sind meines Erachtens schon sehr grenzwertig für eine S7 ET200S-CPU mit Prof  

  10. #9
    merless Gast

    Daumen hoch

    Hallo nochmal,

    Dass der OB40 höhere Priorität hat als der OB35 hatte ich gar nicht bedacht! Da hast du recht.
    Grenzwertig ist es, die 2ms. Aber ich komme nicht drum rum. Außer mit stärkerer und teurerer Hardware natürlich.
    Die zu regelnden Geräte sind im übrigen Servoventile die durchaus in der Lage sind so schnell zu schalten und auch müssen.
    Die Sensoren sind absolute Positionsgeber.
    Zwei Prozessoren sind nötig, da das Programm das darauf läuft so schon ziemlich genau an die Grenze des machbaren stößt. Wie gesagt, wenn ich die Zykluszeit auf 1ms stelle stoppt die CPU. Wenn eine CPU also beide Sensoren auslesen müßte und beide Ventile regeln müßte würde die schnell ins straucheln kommen. Außerdem sollen die ETs im späteren Betrieb auch bestimmte Testmodi fahren, bei denen auf einer ein geringfügig anderer Code läuft als auf der anderen. Diese Cases sind aber bereits implementiert und funktionieren.
    Viel Code naja... Ich habe fast alle externen Bausteine die während des Programmablaufs aufgerufen wurden in das Programm hart reingecodet. Dadurch wurde eine so kurze Zykluszeit überhaupt erst möglich. Wie gesagt klingt das mit dem OB40 zumindest so überzeugend, dass ich das morgen nochmals genauer prüfen werde. Zum Beispiel von der einen ET die dann weiterhin im OB35 läuft über einen DO auf die andere ET mit einem DI die im OB40 läuft. Wäre dann sowas wie eine Master-Slave-Verschaltung... Die eine triggert quasi die andere. Mal sehen mal sehen...
    Aber danke an alle soweit! Wem noch was dazu einfällt immer gerne

    Da hab ich noch eine andere Idee. Gibt es eine Möglichkeit die genau Programmlaufzeit herauszufinden? Das Programm läuft zwar in einer Zeitscheibe von 2ms sollte ja aber logischweise schon früher fertig sein und nicht genau 2ms brauchen... Mit der genauen Zeit könnte ich bei einer Programmlaufzeit von bspw. 1,78ms auch einen externen Trigger für den OB40 mit t=1,80ms auf beiden ETs einstellen statt glatten 2ms. Nur befürchte ich, dass alles was in dieser Hinsicht zu messen ist nur mit einer Auflösung von 1ms machbar ist. Mit Timern o.ä... Da eine Idee?

    Gruß

    merless

  11. #10
    Registriert seit
    28.01.2009
    Ort
    Hamburg
    Beiträge
    199
    Danke
    52
    Erhielt 54 Danke für 34 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich würde den Ob35 vergessen.Auch das Weitergeben eines Taktes,halte ich für Unklug.Nimm einen externen Takt beschalte, diesem Takt Pro SPS auf einen Interrupt fähigen Eingang.Schon hast du zwei sysnchron laufende Pseudo_OB_1 in den SPSen.Wenn du den Takt nur weitergibst und über DO/DI arbeitest,also über die Prozessabilder werden deine Programme niemals sysnchron sein.Ausserdem ist die maximale Reaktionszeit auf eine Eingangsänderung 2 Zyklen lang.
    Zum auslesen der Laufzeiten eines Zykluss kann man relativ gut SFC64 verwenden.Allerdings nicht bei diesen Kleinen Zeiten und dieser doch recht langsammen SPS.
    Geändert von Bernard (06.10.2009 um 19:38 Uhr)
    Zitieren Zitieren Also 2ms sind meines Erachtens schon sehr grenzwertig für eine S7 ET200S-CPU mit Prof  

Ähnliche Themen

  1. Gleichlauf zweier Servomotoren
    Von Tupo13 im Forum Antriebstechnik
    Antworten: 15
    Letzter Beitrag: 28.07.2008, 10:23
  2. Antworten: 9
    Letzter Beitrag: 14.06.2008, 12:27
  3. DB-Datenaustausch zweier CPUs via DP?
    Von danielsun2006 im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 22.11.2006, 16:24
  4. Zeitstempel zweier Ereignisse
    Von dhgroe im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.07.2006, 13:25
  5. Kommunikation zweier S5 via AS511 ?
    Von Lars Weiß im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 19.11.2005, 20:01

Stichworte

Lesezeichen

Berechtigungen

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