- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: HAUS - Control

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.11.2009
    Ort
    Gerblingerode
    Alter
    59
    Beiträge
    207
    Hallo Peter,

    erst mal besten Dank für deine Antwort

    Die Länge, möglichst als erstes Byte erspart dir eine Menge Ärger und Aufwand.
    - Jetzt weisst du die Länge erst wenn du das Kommando dekodiert hast. Hast du ein älteres Modul, welches ein neues Kommando nicht kennt, hat es keine Ahnung wie lange die Meldung ist.
    - Mit einer Länge darf ein "#" in einem Text enthalten sein.
    - Mit der Länge am Anfang kann man eine Schlaufenzähler setzen und entsprechend viele Zeichen einlesen. Ist die Länge grösser als der Puffer, ignoriert man einfach alles bis zum nächsten chr(13)
    - Ist der Zähler durch, MUSS das nächste Zeichen ein chr(13) sein, andernfalls ist die Meldung fehlerhaft.
    Ich lese die com in der MCU per Interrupt mit inkey aus und hänge jedes eingelesene Byte an ein String an bis ein chr(13) eintrifft,
    erst dann wird die Zeichenfolge übergeben und ausgewertet (Startzeichen) länge statischer Header, Plausibilität und Anzahl der Felder .

    Treffen mehr als 100 Zeichen ohne chr(13) ein, wird der String verworfen ... der Tipp mit der Prüfsumme (-1) ist gut,
    wobei ich nur Ascii übertrage, sendet ein Modul permanent Zeichen ist eh der BUS gestört, da hilft nur abschalten ...
    Mein Home-Server läuft immer, der wird die Aktivitäten auf den BUS mit sniffen und in eine LOG schreiben,
    Derzeit baue ich den BUS erst mal auf meinem Schreibtisch auf und teste alles, bevor ein Modul an seine Stelle kommt.

    Ich betreibe an dem BUS keine Geräte die kontrolliert betrieben werden müssen, nur Außenbeleuchtung und Event-Beleuchtungen und Sensoren,
    die Steuerung der Lüftungs-Anlage ist autonom und soll nur über den BUS im zugelassenem Bereich beeinflusst werden können.

    Das Updaten der FW über den BUS werde ich nicht vorsehen, denke darauf kann man gut verzichten ...
    Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Ralf,
    Die "dummen" Ideen kommen oft erst mit dem schlechten Wetter.

    Es muss gar nicht etwas kompliziertes werden.
    Wie wäre ein Klingelknopf mit LCD. Normal wird der Name angezeigt und wenn man klingelt steht da z.B. "Bin im Garten" oder sonst ein kurzer Text.
    Braucht einen µC, Taster, kleines LCD und evtl. ein Relais um die normale Klingel anzusteuern.

    Ich hatte früher in meinem Büro eine kleine Steuerung mit 8 Kanälen, da waren das Licht und Steckdosen dran angeschlossen. Konnte mit Tasten und über den PC gesteuert werden, war aber autonom. Neben der Tür gab es noch eine roten Taster. Beim Rausgehen konnte man damit alles ausschalten und beim Reinkommen wurde die Grundbeleuchtung und einige Steckdosen eingeschaltet. Neben dem roten Taster waren noch 8 weitere. Beim WC gab es nur einen Taster für das dortige Licht. Über den PC konnte man auch alles steuern, die Gruppen für den roten Taster konfigurieren und auch die Software updaten.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.11.2009
    Ort
    Gerblingerode
    Alter
    59
    Beiträge
    207
    Hallo Peter,

    habe mir noch mal Gedanken gemacht,

    die Checksumme werde ich als Option verwenden,
    diese kann mit übertragen werden muss aber nicht,
    wird eine Nachricht mit CS übertragen muss diese natürlich auch stimmen ...

    Beispiel :

    #zzaakk|F1|F2|F3|....|Fx [13] .... ohne CS wie gehabt

    #zzaakk|F1|F2|F3|....|Fx [30] CS [13] .... mit CS = (HEX)

    als Trennzeichen habe ich mich für chr(30) "Record Separator" entschieden.

    Die Checksumme könnte durch aufaddieren der Bytes bebildet werden, mit Überlauf bei 255 ... Bascom cs = checksum(string)
    zusätzlich addiert man noch die Anzahl der Übertragenen Bytes auf ...

    Bedeute aber das nicht alle Fehler erkannt werden ...

    Beispiel
    "#325501|01|01|02|02|" CS = 69 +20
    "#325501|00|00|04|02|" CS = 69 +20

    mann müsste eigentlich noch ein zweites Verfahren anwenden z.B. XOR

    oder gleich Bascom cs = csc8(string) verwenden, beinhaltet bereits alles ...

    in VB würde das dann so aussehen:
    Function Docrc8(s As String) As ByteDim j As Byte
    Dim k As Byte
    Dim crc8 As Byte
    crc8 = 0
    For m = 1 To Len(s)
    x = Asc(Mid(s, m, 1))
    For k = 0 To 7
    j = 1 And (x Xor crc
    crc8 = Fix(crc8 / 2) And &HFF
    x = Fix(x / 2) And &HFF
    If j <> 0 Then
    crc8 = crc8 Xor &H8C
    End If
    Next k
    Next
    Docrc8 = crc8
    End Function
    Bascom cs = csc8(string)

    Beispiel
    "#325501|01|01|02|02|" CS = 238
    "#325501|00|00|04|02|" CS = 228
    Geändert von Feuerring (21.01.2017 um 16:25 Uhr)
    Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Ralf,

    Aus meiner Erfahrung im Industriebereich reicht Summe-1 völlig aus!
    Fehlverhalten, durch gestörte, nicht als fehlerhaft erkannte Datentelegramme wurden nie beobachtet. Dies hätte dann auch in den gespeicherten Messwerten als Ausreisser auftauchen müssen.
    Was öfters vor kam war, dass die Verbindung z.B. durch direkt parallel zur Datenleitung verlegte Kabel zur Versorgung grosser Motoren durch Umrichter, zu sehr gestört wurde. bei einem10kW-Motor halfen auch die geschirmten Datenleitungen und RS-485 nichts. Aber mit 10-20cm Abstand in der Kabeltrasse war es dann kein Problem.

    Auch CRC erkennt nicht alle Fehler zu wirklich 100%, braucht aber wesentlich mehr Rechenaufwand.
    So eine 8-Bit CRC braucht in etwa 4 Schiebebefehle und 4 Additionen und zusätzlich noch Befehle für die Schleife usw.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Haus Steuerung
    Von Ratman2000 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 25
    Letzter Beitrag: 16.07.2011, 17:07
  2. Haus von Nikolaus
    Von ExtreamCoder im Forum Kopfnüsse / Wissensquiz
    Antworten: 2
    Letzter Beitrag: 10.04.2006, 22:03
  3. Intelligentes Haus
    Von gandalfsz im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 24
    Letzter Beitrag: 17.03.2006, 15:20
  4. Alarmanlage für's Haus
    Von nux im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 1
    Letzter Beitrag: 03.11.2005, 18:43
  5. I2C - im ganzen Haus ??
    Von dl1akp im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 09.12.2004, 16:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test