Re: Frage ansteuerung Relais Kategorie: Programmierung Basic (von Hans - 21.02.2012 14:17) | ||
Als Antwort auf Re: Frage ansteuerung Relais von Hans - 21.02.2012 13:15 | ||
| ||
> > > > > > > > > Hallo, > > > > > > > > > > > > > > > > > > ich habe eine Frage zur Ansteuerung von Ausgängen (Relais) mit der C-Control. Ich habe das C-Control > > > > > > > > > Pro 128 Projektboard und möchte verschiedene Relais ansteuern. Die Ansteuerung erfolgt über die > > > > > > > > > RS232-Schnittstelle was auch einwandfrei funktioniert. Hier mal eine Kurzer auszug aus dem Programm: > > > > > > > > > > > > > > > > > > If Command = 1 Then > > > > > > > > > Command = 0 > > > > > > > > > Port_WriteBit(Relais1,1) > > > > > > > > > Port_WriteBit(Relais2,1) > > > > > > > > > Port_WriteBit(Relais3,1) > > > > > > > > > Port_WriteBit(Relais4,1) > > > > > > > > > Port_WriteBit(Relais7,1) > > > > > > > > > Port_WriteBit(Relais8,1) > > > > > > > > > Port_WriteBit(Relais13,1) > > > > > > > > > Port_WriteBit(Relais14,1) > > > > > > > > > Port_WriteBit(Relais19,1) > > > > > > > > > Port_WriteBit(Relais20,1) > > > > > > > > > AbsDelay(10000) > > > > > > > > > Else > > > > > > > > > Port_WriteBit(Relais1,0) > > > > > > > > > Port_WriteBit(Relais2,0) > > > > > > > > > Port_WriteBit(Relais3,0) > > > > > > > > > Port_WriteBit(Relais4,0) > > > > > > > > > Port_WriteBit(Relais7,0) > > > > > > > > > Port_WriteBit(Relais8,0) > > > > > > > > > Port_WriteBit(Relais13,0) > > > > > > > > > Port_WriteBit(Relais14,0) > > > > > > > > > Port_WriteBit(Relais19,0) > > > > > > > > > Port_WriteBit(Relais20,0) > > > > > > > > > > > > > > > > > > End If > > > > > > > > > > > > > > > > > > Jetzt zu meiner Frage: Aktuell sende ich über die RS232 das Signal 1 und die ausgewählten Relais > > > > > > > > > ziehen für die AbsDelay-Zeit an. Ich möchte aber das die Relais angezogen bleiben (ohne AbsDelay-Zeit) > > > > > > > > > und erst wieder ausschalten wenn ich z.B. eine 2 über die RS232-Schnittstelle sende. > > > > > > > > > > > > > > > > > > Kann mir jemand helfen? Ich bin am verzweifeln. > > > > > > > > > > > > > > > > > > Gru� Sascha > > > > > > > > > > > > > > > > die Ports bleiben so lange an, bis du sie wieder ausschaltest, > > > > > > > > > > > > > > > > das hei�t du empfängst z.B die 1, schaltest alle relaise ann > > > > > > > > und bei der 2 wieder aus > > > > > > > > > > > > > > Ja so soll es sein. Bekomme es aber nicht hin. Immer wenn ich die AbsDelay-Zeit entferne > > > > > > > schalten die Relais gar nicht mehr. > > > > > > > > > > > > ist klar, wenn du sie nach der pause wieder ausschaltest..... > > > > > > > > > > > > du must ein e Zahl von der S-Schnittstelle einlesen, > > > > > > dann überprüfen, ob die zahl 1 ist, dann relaise 1 einschalten, wenn die Zahl 2 ist Relaise 2 einschalten > > > > > > und so weiter. Bei null dann wieder alle aus.... > > > > > > > > > > > > Hallo > > > > Ist die letzte geschweifte Klammer nicht verkehrt herum. > > > > > > ok, dann versuch mal dieses... > > > > Hallo, > > ich weis nicht, ob ihm ein C-Programm weiterhilft, denn offensichtlich programmiert Sascha ja in > > BASIC. > > Dein Problem ist, dass Du das Ausschalten in den else-Zweig gelegt hast, beim Einschalten aber > > die Variable Command gleich auf 0 setzt. Beim nächsten Durchlauf deiner Hauptschleife wird daher > > sofort der else-Zweig durchlaufen, und du schaltest die Relais wieder ab. > > Entweder darfst Du 'Command' erst auf 0 setzen, wenn Du die Relais wirklich abschalten willst, >> oder > > Du musst das Ein- bzw. Ausschalten in eigene If-Abfragen legen. z.B. Ausschalten mit > > if Command=2 Then ... > > Gru� > > Franz-Peter > > mein programm war ja auch eher als ansatz oder beispiel gedacht.... hat es denn wenigstens funktioniert?? | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum