-> Hier kostenlos registrieren
Hallo Leute,
ich habe folgendes Problem und zwar will ich nach Beenden von unterschiedlichen Ereignissen (ich nenn sie mal „Ereignis A“ und „Ereignis B“) bestimmte Bits zeitverzögert wieder freigeben. Ich wollte es mit SE Timern machen, aber nach ein paar Durchläufen starten die Timer nicht mehr. (Die Timer werden im FB mit Instanzen DB aufgerufen/gestartet.)
Ich benutze: VIPA CPU 313SC und Step7 V5.4
bei Ereignis_A : sperre1=1 / sperre2=1 / sperre3=0 / sperre4=1 / sperre5=1
bei Ereignis_B : sperre1=1 / sperre2=1 / sperre3=1 / sperre4=1 / sperre5=1
Hier mal mein code
Das Reseten und Freigeben der Timer war ne Verzweifelungstat, es ging bissle besser. Ich sitze nun schon zu lange dran. Habe gerade kein kopf mehr dafür.
Versuche ich das zeitverzögerte Rücksetzen der Sperren zu kompliziert zu lösen? Das muss doch einfacher gehen, oder?
Ich hoffe man kann mir helfen. Danke im Voraus.
ich habe folgendes Problem und zwar will ich nach Beenden von unterschiedlichen Ereignissen (ich nenn sie mal „Ereignis A“ und „Ereignis B“) bestimmte Bits zeitverzögert wieder freigeben. Ich wollte es mit SE Timern machen, aber nach ein paar Durchläufen starten die Timer nicht mehr. (Die Timer werden im FB mit Instanzen DB aufgerufen/gestartet.)
Ich benutze: VIPA CPU 313SC und Step7 V5.4
bei Ereignis_A : sperre1=1 / sperre2=1 / sperre3=0 / sperre4=1 / sperre5=1
bei Ereignis_B : sperre1=1 / sperre2=1 / sperre3=1 / sperre4=1 / sperre5=1
Hier mal mein code
Code:
U #Ereignis_A
FN #NF1
= #Impuls_NF1
U #Impuls_NF1
S #Stat_NF1
U #Ereignis_B
FN #NF2
= #Impuls_NF2
U #Impuls_NF2
S #Stat_NF2
U #Stat_NF1
UN #Stat_NF2
SPBN too1
L 0
T #Sprungzahl
to1: NOP 0
UN #Stat_NF1
U #Stat_NF2
SPBN to2
L 4
T #Sprungzahl
too2: NOP 0
UN #Hilf_NF1
UN #Hilf_NF2
UN #Stat_NF1
UN #Stat_NF2
SPB Ende
// #### Sprungverteiler #### //
L #Sprungzahl
SPL sEnd // Sprungzahl > 8
SPA spv0 // Sprungzahl = 0
SPA spv1 // Sprungzahl = 1
SPA spv2 // Sprungzahl = 2
SPA spv3 // Sprungzahl = 3
SPA spv4 // Sprungzahl = 4
SPA spv5 // Sprungzahl = 5
SPA spv6 // Sprungzahl = 6
SPA spv7 // Sprungzahl = 7
SPA spv8 // Sprungzahl = 8
//----------------------------
sEnd: NOP 0
SPA Ende
// ---- Freigabe, wenn Ereignis_A deaktiviert wurde --- //
//----------------------------
spv0: NOP 0
S #Hilf_NF1
U #Stat_NF1
L S5T#1S
SE T 200
U T 200
R #Stat_NF1
SPBN m000
R #Sperre1
L 1
T #Sprungzahl
m000: SPA Ende
//----------------------------
spv1: NOP 0
UN DB86.DBX 1.0
L S5T#1S
SE T 201
U T 201
SPBN m001
R #Sperre2
L 2
T #Sprungzahl
m001: SPA Ende
//----------------------------
spv2: NOP 0
UN DB86.DBX 1.1
L S5T#1S
SE T 202
U T 202
SPBN m002
R #Sperre4
L 3
T #Sprungzahl
m002: SPA Ende
//----------------------------
spv3: NOP 0
UN DB86.DBX 2.1
L S5T#1S
SE T 203
U T 203
SPBN m003
R #Sperre5
R #Hilf_NF1
L 100 //spl sEnd (>8)
T #Sprungzahl
m003: SPA Ende
// ---- Freigabe, wenn Ereignis_A deaktiviert wurde --- //
//----------------------------
spv4: NOP 0
S #Hilf_NF2
R #Stat_NF2
U #Hilf_NF2
L S5T#1S
SE T 210
U T 210
SPBN m004
R #Sperre1
L 5
T #Sprungzahl
m004: SPA Ende
//----------------------------
spv5: NOP 0
UN DB86.DBX 1.0
L S5T#1S
SE T 211
U T 211
SPBN m005
R #Sperre2
L 6
T #Sprungzahl
m005: SPA Ende
//----------------------------
spv6: NOP 0
UN DB86.DBX 1.1
L S5T#1S
SE T 212
U T 212
SPBN m006
R #Sperre3
L 7
T #Sprungzahl
m006: SPA Ende
//----------------------------
spv7: NOP 0
UN DB86.DBX 1.2
L S5T#1S
SE T 213
U T 213
SPBN m007
R #Sperre4
L 8
T #Sprungzahl
m007: SPA Ende
//----------------------------
spv8: NOP 0
UN DB86.DBX 2.1
L S5T#1S
SE T 214
U T 214
SPBN m008
R #Sperre5
R #Hilf_NF2
L 100 //spl sEnd (>8)
T #Sprungzahl
m008: SPA Ende
//----------------------------
Ende: NOP 0
// ######## ENDE ######## //
L 100
L #Sprungzahl
==I
SPBN unte
R T 200
R T 201
R T 202
R T 203
R T 204
R T 210
R T 211
R T 213
R T 214
FR T 200
FR T 201
FR T 202
FR T 203
FR T 204
FR T 210
FR T 211
FR T 213
FR T 214
unte: NOP 0
Versuche ich das zeitverzögerte Rücksetzen der Sperren zu kompliziert zu lösen? Das muss doch einfacher gehen, oder?
Ich hoffe man kann mir helfen. Danke im Voraus.