Bausteine auslagern auf CP 443-1 ?

miasma

Level-2
Beiträge
368
Reaktionspunkte
114
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich komme mit meinem Programm auf meiner s7 414-2DP in die Zykluszeitüberwachung. Die Bausteine die das Problem verursachen sind auch bekannt, können nur leider nicht verändert werden da es sich hierbei um eine schon geteste Schnitstelle zum Leitsystem handelt.

Die Anbindung zu Leittechnik erfolgt über einen CP443-1.
Gibt es hier jemanden der weiss ob man die relevanten Bausteine auf den CP auslagern kann um somit die CPU zu entlasten.
Im Simatic Manager öffnet sich ja immerhin ein Ordner Programm mit dem passenden Unterordner Bausteine.
 
Nein, das wird nicht gehen, denn dann wäre ja der CP nochmals eine eigene SPS, was mir wirklich völlig neu wäre. Bei den 400-er SPS, kann man doch aber noch eine 2. CPU in bestimmte Racks stecken oder? Vielleicht wär das eine Auslagerungsalternative?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ein baustein, der zu lange braucht sollte anders abgearbeitet werden ...

wie sehen denn die bausteine aus? wird da viel kopiert oder geschleift? evtl. die kopiervorgänge auf mehrere zyklen aufteilen? welche aktualisierungsrate hat denn das leitsystem?

beim auslagern geb ich ralle recht, das geht nicht, der CP ist noch dümmer als die CPU und die kann schon nischts :ROFLMAO:
 
Ohne Dein Programm zu kennen


Du kannst unter Eigenschaften CPU im Reiter Zyklus Taktmerker die Zyklusüberwachungszeit verstellen.
Länger machen hilft natürlich nur, die Störung zu unterdrücken. Der Programmablauf wird nicht schneller.

Gruss
Audsuperuser
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da stecken bei CP´s die Systemdaten drin, wenn in der HW-Konfig "Projektierungsdaten in der CPU speichern" (Baugruppentausch ohne PG) nicht angewählt bzw. nicht anwählbar ist.
Bei anderen Baugruppen (z.B. FM3xx) finden sich dort die Projektierungsdaten in Form von DB´s.
Vermutlich gibt´s da noch mehr Varianten, das waren jetzt die, die ich kenne.


Grüße von HaDi
 
Zuletzt bearbeitet:
Wieso öffnet sich denn der Unterordner? Wofür kann ich diesen gebrauchen?
Ich habe mich das schon immer gefragt.

Soweit mir bekannt wird dieser Ordner nur angezeigt um die Systemdaten des CP´s darzustellen


EDIT: da war der HaDi wohl schneller :)
 
mich würde ja interessieren, wie es jetzt weitergeht ... aber das nur am rande.

@audsu: zykluszeitüberwachung erhöhen ist zwar eine möglichkeit um ohne fehler durchzufahren, greift aber leider nicht das problem da an, wo es gepackt werden sollte, in der ausführung ... wenn ein prozess sowieso schon lange dauert, warum sollte ich ihn dann nicht in mehrere teile unterteilen und mit einem GPI jeden zyklus einen anderen teil zu abarbeitung freigeben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein Zykluszeitüberwachung verlängern geht nicht. Die ist vorgegeben und darf nicht geändert werden. In meinen Augen ist das auch keine Lösung sondern nur eine Unterdrückung des Problems.
Es geht um 150 Analogwerte die Übergeben werden sollen dazu noch jeweils 50 Status,Meldungs und Störungswörter und noch einmal alle Parameter von 12 PID Reglern (auch jeweils 20-30 Realwerte pro Regler). Das ganze ist nunmal nicht ganz schlank und verursacht deshalb Probleme.
Leider hat mein Kollege das nicht mit einer schleife gelöst sondern mit einer immer wieder aufgerufenen Funktion. Da das ganze aber schon mit der Gegenstelle getestet ist will ich die Struktur nicht anfassen. Ich will das ganze nur so sehr beschleunigen bzw über mehrere Zyklen verteilen das es unkritisch wird.
Ich habe mir nun schon ne Zykluszeitverteiler gebastelt und es sieht schon besser aus. Leider kann ich es im Moment nur auf PLC SIM testen und weiss nicht wie ich die Zykluslänge da einschätzen soll. Also ob das mit der Zeit einer CPU vergleichbar ist.
 
Zuletzt bearbeitet:
Was für ein Leitsystem wird den da eingesetzt?
Und wie ist die Kommunikation aufgebaut?

Ich selbst habe noch nie irgendwelche S7-Bausteine verwendet, um Daten von der S7 ins Leitsystem zu bringen.
Die Daten werden doch normalerweise vom Leitsystem via OPC-Server oder andern IO-Treibern angefordert (gepollt).

Einige hundert Werte sollten eigentlich bei einer 400er kein Problem darstellen. Auch 10'000 gepollte Intergerwerte pro Sekunde liegen bei einer 400er immer noch im möglichen Bereich.

Wie hoch ist die Zykluszeit der Programms, und wie hoch jene vom Kommunikations-Baustein (welcher überbordet)?

Gruss Hoyt
 
Zuletzt bearbeitet:
Du kannst unter Eigenschaften CPU im Reiter Zyklus Taktmerker die Zyklusüberwachungszeit verstellen.
Länger machen hilft natürlich nur, die Störung zu unterdrücken. Der Programmablauf wird nicht schneller.

@4L

