-> Hier kostenlos registrieren
Hallo Zusammen,
also ich bin jetzt hier neu im Forum und möchte mich hier schonmal entschuldigen, wenn ich mein Thema falsch gepostet habe oder dieses Thema schon 1000-mal behandelt wurde (habe die Suchfunktion benutzt )
Auch arbeite ich erst seit zirka 3 Monaten neben der Schule mit der S7 bzw dem Pedant von Vipa und deren Programm WinPLC.
so nun zu meinem Problem,
im Ganzen versuche ich eine Funktionsblock für einen Taktbetrieb zu erstellen.
Zum üben habe ich jetzt erst mal versucht quasi eine "Anlaufverzögerung" zu erstellen, also dass ein Wert der Eingegeben wird heruntergezählt wird, jeweils beim Betätigen eines Eingangs (zur besseren Veranschauung) später durch den Taktmerker 255.0 der ja einen 1Sekundentakt ausgibt.
Ich glaube das meine Funktion an sich auch richtig ist, da beim Betätigen des Eingangs auch von 10 auf 9 gezählt wird, nur wenn ich jetzt den Eingang zurücksetz und den "Runterzählteil" überspring, setzt sich meine Variable wieder auf 10, diese müsste doch ihren Wert, wenn er nicht verändert wird (dieser Teil wird ja übersprungen) beibehalten für den nächsten Zyklus, oder nicht???
Wo liegt hier mein Denkfehler oder vielleicht Definitionsfehler im Kopf des FB.
Würde mich über Antworten freuen sehr recht wäre mir wenn diese vom Konzept gleich sind mit meiner idee mit den Sprüngen, da ich hier immer einwenig von einem Beispielprogramm abschaue
Kopf des FB
AWL-Zeilen des FB
L #Sekunden_Soll
T #Sekunden_Ist
UN #S_Puls
SPB END
L #Sekunden_Ist
L 1
-I
T #Sekunden_Ist
END: NOP 0
L #Sekunden_Ist
L 0
<=I
= #Startanforderung
AWL-Zeilen des OB
CALL FB 1,DB1
Sekunden_Soll:=10
S_Puls:=E0.0
Startanforderung:=A0.0
also ich bin jetzt hier neu im Forum und möchte mich hier schonmal entschuldigen, wenn ich mein Thema falsch gepostet habe oder dieses Thema schon 1000-mal behandelt wurde (habe die Suchfunktion benutzt )
Auch arbeite ich erst seit zirka 3 Monaten neben der Schule mit der S7 bzw dem Pedant von Vipa und deren Programm WinPLC.
so nun zu meinem Problem,
im Ganzen versuche ich eine Funktionsblock für einen Taktbetrieb zu erstellen.
Zum üben habe ich jetzt erst mal versucht quasi eine "Anlaufverzögerung" zu erstellen, also dass ein Wert der Eingegeben wird heruntergezählt wird, jeweils beim Betätigen eines Eingangs (zur besseren Veranschauung) später durch den Taktmerker 255.0 der ja einen 1Sekundentakt ausgibt.
Ich glaube das meine Funktion an sich auch richtig ist, da beim Betätigen des Eingangs auch von 10 auf 9 gezählt wird, nur wenn ich jetzt den Eingang zurücksetz und den "Runterzählteil" überspring, setzt sich meine Variable wieder auf 10, diese müsste doch ihren Wert, wenn er nicht verändert wird (dieser Teil wird ja übersprungen) beibehalten für den nächsten Zyklus, oder nicht???
Wo liegt hier mein Denkfehler oder vielleicht Definitionsfehler im Kopf des FB.
Würde mich über Antworten freuen sehr recht wäre mir wenn diese vom Konzept gleich sind mit meiner idee mit den Sprüngen, da ich hier immer einwenig von einem Beispielprogramm abschaue
Kopf des FB
in | Sekunden_Soll | INT |
in | S_Puls | BOOL |
out | Startanforderung | BOOL |
in_out | ||
var | Sekunden_Ist | INT |
temp |
AWL-Zeilen des FB
L #Sekunden_Soll
T #Sekunden_Ist
UN #S_Puls
SPB END
L #Sekunden_Ist
L 1
-I
T #Sekunden_Ist
END: NOP 0
L #Sekunden_Ist
L 0
<=I
= #Startanforderung
AWL-Zeilen des OB
CALL FB 1,DB1
Sekunden_Soll:=10
S_Puls:=E0.0
Startanforderung:=A0.0