- 12V Akku mit 280 Ah bauen         
Seite 3 von 9 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 84

Thema: Gerät über RS232 ansprechen

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

    Powerstation Test
    ok, werd ich mal austesten, aber ist es prinzipiell so richtig im meinem program, oder muss ich die zu vergleichende zahl irgendwie in ein byte umwandeln?

    danke

    xeus

  2. #22
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Nö. inputbin gibt 1:1 das abgesendete Zeichen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    Also stimmt der vergleich so:


    Sub Status
    If Packete(2) = 006 Then 'Vergleich ob das 2.empfangsbyte = 6
    Line3 = "kein Fehler"
    Print "kein fehler"
    Else
    Line3 = " Fehler"
    Print "fehler"
    End If
    return
    end sub
    stimmt das so?

    ich hab ets mal nach

    inputbin Packete(1),8

    folgendes geschrieben:

    printbin packete(1);8

    kommt alles etwas durcheinander an, stimmt das so?

  4. #24
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Das stimmt schon so, auch die Reihenfolge. alles ok.
    Irgendwie nach dem inputbin kontrollieren, dann fällt es dir wie Schuppen aus den Haaren
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #25
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    also hab deinen vorschlag mal so eingefügt, und getestet.
    mir ist aufgefallen, das er die reihenfolge irgendwie durcheinander haut.

    weisst du was ich dagegen machen kann?

  6. #26
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Er haut sie eben nicht "irgendwie" durcheinander, das hat sicher Methode.
    schreib dir untereinander
    SENT..Byte1, Byte2,...., Byte8 (soll)
    RECV..Byte1, Byte2,...., Byte8 (ist)
    Irgendwas ist zuviel oder zuwenig
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #27
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    wie meinst du das?

    mir ist aufgefallen, das er immer die 3 letzten bytes vorne anhängt:
    z.b.

    6
    7
    8
    1
    2
    3
    4
    5

    was kann ich da machen?

  8. #28
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Könnte sein, daß dein PC-Programm früher zu senden beginnt, als der Controller bereit ist.

    Laß' den Bascom buffern
    Schreib vorne irgendwo

    CONFIG SERIALIN = buffered, SIZE = 24

    Dann ist er immer empfangsbereit.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #29
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    40
    Beiträge
    366
    juihu, ich habs geschaft, wenn jetzt das 2.byte 6 ist schreibt er mir 'kein fehler'

    danke, danke, danke.

    kannst du mir vielleicht helfen, das problem mit der checksumme zu lösen?

  10. #30
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Puh, ich hab das einfach nur abgeschrieben bzw. angepaßt
    Code:
    'Checksumme berechnen
    Clc:                                                        'Init
    'A. Init BccLo=0xFF, BccHi=0xFF
    
       Bcclo = &HFF                                             'setze high
       Bcchi = &HFF                                             'setze high
    
    'B   Für jedes Byte das gesendet und empfangen wird
    
       New = &B11011001                                         'lade byte
    
    
       New = New Xor Bcclo                                      'new=new XOR BccLo
       Tmp = New
       Shift Tmp , Left , 4                                     'Tmp = New << 4
       New = Tmp Xor New                                        'New = Tmp Xor New
       Tmp = New
       Shift Tmp , Right , 5                                    'Tmp = New >> 5
       Bcclo = Bcchi                                            'Bcclo = Bcchi
       Bcchi = New Xor Tmp                                      'Bcchi = New Xor Tmp
       Tmp = New
       Shift Tmp , Left , 3                                     'Tmp = New << 3
       Bcclo = Bcclo Xor Tmp                                    'Bcclo = Bcclo Xor Tmp
       Tmp = New
       Shift Tmp , Right , 4                                    'Tmp = New >> 4
       Bcclo = Bcclo Xor Tmp                                    'Bcclo = Bcclo Xor Tmp
    
    
    'C. Negieren Bit by Bit BccLo & BccHi: CLC_L=~BccLo CLC_H=~BccHi
       Clc_l = Bcclo Xor &HFF
       Clc_h = Bcchi Xor &HFF
    Wenn du mehrere Byte checkst, mußt du zuerst A) initialisieren,
    dann für jedes Byte einmal B)
    und am Schluß einmal C)

    wenn ich das richtig verstehe
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 3 von 9 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen