
|
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 Danke Achim für deinen Lösungsansatz. Ich habe dir per Mail die genaue Funktionsbeschreibung geschickt. Kannst ja mal schaun. Gruss Andreas |
| Antwort schreiben |