S7 - 200 Unterprogramm funktioniert nicht

godi

Level-1
Beiträge
1.460
Reaktionspunkte
185
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe mir eine kleines Unterprogramm gemacht nur funktioniert das nicht so wie ich mir das vorstelle und ich weiß nicht warum.

Funktion:
Es wird die Maske von TD100C ausgewertet und die dazugehörige F-Taste soll die Ausgabe Setzen bzw Rücksetzen.

Wenn ich das Programm öfters verwende dann Funktionierts nicht mehr.
Im Prinzip habe ich ja nur eine TEMP Variable verwendet die in der ersten Verwendung schreibend verwendet ist.

Vielleicht könnt ihr mir ja sagen was ich falsch mache...

Hier der Code: (Wurde von FUP in AWL übersetzt)
Code:
SUBROUTINE_BLOCK Auswertung:SBR24
TITLE=
VAR_INPUT
Freigabe:BOOL;    // Freigabe
TD_Maske_aktuell:BYTE;    // Aktuell angewählte Maske
TD_Maske_soll:BYTE;    // Maske mit der Verglichen werden soll
F_Taste:BOOL;    // Funktionstaste von TD
END_VAR
VAR_IN_OUT
Ausgabe:BOOL;    // Ausgabe 1-> aktiv
END_VAR
VAR
HM_XOR:BOOL;
END_VAR
BEGIN
Network 1 // Auswertung
// Netzwerkkommentar
LD     L3.0
EU
UB=    LB1, LB2
=      L3.2
Network 2 // XOR - Auswertung
LD     L3.2
UN     L3.1
U      L0.0
LDN    L3.2
U      L3.1
U      L0.0
OLD
=      L3.1
END_SUBROUTINE_BLOCK

godi

PS: Nie wieder mehr S7-200!!!!!!!!!!!
 
hi,

das sind ja SBRs hast du diesen auch im OB1 aufgerufen?

alleine ist er lauffähig nur bei mehrfachverwendung streikt er?

gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Roos!

Die SBR habe ich natürlich aufgerufen!

Ja bei Mehrfachverwendung streikt er dann!
Ich habe aber nur eine Temp Variable Benutzt und diese wird definitiv beim ersten zugriff beschrieben.

godi
 
Jetzt habe ich gerade Probiert das ich die TEMP Variable auf ein IN_OUT lege und aussen einen Merker anschreibe
-> ergibt das selbe (S7-200) Phänomen!

godi
 
Lösung

So jetzt habe ich das Problem:

Die Positive Flanke war das Problem weil die ihren Hilfsmerker intern hat und wenn man das Unterprogramm ein paar mal Aufruft dann funktioniert das mit dem internen Hilfsmerker nicht mehr!

Lösung:
Flanke Händisch ausprogrammiert und Hilfsmerker auf eine IN_OUT Variable gelegt!

Da fühle ich mich fast so wie in alten S5 Zeiten...

godi
 
Zurück
Oben