B&R Programmierung eines Torantriebes

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Luzie,

auf den schnellen Blick mußt Du noch ein Tor_1_stop setzen, um das RS für die Runter-Fahrt zurückzusetzen.

Bzw. würde ich vielleicht in den beiden RS-FlipFlops jeweils den gegenläufigen Fahrbefehl mit reinnehmen. Damit hast Du ein direktes Umschalten, ohne über Stop zu gehen.
Und solch eine wichtige Funktion, wie die Blockier-Auswertung VOR die Befehle setzen, so daß es auch sofort Auswirkung hat und nicht erst im nächsten Zyklus.

Gruß
Jens

der Stop befehl ist doch mit drinne
Code:
[COLOR=#3E3E3E][FONT=Courier]RS_TOR_1_zu(SET :=Tor_1_zu OR Tor_1_Funk_zu, RESET1:= Tor_1_unten OR [/FONT][/COLOR][COLOR=#ff0000][FONT=Courier]Tor_1_stop[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier]);
[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier]    M1_Tor_1_runter:=RS_TOR_1_zu.Q1[/FONT][/COLOR][FONT=Courier][/FONT][COLOR=#a9a9a9][FONT=Courier] [/FONT][/COLOR][COLOR=#696969][FONT=Courier]AND NOT M1_Tor_1_hoch[/FONT][/COLOR][COLOR=#a9a9a9][/COLOR][COLOR=#3E3E3E][FONT=Courier];[/FONT][/COLOR]
bei dem gegenläufigen Befehl verstehe ich nicht wie ich das machen soll. Aber ist das auch besser als wenn der Stop gedrückt werden muss und dann erst die andere Richtung?

bei der Blockier-Auswertung verstehe ich es auch nicht ganz. Ich habe es nun an den Anfang gesetzt.
 
Ja klar, wenn der Programmierer nicht drüber nachdenkt welchen Timer man am besten verwendet, oder wie man überhaupt robust programmiert, dann ist bei "spinnenden"/unsinnigen Anzeigen der Bediener schuld. ;)

Zum Thema: der grüne Leuchtmelder hier ist keine Ampel, und wenn es eine Ampel wäre, dann müßte man erst recht sorgfältig durchdacht programmieren.

Harald

Hallo Harald,

dann bitte auch noch Rot gegen Grün verriegeln - in der derzeitigen Implementation sind innerhalb der 10s beide Ampeln an, sobald der Motor losfährt. In der Regel wird aber ja nicht sofort die Endlage verlassen.
Also wenn man das "verkehrssicher" programmieren möchte, muß man noch mehr Gehirnschmalz reinstecken.

Allerdings versuche ich immer, nicht mit Kanonen auf Spatzen zu schießen: Das ist eine 10-Sekunden-Lampe, kann also nicht die wahnsinnige Bedeutung haben. Außerdem ist es für ein Garagentor, an dem der Themenstarter übt. Wenn da jemand steht und "dran rum spielt" hat er das Verkehrsgeschehen im Blick... Deine Hinweise sind alle richtig und sicher angebracht!

Man kann aber jede Aufgabe beliebig verkomplizieren. Macht die Lösung aber nicht immer besser, übersichtlicher und verwirrt - meiner Meinung nach - auch oft die Fragesteller. :D

Hoffe, mein Schludrian ist damit erklärt ;)

Gruß
Jens
 
Zuviel Werbung?
-> Hier kostenlos registrieren

Das haben wir alle verstanden. Doch ist das auch so gewollt, daß der Leuchtmelder bei einem zweiten Anfahren nur noch ganz kurz aufleuchtet?

Harald

Frage? setzt sich der Timer nicht wieder in die vorgegebene Zeit zurück sobald der IN FALSE ist? Oder setzt sich der PT erst wieder auf die Zeit wenn ET abgelaufen ist? Wenn ja dann klappt das ja so nicht wie ich es mir gedacht habe.
 
Zuletzt bearbeitet:
der Stop befehl ist doch mit drinne
Code:
[COLOR=#3E3E3E][FONT=Courier]RS_TOR_1_zu(SET :=Tor_1_zu OR Tor_1_Funk_zu, RESET1:= Tor_1_unten OR [/FONT][/COLOR][COLOR=#ff0000][FONT=Courier]Tor_1_stop[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier]);
[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier]    M1_Tor_1_runter:=RS_TOR_1_zu.Q1[/FONT][/COLOR][COLOR=#696969][FONT=Courier]AND NOT M1_Tor_1_hoch[/FONT][/COLOR][COLOR=#3E3E3E][FONT=Courier];[/FONT][/COLOR]
bei dem gegenläufigen Befehl verstehe ich nicht wie ich das machen soll. Aber ist das auch besser als wenn der Stop gedrückt werden muss und dann erst die andere Richtung?

bei der Blockier-Auswertung verstehe ich es auch nicht ganz. Ich habe es nun an den Anfang gesetzt.

Du setzt nur einen gegenläufigen Befehl, hast die eigentliche Bewegung aber nicht gestoppt, nur durch den anderen Befehl überschrieben.
Guck Dir mal meinen Post #20 an....
 
Danke habe ich gemacht. Aber als was hast du den FirstCycle deklariert?
Das ist ein Merker, der nur für den ersten Zyklus gesetzt ist.

Entweder besitzt B&R so etwas oder Du deklarierst in Deinem Programm einen globalen Merker und initialisierst den mit TRUE.
Am Ende vom Hauptprogramm setzt Du den zurück.

Dann erkennst Du damit im gesamten Programm, daß der erste SPS-Zyklus läuft.

Den hab ich eingeführt, um dem vom Vorredner beschriebenen Effekt entgegenzuwirken, daß der TON die Flanke nicht erkennt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann dir nicht sagen ob B&R so etwas hat. Dafür bin ich nicht gut genug damit vertraut. B&R ist Neuland. Daher auch die Frage. Aber als für ein TYpen hast du diesen Deklariert diesen merker.
BOOL, TIMER, ..... B&R nervt da immer etwas.
 
Beim erstellen des Programm kann man zwischen st all in one oder einzelfiles auswählen.

Im Programm Init macht er die Initialisierungen.
Im Programm cycliy das eigentliche Programm.

All in One
Code:
PROGRAM _INIT
	(* Insert code here *)
	 
END_PROGRAM


PROGRAM _CYCLIC
	(* Insert code here *)
	 
END_PROGRAM


PROGRAM _EXIT
	(* Insert code here *)
	 
END_PROGRAM
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke an alle die sich hier eingebracht haben, nun bin ich etwas Schlauer als Vorher. Da ich noch nicht soviel mit Programmieren zu habe oder hatte bin ich sehr dankbar für die hilfe.
Es funktioniert nun so wie es soll, aber den rest kann ich erst machen wenn ich die gesammte Hardware eingebaut habe. Ich habe es erst einmal so getesetet.

@roger34
Ich habe die Funktion INIT und EXIT nicht weiter beachtet aber das wäre wo der Punkt wo das mit dem FirstCycle stehen müsste, sehe ich doch richtig oder?
 
Zurück
Oben