Danke für Deinen Hinweis.
Ich hatte doch bereits erwähnt, dass durch die Verlängerung der Zykluszeitüberwachung das Problem nicht gelöst wird.
Ich hatte auch geschrieben, dass ich sein Programm nicht kenne, und so auch nicht wissen kann, ob dies eine Möglichkeit ist, den Fehler zu unterdrücken.
Als temporäre Lösung, um die Anlage zum Laufen zu bringen, ist mein Vorschlag aber druchaus geeignet.
Aber Danke, dass Du mich verbessert hast.

Gruss
Audsuperuser
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@AUDSU: es ging mir nicht ums verbessern! es ging mir darum deine aussage zu erweitern ... wobei ich davon ausging, du weißt das, hast es nur in der kürze der zeit nicht alles schreiben wollen ;)
 
Ich würde mit einem OPC Server arbeiten.
Wenn das nicht geht, solltest du klären ob die "Leitstelle" die Werte bei jedem Zyklus braucht, oder wie hier schon geschrieben steht, man die Abarbeitung nicht aufteilen kann.
 
Hallo

Ich würde mit einem OPC Server arbeiten.
Wenn das nicht geht, solltest du klären ob die "Leitstelle" die Werte bei jedem Zyklus braucht, oder wie hier schon geschrieben steht, man die Abarbeitung nicht aufteilen kann.
*ACK*


......... Es geht um 150 Analogwerte die Übergeben werden sollen dazu noch jeweils 50 Status,Meldungs und Störungswörter und noch einmal alle Parameter von 12 PID Reglern (auch jeweils 20-30 Realwerte pro Regler). Das ganze ist nunmal nicht ganz schlank und verursacht deshalb Probleme.......

Ich kann mir nicht vorstellen, dass er diese Werte SPS-Zyklisch auf dem Leitsystem verwendet.
Vielleicht verrät er es uns?

Gruss Hoyt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Darf ich mal fragen über welche Zykluszeit wir hier reden (in ms)? Und kannst du grob schildern wie das System aufgebaut ist , sprich was wird wie an Daten aufbereitet?

Zum zweiten würd ich gern wissen , was Du an Daten verschickst (1-n DBs?) und was die relevanten "langsamen" FCs genau machen.
 
Zuletzt bearbeitet:
Die lägste die ich gesehen habe waren 300 ms und 150 sind maximal erlaubt.
es handelt sich um 6 DB's die Übertragen werden sollen.

An der Art und Weise der Übergabe kann nix geändert werden weil sie in einem Pflichtenheft geregelt ist , da ist kein Platz für große experimente.
Da steht alle Signale müssen einmal die Sekunde übergeben werden.

Ich habe mir jetzt wie gesagt nen Zykluszeitverteiler gebastelt der jeden Zyklus einen Teil der Daten übergibt.Ich übergebe erstmal in jedem Zyklus ein NW ( es sind 16 insgesamt). Ich wollte das ganze dann an einer 414 2 DP testen aber das ist eine ältere und die hat nur 256 Kb speicher da passt das programm dann leider nicht drauf. Deshalb habe ich erstmal alles auf PLC SIM getetst, wie weit man der Zykluszeitmessung da aber trauen kann weiss ich nicht.
 
die zykluszeit bei plcsim ergibt sich aus der leistung deines prozessors. (imho)

da du 1 mal pro sek alle übergeben musst, musst du auf eine zykluszeit von 62,5 ms (1/16) kommen.

was genau passiert denn in dem fc was so lange dauert?
umtransferieren von daten?
wie werden die daten an das leitsystem übergeben?

hier mal eine kleine rechnung
L DBD (0,12 ys) * 250 = 24 microsek. * 16 = 384 ys
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
der fc ist ganz simpel.
Es wird eine Offset angegeben und der Fc kopiert dann aus allen 6 db's die werte in einen übergabe DB.

Dadurch das der FC für jeden Wert neu aufgerufen wird geht ne menge zeit flöten. Das ist dem Kollegen wohl entfallen als er sich die Übergabe ausgedacht hat.

Das mit PLC Sim kann ich so nicht glauben da ich bei PLC SIM nur Überwachungszeiten zwischen 1000 und 20000 ms einstellen kann.
 
die zykluszeit bei plcsim ergibt sich aus der leistung deines prozessors. (imho)
da du 1 mal pro sek alle übergeben musst, musst du auf eine zykluszeit von 62,5 ms (1/16) kommen.
Nicht nur das, aber auch den Windows programm scheduler steuert wie "Schnell" das program in PLCSIM läuft. Ich glaube das standard aktualisierungszeit in Windows ist 10ms, weil fast egal was ich an PLCSIM zuwirft bekomme ich zukluszeiten im bereich 10ms-12ms.

Ich glaube nicht das miasma's problem mit den eigentliche datentransfer zu tun hat.

Genau welche CPU ist in einsatz ? Typnr und firmware version bitte.
Wie gross ist das Programm ?
Erklär doch etwas mehr über den Programm und den datenkommunikation.
 
verstehe ich das jetzt richtig ?
der fc wird für jedes DBW/DBD welches kopiert werden soll aufgerufen? :confused:
also ca 4000 mal
ein aufruf mit call dauert ca 2 ys. dann kämen also noch mal 8ms dazu
das ist aber immer noch weit von 150ms entfernt.

wichtig wäre jetzt wirklich zu wissen wie der datentransfer mit dem rechner abläuft.

@jmp
das mit den 10ms aktualisierungszeit kann gut passen. ich habe hier auch immer 10-12 in plcsim
 
Zurück
Oben