Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Wie fragt man Stellung der Relais (rbports) Kategorie: Programmierung (von Michael - 13.11.2003 21:35)
Als Antwort auf Re: Wie fragt man Stellung der Relais (rbports) von André H. - 13.11.2003 0:41

Hallo Andre,

danke für Deine Antwort, Dein zweites Beispiel(Bitmuster aller 8 Relais) hat geklappt.
Aber bei dem Befehl rbports.get() bekomme ich immer ASCII 0 zurück egal wie die Relais
stehen. Würde mich schon interessieren warum.
Hier mein teil aus dem Programm, vielleicht siehst Du ja einen Fehler:

  string txtaus;
  int i;
  byte x;
  byte k;

         for i = 0 ... 15 {
            txtaus="R";
            str.putint(txtaus,i);
            txtaus=txtaus + ":" + rbports.get(i);
            hwcom.print(txtaus);
            hwcom.ret();
         }
         txtaus="ALLE-R:";
         x=rbports.getb(1);
         for k=0 ... 7 {
            if x and (1 shl k) txtaus=txtaus + "1";
            else txtaus=txtaus + "0";
         }
         hwcom.print(txtaus);
         hwcom.ret();

Danke für Deine Hilfe.

GruÃ?
Michael H.

> Hallo Michael,
>  
> > ich steuere mit der CC2 die Relaisplatine SR-Rel8 mit:
> >
> >     rbports.set(relais,0); für ausschalten
> >     rbports.set(relais,1); für einschalten
> >     relais = 8 - 15 für Relais 1 bis 8
> >
> > doch wie kann ich den aktuellen Stand kontrollieren ?
>
> Wirklich kontrollieren kann man den Schaltzustand nicht, da man aus den SR
> die Daten nicht zurücklesen kann. Es wird lediglich der in einem Bytearray gespeicherte
> Schaltzustand zurückgegeben.
>
> > Ich habe es mit
> >
> >     rbports.get(relais);
> >     relais = 8 - 15 für Relais 1 bis 8
> >
> > bekomme aber immer ein Leerzeichen  zurück egal wie das Relais steht.
> Also ein Leerzeichen sollte nicht zurückgegeben werden.
> Entweder 0 oder 255.
>
> Schaltzustand = rbports.get(8);
>
> Du kannst auch das Bitmuster aller 8 Relais anzeigen lassen:
>
> byte x,i;
> ...
>  loop
>  {
>   rblcd.line(1);
>   x=rbports.getb(1);
>   for i=0 ... 7 if x and (1 shl i) rblcd.ziff(1); else rblcd.ziff(0);
>   sleep 100;
>  }

>
>
> MfG André H.
>


    Antwort schreiben


Antworten:

Re: Wie fragt man Stellung der Relais (rbports) (von krassos - 14.11.2003 16:33)
    Re: Wie fragt man Stellung der Relais (rbports) (von Michael - 14.11.2003 23:34)
        Re: Wie fragt man Stellung der Relais (rbports) (von André H. - 16.11.2003 23:34)