Step 7 Komisches Phänomen wenn TON.IN stehtig True

vollmi

Level-3
Beiträge
5.436
Reaktionspunkte
1.410
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte gestern ein wirklich komisches und irritierendes Verhalten eines Bausteins von mir.

TON wird so aufgerufen. Unbedingt.
Code:
tAusrKlp(IN := AusrKlappen, PT := DINT_TO_TIME(INT_TO_DINT(MinWartenAusrKlappen) * 1000));

Der relevante Teil ist das.

Die Variable AusrKlappen ist am IN des FBs deklariert.

Nun hatte ich den Baustein schon sehr oft benutzt nur diesmal brauchte ich diesen teilweise ohne AusrKlappen. Also habe ich von Aussen einfach "True" angehängt. Mit dem Resultat das einzelne Aufrufe einfach nie ein (tAusrKlp.Q = True) generierten. Und zwar nicht alle sondern nur einige Instanzen. Obwohl ich Online sehen konnte das IN wirklich True ist wurde Q nicht gesetzt und die Zeit schon ewig abgelaufen (t#45s).

Jemand ne Idee was da passiert ist, und wie ich sowas abfange?


mfG René
 
Hallo René,
soweit ich weiß möchten die IEC-Timer einen Signal-Wechsel am IN mitbekommen (also eine Flanke). Das wäre bei dir nicht der Fall, da ja bereits beim ersten Aufruf schon die "1" am IN ansteht.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Uncool. Hast du ne idee wie man sowas abfangen könnte? Ich wollte den Baustein eigentlich möglichst universell halten. Muss ich den Timer wohl von Hand programmieren mit nem Takt von aussen.

mfG René
 
Evtl im OB100 ein Bit auf 0 oder 1 setzen und dies mit dem Timereingang verkuddeln.
Am Ende des OB1 zurück auf 0 oder 1
 
Hallo René,
soweit ich weiß möchten die IEC-Timer einen Signal-Wechsel am IN mitbekommen (also eine Flanke). Das wäre bei dir nicht der Fall, da ja bereits beim ersten Aufruf schon die "1" am IN ansteht.

Sollte das das Problem sein und du willst es universell halten dann bau doch die idee von Verpolt einfach in den FB mit ein.

Code:
[COLOR=#333333][FONT=Courier]tAusrKlp(IN := AusrKlappen AND Startup, PT := DINT_TO_TIME(INT_TO_DINT(MinWartenAusrKlappen) * 1000));
Startup := true;
[/FONT][/COLOR]

wobei "Startup" dann eine Statische Variable des Fbs ist. Somit ist beim SPS start einen Zyclus lang der Eingang des Timers auf 0.
vielleicht hilft das ja schon

Gruß

Balu
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Uncool. Hast du ne idee wie man sowas abfangen könnte? Ich wollte den Baustein eigentlich möglichst universell halten. Muss ich den Timer wohl von Hand programmieren mit nem Takt von aussen.

mfG René

Hallo René,
du könntest dir vor den Timer noch ein Init-Bit programmieren. Das könnte auch ein IN-Parameter sein, der durch einen Merker beschaltet ist/wird welcher im OB100 gesetzt und am Ende des OB1 rück-gesetzt wird. Diese Funktion kann man dann vielleicht auch noch für andere Dinge ganz gut gebrauchen.
Alternativ könntest du den Baustein mit der zugehörigen Instanz im OB100 aufrufen und bei diesem Aufruf den "AusrKlappen" mit VKE0 beschalten - das sollte auch gehen (ist aber m.E. nicht so schön :()

Gruß
Larry
 
Zurück
Oben