Positive Flanke in SCL

onikos

Level-1
Beiträge
44
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich muss einen Motor ansteuern. Der reagiert nur auf eine positive flanke auf einem bestimmten Bit. Es soll nur ein beispielhafter Automatikmodus sein, d.h. Verfahrsatz 1 laden, impuls zum verfahren, sechs sekunden warten und verfahrsatz 2 laden, impuls zum verfahren, usw.

Mein problem ist wie mache ich immer wieder eine positive Flanke auf das bit.
mit bit aus und bit an klappt es nicht. Vielleicht weil es zu schnell ist und nicht erfasst wird, mache ich eine zeit dazwischen auch nicht. :)




einfachste Programmierung

IF oben THEN
oben := FALSE;
Verfahrsatz := geschwindigkeit_hoch;

ELSIF NOT oben THEN
oben := True;
Verfahrsatz := geschwindigkeit_runter;
END_IF;

Fahrauftrag_aktivieren := True;

WHILE NOT Sollposition_erreicht DO
Fahrauftrag_aktivieren := True;
END_WHILE;

Fahrauftrag_aktivieren := False;




alle ideen sind herzlich willkommen :)

danke
 
Zuletzt bearbeitet:
// impuls beim OFF-ON
onimp_input := input AND not mem_input ;
mem_input := input ;

// impuls beim ON-OFF
offimp_input := NOT input AND mem_input ;
mem_input := input ;

// impuls bei jeden OFF-ON oder ON-OFF transition
onoffimp_input := (input AND not mem_input) OR (NOT input AND mem_input) ;
mem_input := input ;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hey.. das war die schnellste antwort die ich je bekommen habe :)

leider versteh ich das nicht ganz..

kannst du mir das freundlicherweise an einem beispiel zeigen :)

bedankt.
 
Es gibt dir eine Impuls (onimp_input) bei den positive Flanke von input:
mem_input speichert den Zustand für den Flankenerkennung.

// impuls beim OFF-ON
onimp_input := input AND not mem_input ;
mem_input := input ;
 
natürlich klappt das auch nicht.
mir fällt gerade ein, dass das nach dem durchgelaufen ja auch noch über bausteine zum motor geschickt werden muss was aber im OB1 passiert.

d.h. es muss einmal komplett mit Fahrauftrag_aktivieren:=false und mit Fahrauftrag_aktivieren:=true durchlaufen werden.

hm.. ich bin echt ideenlos :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In meinen Programmen sieht dies (schematisch) so aus:

Impuls bei steigender Flanke des Signals "Input" für 1 Zykluszeit des SPS-Programmes.

"Pulse" := "Input" AND NOT "Flankenmerker";
"Flankenmerker" := "Input";

"Pulse" kann eine temporäre Variable sein, je nach Anwendung.
"Flankenmerker" muss eine statische Variable, Merker, DBX etc. sein.
 
Hallo,
ich arbeite bei so etwas grundsätzlich mit Feedbacks. Dieses Feddback wäre das Flankenbit, wie im Beispiel von Jesper. Du mußt es nur an der RICHTIGEN Stelle "setzen". Die Zuweisung des Verfahrsatzes, die du im OB1 (???) lädst, muß natürlich diese Flanke setzen.

Also in etwa so :
Code:
U #Verfahrsatz_laden
UN #Verfahrsatz_ist_geladen
SPBN nLod
 
call FB_zum_Laden
 
nLod: U #Verfahrsatz_laden
= #Verfahrsatz_ist_geladen
... oder wenn vorhanden die Rückmeldung des FB verwursten ...

Gruß
Larry
 
Zurück
Oben