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

Ergebnis 1 bis 7 von 7

Thema: S7-1500 RT Kommunikation mit zweiter S7-1500

  1. #1
    Registriert seit
    13.05.2009
    Beiträge
    23
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi miteinander,
    ich habe da mal eine Frage...

    Mein System ist wie folgt aufgebaut:
    Ich habe 2x eine 1516-3 PN/DP CPU und das TIA Portal Professional V13 SP1 Upd7.
    Die beiden CPUs sind per PN X1 Schnittstelle miteinander verbunden.
    Dabei wird ja automatisch eine CPU zum IO Controller.

    Den IO-Controller nenne ich im folgenden Master, die Andere CPU nenne ich Slave.

    Ich möchte jetzt alle gesteckten IO Karten der Slave CPU in das Prozessabbild des Masters transferieren.

    Jetzt werden einige schon sagen, kein Problem... nimm doch einfach die i-Slave Kopplung und transferiere es damit.
    Wie einige von Euch bestimmt schon festgestellt haben funktioniert das aber im PLCSIM nicht

    Die Frage ist nun: wie kann ich eine RealTime(RT oder IRT)-Kommunikation zwischen den beiden CPUs nutzen um die einzelnen Karten als Block in mein Prozessabbild zu laden?
    Das ganze sollte dann auch noch im PLCSIM simulierbar sein.

    Ich habe folgendes versucht:
    - TSEND_C >> viel zu langsam und Pakete im falschen OSI Layer da ISOonTCP
    - PUT/GET >> viel zu langsam und brauche mehr als einen Zyklus um Werte zu holen
    - DPRD_DAT >> kann die HardwareIDs der IO Karten aus der Slave CPU nicht erreichen

    Wie es aussieht wäre die Funktion DPRD_DAT die schnellste von allen.... aber in meinen Systemkonstanten wird nur die HWID der PN Schnittstelle der Slave CPU angezeigt.
    Ob DPRD_DAT jetzt RealTime ist oder nicht steht auch nirgendwo.

    Der Siemens Support kann mir dazu auch keine Aussage machen was jetzt davon RT IRT oder nonRT ist.

    PUT/GET und TSEND_C TRCV_C verhalten sich eher wie nonRT

    Ziel des ganzen ist:

    Die gesteckten Karten in der Slave CPU sektionsweise in das Prozessabbild der Master CPU zu laden.
    schnelle Karten jeden Zyklus und nicht priorisierte Karten nur alle 100ms.
    Wäre schön wenn ich jeden Zyklus einen neuen Wert bekämt falls vorhanden.
    Wäre noch schöner wenn das ganze dann auch im PLCSIM funktioniert.

    P.S.:
    Wenn ich die I-Slave Kopplung benutzte um alle IOs vom Slave zum Master zu transferieren bekomme ich inklusive der Programm Abarbeitung circa 1200 Zyklen pro Sekunde hin (0,8 ms pro Zyklus in beiden CPUs)
    Zitieren Zitieren S7-1500 RT Kommunikation mit zweiter S7-1500  

  2. #2
    Registriert seit
    16.03.2006
    Ort
    Franken
    Beiträge
    3.843
    Danke
    30
    Erhielt 942 Danke für 819 Beiträge

    Standard

    Hallo,

    1.) es gibt keinen "Slave" in deiner beschriebenen Konfiguration, das ist einfach nur ein Controller-Controller Aufbau
    2.) PLCSIM kann nur Put/Get und TSend/TRcv, IO geht nicht sprich keine PN Kommunikation und auch kein DPRD_dat
    3.) TIA unterstützt keinen Transferslottyp "Peripherie", das geht aktuell nur in Classic
    4.) jeder Kommunikation ohne IO wie PUT/GET; TSend/TRCV ist non- Profinet, also kein RT und kein IRT

    Frage:
    Was genau willst du eigentlich mit diesem Aufbau machen? Wer hat die Kontrolle über die IO ? Wenn die Module von PLC_2 in den Einflussbereich der PLC_1 wandern und beide schreiben was auf ein Ausgangsmodule, wer gewinnt da?
    Braucht es wirklich 2x S7-1500 oder kann eine davon durch ET200MP/ET200SP ersetzt werden?
    Warum dies Festlegung das es mit PLCSIM gehen muss? Alleine schon die mit PLCSIM ermittelten Zykluszeiten sind nicht wirklich auf reale HW übertragbar.

    Gruß
    Christoph

  3. #3
    HelixX23 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.05.2009
    Beiträge
    23
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Christoph,
    viele Dank für deine Antwort.

    Zu deiner Frage:
    Was genau willst du eigentlich mit diesem Aufbau machen?
    Dieser Ausbau steuert eine Maschine mit mehreren Regelstrecken.

    Die erste CPU (Master) hat die Kontrolle über die Anlage (Sie besitzt einen eigenen Schrank im Kontrollraum).
    Positionssignale aller beweglichen Achsen werden hier über den Rückwandbus eingespeist (meisst SSI Karten).
    Des Weiteren sind über Profibus DP die verschiedenen Motorsteuerschränke gekoppelt welche ihre IOs direkt ins Prozessabbild schreiben.
    Die Kontroll Pulte sind auch per Profibus am Master angebunden.
    Das Hauptprogramm läuft also hier ab. (wer fährt wann wo hin, wie schnell darf es sein, wo geht die Reise hin... die alles bestimmt der Master)

    Die zweite CPU (Slave) hat folgende Funktionen(meist ist diese am Antrieb der Maschine in 3-5meter Rittal Schränken platziert):
    1. Alle zum eigentlichen Prozess gehörenden Aktoren und Sensoren erfassen und schalten
    1. Stellwerte die von der ersten CPU (Master) vorgegeben werden über PID Regler umzusetzen (hier habe ich einen Arsch voll an Reglern platziert)
    2. Sicherheitsaspekte im Auge behalten bzw die vom Master vorgegebenen Grenzen zu überwachen (Beispiel: 40 proportional regelbare Pumpen dürfen in der Summe einen maximal Druck nicht überschreiten etc...)
    und 3. nicht zeitkritische Sensoren und Aktoren schalten (Ob jetzt ein MagnetVentil 20 oder 30ms später schaltet ist hier nicht schlimm... 100ms wären aber uncool)


    Wer hat die Kontrolle über die IO ?
    Die Kontrolle über die IOs ist aufgeteilt. Grundsätzlich kann man sagen, dass die Master CPU die Kontrolle über ALLE IOs hat. Ausnahme sind hier die AnalogOut Karten die an die proportional Stellglieder geht (Servo/Prop Ventile beispielsweise)
    Da die Slave CPU diese Analogen Ausgänge beschreibt braucht die Master CPU da nicht ran. Sie gibt nur den Sollwert vor. Die Regelarbeit übernimmt dann die Slave CPU (damit hat die auch viel zu tun).

    Wenn die Module von PLC_2 in den Einflussbereich der PLC_1 wandern und beide schreiben was auf ein Ausgangsmodule, wer gewinnt da?
    Dass ich keine Ausgänge doppelt beschreiben kann/darf/sollte ist bekannt

    Braucht es wirklich 2x S7-1500 oder kann eine davon durch ET200MP/ET200SP ersetzt werden?
    Es muss gezwungener maßen Software performant im Slave laufen weil sonst die Rechenlast für eine CPU zu hoch ist und ich dann an die magische Grenze der 2ms(500hz) Zykluszeit ran komme.
    Ab einer Zykluszeit von >2ms bekomme ich ein unrundes Feeling in meine Regelkreise. Als ich noch mit den 300er CPUs gearbeitet habe, habe ich als "Slave" immer eine schöne VIPA CPU genommen.
    Habe das ganze schon mal mit nur einer CPU 319er versucht... Ging auch war aber glaube ich 500,-€ teurer als wenn ich zwei 317er genommen hätte...
    Der Schrank mit der CPU drin war extram groß da dort alle kritischen IOs drin verdrahtet wurden... Nunja seit dem sparen wir lieber Kupferkabel und setzen die Schränke an die Hotspots.

    Warum dies Festlegung das es mit PLCSIM gehen muss?
    Joar, ganz einfach... Die Schränke sind jetzt ausgeliefert. Habe die Kommunikation getestet und der Prozessabbild-Austausch funktioniert wie erwartet.
    Nun möchte ich die komplette Anlage simulieren um am Zusammenspiel der beiden CPUs zu tüfteln.
    Habe beispielsweise alle angeschlossenen proportional Stellglieder simuliert (per Hand). Diese sind am Slave angeschlossen. Den IST Wert bekommt der Master zurück geschaufelt etc.
    Ich kann sozusagen die Maschine mit meiner Simulationssoftware (damit ist nicht PLCSIM gemeint) produzieren lassen ohne dass nur ein Sensor angeschlossen ist.
    Dies geht aber nur wenn ich beide CPUs physisch da hab... Jetzt sind die aber auffm Weg nach China und ich möchte an der Stelle weiter arbeiten bevor ich die weggeschickt hab
    Da PLCSIM das nicht kann muss ich jetzt einen alternativen Transportweg nutzen... Evtl sogar einen der mir die Rückrüstung auf der Baustelle erspart und dabei noch performanter ist (Wunschvorstellung)

    Alleine schon die mit PLCSIM ermittelten Zykluszeiten sind nicht wirklich auf reale HW übertragbar.
    Die Zykluszeiten sind aus den realen CPUs welche ich hier im Hause hatte abgelesen worden


    Gruß
    HelixX23

  4. #4
    HelixX23 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.05.2009
    Beiträge
    23
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das was ich möchte ist:
    Die Master CPU schickt am Ende des Zyklus die Kritischen Ausgänge an die zweite CPU

    Beispiel DigOut32 Karte am Slave:
    Also Ethernet Paket erstellen... Alle 32Bits für die Karte ins Päckchen und abschicken.
    Code:
    CALL SCHICKE_AN_PN_CPU
      Send: "true"
      Source: "P#A100.0 BYTE 4"
      Destination: "P#A100.0 BYTE 4"
      HWID: "SlaveCPUxyz.PN-Interface.X1"
    Dann die nächste kritischen Karte...

    Die Karten die nur alle 100ms aktualisiert werden sollen werden mit dem 100ms Flankenmerker angestoßen.
    Code:
    CALL SCHICKE_AN_PN_CPU
      Send: "flank100ms"
      Source: "P#A200.0 BYTE 4"
      Destination: "P#A200.0 BYTE 4"
      HWID: "SlaveCPUxyz.PN-Interface.X1"
    Die Karten die nur alle 500ms aktualisiert werden sollen werden mit dem 500ms Flankenmerker angestoßen.
    Code:
    CALL SCHICKE_AN_PN_CPU
      Send: "flank500ms"
      Source: "P#A300.0 BYTE 4"
      Destination: "P#A300.0 BYTE 4"
      HWID: "SlaveCPUxyz.PN-Interface.X1"
    etc...

    und das mit der performance von RT oder besser IRT Kommunikation.

    Also da gleiche was der IO-Controller mit seinen Transferbereichen macht. Nur per Hand und mit Verzögerungen drin.
    Bidirektional und PLCSIM kompatibel

    Wenn das gehen würde, dann könnte ich die "Slave" CPU splitten und noch größere Anlagen bauen
    Die "Master" CPU wäre dann nur noch Dirigent im Orchester

  5. #5
    Registriert seit
    09.08.2006
    Beiträge
    3.637
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Wie waere es damit: die Zeitkritischen Steuerungsaufgaben in der maschinennahen Slave CPU programmieren. Die Unkritischen uebergeordneten Verwaltungaufgaben in der Master CPU... Und "EchtZeit" ist immer ne Definitionsfrage...

  6. #6
    HelixX23 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.05.2009
    Beiträge
    23
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So ist es ja eigentlich auch... Die Master CPU steht hinterm Operator und hat es am nächsten zu all den Positionssensoren der Maschine.
    Die Master CPU weiss sozusagen als erstes wie sie auf den Prozess reagieren muss.
    Alles was den Antrieb angeht, also alle Bewegungen werden von der Slave CPU gemanaged...

    Beispiel: Eine Achse soll gefahren werden.
    Die Master CPU liest die Position der Achse direkt am Rückwandbus aus und schiebt dem Slave einen Wert zum fahren rüber +100%
    Damit die Achse in Plusrichtung fahren kann muss der Ausgang A100.0 am Slave angesteuert sein
    Wenn die Achse fährt regelt der Master die Achse auf die gewünschte Beschleunigung/Geschwindigkeit/Kraft und so weiter

    Bei der Slave CPU sieht das so aus:
    Die Empfängt das Signal die digitalen Ausgänge zu schalten und leitet es einfach weiter.
    Das Fahrsignal für die Achse (+100%) ist der Sollwert weiterer Regelstrecken.
    Bis die Achse in der Realität fährt hat die Slave CPU an der Stelle noch viel Arbeit vor sich.
    Diese Arbeit darf die Master CPU nicht stören.

    Die Beschleunigung einer Achse von 0 auf 100% findet in 110ms statt (Mechanische Grenze)
    Wobei die zu erreichende Geschwindigkeit bei 100% variabel ist.

    bei einer Zykluszeit von 1ms habe ich also 110 Abtastpunkte für meinen PID übrig um keinen Überschwinger in den mechanischen Anschlag hinzulegen...

    Die Slave CPU ist also gut beschäftigt.

  7. #7
    HelixX23 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.05.2009
    Beiträge
    23
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zur Vollständigkeit halber:
    Zitat Siemens(ein wenig aussm Kontext gerissen):
    Ab ca. Ende des Jahres wird es eine Advanced PLCSIM für die 1500 geben, die dann auch eine Simulations-Schnittstelle besitzt. Über diese Schnittstelle kann dann SIMIT auch diese „1500er“-PLCsim
    ansprechen, so dass die reale CPU nicht mehr nötig ist. Ob diese PLCSIM alle von Ihnen benötigten Funktionen abbildet, kann ich Ihnen leider nicht beantworten.
    mfg und schönes Wochenende
    HelixX23

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 07.07.2015, 09:10
  2. Antworten: 6
    Letzter Beitrag: 24.02.2015, 14:21
  3. Antworten: 0
    Letzter Beitrag: 17.12.2014, 19:36
  4. TIA S7-1500 HMI-Kommunikation (Zykluskontrollpunkt)
    Von steuerung im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 08.01.2014, 13:39
  5. TIA Kommunikation S7-1500 mit PN Device
    Von TimeOUT im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.11.2013, 12:29

Stichworte

Lesezeichen

Berechtigungen

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