Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: CP340 Problem

  1. #1
    Registriert seit
    18.04.2007
    Beiträge
    103
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi, ich soll über ein CP340 einen Linx Drucker mit Ascii ansteuern.
    Wenn der Drucker mir was sendet, ich die daten empfange in den DB,
    dann zeigt er mir nur "vierecke" als char an...
    wiso ist das so?
    ich kann den drucker über den cp auch garnicht steuern, nur über mein laptop und der mitgelieferten software.
    wie schick ich den ein Steuerzeichen im asccii raus?

    danke

    mfg

    bennzi
    Zitieren Zitieren CP340 Problem  

  2. #2
    Registriert seit
    19.07.2004
    Beiträge
    414
    Danke
    44
    Erhielt 34 Danke für 20 Beiträge

    Standard

    Hallo,

    du bekommst, bzw. sendest ja mindestens CR/LF (10h/13h), das sind schon mal "Vierecke"
    Am besten du besorgst dir mal eine ASCII Tabelle. Alle "normalen" Zeichen siehst du ja auch, nur die Steuerzeichen sehen komisch aus...
    Für richtiges Chaos,braucht man sehr schnelle Computer.
    Und wieso einfach... .... wenn es auch Siemens gibt




  3. #3
    bennzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.04.2007
    Beiträge
    103
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    kool, danke für die antwort vorerst. *freu
    also nen acii tabelle hab ich. aber ohne steuerzeichen. wie sehen die aus?
    ich muss zb: 1B 03 12 02 1B als ascii senden. das sind alles steuerzeichen für den drucker. wie send ich denn des als ascii, wenn ich alles umwandle kommt auch nich richtg an. weil ich ja nur zeichen schick...

    mfg


    dankeeeeschööööönn

  4. #4
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Hallo Bennzi,

    dein Problem liegt daran, das du alle ASCII -Zeichen lesen willst.
    Aber nur ein Teil davon sind sichtbare Zeichen.

    bis Hex20, oder Dez32 sind es immer nur Steuerzeichen.
    Ich lege den DB so an, das die Steuercode´s als Byte, und die Texte als Char definiert sind
    z.bb

    DBb0 Byte b#16#02 // Start Text
    dbb1 Char 'H'
    dbb2 Char 'A'
    dbb3 Char 'L'
    dbb4 Char 'L'
    dbb5 Char 'O'
    dbb6 byte b#26#03 // End of Text
    dbb7 byte b#16#0D // Return
    dbb8 byte b#16#0A // Line Feed

  5. #5
    bennzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.04.2007
    Beiträge
    103
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hi jabba
    häää. ich glaub solangsam wirds mir zu hoch.
    ok das mit dem datenbeistein is mir einigermaßen klar.

    bis Hex20, oder Dez32 sind es immer nur Steuerzeichen. ???
    was soll dass heissen?

    wieso b#16#02 oder b#26#03 oder b#16#0D oder b#16#0A ???
    des passt doch garnicht in ein byte?
    oder geht jeweils ein steuerzeichen in ein byte?? häää??
    wie setzten sich denn diese steuerzeichen zusammen? nullblick.

    also in dem programm von dem drucker ist es so, damit er weiss dass es ein steuerzeichen ist, schreibe ich zb "\x" vor des 1B usw.
    praktisch \x1B\x02\x12\x03\x1B klappt auch gut und kommt richtig an.


    danke jabba du progger *gg

    mfg
    Geändert von bennzi (13.06.2007 um 17:26 Uhr)

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    b#16#0D ist ein Byte Hexadezimal dargestellt mit dem Wert Dezimal 13.
    Die Steuerzeichen 0D 0A heissen auch CR LF oder auch Carriage-Return Line-Feed und stammt aus der Schreibmaschinenzeit (Wagenrücklauf und Zeilenvorschub). Wurde für die Drucker übernommen.

    Du kannst die Steuerzeichen einzeln (als Byte) oder als komplette Zeile (als String) übertragen.

  7. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    bennzi (14.06.2007)

  8. #7
    bennzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.04.2007
    Beiträge
    103
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hm. ich denk solangsam wirds klarer.

    des b bedeutet byte
    aber was ist der unterschied zwischen 16 und 26
    dannach kommt der code in HEX.

    also in meinem fall müsste ich wenn ich nen 1B usw als steuerzeichen senden wollte des so in nem db schreibn:

    dbb0 byte b#16#1B
    dbb1 byte b#16#02
    usw?

    schickt der des dann aber nich alle einzeln als zeichen?

    oder als string
    dbb0 string 'b#16#1Bb#16#02b#16#12....'

    seh ich des richtig?

    danke euch!!!!!!!!!!!!!!!!!

  9. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Zitat Zitat von bennzi Beitrag anzeigen
    was ist der unterschied zwischen 16 und 26
    dannach kommt der code in HEX.
    Das war mit Sicherheit ein Schreibfehler. Da wollte Jabba auch b#16#.. schreiben.

    In den String musst du die Zeichen schon alle einzeln an die richtig Stelle schreiben (in Step7). In SCL wäre das etwas einfacher. In deinem Fall sähe das so aus, dass du zunächst deinen String (vielleicht in einem DB) deklarierst und dann die einzelnen Werte an die richtige Stelle schreibst.
    Beispiel :
    Code:
    im DB1 deklarierst du einen String mit der gewünschten Länge
    
    L  'H'
    T DB1.DBB2
    L  'A'
    T DB1.DBB3
    L  'L'
    T DB1.DBB4
     L  'L'
    T DB1.DBB5
     L  'O'
    T DB1.DBB6
     L  b#16#0D
    T DB1.DBB7
     L  b#16#0A
    T DB1.DBB8
      
    usw.
    
    Dann Nutz-Länge im Byte 1 eintragen ...
    Das könntest du dann übertragen - Verbesserungen sind natürlich möglich ...

  10. #9
    bennzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.04.2007
    Beiträge
    103
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ahhhhhhhhhh!!!!!
    da freut man sich ja richtig auf morgen. hihi

    zu den nutzdatenlängen: muss ich da angeben wieviele byte lang der string is gell? wenn ich einen string[20] '00000000000000000000' erstelle, dann macht der des aber automatisch oder?
    sende ich ihm dann aber trotzdem ab byte 2 nur alles und lass 0 und 1 weg oder muss ich byte 0 und 1 dazusenden?


    danke dir echt herzlich. ich hätt mir noch den kopf zertrümmert....
    aber woher soll ich als laihe denn wissen wie ich ein ascii steuerzeichen sende? hihi b#16#hexcode. steht ja auch nirgends. *gg


    DAAAAAAAANKE!!! werds gleich morgen austestn und bescheit gebn *froi!

  11. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Bennzi,
    Byte 0 und 1 sind der Header des Strings für Siemens-interne Verwendung. Im Byte 0 steht die deklarierte Länge und in Byte 1 die effektive Länge.
    Wenn du den Kram versendest, dann gibst du als Start-Pointer dein Byte 2 an und musst die (effektive) Länge ja noch seperat angeben. Ansonsten hättest du den String auf jeden Fall "initialisieren" müssen ...

    Viel Spaß morgen beim "Spielen" ...

Ähnliche Themen

  1. S7 319F CP340 Kommunikations Problem
    Von Onkel_G im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 23.07.2010, 09:27
  2. Protokoll CP340
    Von Snoopy123123 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 12.06.2008, 17:53
  3. CPU 314 mit CP340 projektieren Problem
    Von noeppkes im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.09.2007, 17:22
  4. S7 & Cp340 Rs232
    Von repök im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 31.03.2007, 18:04
  5. CP340
    Von mehdi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.02.2005, 20:28

Lesezeichen

Berechtigungen

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