Step 7 Parametrierung von zwei Codebausteinen

Frozen19

Level-2
Beiträge
50
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute

Eine frage zu der Parametrierung zweier Code Bausteine.
Es geht hier um 2 Code Bausteine einer ist für die Grundstellungsfahrt der Anlage und der andere für den Automatischen Zyklus betrieb. Beide Bausteine sind als Schrittkette Programmiert. Jedoch wenn ich die Grundstellung mit dem PLC Simulator von step7 machen schalten die Ausgänge nicht. Wenn ich den Automatischen Zyklus Ablauf (Code Baustein 2) ausführe funktionieren meine Ausgänge einwandfrei.
Kann es sein das es hier eine Überschneidung gibt der Codebausteine?
Ich habe mal ein Bild angehängt von beiden Code Bausteinen.

Der Automatikbetrieb ist nur aus der Grundstellung Startbar.
Habe die Bilder von den Codbausteinen angehängt.

LG
Stefan
 

Anhänge

  • FB2 Ablaufkette.JPG
    FB2 Ablaufkette.JPG
    31,2 KB · Aufrufe: 36
  • FB1 Grundstellung.JPG
    FB1 Grundstellung.JPG
    31,9 KB · Aufrufe: 36
Hallo,
das kommt daher das die Ketten nicht gegeneinander verriegelt sind. Die Kette die im Programm später kommt überschreibt die Ausgänge mit ihrem Zustand. Ich nehme an der Automatikbaustein kommt im Programm nacher und überschreibt die Signale die die Grundstellungskette ausgibt. Du kannst jetzt z.B. die EN Eingänge der beiden Bausteine gegengleich beschalten, dann schreibt immer nur ein FB auf die Ausgänge. Die Methode Ausgänge von zwei Stellen zu beschreiben ist meiner Meinung nach aber eh nicht wirklich schön. Besser wären Merker oder Variablen an den Ausgängen der Bausteine die danach betriebsartenabhängig mit ODER verknüpft werden.

Z.B

an FB1 Ausgang O_1Y1 kommt #Temp_GS_1Y1
an FB2 Ausgang O_1Y1 kommt #Temp_Auto_1Y1

Und im nächsten Netzwerk:

U #Temp_GS_1Y1
U GS_Aktiv //Betriebsartenmerker
O(
U #Temp_AS_1Y1
U Auto_Aktiv //Betriebsartenmerker
)
=1Y1 //Ausgang


LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo TP INC

Du meinst im OB1 bei den Beiden Bausteine die (alle) OUTs als Temp Variable zu beschreiben Siehe Bild.
Und danach in den Netzwerk darunter jeden Ausgang beschreiben? Siehe Bild welches zeigt wie der A4.0 beschrieben wird.
Hierbei sind S1 für Zyklus Start (=Automatikbetrieb) und S2 für Grundstellung anstelle des Betriebsarten Merkers deklariert.

LG
 

Anhänge

  • FB1_neu.JPG
    FB1_neu.JPG
    48,8 KB · Aufrufe: 21
  • FB2_neu.JPG
    FB2_neu.JPG
    49,1 KB · Aufrufe: 20
  • ausgänge beschreiben.JPG
    ausgänge beschreiben.JPG
    28 KB · Aufrufe: 20
Genauso hat TP-Inc das gemeint.
Bei deinem Screenshot hängt am FB_Grundstellung am Ausgang "Q_2Y2" immer noch eine "Auto"-Variable (Tippfehler). ;)

Wenn du das nicht so machst passiert folgendes.
Code:
U FB_Grundstellung_Ergebnis_Q_Y1Y1
= A_1Y1
U FB_Grundstellung_Ergebnis_Q_Y1Y2
= A_1Y2
U FB_Grundstellung_Ergebnis_Q_Y2Y1
= A_2Y1
U FB_Grundstellung_Ergebnis_Q_Y2Y2
= A_2Y2

U FB_Ablaufkette_Ergebnis_Q_Y1Y1
= A_1Y1
U FB_Ablaufkette_Ergebnis_Q_Y1Y2
= A_1Y2
U FB_Ablaufkette_Ergebnis_Q_Y2Y1
= A_2Y1
U FB_Ablaufkette_Ergebnis_Q_Y2Y2
= A_2Y2
Der FB_Ablaufkette überschreibt dann immer die Änderungen welche der FB_Grundstellung an den Ausgängen (Prozessabbild) durchgeführt hat.
 
Ja genau so hab ich das gemeint Du könbtest auch S1 und S1 an die jeweiligen EN Eingänge der zugehörigen FBs hängen. Dann wird der FB dem das EN fehltbüb er sprungen (ist allerdings nicht schön)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Ronin und TP INC

