Grunsätzliche Frage zur Abarbeitung von Programmen

Outrider

Level-1
Beiträge
745
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Mich interessiert das Abarbeiten von Programmen durch eine SPS.
Das Einlesen und Ausgeben durch PAE u. PAA ist mir schon klar, nur folgendes Problem kann ich nicht nachvollziehen:

Ich habe ein Panel, in diesm Fall ein Touchpanel.
Dort habe ich einen Taster erstellt (Schaltfläche). Wenn gedrückt wird wird das Bit gessetzt und bei Loslassen rückgesetzt.
Das Bit ist ein Bit aus einem DB, also DBX.
Dieses Bit wird in einem FC1 als Startsignal für einen Ablauf genommen.
Nun möchte ich diesen Ablauf sperren in dem ich das Bit im OB1 vor dem Aufruf des FC1 rücksetze.
Wenn ich den Rücksetzbefehl des Bits vor dem FC-Aufruf setze dann funktioniert es.
Wenn ich den Rücksetzbefehl des Bits nach dem FC-Aufruf setze dann wird das Bit im FC angesprochen.

Mir hat man beigebracht dass das Programm intern erst abgearbeitet wird und dann rausgegeben wird, folglich müsste doch der Rücksetzbefehl hinter dem Aufruf des FC1 dominat sein.D.h. das Bit dürft durch das Panel nicht setzbar sein.

Wer kann mir helfen
Gruß und Danke
 
Wenn du das Bit über das Panel setzt und rücksetzt, warum möchtest du es zusätzlich im SPS Programm rücksetzen?

Grundsätzlich ist die Reihenfolge: PAE > OB1 > PAA > Kommunikation zum OP.

Natürlich geht es bei PAE PAA nur um Hardware Ein/Ausgänge.. keine DBs oder so..
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@deltal: um den FC nicht zu bearbeiten

@TE: das funktioniert so: wenn du das freigabe bit vor aufruf des FC zurücksetzt wird dieser nicht abgearbeitet, weil die freigabe fehlt. wie du bei deinen untersuchungen ja schon festgestellt hast. setzt du es allerdings erst nach dem aufruf zurück ist es ja, wenn in der visu aktiv, noch true, wenn du den FC aufrufst, das heißt freigabe ist da und FC wird abgearbeitet. auch das ergaben deine untersuchungen.
warum wird das bit nicht dauerhaft zurückgesetzt? weil es bei der kommuniaktion mit dem OP immer wieder überschrieben wird und das passiert meist zyklisch. ist ähnlich dem einlesen des PAE.
 
Das Verhalten ist bei einer 300er und 400er CPU unterschiedlich.
Bei einer 300er CPU wird die OP-Kommunikation am Zykluskontrollpunkt (Siemens-Sprech) bearbeitet. Bei einer 400er CPU läuft dieses quasi parallel zum SPS-Programm. D.h. wenn du eine Variable aus dem Merker- oder Datenbausteinbereich am Anfang des OB1 zurücksetzt, kann es sein dass auch während des Ablaufes des OB1 diese Variable den Wert ändert, wenn ein entsprechender Schreibbefehl hereinkommt.

Ergänzung:
Bei den aktuellen CPU gibt es die Möglichkeit der "priorisierten BuB -Kommunikation". Ist dieses aktiviert ist das Verhalten wie bei einer 400er CPU.
 
Zuletzt bearbeitet:
Zurück
Oben