Status Beobachten - drei unterschiedliche Ergebnisse!

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ihr,

ich könnte mal wieder etwas Nachhilfe in Sachen SPS benötigen... ;)

Ich wollte zwecks Fehlersuche in einem recht komplexen Programm einen Merker M0.8 in drei unterschiedlichen Funktionen beobachten. Nur mit dem Ergebnis komme ich nicht ganz klar!

FC1 ist in AWL, FC2 ist in FUP programmiert; weiterhin habe ich mich über Netzwerk (CP 341-1 IT) auf die SPS geschaltet und folgende Beobachtungen machen müssen:

1) Schalte ich in FC1 auf den "Beobachten-Status", so haben sowohl Status als auch VKE des Merkers M0.8 permanent den Wert 1.

2) Schalte ich in FC2 auf den "Beobachten-Status", so nimmt der Merker M0.8 entweder den Status 0 oder den Status 1 an.

3) Hole ich mir den Merker M0.8 in die Variablentabelle und schalte auf den "Beobachten-Status", so hat der Merker M0.8 permanent den Status "False", also 0.

Ergebnis:

Einzig die in FUP programmierte Funktion FC2 zeigt mir im "Beobachten-Status" einen sich ändernden Status des Merkers M0.8, wie es ja auch der Realität entspricht.

Frage: Woher kommen die unterschiedlichen Ergebnisse und warum erhalte ich nur einmal eine reale Auswertung des Merkers M0.8? Spielen hier evtl. Laufzeiten eine Rolle?

Lieben Dank schon mal im voraus für's Kopfzerbrechen...
 
Also ich denke du hast einen kleinen Fehler programmiert.
Wenn du den Merker versuchst mehrmals zu verwenden, dann hast du eine klassische Doppelzuweisung.
Versuche es einfach so:
Nur FC 1 im OB 1 aufrufen.
Danach nur FC 2 aufrufen.
Schau dir die Ergebnisse an und du siehst was los ist.

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

es gibt keinen Merker 0.8.
Ein Byte besteht aus genau 8 Bit, d.h. in diesem Fall M0.0 - M0.7. Einen Merker 0.8 gibt es nicht, wird vom Simatic Manager auch nicht akzeptiert, aber das nur mal so am Rande.

Gruß Andy
 
Hallo bike,

danke für deine Antwort... aber!

Ich habe das Programm nicht geschrieben, sondern ein Spezialist vor langer Zeit... also an Doppelzuweisung oder Ähnlichem kann es nicht liegen. Darüber hinaus ist der besagte Merker in den von mir genannten Funktionen nicht als Zuweisung programmiert. Der Merker ist in den Funktionen lediglich als Bedingung am Eingang von UND-, bwz. ODER-Verknüpfungen, die dann Ausgänge (Zylinder) schalten.

Ähm... wenn ich nur FC1, bzw. FC2 im OB1 aufrufe, so läuft doch die Maschine nicht mehr korrekt, weil ja dann Aufrufe fehlen, oder wie muss ich deinen Vorschlag korrekt umsetzen?

@Andy79: Natürlich - wie dumm von mir... sollte Merker M0.7 heißen, danke!
 
Zuletzt bearbeitet:
Hallo bike,

danke für deine Antwort... aber!

Ich habe das Programm nicht geschrieben, sondern ein Spezialist vor langer Zeit... also an Doppelzuweisung oder Ähnlichem kann es nicht liegen. Darüber hinaus ist der besagte Merker in den von mir genannten Funktionen nicht als Zuweisung programmiert. Der Merker ist in den Funktionen lediglich als Bedingung am Eingang von UND-, bwz. ODER-Verknüpfungen, die dann Ausgänge (Zylinder) schalten.
Wird das Programm an den Stellen wo du es beobachtest auch echt bearbeitet?
Teste es indem du den Cursor auf die Zeile stellst und dann schauen ob es unten rechts grün flackert.