Nun es Funktioniert schon fast aber noch immer nicht korrekt. Es wird bei Start durch S2 (Grundstellung) Ausgänge gesetzt in der Schrittkette die noch nicht an der Reihe sind.
Ich habe mal das Programm angehängt weil ich schon verzweifle ohne Schnittstellen Parametrierung hat alles wunderbar geklappt aber mein Lehrer möchte unbedingt Codebausteine.
Auch ein Bild von den Beiden Schrittketten Grundstellung und Zyklusablauf ist Angehängt

Danke für eure Hilfe

LG
Stefan
 

Anhänge

  • 15052016Bohrvorr.zip
    690,3 KB · Aufrufe: 9
  • Bohrvorrichtung Schrittkette.pdf
    73,2 KB · Aufrufe: 9
  • eingänge gesetzt.JPG
    eingänge gesetzt.JPG
    38,1 KB · Aufrufe: 19
Nun es Funktioniert schon fast aber noch immer nicht korrekt. Es wird bei Start durch S2 (Grundstellung) Ausgänge gesetzt in der Schrittkette die noch nicht an der Reihe sind
Erklär mal was mit "Ausgänge gesetzt die noch nicht dran sind"

Bei Grundstellungsfahrt macht dein FB schrittweise...

Schritt 2
Rücksetze O_1Y1
Setze O_1Y2​
Schritt 3
Rücksetze O_2Y1
Setze O_2Y2

... dann wird die Schrittkette verlassen. O_1Y2 und O_2Y2 werden aber nirgends mehr rückgesetzt und bleiben somit bestehen.
Die werden auch nirgends zurückgesetzt. Je nach Mechanik müsstest du die am Beginn (Schirtt 0) oder am Ende (Schritt 5) rücksetzen.

Schritt 2
Rücksetze O_1Y1
Setze O_1Y2​

Das selbe gilt für die Ablaufkette, da bleiben am Ende auch O_1Y2 und O_2Y2 gesetzt. Die setzt bis zum nächsten Durchlauf auch keiner zurück.
Meinst du vielleicht das?

Ich habe mal das Programm angehängt weil ich schon verzweifle ohne Schnittstellen Parametrierung hat alles wunderbar geklappt aber mein Lehrer möchte unbedingt Codebausteine.
Auch ein Bild von den Beiden Schrittketten Grundstellung und Zyklusablauf ist Angehängt
Das Problem an dem du scheinbar scheiterst ist dass die Ausgänge O_1Y2 des Grundstellungs-FB nichts mehr mit dem O_1Y2 des Ablaufketten-FB zu tun hat.
Das sind jetzt zwei verschiedene Variablen. Ein "Rücksetze O_1Y2" in einem Baustein bewirkt absolut nicht beim "O_1Y2" des anderen.

Du musst jeden Baustein so schreiben dass er seine Ausgänge korrekt und völlig unabhängig vom anderern verwaltet.

Als Denkstütze könntest du dir vorstellen wie du es ohne Bausteine programmieren müsstest, wenn man dir vorgeben würde dass du für deinen Grundstellungs-Teil und für deinen Ketten-Teil einen unterschiedlichen Satz Variablen nehmen müsstest und diese am Ende (so wie jetzt ja schon) auf die Ausgänge zusammen führen müsstest.

Warum muss das so kompliziert sein?
Ein FB sollte eine geschlossene Einheit sein, es sollte niemals ein externer Codeteil benötigt werden um seine Funktion korrekt zu erfüllen. Das muss er alles alleine machen.
In deinem Code verlässt du dich anscheinend darauf dass der zweite Baustein die Arbeit (rücksetzen der stehen gebliebenen Ausgänge) vom anderen fertig macht.
 
Das selbe gilt für die Ablaufkette, da bleiben am Ende auch O_1Y2 und O_2Y2 gesetzt. Die setzt bis zum nächsten Durchlauf auch keiner zurück.
Meinst du vielleicht das?

Hier ist das Problem das von FB1 Grundstellung wie du es sagst am ende O_1Y2 und O_2Y2 gesetzt bleiben und durch FB2 Ablauf nicht resetet da die beiden Bausteine voneinander unabhängig arbeiten.
Ich habe das ganze mal in einem FB programmiert hier funktioniert es einwandfrei nach der Grundstellung werden die gesetzten Ausgänge O_1Y2 und O_2Y2 weiter beschrieben von der Ablaufkette.

Hierzu hätte ich noch eine Frage: kann man nicht den FB1 im FB2 aufrufen und das selbe Resultat erzielen wie wenn man alles in einen FB programmiert?
 
Zurück
Oben