Zykluszeitprobleme

A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
hallo, wer kann mir helfen?
Ich habe gehört, dass es möglich ist Eingänge und Ausgänge direkt anzusteuern, d.h. ohne das prozessabbild .
Bei mir beträgt die größte Zykluszeit ca 35 ms x2 =70ms.
Eine kleine Ewigkeit , kann ich den Ausgang sofort auf high setzen????
Wie würde das Listing lauten wenn ich z.B. A0.0 in der Art steuern wollte?
Danke in vorraus für die Antworten.
 
OP
A

Anonymous

Guest
Hallo
Sprechen wir über S5 oder S7 ?
In beiden Steuerungen ist es unmöglich einen einzigen Ausgang direkt setzen.
Die kleinste Zahl ist Byte.
In S5 mit dem Befehl T PY X (X=Bytezahl z.B. 20 in FB bzw. FX möglich)
In S7 mit dem Befehl T PAB X (X=Bytezahl) oder mit SFC 79
Achtung ! Beide Befehle haben direkten Peripheriezugriff. Man soll vorsichtig mit der Abfrage der restlichen Ausgängen in weiterem Programm sein.
Direkte Zugriffe in S5: T PY XX; T PW XX; T PD XX (ab 135U)
Direkte Zugriffe in S7: T PAB XX; T PAW XX; T PAD XX
Vielleicht so:
S5 Steuerung z.B. FB 1
L AB 20
T MB 200 <--- Abbildung der Ausgänge retten (PAA)
L KF 0
T MB 201 <--- MB 201 ist "sauber"
U M X.X <--- direkte Zuweisung für Ausgang A 20.0
= M 201.0
L MB 201
T PY 20 <--- direkter Peripheriezugriff
L MB 200 <--- Abbildung der Ausgänge wieder laden
T AB 20

Man kann natürlich alle digitale oder Analogeingänge direkt lesen (dh. "vor" PAE)
 

Balou

Well-known member
Beiträge
221
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Nabend

Vorsicht wenn du das so machst wie unten beschrieben schreibst du zwar das eine Bit evtl auf eins.
Du schreibst aber im gleichen zuge die anderen 7 Bit auf 0 was evtl zu ungewollten Anlagenstörungen kommen kann.

Ich mache es immer so das ich das ganze Byte erst zuweise (BIT für BIT)
und dann als BYTE rausjage in die Perepherie

Code:
bis hier habe ich alle ausgänge im AB 20 Zugewiese:
L AB20        //Laden des Bytes aus dem Ausgangsabbield
T PAB 20     //Dierektes Transferieren in die Perepherie

Wenn möglich versuche Ich das ganze also Zuwiesen der Ausgänge und das Laden in die Perepherie in einem Baustein zu machen den ich dann beliebig oft aufrufe.

MfG Balou
 

Ralle

Supermoderator
Teammitglied
Beiträge
14.407
Punkte Reaktionen
3.377
@Balou

man kann das doch auch mit OW erledigen oder?

Meistens ist das setzen der Ausgänge direkt (aus Zykluszeitproblemen) nur eine Krücke. Wenn du wirklich definierte Zeiten erreichen willst, dann mach das wenigstens in einem Zeit-OB, der z.Bsp. auf 5 ms eingestell ist, das geht aber evtl. wieder auf Kosten der Gesamtzykluszeit)
Alternativ könnte man auch mehrmals im Programm nachsehen, ob der Ausgang gesetzt werden muß, aber wie gesagt, alles sehr unschön.

Einfachste Abhilfe: "Schnellere SPS einsetzen" :lol: leider auch sehr teuer :cry:
 

Heinz

Well-known member
Beiträge
657
Punkte Reaktionen
11
Zuviel Werbung?
->Hier kostenlos registrieren
Moin,
die Frage ist warum und wieviele Ausgänge müssen im Zyklus geschreiben werden.

Bei einen Kunden ist es so, dass alle Ausgänge im Zyklus geschreiben werden, weil das Steuerungsprg in zwei Teile geteilt ist. Der einen ist für die Steuerung (von der Zykluszeit der geringe Teil) und der andere Teil für die Verwaltung, Visualisierung, Fremdgeräte usw. (Zykluszeit ca. 100ms)

Bei der Maschine, die gesteuert wurde, bringt es ein Taktzeitgewinn, weil die Ventile eher geschaltet werden. Bei vielen Bewegungen "spart" man sich einen SPS-Zyklus. Bei vielen Bewegungen macht das schon mal 1 Sekunde aus.
 
Oben