Oder Du suchst dir die Zuweisung, und beobachtest dort.
Also ich habe die Erfahrung, dass der Editor, besonders die Grafischen, zu langsam sind, dass die Anzeige ab und an Glückssache sind

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also Tatsache ist, dass der Merker M0.7 aufgrund des Maschinenablaufs seinen Status verändern muss - und dies in FC2 (FUP) ja auch sichtbar macht!

Ganz unabhängig davon sollte doch zumindest in der Variablentabelle dann auch der Zustand zwischen "False" und "True" wechseln - das wäre doch das Mindeste, was man verlangen darf, oder?

Ähm... wenn ich nur FC1, bzw. FC2 im OB1 aufrufe, so läuft doch die Maschine nicht mehr korrekt, weil ja dann Aufrufe fehlen, oder wie muss ich deinen Vorschlag korrekt umsetzen?

Danke!
 
Also Tatsache ist, dass der Merker M0.7 aufgrund des Maschinenablaufs seinen Status verändern muss - und dies in FC2 (FUP) ja auch sichtbar macht!

Ganz unabhängig davon sollte doch zumindest in der Variablentabelle dann auch der Zustand zwischen "False" und "True" wechseln - das wäre doch das Mindeste, was man verlangen darf, oder?

Ähm... wenn ich nur FC1, bzw. FC2 im OB1 aufrufe, so läuft doch die Maschine nicht mehr korrekt, weil ja dann Aufrufe fehlen, oder wie muss ich deinen Vorschlag korrekt umsetzen?

Danke!
Wenn die Kiste laufen muss, dann musst du schauen ob an der Stelle wo du beobachtest der Baustein auch bearbeitet wird.
Wenn du nicht weiter kommst, dann schreib an den 2 Stellen wo du den Merker sehen willst einen Zähler, dann siehst du ob der Flankenwechsel vorbeikommt.

bike
 
Hallo anne,

Die Variablentabelle zeigt dir je nach Einstellung den Zustand bei Zyklusbeginn (Standard) oder Zyklusende.
Der Baustein-Status zeigt dir immer dann unterschiedliche Werte, wenn sich der Zustand während des Zyklus ändert (auch mehrfach).


Gruß
Cosman
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also jetzt mal grundsätzlich:
Beim Baustein beobachten siehst du den Zustand des Merkers beim Programmdurchlauf an der beobachteten Stelle.
Bei der Beobachtung durch VAT / HMI ... siehst du den Status des Merker im Zykluskontrollpunkt, also das Zyklusende sein.
Insofern ist es durchaus denkbar, das zwischen Beobachtung im FC und VAT ein Unterschied besteht.

Also scheint es wohl so, als das der Merker vom Programmablauf her zwischen FC1 / FC2 bzw. FC2 / FC1 irgendwo durch irgendwas beschriben wird.

Mfg
Manuel
 
Ähm... wenn ich nur FC1, bzw. FC2 im OB1 aufrufe, so läuft doch die Maschine nicht mehr korrekt, weil ja dann Aufrufe fehlen, oder wie muss ich deinen Vorschlag korrekt umsetzen?
Wenn Du PLCSIM hast, dann den Vorschlag von bike in PLCSIM testen.
An der echten Maschine nur dann testen, wenn Du das Programm verstehst
und weißt, was dieser Eingriff für Auswirkungen hat!

Wie schnell ändert sich denn Dein M0.7?
Hast Du mal in den Referenzdaten (Querverweisliste) nachgeschaut, wo M0.7
überall verwendet wird? (am besten Referenzdaten neu generieren)

Gruß
Harald
 
Hi ihr,

also der Zustand des Merkers ändert sich alle paar Sekunden. Er wird an mehreren Stellen auch noch in anderen Funktionen verwendet - aber als Zuweisung nur einmal!

Nochmals zur VAT:

Auch wenn ich den Status des Merkers im Zykluskontrollpunkt sehe - wenn ich nur die VAT betrachte, so muss doch der Status irgendwann einmal von "False" auf "True" wechseln oder umgekehrt. In der FC, in der die Zuweisung des Merkers programmiert ist, wechselt der Status ja auch.

