Frank_the_Tank
Level-1
- Beiträge
- 29
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo Leute,
ich habe beim TIA Portal V12 ein Problem wo ich nicht weiterkomme.
Ich habe einen Teststand an dem 3 Zylinder angeschlossen werden mit Endschaltern Vorne und Hinten.
Diese Zylinder werden über Taster angesteuert und fahren dann in die Endlage.
Die Reienfolge in der die Zylinder angesteuert werden (auch gleichzeitig) ist unterschiedlich.
Es soll so sein das der Bediener die Reihenfolge einmal aufnimmt, quasi die Zylinder über die Taster ansteuert und dann der Teststand den ablauf selbst wiederholt in einer endlosschleife.
Ich habe einen entwurf in SCL, dieser funktioniert jedoch nicht einwandfrei.
In der Aufnahme werden die Endschalter nicht berücksichtigt(Vor bleibt solange gesetzt bis der Zylinder zurück fahren soll),
ich habe dann versucht bei der Wiedergabe der Kette die Zylinder zu verrigeln, dies funktioniert jedoch nicht so wie ich dachte, habt Ihr eine Idee?
Software:
TIA V12
Hardware:
S7 1200
Vielen Dank für Eure Hilfe
Frank
ich habe beim TIA Portal V12 ein Problem wo ich nicht weiterkomme.
Ich habe einen Teststand an dem 3 Zylinder angeschlossen werden mit Endschaltern Vorne und Hinten.
Diese Zylinder werden über Taster angesteuert und fahren dann in die Endlage.
Die Reienfolge in der die Zylinder angesteuert werden (auch gleichzeitig) ist unterschiedlich.
Es soll so sein das der Bediener die Reihenfolge einmal aufnimmt, quasi die Zylinder über die Taster ansteuert und dann der Teststand den ablauf selbst wiederholt in einer endlosschleife.
Ich habe einen entwurf in SCL, dieser funktioniert jedoch nicht einwandfrei.
In der Aufnahme werden die Endschalter nicht berücksichtigt(Vor bleibt solange gesetzt bis der Zylinder zurück fahren soll),
ich habe dann versucht bei der Wiedergabe der Kette die Zylinder zu verrigeln, dies funktioniert jedoch nicht so wie ich dachte, habt Ihr eine Idee?
Code:
Aufnahme:
Aufnahme:
IF "FlaÄnAufnPos" THEN //Aufnahme Betätigt
"Ketten Zeit DB".Kettenart:=1; //Festlegung das Tippenkette gespeichert ist
"I":=0; //I auf "0" Setzen
WHILE "I"<=100 DO //Schleife fürs löschen des Arrays
"Ketten Zeit DB"."aArray Endlage"["I"]:=16#0; //Zeiten im Array löschen
"Ketten Zeit DB"."Eingnge Endlage"["I"]:=16#0; //Ausgangswörter löschen
"I":="I"+1; //Hochzählen von I
END_WHILE;
"I":=1; //I auf "0" Setzen
ELSE
IF "FlaÄnAufnNeg" THEN //Aufnahme wurde gestoppt
"Ketten Zeit DB"."Schrittzahl Endlage":="I"; //Schrittzahl in den DB schreiben
ELSE
IF "Ketten Zeit DB"."Eingänge Aktuell"<>"Ketten Zeit DB"."Eingnge Endlage"["I"-1]OR "I"=0 THEN //Änderung eines Endschalters oder I=0
"Ketten Zeit DB"."Eingnge Endlage"["I"]:="Ketten Zeit DB"."Eingänge Aktuell"; //Eingangsabbild in den DB schreiben
IF "I"=0 THEN //Wenn I=0
"Ketten Zeit DB"."aArray Endlage"["I"]:="AusgangsByte2"; //Grundlage Speichern
END_IF;
"I":="I"+1; //I Hochzählen
ELSE
"Ketten Zeit DB"."aArray Endlage"["I"]:="AusgangsByte2"; //Ausgangsbyte in Array speichern
END_IF;
END_IF;
END_IF;
Widergabe der Aufnahme:
IF "FlaÄnMerWied" THEN //Wiedergabe Aktiviert
"I":=1; //I auf 0 setzen
ELSE
IF "Ketten Zeit DB"."Eingänge Aktuell" = "Ketten Zeit DB"."Eingnge Endlage"["I"] THEN //Wenn der Aktuelle Endschalterzustand= Der im Array Gespeicherte Endschalterzustand
[COLOR=#333333]IF "I"< "Ketten Zeit DB"."Schrittzahl Endlage"-1 THEN[/COLOR] //Wenn I<=der Gespeicherten Schrittzahl
"I":="I"+1; //Erhöhe I um 1
ELSE
"I":=1; // I auf 0 setzen (Endlasschleife)
END_IF;
END_IF;
IF "Wiedergabe Merker" THEN //Wenn widergabe noch Aktiv
"AusgangsByte2":="Ketten Zeit DB"."aArray Endlage"["I"]; //Ausgangsbyte2 = der Platz im Array
END_IF;
END_IF;
Software:
TIA V12
Hardware:
S7 1200
Vielen Dank für Eure Hilfe
Frank
Zuletzt bearbeitet: