Conrad 8 rs232 Relais Card Prüfsumme XOR

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #1

    Conrad 8 rs232 Relais Card Prüfsumme XOR

    Hallo. Hab mir eine 8Fach rs232 Relais Card geholt (197730)

    Wie berechnet man die Prüfsumme XOR aus 611?

    Danke im voraus
  • Labmaster
    Lox Guru
    • 20.01.2017
    • 2595

    #2
    XOR aus 611 mit was ?

    Wenn ich mir das Manual des Geräts anschaue 8 http://www.produktinfo.conrad.com/da...e_en_fr_nl.pdf ) , steht da, daß eine Übetragung zum Gerät immer aus 4 Bytes besteht:
    Byte 0 Kommando
    Byte 1 Kartenadresse (weil ja mehrere Karten in Reihe (jede Karte hat einen RS232 Eingang und einen extra RS232 Ausgang) gehängt werden können, RS232 ist schließlich kein Bus System.
    Byte 2 Daten
    Byte 3 Prüfsumme (XOR aus Byte0, Byte1 und Byte2)

    Kommand Bytes sind:
    00 NO OPERATION
    01 SETUP
    02 GET PORT
    03 SET PORT
    04 GET OPTION
    05 SET OPTION
    06 SET SINGLE
    07 DEL SINGLE
    08 TOGGLE

    Die Prüfsumme wird aus "Kommandbyte" XOR "Kartenadresse" XOR "Daten" gebildet

    Beispiel:
    Kommando "6" (SET SINGLE) für Kartennummer "1" mit Daten "1" (Schalte Relais 1 auf Karte 1 EIN)

    6 XOR 1 XOR 1 = 6
    Man würde also hintereinander diese vier Bytes schicken: 6, 1, 1, 6

    XOR ist wie AND, OR ... eine logisch Bitoperation.
    Der Windows Taschenrechner (calc) z.B. bietet das im Modus "Programmierer" direkt an. (falls du nur fixe Werte benötigst.)

    Kommentar

    • freeride24
      Smart Home'r
      • 28.08.2015
      • 32

      #3
      Wie hast Du die Karte angebunden? Per RS232 Extension oder ein anderes Gateway?

      Kommentar

      • Gast

        #4
        Großen Dank an Labmaster für die Bemühungen.

        Bin anscheinend ein Laie mit etwas mehr wissen :-)

        ​​​​​​Hab meine Künste heute versucht, aber leider schalten die Ausgänge wider nicht.

        Hab heute entdeckt, das man in lox die XOR Prüfsumme von lox generieren lassen und automatisch hinzufügen kann.

        Möchte dies noch besser dieses WE austesten.

        Ich steuere meine Relais Card über eine loxone rs232 an.

        Werd auf jeden Fall über den Fortschritt berichten.
        Mfg

        Kommentar

        • freeride24
          Smart Home'r
          • 28.08.2015
          • 32

          #5
          Hast Du die Karte mit dem 01 - Setup Kommando initialisiert? Ich glaub vorher nimmt sie keine Befehle an. Hast Du nur eine Karte oder mehrere mit einander verbunden bzw. hast die Jumper richtig gesetzt? Hast ein Nullmodem Kabel?
          Auf jeden Fall muss die XOR Operation byteweise erfolgen -> Byte 00 XOR Byte 01 XOR Byte 02
          Zuletzt geändert von freeride24; 27.01.2018, 07:27.

          Kommentar

          • Labmaster
            Lox Guru
            • 20.01.2017
            • 2595

            #6
            Schätze auch, daß die Karte(n) nicht initialisiert wurde(n).
            Mit 1, 1, 0, 0 könnte man die Karten so initialisieren, daß die erste Karte mir Adresse 1 anfängt, alle weiteren dann aufsteigend adressierbar sind . (1 XOR 1 XOR 0 = 0)
            Eventuell Jumper nicht richtig gesetzt ?
            RX / TX vertauscht ?
            Falsche Kommunikation Parameter in Loxone gesetzt, für Karte Baudrate 19200, 8 Datenbits, 1 Stopbit notwendig.
            Zuletzt geändert von Labmaster; 27.01.2018, 11:37.

            Kommentar

            • Gast

              #7
              Hab zum ausprobieren 1Stck angehängt und die Jumper dementsprechend gesetzt.
              inizialisierung wurde wie bereits vermutet nicht durchgeführt.

              Habe einen zusätzlichen Aktor angelegt, mit den inizialisierungsbits. Wie stellt man am besten sicher, das der inizialisierungsaktor zuverlässig bei Abwesenheit der Versorgungsspannung danach wider aktiviert wird?
              An den Minutenimpuls oder gibt es einen Neustart Impuls?

              Kommentar

              • Labmaster
                Lox Guru
                • 20.01.2017
                • 2595

                #8
                Ich würde ja erwarten, daß das Setzen der Adressen (Init) nicht nach einem Stromausfall weg ist, sondern dies nur einmalig gemacht werden muss ?
                So genau geht das aber nicht aus der Doku hervor , liese sich ja aber ausprobieren sobald mal dieerste Funktion erfolgreich war.
                Und Ja, man kann sich einen Init Impulse erzeugen lassen.
                Ich mache das mit einem Verzögerten Signal welches am Eingang fix auf 1 gelegt ist und einem Monoflop dahinter.
                Gibt aber eventuell auch einfachere Möglichkeiten ?
                Zuletzt geändert von Labmaster; 28.01.2018, 11:10.

                Kommentar

                • Gast

                  #9
                  Wie schaut das konkrete eingabefertige Beispiel mit Prüfsumme zum Initialisieren mit einer Relaiskarte aus?

                  Kommentar


                  • Labmaster
                    Labmaster kommentierte
                    Kommentar bearbeiten
                    Hatte ich doch in Beitrag #6 gechrieben (mit setzen der ersten Karte auf Adresse 1)
                • Gast

                  #10
                  Wir sind gerade beim austesten, und haben festgestellt das wenn man den Befehl losschickt, die LOX Software ganz was anderes rausschickt.
                  Das haben wir in RS232 Monitor gesehen. Auch haben wir in der Vergangenheit schon mal mit Hterm versucht und wollten einzelne Byte in Hex rausschicken bzw. empfangen. Jedoch haben wir festgestellt, das andere Bytes in der LOX Software empfangen wurden bzw. andere Byte an Hterm geschickt wurden, wie erwünscht.

                  Könnt ihr vielleicht mich dabei unterstützen und es möglicherweise an einen Beispiel (ggf. mit Screenshots) zeigen, wie man eine erfolgreiche RS-232 Kommunikation (mit Hex) schon mal mit Hterm herstellen kann?

                  Hat ein anderer solches Problem schon gehabt?

                  Kommentar

                  • Gast

                    #11
                    Habe die RS232 Extension nochmal neu angelernt und nochmal wie Labmaster sagte, ausgeführt. Jetzt funktioniert es. danke

                    Kommentar

                    Lädt...