Step 7 Einzelne Bits sind eingefroren

Mauser89

Level-2
Beiträge
36
Reaktionspunkte
4
Hallo,

wir haben eine S7-314 in FUP bzw AWL programmiert. Elementare Bausteine wie Schrittketten sind in AWL verfasst und werden in einem FC über FUP aufgerufen.
Der aufgerufene Baustein der Schrittkette verfügt über weiterschaltbedingungen. Diese werden aber direkt in den Datenbaustein des FB geschrieben und liegen nicht von außen am FB an.

Nach einer Übertragung der Hardware hat sich nun ein Merker in der Schrittkette aufgehangen, sodass diese nicht weitergescchaltet wird, auch wenn die Eingangsbedingung von FALSE auf TRUE wechselt. Leider ist das nicht das erste Mal. Auch Timer die nach Ablauf eine weiterschaltbedingung auslösen, haben sich aufgehangen und das bei einer S7-1500.

Da es ein großer Mehraufwand ist Prozesse anzufassen die eigentlich gar nichts mit dem Update zu tun hatten frage ich mcih, woran dieses liegt und wie ich es in der Zukunft umgehen kann.

Ich danke euch für eure Antworten.
 
... aber ich tippe mal - weil das wird ja immer wieder gerne gemacht :
- Timer sind innerhalb eines IF-Blocks oder einem CASE programmiert
- mit den Merkern wird es wohl so ähnlich sein
-> also bedingte Bearbeitung ... und kein korrekter Umgang damit ...
 
wir haben eine S7-314 in FUP bzw AWL programmiert. (...)
Auch Timer die nach Ablauf eine weiterschaltbedingung auslösen, haben sich aufgehangen und das bei einer S7-1500.
Was für eine CPU habt ihr denn nun?

Da es ein großer Mehraufwand ist Prozesse anzufassen die eigentlich gar nichts mit dem Update zu tun hatten frage ich mcih, woran dieses liegt und wie ich es in der Zukunft umgehen kann.
Habt ihr vielleicht ein Programm von einer S7-314 zu einer S7-1500 migriert? Ihr wisst, dass sich die S7-1500 in einigen Details (insbesondere auch bei Timern) anders verhält als S7-300? Einfach nur Programm und Hardware migrieren und es muss auf einer S7-1500 genauso funktionieren ist nicht, da muss man meistens noch einiges überarbeiten und eine komplette Neu-Inbetriebnahme und ausführliche Tests machen. Deshalb: Never change a running system ...
Von @DeltaMikeAir gibt es irgendwo hier im Forum eine Übersicht, was beachtet werden muss, die finde ich aber gerade nicht wieder.

Der aufgerufene Baustein der Schrittkette verfügt über weiterschaltbedingungen. Diese werden aber direkt in den Datenbaustein des FB geschrieben und liegen nicht von außen am FB an.
Wird von HMI oder per PUT/GET von anderen Geräten oder SPS in den Instanz-DB (!) oder ganz allgemein von außerhalb der CPU geschrieben? Die S7-1500 hat keinen Zykluskontrollpunkt für Kommunikation. Da wird einfach irgendwann das Programm unterbrochen und Variablen, die gerade überprüft wurden, können bei der nächsten Anweisung einen anderen Wert haben ...
 
Von @DeltaMikeAir gibt es irgendwo hier im Forum eine Übersicht, was beachtet werden muss, die finde ich aber gerade nicht wieder.
hier ist sie:
 
Wird von HMI oder per PUT/GET von anderen Geräten oder SPS in den Instanz-DB (!) oder ganz allgemein von außerhalb der CPU geschrieben? Die S7-1500 hat keinen Zykluskontrollpunkt für Kommunikation. Da wird einfach irgendwann das Programm unterbrochen und Variablen, die gerade überprüft wurden, können bei der nächsten Anweisung einen anderen Wert haben ...
Ich hatte den Teil so verstanden, dass die Transitionsbedingungen aus dem SPS-Programm in den IDB geschrieben werden, und nicht über die Bausteinschnittstelle (In/InOut) an den Graph-FB übergeben werden.
 
Liegen die Merker ggf. im remanenten Bereich.
Gff. saubere Initialisierung aller Werte bei SPS Anlauf oder im ersten Zyklus.
Timer immer bearbeiten.
 
ev. soll die Weiterschaltung ja auch in einem FB passieren der vielleicht zu diesem Zeitpunkt gar nicht aufgerufen wird 🔮
 
Ist doch alles nur Rätselraten solange der OP sich hier mal mit Details äußert.
Es wird sicherlich etwas mit bedingter Bearbeitung zu tun haben ... aber was genau ... ?????
 
Wie kann es sein, daß nur einzelne Bits eingefroren sind ? Die liegen doch normalerweise nebeneinander ? Evtl. mal auf optimierte Bit-Ablage umstellen ?
Sieht nach schwerer thermischer Asymmetrie aus, da sollte mal ein Kühlanlagen-Fachmann ran.
 
