FB Programmierung - Welche Daten in welchen Stack?

franzone

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach welchen Kriterien entscheide ich welche Variablen ich als stat bzw. temp definiere?

Mir ist klar, daß temporäre Variablen nur während der Abarbeitung des FB aktuell sind und am Besten initialisiert werden(zumindest wenn sie lesend bearbeitet werden sollen). Statische Variablen kann man zum speichern verwenden. Soweit so gut. Nun zum konkreten Beispiel. Ich möchte einen FB für die Kommunikation via Profibus DP mit einem Ultramat 23 erstellen. Dazu müssen u.a. azyklische Lese- und Schreibbefehle gesendet werden (mache ich mit SFC 58/59- funktioniert tadellos). Ich frage verschiedene Stati ab und schalte eine Pumpe ein/aus. Anfangs habe ich alle Daten in den statischen Bereich eingelesen, die Rückmeldung der Pumpe auf meinen Motorbaustein gelegt und alles war gut ... bis ich den Ultramaten einfach mal spannungslos gemacht habe ... und siehe da ... meine Pumpe war immer noch eingeschaltet (im FB) ... das geht natürlich nicht. Daher kam mir der Gedanke, daß ich möglicherweise ein Initialisierungsproblem habe (hat der SPS-Kurs beim Arbeitsamt wohl doch nicht ausgereicht).
 
Nach welchen Kriterien entscheide ich welche Variablen ich als stat bzw. temp definiere?

Mir ist klar, daß temporäre Variablen nur während der Abarbeitung des FB aktuell sind und am Besten initialisiert werden(zumindest wenn sie lesend bearbeitet werden sollen). Statische Variablen kann man zum speichern verwenden. Soweit so gut. Nun zum konkreten Beispiel. Ich möchte einen FB für die Kommunikation via Profibus DP mit einem Ultramat 23 erstellen. Dazu müssen u.a. azyklische Lese- und Schreibbefehle gesendet werden (mache ich mit SFC 58/59- funktioniert tadellos). Ich frage verschiedene Stati ab und schalte eine Pumpe ein/aus. Anfangs habe ich alle Daten in den statischen Bereich eingelesen, die Rückmeldung der Pumpe auf meinen Motorbaustein gelegt und alles war gut ... bis ich den Ultramaten einfach mal spannungslos gemacht habe ... und siehe da ... meine Pumpe war immer noch eingeschaltet (im FB) ... das geht natürlich nicht. Daher kam mir der Gedanke, daß ich möglicherweise ein Initialisierungsproblem habe (hat der SPS-Kurs beim Arbeitsamt wohl doch nicht ausgereicht).

Stimmt.

Du kannst nahezu alles in STAT Variablen legen, doch musst du zyklisch diese aktualisieren.

Also wenn der DP Teilnehmer weg ist, dann muss du in der PLC dafür sorgen, dass die Daten aktualisiert werden und nicht die alten einfrieren.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst nahezu alles in STAT Variablen legen, doch musst du zyklisch diese aktualisieren.
Diese Aussage stimmt ja mal so absolut nicht.
Statische Variablen muss ich nicht zyklisch aktualisieren, darum sind sie ja statisch.
Franz hat da ein ganz anderes Problem, da werden Antriebe gesetzt die dann bei Neustart automatisch anlaufen da es scheinbar keinen Sicherheitsmerker gibt der irgendetwas zurücksetzt.
 
Wenn der Teilnehmer nicht mehr zur Kommunikation zur Verfügung steht, dann muss das SPS-Programm darauf reagieren.

Stichworte:
SPS Neustart, Lebensbit


Also prüfe ob die Kommunikation okay ist und solltest du feststellt sie ist gestört, force die Signale vom Antrieb im FB in einen "sicheren" Zustand.
 
Danke für die Antworten, Ich werde das Diagnosebit des PB Slave dafür benutzen (watch dog gibts in diesem Fall nicht).


Sorry für die späte Antwort, aber es gibt leider kein I-Net auf der Baustelle.

Grüße Franz
 
Zurück
Oben