Kann man eine Schrittkette erstellen und mehrfach benutzen?

Dennis auf der Arbeit

Active member
Beiträge
32
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hi alle zusammen.
Ich habe folgende Frage:
Kann man sich eine Schrittkette erstellen die man mehrfach verwenden kann?

Der Hintergrund dazu ist der, ich habe eine Maschine mit 8 Bereichen die alle das selbe machen (zum Teil parallel). Momentan habe ich dafür 8 Schrittketten (GRAPH) was sehr lästig ist, den wenn sich etwas ändert muss ich immer alle 8 Ketten bearbeiten. Da wäre es doch schön wenn man nur einmal die Kette änderen müsste und alle Bereiche diese eine Kette benutzen könnten :) Ich hatte schon daran gedacht alle Ein- und Ausgänge durch DBX´s zu ersätzen und dann mit BlockMove die Daten hin und her zu schieben aber das geht nicht so wie gedacht. Vielleicht hat ja einer von euch eine Idee?

MfG Dennis
 
Zuletzt bearbeitet:

ducati

Well-known member
Beiträge
7.614
Punkte Reaktionen
1.704
Hmm, naja wie sind Deine Schrittketten realisiert, welches Programmiertool?

Prinzipell geht sowas immer mit FBs und Instanz-DBs... d.h. der eine (Schrittketten-)FB wird mehrfach mit unterschiedlichem Instanz DB aufgerufen. Dann darfst natürlich keine Merker etc. im FB verwenden...

Ich vermute mal, Du müsstest die Schrittketten schon grundsätzlich umprogrammieren...

Gruß.
 

Cassandra

Well-known member
Beiträge
351
Punkte Reaktionen
197
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo Dennis,

natürlich wäre das möglich. Bei 8 identischen Funktions-Einheiten ist das vermutlich auch sinnvoll.
Dazu kannst du die komplette Funktionalität in einem Baustein kapseln, der mehrfach aufgerufen wird. Je nach dem ist das auch als „Multiinstanz“ günstig.
Die Ein- und Ausgänge werden als VAR_IN und VAR_OUT deklariert.
Innerhalb dem Baustein dürfen dann aber keine Globaldaten mehr verwendet werden! Anstatt der S5Timer solltest du natürlich auch nur die IEC- Timer TON/TOF verwenden...

Nur am Rande:
Ähnliche Anwendungen hatte ich auch schon gelegentlich. Meist wird dann doch noch der erste, zweite, dritte Ausnahmefall notwendig, wo von der ursprünglichen identischen Funktion abgewichen werden muss. Wenn du bereits was funktionierendes hat, musst du sehr gut abwägen, ob sich die massive Änderung überhaupt lohnt...

LG Cassandra
 
OP
D

Dennis auf der Arbeit

Active member
Beiträge
32
Punkte Reaktionen
0
Ja Merker brauche ich nicht da mehme ich einen DB für. Ich hatte an sowas gedacht wie DB 1 in DB 10 laden DB 10 wird in der Kette bearbeitet und da nach DB 10 wieder in DB 1 laden und das selbe mit den andern 7 Bereichen.
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.386
Punkte Reaktionen
3.028
S7-Graph ist nicht multiinstanzfähig.
Daher ist es nur sehr schwierig bzw. über Umwege möglich eine Kette mehrfach zu verwenden.
Und was bei solchen Lösungen immer schlecht ist: Wie soll da ein Instandhalter schnell einen Fehler finden?
Lieber setz ich mich 2 Stunden länger hin und ändere 8 Ketten, als dass ich mindestens 30min. mehr Stillstandszeit habe bis der Instandhalter den Fehler lokalisiert hat.

Gruß
Dieter
 

ducati

Well-known member
Beiträge
7.614
Punkte Reaktionen
1.704
Zuviel Werbung?
->Hier kostenlos registrieren
Ja Merker brauche ich nicht da mehme ich einen DB für. Ich hatte an sowas gedacht wie DB 1 in DB 10 laden DB 10 wird in der Kette bearbeitet und da nach DB 10 wieder in DB 1 laden und das selbe mit den andern 7 Bereichen.

??? was hast Du da vor ???

ich denke, Du hast noch nicht verstanden, wie das mit den FBs funktioniert... Aber hast Du überhaupt eine in KOP/FUP/AWL geschriebene Schrittkette? oder hast Du Graph oder sostwas? Um hier sinnvolle Antworten zu geben, brauchen wir erstmal nähere Infos... Welche Programmiersystem TIA oder Step7 oder sonstwas?

Du deklarierst im FB interne Variablen, die landen dann automatisch in dem jeweiligen Instanz-DB, da musst Du nix umkopieren...

Gruß.
 

ducati

