Mein Lichttaster Programm geht nicht mehr

Bender25

Level-2
Beiträge
584
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Brauch wieder eure hilfe.
Ich hab mir was zusammen gebastelt was bisher eigentlich auf funktionierte. Aber jetzt gehts nicht mehr und ich kann mir nicht erklären warum. Der Ausgang wieder immer ein und aus geschaltet solange ich auf dem Taster bleib.

Hier mal mein FC den ich mir für alle Taster gebastelt hab

U "Lichttaster2"
FP #Flanke1
UN #Lampenausgang
S #Speicher
U "Lichttaster2"
FP #Flanke2
U #Lampenausgang
R #Speicher
U #Speicher
= #Lampenausgang

Kann mir jemand sagen was falsch ist bzw wie man es besser macht?!
Danke
 
Hallo
Folgende Punkte sollten beachtet werden:
1. Die beiden Variablen #Flanke1 und #Flanke2 dürfen nicht temporär sein.
2. Die beiden Variablen #Flanke1 und #Flanke2 müssen Durchgangsvariablen (in_out) sein, falls ein Bit an die FC übergeben wird.
3. Die Variable #Lampenausgang muss ebenfalls als Durchgangsvariable definiert werden, da dieses gelesen und beschrieben wird. Funktioniert zwar bei Aktualparametern wie E,A,M aber nicht bei Bits aus einem DB.
 
Hallo lorenz

Mit deiner Variante kann ich leider dann mein "Reset" Taster nicht verwenden der mir dann im ganzen Haus mein licht ausmacht


zu Antwort von SPS-Concept
Wie kann ich´s dann am besten machen. Die Flankenauswertung brauch ich ja. Und wenn ich keine temp. Variablen nehmen kann brauch ich ja unzählige merker.

aber die Schaltung würde generell funktionieren oder?

Edit:
Wow geht ja Flott hier

Also hab das auch mit den In out Variablen versucht. Aber haut trozdem net hin der Ausgang blinkt nur einmal kurz auf.
*verzeifel*
 
puhhhffff *schnauf* jetzt bin ich glaub über überfordert.

Habs jetzt in einem FC die schaltung wieder so aufgebaut wie oben beschrieben. Mit den temp variablen. Und es geht. lag es daran das ich mir den FC vorher immer in einem anderen FC aufgerufen hab?
Hab quasi jetzt nur noch ein FC in dem ich die ganze steuerung mach bezüglich der Lichtsteuerung.
 
hi

nochmal zum anfang

eine temp variabel ist nur für einen zyklus gültig

das heist wenn du sie beim ersten zyklus als fp beschreibst heist das noch lange nicht das es beim zweiten zyklus noch die richtige information hat

temp variabeln sind nur für zwischen ergebnisse die du bei jeden zyklus neu beschreibst zb rechenergebnisse

flanken merker dürfen nieeeeeeeeeemals als temp variabeln ausgeführt werden

wenn du denn baustein als einzigen aufrufst kann es sein das du das richtige vom lokaldatenstack.

aber wenn du denn baustein öfters aufrufst sicher nicht mehr

wieso willst du keine statischen variabeln dafür nehmen ????
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok kapiert.

wollte einfach nicht 2 Merker/Netzwerk für die schaltung verschwenden.
Deswegen dachte ich nehme ich temp. Variablen. Aber seh schon komm nicht daran vorbei.
Vielen dank an alle für die schnelle antwort
 
kpeter schrieb:
hi
...eine temp variabel ist nur für einen zyklus gültig...
Widerspruch: Eine Temp-Variable ist nur in einem Aufruf-Kontext gültig (das heißt vom Eintrit in bis zum Verlassen eines FC/FB).
Du kannst zwar im selben Zyklus zwei parameterlose (oder mit gleichen/"gleichlangen" Parametern) FCs aufrufen. Der 2. sieht auf LW4 dasselbe, ws der 1. hineingeschrieben hat. Aber das ist nur "Zufall" oder besser gesagt ein Nebeneffekt davon, daß der Stackbereich selbst an der gleichen Stelle bleibt und von der Firmware nicht überschrieben wird. Bei verschachtelten FCs verschiebt sich der (lokale) Stackanfang.
 
Morgen

ok ich gebs ja zu ich hab mich nicht genau genug ausgedrückt

die variabel ist nur inerhalb des FC für einen zyklus gültig
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Info...

Du brauchst auch keine 2 merker verwenden. einer langt:

UN #Reset
SPB M001
R #Ausgang
R #Merker1
BEA
M001: U #Taster
UN #Merker1
UN #Ausgang
S #Ausgang
UN #Taster
U #Ausgang
S #Merker1
U #Taster
U #Merker1
R #Ausgang
UN #Taster
UN #Ausgang
R #Merker1


Taster und reset als In, meker, ausgang als inout
mfg.
 
Re: Info...

Jochen Kühner schrieb:
Du brauchst auch keine 2 merker verwenden. einer langt:

UN #Reset
SPB M001
R #Ausgang
R #Merker1
BEA
M001: U #Taster
UN #Merker1
UN #Ausgang
S #Ausgang
UN #Taster
U #Ausgang
S #Merker1
U #Taster
U #Merker1
R #Ausgang
UN #Taster
UN #Ausgang
R #Merker1


Taster und reset als In, meker, ausgang als inout
mfg.

Viiiieeeelen Dank das war´s was ich gebraucht hab.
Wie kommt man auf sowas? So ein ideenreichtum möchte ich auch haben.

Danke
 
Zurück
Oben