
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Ich habe folgendes Problem: ich müsste eine Motorsteuerung in rechts- linkslauf mit Strom- > begrenzung realisieren, die durch je einen Taster gestartet, und durch Endschalter wieder > ausgeschaltet wird. > Ausserdem muss beim Linkslauf, bevor der Motor sich bewegt, ein anderer Motor vorher geschaltet > werden und für ca. 3sec.laufen. > > Dies ist nur die Funktionsbeschreibung im groben. > Vielleicht hat ja jemand Interesse oder kann mir zumindest ein paar Programmier Tips geben. Na, für eine Funktionsbeschreibung im Groben, kann es natürlich auch nur einen groben Entwurf geben. ;-) Da Du nichts über die Hardware sagst (Station oder Unit, etc.), seien der Einfachheit halber die Taster bei ON gedrückt (bei der Station ist es BTW *nicht* so), und die Relais oder Schütze bei ON angezogen. Muss der Endschalter vom Programm abgefragt werden, oder schaltet er selbständig den Motor aus? Ich nehme jetzt einfach mal an, dass er abgefragt werden muss. Ich gehe der Einfachheit halber davon aus, dass es einen Taster für Rechts- und einen für Linkslauf gibt. Ich gehe der Einfachheit halber davon aus, dass die Taster hardwaremäßig entprellt sind. Ich gehe davon aus, dass die Strombegrenzug durch Hardware, und nicht durch das Programm erfolgen soll. TLinks sei der Eingang für Taster für Linkslauf TRechts sei der Eingang für Taster für Rechtslauf Mlinks sei der Ausgang für Motor links ELinks sei der Eingang für Endschalter für Motor links MRechts sei der Ausgang für Motor rechts ERechts sei der Eingang für Endschalter für Motor rechts MHilf sei der Ausgang für den zweiten Motor bei Linkslauf define TLinks port[1] define TRechts port[2] define MLinks port[3] define MRechts port[4] define ELinks port[5] define ERechts port[6] define MHilf port[7] ' Bei Programmstart alles aus MLinks = OFF MRechts = OFF MHilf = OFF #loop if TLinks then gosub HandleTLinks if TRechts then gosub HandleTRechts goto loop end ' Wird wegen Endlosschleife nie erreicht. Ggf. Taster für Programmende implementieren ' ######## ' Unterprogramme #HandleTLinks ' Taste links gedrückt ' Wenn schon links am Anschlag, dann zurück if ELinks then return ' Hilfsmotor für 3 Sekunden ein MHilf = ON pause 3 * 50 ' mal 20 millisekunden == 3 Sekunden MHilf = OFF ' Hauptmotor nach links MLinks = ON ' Warten auf Endanschlag links wait ELinks MLinks = OFF return #HandleTRechts ' Taste rechts gedrückt ' Wenn schon rechts am Anschlag, dann zurück if ERechts then return MRechts = ON ' Warten auf Endanschlag rechts wait ERechts MRechts = OFF return HTH Bye Achim |
| Antwort schreiben |