- Akku Tests und Balkonkraftwerk Speicher         
Seite 4 von 9 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 84

Thema: Gerät über RS232 ansprechen

  1. #31
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    Anzeige

    Powerstation Test
    super danke, aber was ich noch nicht verstehe ist:

    ich habe ein sende paket von 8 bytes + 2 bytes checksum,
    und

    ein empfangs paket von 6 bytes + 2 bytes cheksum

    wenn ich z.b beim senden jedes zu sendende byte dieses packets durch diese routine laufen lasse, habe ich doch am ende 16 bytes für die checksumme und nicht zwei. oder verstehe ich da was falsch?

  2. #32
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    hier der dazugehörige orginaltext:

    aufbau vom protokoll des anzusprächenden gerätes, und angaben zur checksum

    Checksum calculation
    The algorithm to compute the checksum to validate the RS485 transmission is the CRC polynomial
    standardized by CCITT:

    Bn=N^16+N^12+N^5+Bn-1

    Where N^16 means that N is elevated to the sixteenth power of 2 (i.e. it is shifted left of 16 bit)
    and where the symbol ‘+’ represents the XOR bit by bit.
    Practically, if New is the byte to process , Tmp is a swap byte and BccLo and BccHi are the low
    and high parts of the validation word, the following algorithm must be followed:

    A. Initialize BccLo=0xFF, BccHi=0xFF

    B. For each byte to transmit or receive repeat the following steps:
    1. New = New XOR BccLo
    2. Tmp=New << 4
    3. New=Tmp XOR New
    4. Tmp=New >> 5
    5. BccLo=BccHi
    6. BccHi= New XOR Tmp
    7. Tmp= New << 3
    8. BccLo= BccLo XOR Tmp
    9. Tmp= New >> 4
    10. BccLo= BccLo Xor Tmp

    C. Negate bit by bit BccLo e BccHi : CRC_L=~BccLo CRC_H=~BccHi
    Aufbau des Protokols
    The communication protocol uses commands of fixed length (8Byte + 2Byte for Checksum)
    structured as follows:

    Address Command Par.1 Par.2 Par.3 Par.4 Par.5 Par.6 CRC_L CRC_H

    The structure of the answer is also with fixed length (6 Byte + 2 Byte for Checksum) :

    Transmission State Module State Par.1 Par.2 Par.3 Par.4 CRC_L CRC_H
    schon mal danke, für deine mühe

  3. #33
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Die CRC-Rechnung erfolgt immer in die selben zwei Byte rein, also auch bei 100 Byte-Messages hast du nur 2 Byte CRC.
    BccLo u. Hi werden am Anfang gesetzt, und dann einfach weitergerechnet

    EDIT: MUSST du einen Crc-16 nehmen, für diese kleinen Messages reicht doch ein BCC mit 8 Bit genauso ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #34
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    leider kann ich mir das nicht aussuchen.
    Was in meinem progrmm jetzt noch alles ansteht:

    1.da ich mehrer geräte auf dem RS232 bus ansteuern will, muss ich mein Programm noch so umbauen, dass ich für jedes gerät eine eigene abfragesequenz habe (1.byte ist die Adresse). So das ich z.b. sende: an adresse 12

    2.desweiteren gibt es verschiedene parameter, die ich abfragen will.(2.byte Commando)

    3.weiter muss ich eine art tabelle in meinem prog hinterlegen, so dass der mc auch weiss, was der empfangene Status (2. byte status) bedeutet

    4. werde ich versuchen die über die abfrage gesammelten daten, auf einem eeprom tabellarisch abzulegen

    5. will ich ein schönes benutzer lcd menü erstellen

    6.muss ich versuchen eine software UART zu realisieren, damit ich die gesammelten daten aus dem eeprom über den pc in einem delphi prog auszuwerten, und eine statistik zu führen

    7.schluss endlich, soll der mc bei einem bestimmten empfangenem status byte eine modem, bzw. gsm-modems verbindung zu einem fax, oder dem internet aufbauen und den status übermitteln.

    so, wie du siehst, habe ich noch einiges an arbeit vor mir.
    nochmals vielen dank für deine hilfe, wär schö wenn mehr benutzer so hilfsbereit wären.

    gruß

    xeus

  5. #35
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    ah, noch was in bscom gibt es doch einen befehl crc16 weist du was genaueres darüber.arbeitet der genauso wie meiner?

  6. #36
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Komischerweise gibt Bascom keine Auskunft, welche Polynom er verwendet. Es kann aber gut sein, daß es für dich stimmt, ist ja ziemlicher Standard.
    Es zahlt sich auf jeden Fall aus, es zu versuchen, das Gefummel ist ja langweilig.

    Mächtig viel Arbeit, aus weia. Ich wünsch dir viel Erfolg !
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #37
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    mit crc16 krieg ich aber nur ein byte

  8. #38
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Nöööö. Lies dir das Help duch, der will in ein word reinschreiben
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #39
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    ja richtig, nochmals danke, werds am sonntag mal testen und dann vergleichen

  10. #40
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    jetzt hätte ich noch zwei fragen:
    1. wie kann ich das errechnette crc16 word in zwei bytes zerlegen?
    2. kann es sein, das er die sende und empfangsreihenfolge nicht richtig verarbeitet (inputbin(1) ,1..8, printbin(1),1...10)?

    gruß

    xeus

Seite 4 von 9 ErsteErste ... 23456 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test