Well-known member
Beiträge
7.614
Punkte Reaktionen
1.704
Und was bei solchen Lösungen immer schlecht ist: Wie soll da ein Instandhalter schnell einen Fehler finden?
Lieber setz ich mich 2 Stunden länger hin und ändere 8 Ketten, als dass ich mindestens 30min. mehr Stillstandszeit habe bis der Instandhalter den Fehler lokalisiert hat
jo, das Beobachten von Multiinstanzen ist bissl knifflig. Schrittketten haben dummer Weise immer die Angewohnheit irgendwo hängen zu bleiben, und die Diagnose für den Bediener ist dann schwierig.
Aber den eigenen Programmierstil an die Fähigkeiten des Bedieners/Instandhalters anzupassen, hmm naja... persönlich würd ich dann lieber zusätzliche Diagnosemööglichkeiten (Visu?) schaffen, aber kommt halt immer auf den konkreten Fall an...

evtl. habe ich ja auch mehr Stillstandszeiten, weil ich beim 8maligen Ändern doch nen Flüchtigkeitsfehler gemacht habe... und testen muss ich die Änderungen auch nicht 8 mal...

Gruß.
 
Zuletzt bearbeitet:

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.386
Punkte Reaktionen
3.028
Aber den eigenen Programmierstil an die Fähigkeiten des Bedieners/Instandhalters anzupassen

Genau das mach ich seit mehr als 20 Jahren und fahre gut damit.
Nö im Ernst:
Alles was sich bewegt wird so programmiert, dass ein Instandhalter leicht damit zurecht kommen kann.
Alles was sich nicht bewegt wird so programmiert, dass ich leicht damit zurecht kommen kann.

Schrittketten grundsätzlich in Graph (machen wir schon seit S5-Zeiten), Betriebarten, Verknupfungen und Bewegungen in FUP.
Datenverarbeitung, Rechnerkopplung, Visualisierung in AWL, SCL.

Gruß
Dieter
 

Perfektionist

Well-known member
Beiträge
3.557
Punkte Reaktionen
518
Zuviel Werbung?
->Hier kostenlos registrieren
Alles was sich bewegt wird so programmiert, dass ein Instandhalter leicht damit zurecht kommen kann.
tja, wobei "Instandhalter" nicht gleich "Instandhalter" ist. Da gibt es welche, die möchten Götter sein (um Himmels willen nichts so programmieren, dass der Strippenzieher das auch beheben könnte), und dann gibt es eben die Strippenzieher (nein, nicht abwertend gemeint!!!), denen viel lieber ist, die Maschine/Anlage zeigt eine aussagekräftige Fehlermeldung an, bevor man ein PG anstöpseln muss. So darf jeder seinen Stil pflegen, ob man seinen Stil zum Dogma erheben muss? k.A, vielleicht ist eher Flexibilität angesagt (wobei ich bei neuen Kunden oft nicht so genau weiß, von welchem Ufer der Instler abstammt). Bei (Klein-)Serienmaschinen ist da die Vorgehensweise (für mich) schon eher klar: was fehlerhaft ablaufen kann, muss (Achtung: Dogma!) überwacht sein - sonst gibt's nächtliche Anrufe...
 

Paul

Well-known member
Beiträge
929
Punkte Reaktionen
239
Keine Ahnung wie das bei GRAPH abläuft-

Wenn du aber bei normalem S7 einen FB mehrfach aufrufst
und willst in diesem FB was im Status anschauen ist das etwas kniffelig.
Geht schon, ist aber umständlich.
Wenn du mehr Info dazu willst, bitte fragen

Und wie Cassandra schon sagt:
Meistens dauert es nicht lange, bis bei 8 "gleichen" Staionen der erste "Sonderfall" auftaucht
 
Zuletzt bearbeitet:

SoftMachine

Well-known member
Beiträge
2.307
Punkte Reaktionen
368
...Keine Ahnung wie das bei GRAPH abläuft-

Wenn du aber bei normalem S7 einen FB mehrfach aufrufst
und willst in diesem FB was im Status anschauen ist das etwas kniffelig.
Geht schon, ist aber umständlich.
...

Ohne Graph kenne ich es so ("Anti-Knifflige" Lösung) :

Er soll einfach seine Aufrufumgebung und die zugehörigen DB´s festlegen, bevor er online gehst !

Gruss
 
OP
D

Dennis auf der Arbeit

Active member
Beiträge
32
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Schonmal danke für die ganzen Antworten.
Zur Info: Ich nutze Step7 und es handelt sich um in GRAPH geschriebene Schrittketten. Die warscheinlichkeit das ein Sonderfall auftritt wo eine der 8 Ketten sich von den anderen abweicht ist unter 1%, da alle Bereiche wirklich genau gleich arbeiten sollen. Wenn da wirklich mal eine Abweichung sein sollte, wäre das höstens in der Geschwindigkeit oder Kraft und das wir auserhalb der Schrittketten geregelt. Es kann auch vor kommen das nicht alle 8 Bereich arbeiten sollen aber das ist ja das kleinste Problem :)