klingt als ob nicht ale Programmteile von der CPU abgearbeitet würden. Was sagt denn der Diagnosepuffer der SPS?
 
Erstmal danke für die zahlreichen Antworten.

Problem 1 - Schrittkette lässt sich nicht weiterschalten durch "eingefrorene" bits.

Bei der CPU handelt es sich um eine 314C-2DP SPS. Das Projekt wurde von V13 auf V14 hochgerüstet, da bei WinCC Update 10 nicht jedes mal der Smart Client sich meldet.

Hier der FC in welchem die Schrittkette aufgerufen wird. Die Reihenfolger der Aufrufe ist m.e. auch nciht optimal und ich würde direkt au den Input gehen.

NW4:
1720778416060.png

Einzig der Schlüsselschalter kann hier Probleme bereiten, aber das tut er nicht. Die restlichen Inputs des UND-Gliedes sind aktiv.
Die Zuweisung geht direkt auf den IDB der SK.

NW3:
1720778515274.png

Ein Netzwerk vorher wird die SK aufgerufen. Sofern Quit aktiv ist, siehe NW3, sollte die SK weitergeschaltet werden.

Code der SK:

...
1720778833923.png
Da wir in S2 hängen bleiben, muss hier das Problem liegen.

...S3-S8... sieht ähnlich aus und bilden die Weiterschaltbedingungen.

NW12 - Schrittkettenablauf
//Rücksetzen der Transitionsflanke

A #TRNS_Flanke
R #TRNS_Flanke
//Flanke zur Handweiterschaltung
A #Hand_Takt
FP #FP_Hand_HM
= #FP_Hand
//Initialisierung Schrittanfang
L #Schrittnummer
L 0
<>I
JC M131
L 1
T #Schrittnummer
//Initialisierung Schrittende
M131: L #Schrittnummer
L 9
<I
JC M132
L 1
T #Schrittnummer
//Sprung in einen vorgegebenen Schritt
M132: A #TRNS
A #Sprung
JCN M133
L #Sprungziel
T #Schrittnummer
S #TRNS_Flanke
JU M135
//Schrittweiterschaltung - // Meine Interpretierung: Trifft "TRNS" zu, wird auf M134 gesprungen, anschließend auf M135.
M133: A #TRNS
AN #Hand_Ein

O
A #Hand_Ein
A #FP_Hand
JC M134
JU M135
M134: L #Schrittnummer
INC 1
T #Schrittnummer
S #TRNS_Flanke

//Schrittzuordnung
M135: L #Schrittnummer
L 1
==I
= #HM_S1_Standby
= #S1_Standby
L #Schrittnummer // Meine Interpretation: Trifft der Vergleich zu, wird HM_S2 usw. gesetzt.
L 2
==I
= #HM_S2_InfoBox // Hier wird HM_S2 gesetzt, oder auch nicht da die SK hängen bleibt.
= #S2_InfoBox
L #Schrittnummer
L 3
==I
= #HM_S3_Freigabe
= #S3_Freigabe
L #Schrittnummer
L 4
==I
= #HM_S4_Start_Steri
= #S4_Start_Steri
L #Schrittnummer
L 5
==I
= #HM_S5_Verz_LZ
= #S5_Verz_LZ
L #Schrittnummer
L 6
==I
= #HM_S6_LZ_Steri
= #S6_LZ_Steri
L #Schrittnummer
L 7
==I
= #HM_S7_Druckabbau
= #S7_Druckabbau
L #Schrittnummer
L 8
==I
= #HM_S8_Quit_SN
= #S8_Quit_SN
//Schrittnummer Übertragen

L #Schrittnummer
T #S_NR
//Restlaufzeit übertragen

L #Zeit
T #Laufzeit
//Rücksetzen der Transitionsbedingung

A #TRNS_Flanke
R #TRNS
R #TRNS_Timer
//Reset Sprungbefehl
A #Sprung
R #Sprung


___________________

Warum wird die Schrittnummer aktiv hochgezählt -> HMI Textliste stimmt überein, aber der #HM_S2_InfoBox nicht? Da HM_S2 nicht gesetzt wird, kann es keine Transition in einen anderen Schritt geben.

Formalparameter > Actual Parameter? Oder setzt der Actual Wert jedes mal den Formalen zurück??
Kann irgendwie nicht sein, hat ja Jahrelang funktioniert oder liegt es an TIA V14??

Ich bin aufjedenfall gespannt was der online Modus sagt.
 

Anhänge

  • 1720779906685.png
    1720779906685.png
    21,8 KB · Aufrufe: 22
  • 1720780705330.png
    1720780705330.png
    30,7 KB · Aufrufe: 32
Zurück
Oben