TIA CPU-Zustand "RUN / STOP" auswerten

Neodyn

Level-2
Beiträge
20
Reaktionspunkte
1
Hallo,

ich versuche den Status der SPS auf eine HMI auszugeben. Ich habe alles wie in den bsp. Projekt (https://support.industry.siemens.co...d-run-stop-ausgewertet-werden-?dti=0&lc=de-WW ) angegeben umgesetzt. Nur leider wird der Status nicht wie gewünscht im E/A angezeigt. Werder als Int noch als Text. Ich habe jetzt die Vermutung das die Systemfunktion "LesePLCModus" oder "getPLCModus" nicht stimmen. Hat jemand eine Idee woran es möglicherweise liegen kann ?
 
Moin Neodyn,

ich habe das mal gerade "nachgebastelt". Es funktioniert einwandfrei.

=> Steht die Erfassungsart der HMI-Variablen auf "Zyklisch fortlaufend"?
=> Als "GetPLCMode" habe ich word verwendet (tut eigentlich nichts zur Sache, könnte aber :-))
=> Mein DB ist optimiert geblieben. Funktioniert trotzdem.
=> Wechselt der Bereichszeiger "Koordinierung" in der SPS seinen Wert, wenn sie zwischen STOP und RUN wechselt?

VG

MFreiberger
 
Ja ich habe, so meine ich, auch alles in mein Projekt übernommen.
Zur Frage "Steht die Erfassungsart der HMI-Variablen auf "Zyklisch fortlaufend"?" -> ja
"Wechselt der Bereichszeiger "Koordinierung" in der SPS seinen Wert, wenn sie zwischen STOP und RUN wechselt?" -> Wie kann ich das sehen?
 
Es muss in der SPS ja eine Variable für den Bereichszeiger "Koordinierung" geben. Im Panel wird die Variable dann bei den Bereichszeigern angegeben. Aber die SPS-Variable lässt sich (in der SPS) beobachten. Und dabei mal die SPS stop/run-schalten.
 
Hier in der SPS (Wert muss zwischen 16#0005 und 16#0001 toggeln => Bit 3 "Livebit"):

Bereichszeiger Koordinierung in der SPS.PNG
Dazu siehst Du in dem Bild die Variable "GetPLCMode" (Word). Diese steht aktuell auf 8 (RUN). Wenn sie auf 4 steht, ist die CPU in STOP

Hier im Panel:

Bereichszeiger Koordinierung im Panel.PNG
 
GetPLCMode.PNG

Hier die Variable "Koordinierung" im HMI (ja, die Variable aus dem Bereichszeiger nochmal in der Variablentabelle anlegen!)
Erfassungsart auf "zyklisch fortlaufend" stellen.

Dann unter Eigenschafte > Ereignisse > Wertänderung die Funktion "LesePLCModus" projektieren. Hier die Verbindung und die "Modus-Variable" angeben.
 
Moin Neodyn,

Du hast ja zwei Variablen „Koordinierung“. Aber im HMI verwendest Du hoffentlich für den Bereichszeiger und die HMI-Variable dieselbe Variable aus dem DB?

Kannst Du mal Screenshots von der Panelprojektierung machen:
- Variablentabelle
- projektierung „LesePLCModus“
- projektierung für die anzeige für Stop/run

Noch eine Frage:
mit welcher Umgebung testest Du?
- PLCSim
- reale SPS
- Panel-RT
- reales Panel

Vg
 
Die variablen der HMI:
1649673350895.png

1649673412645.png

1649673447801.png

PLC:
1649673518595.png
1649673552154.png



Meine Umgebung:
- physische S7-1200
- Physisches HMI KTP400
- TIA Portal V17

Ich hoffe ich konnte die fragen richtig beantworten.
 
GetPLCMode sollte IMHO eine HMI-interne Variable sein, denn wie soll denn das HMI diese Variable in der PLC verändern, wenn die PLC auf STOP ist. Und der PLC selbst nutzt die eh' nichts, wenn sie auf Stop ist.

Zumindest habe ich das so und bei mir funktioniert die Anzeige.
 
GetPLCMode sollte IMHO eine HMI-interne Variable sein, denn wie soll denn das HMI diese Variable in der PLC verändern, wenn die PLC auf STOP ist. Und der PLC selbst nutzt die eh' nichts, wenn sie auf Stop ist.

Zumindest habe ich das so und bei mir funktioniert die Anzeige.
Nö. Das funktioniert bei mir auch mit ner externen Variable. Das muss gehen.
 
GetPLCMode sollte IMHO eine HMI-interne Variable sein, denn wie soll denn das HMI diese Variable in der PLC verändern, wenn die PLC auf STOP ist. Und der PLC selbst nutzt die eh' nichts, wenn sie auf Stop ist.

Zumindest habe ich das so und bei mir funktioniert die Anzeige.

Datenbits können - meines Wissens - auch im Stopp beschrieben werden.
 
Im HMI bei den Variablen kann man noch die Erfassungsart einblenden (Kontext auf die Spalten). Die Erfassungsart sollte auf „Zyklisch fortlaufend“ stehen.
1649749373936.png

Ich verstehe nur nicht wenn ich auf der PLC im Datenbaustein die den Wert GetPLCMode ansehe bleibt dieser immer auf 0. der sollte sich ja ändern, oder?
1649749536172.png
 
Zurück
Oben