MfG Dennis
 

Astralavista

Well-known member
Beiträge
799
Punkte Reaktionen
112
Graph ist nicht multiinstanzfähig. Du kannst aber alle deine EAs von aussen parametrierbar machen.
Dann änderst du einen FB und kopierst ihn 7 mal. Danach die Aufrufe aktualisieren.

Gruß
Dieter

Das ist schon richtig das Graph nicht multiinstanzfähig ist, aber das hindert ihn doch nicht daran nur einen einzigen Graph-FB zu erstellen und diesem mit jeweils eigenem
Instanz-DB aufzurufen. Dann brauch man auch nichts 7 mal kopieren.
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.386
Punkte Reaktionen
3.028
Zuviel Werbung?
->Hier kostenlos registrieren
Das ist schon richtig das Graph nicht multiinstanzfähig ist, aber das hindert ihn doch nicht daran nur einen einzigen Graph-FB zu erstellen und diesem mit jeweils eigenem
Instanz-DB aufzurufen. Dann brauch man auch nichts 7 mal kopieren.

Hast du das schon mal in der Praxis gemacht?

Gruß
Dieter
 

MSB

Well-known member
Beiträge
7.129
Punkte Reaktionen
1.613
Ich bilde mir ein, das schon mal probiert zu haben, und es hätte auch funktioniert,
also Graph-FB mit mehreren Instanzen aufrufen. (EAs natürlich über die Schnittstelle)

Aber ganz ehrlich:
Warum dann den "Aufwand" mit Graph?
Nahezu alle Vorteile von Graph, darunter insbesondere die Idiotensichere Schrittanzeige, sind dann praktisch Nutzlos.
Dann würde ich definitiv einen klassischen FB bevorzugen, den kann man dann auch Multiinstanzfähig gestalten, bzw. auch weiterhin sinnvoll beobachten.

Mfg
Manuel
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.386
Punkte Reaktionen
3.028
Ich bilde mir ein, das schon mal probiert zu haben, und es hätte auch funktioniert,
also Graph-FB mit mehreren Instanzen aufrufen. (EAs natürlich über die Schnittstelle)

Als ich es probiert habe, hat es nicht funktioniert. Kann aber daran liegen, dass ich die Ketten nicht allein ablauffähig hatte sondern eben mit FC.

Gruß
Dieter
 

Perfektionist

Well-known member
Beiträge
3.557
Punkte Reaktionen
518
Zuviel Werbung?
->Hier kostenlos registrieren
...Kann aber daran liegen, dass ich die Ketten nicht allein ablauffähig hatte sondern eben mit FC.
kann da jemand was dazu sagen, wie das bei TIA abläuft? ich hatte bei kurzem Antesten den Eindruck, dass TIA nicht die Möglichkeit bietet, einen Graph-FC zu erstellen, jedoch durchaus Instanzen einer Graph-Schrittkette (FB) zu generieren. Da ich bei Classic nur Basic hatte, kann ich für Basic keine Aussagen bezüglich Graph machen, da das (Graph) ja Classic-prof war.
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.386
Punkte Reaktionen
3.028
kann da jemand was dazu sagen, wie das bei TIA abläuft? ich hatte bei kurzem Antesten den Eindruck, dass TIA nicht die Möglichkeit bietet, einen Graph-FC zu erstellen, jedoch durchaus Instanzen einer Graph-Schrittkette (FB) zu generieren. Da ich bei Classic nur Basic hatte, kann ich für Basic keine Aussagen bezüglich Graph machen, da das (Graph) ja Classic-prof war.

Halt nix Verwechseln:
Es wird kein Graph-FC erzeugt, sondern du kannst bei Graph auswählen, ob die Kette als eigenständiger FB laufen soll oder ob der FB zusmmen mit einem FC ablaufen soll.
Graph-Ketten sind eigentlich nix anderes als Schrittketten mit Sprungverteiler. Die Verwaltung kann intern (eigenständig) oder eben mit Hilfe eines FC erfolgen. Bei mehreren Graph-FBs spart der FC viel Arbeitsspeicher, da der gemeinsame Verwaltungsteil eben nur einmal notwendig ist.
Wie es jetzt bei TIA ist, kann ich allerdings nicht sagen. Wir werden auf TIA erst mit Einführung der S7-1500 bei uns umsteigen. Ich denk wir werden uns da noch etwa 2 Jahre Zeit lassen

Gruß
Dieter
 
OP
D

Dennis auf der Arbeit

Active member
Beiträge
32
Punkte Reaktionen
0
Mal noch ne andere Frage: Gibt es die Möglichkeit DB´s Umzuverdrahten? Damit meine ich das man z.B. aus einem DB100.DBX0.0 einen DB200.DBX0.0 macht ohne das man manuel in jedem Schritt machen muss.
 
Oben