Woran kann das liegen, dass der Status in der VAT nicht wechselt? :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In deinem ersten Posting hast du geschrieben, dass in FC 1der Merker immer 1 ist, in FC 2 sich ändert und in der Vat nicht.
In welcher Reihenfolge werden die FC aufgerufen? FC1 vor FC 2?
Denn ich vermute, dass vor dem Aufruf des FC der Merker richtig beschrieben wird und irgendwo in deinem Programm wird er überschreiben. Das kann durch Byte, Word oder Doppelword Zugriffe geschehen oder was noch gemeiner ist durch indirekte Adressierung.

bike
 
Hallo,

Möglicherweise ist in der CPU unter Hardware-Einstellungen das
Taktmerkerbyte (standard=MB0) aktiviert.
 
Also das Programm ist derart komplex, so dass ich momentan nicht ersehen kann, welcher FC zuerst aufgerufen wird. Das Programm umfasst ca. 90 FC's und einige FB's. Kaum zum Durchblicken hier...

Was ich aber trotz allem nicht verstehe - in irgendeiner FC erfolgt doch die Zuweisung (=) auf den Merker. In zahlreichen FC's wird dieser Merker an den Eingängen von UND- und ODER-Gliedern verwendet.

Was ist der Grund, dass nun z.B. die VAT den Status (die Zuweisung des Merkers) nicht anzeigt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Variable beobachten mit VAT

Woran kann das liegen, dass der Status in der VAT nicht wechselt? :confused:
- es wird in der falschen CPU beobachtet
- die CPU ist in Stop
- es wird die falsche Variable beobachtet
- die beobachtete Variable ist geforced
- die beobachtete Variable hat am Zyklusanfang immer den gleichen Wert
- die beobachtete Variable ändert sich zu schnell oder zu kurz
- die Statuswerte werden nicht zyklisch aktualisiert, sondern nur einmal
- die Triggerbedingungen für Beobachten sind falsch gesetzt

Ändert sich der grüne Balken auf RUN unten in der Statuszeile der VAT?
Ändern sich andere beobachtete Variablen?

Wie ist "Variable > Trigger..." konfiguriert?
Standard:
- Triggerpunkt für Beobachten: (o) Zyklusbeginn
- Triggerbedingung für Beobachten: (o) Permanent

Gruß
Harald
 
Wenn du über die Referenzdaten keinen (Doppel)Wortzugriff hast und MB0 nicht als Taktmerker gesetzt ist, dann kannst Du dir ja schon mal sicher sein, dass es nur EINE Zuweisung auf M0.7 gibt.
Weise doch einfach mal parallel zum M0.7 einem Merker M120.7 (Wenn frei) das gleiche zu und prüfe das in deiner VAT
 
Referenzdaten: Programmstruktur

Also das Programm ist derart komplex, so dass ich momentan nicht ersehen kann, welcher FC zuerst aufgerufen wird. Das Programm umfasst ca. 90 FC's und einige FB's. Kaum zum Durchblicken hier...
Das ist ganz einfach rauszukriegen:
* im Simatic-Manager: Extras > Referenzdaten > Anzeigen
* im Ref-Fenster: Ansicht > Programmstruktur

Nochwas:
M0.7 klingt mir so nach Test/Dummy-Merker, der mit der eigentlichen Funktion der Maschine garnichts zu tun hat.
Vielleicht soll der tatsächlich immer 0 sein und wird nur im FC2 temporär als Schmiermerker benutzt.

Gruß
Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jep, der grüne Balken in der Statuszeile der VAT ändert sich!

Wie ist "Variable > Trigger..." konfiguriert?
Standard:

- Triggerpunkt für Beobachten: (o) Zyklusbeginn
- Triggerbedingung für Beobachten: (o) Permanent

Ja, ist so eingestellt!

Der M0.7 ist schon fest in das Programm eingebunden - also kein Test-Merker. Aber auch ganz losgelöst von diesem Merker, habe ich Vergleichbares auch bei anderen Merkern... manche zeigen einen wechselnden Status, andere nur einen permanenten Status in der VAT an.

Danke für eure Hilfe - ist halt aus der Ferne etwas blöd...
 
Zurück
Oben