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

Für Stefan Kategorie: 2W-Bus (von CTC - 17.03.2003 18:10)
Als Antwort auf für Stefan zum Thema 2W-BUS von CTC - 11.03.2003 18:59

Aaalso......

Tatsache ist, dass das SYSTEM-Modul TWB.C2 einen Fehler hat.
Es liefert manchmal die ID=1 zurück, obwohl das Modem einen Fehler mit ID=0
signalisiert.
Das kann man leicht umgehen, betrifft aber nur unseren Treiber, da TWBS.C2 den
Modemstatus nicht auswertet und ist auch nicht Ursache deiner Probleme.

in der function:process_frame()

 if (header == 0){status= 2;} ersetzen durch: if (header and 0x00FF)!=0xFF {status=2;}
-------------------------------------------------------------------------------------------------------------------------------------


Bei dir ist der Bus offensichtlich zeitweise so stark gestört ist, dass
praktisch jedes Bit kippt und die Fehlererkennung nicht mehr greift,
also auch zerstörte Frames für gut befunden werden.

Ich habe hier einen Test gemacht (einen Elektromotor am Bus) und das Ergebnis
ist wirklich übel aber bei dieser Bitfehlerrate nicht verwunderlich.

In diesem Fall hilft es nur, generell jeden Sensor sooft abzufragen bis von den letzten 3 Frames
2 komplett ( !! ) übereinstimmen.
Ich werde das in unseren Treiber implementieren.
-----------------------------------------------------------------------------------------------------------------------
Ich würde dir aber mal empfehlen das Testprogramm laufen zu lassen.
es nutzt die Statusabfrage des Modems (es wird dabei kein Sensor angesprochen)
und zeigt wieviele Störungen, jeweils innerhalb 2ms gemessen, am Bus liegen.
du kannst es um eine Alarmfunktion, Min/Max Speicher u.ä. erweitern.
Vielleicht bekommst du raus was die Ursache ist.
----------------------------------------------------------------------------------------------------------------------
loop
{
str.clear(frame);str.putchar(frame,0);str.putchar(frame,0);
str.putchar(frame,0);str.putchar(frame,0);
str.putchar(frame,0);str.putchar(frame,0);
str.putchar(frame,0);str.putchar(frame,0);
twb.io(frame);
if (mem.getint(frame,4)and 0x00FF)!=0
{
s="NOISE ";str.putint(s,mem.getint(frame,4)and 0x00FF);
station_lcd.clear();station_lcd.print(s);sleep 100;
}

}








    Antwort schreiben


Antworten:

Re: Für Stefan (von Stefan - 19.03.2003 11:52)
    Re: Für Stefan (von CTC - 19.03.2003 14:32)
        Re: Für Stefan (von Stefan - 19.03.2003 20:35)
    Re: Für Stefan (von André H. - 19.03.2003 12:31)
        Re: Für Stefan (von Stefan - 20.03.2003 12:04)
            Re: Für Stefan (von André H. - 20.03.2003 12:53)
Re: Für Stefan (von André H. - 17.03.2003 19:25)
Nachtrag (von CTC - 17.03.2003 18:29)