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

Ergebnis 1 bis 7 von 7

Thema: Chipkartenleser an Serielleschnitstelle ET 200S

  1. #1
    Registriert seit
    10.12.2009
    Ort
    Salzburg, Österreich
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo erst mal!

    Nun also mein Problem liegt darin, dass ich zwar einiges Erfahrung in der Programmierung mit Speicherprogrammierbaren Steuerungen und sonstigen Programmiersprachen mit bringe jedoch relativ neu auf dem gebiet von Step7 und dessen AWL bin.

    Nun habe ich das Problem das ich von einer Chipkarte gerne die Daten zum Authentifizieren auslesen möchte. Das Lesegerät (von Syscor) habe ich dabei über eine Serielle Schnittstelle mit dem Seriellenschnittstellenmodul der ET 200 S verbunden. (6ES7 138-4DF01-0AB0)

    Welche Informationen oder Dokumentationen besitze ich noch zum Chipkartenleser:
    1.) Er kann sowohl im ASCII als auch im Binärmodus laufen.
    2.) Ich kenne die Befehle die ich an den Chipkartenleser senden muss sowohl im ASCII als auch im Binärmodus.

    Mein Programm läuft derzeit im ASCII modus da ich nicht weiß wie ich den Binärmodus umsetzen kann.

    Code:
    //select commando senden
    
          U     "2000ms"
          =     L      1.0
          BLD   103
    
          CALL  "S_SEND" , "IDB_send_login"
           REQ    :=L1.0
           R      :=
           LADDR  :=272
           DB_NO  :=1
           DBB_NO :=0
           LEN    :=
           DONE   :="m_ready_send"
           ERROR  :=
           STATUS :=
           COM_RST:="m_restart"
          NOP   0
    
    //warten bis fertig gesendet
          U     "m_ready_send"
          R     M     10.0
    
    
    //empfangen aktivieren
    
          U     "m_ready_send"
          S     "m_rcv"
    
    
          U     "m_rcv"
          =     L      1.0
          BLD   103
    
    
          CALL  "S_RCV" , "IDB_rcv_ID"
           EN_R   :=L1.0
           R      :=
           LADDR  :=272
           DB_NO  :=2
           DBB_NO :=#DB_start
           NDR    :="m_ready_rcv"
           ERROR  :=
           LEN    :=
           STATUS :=
           COM_RST:="m_restart"
          NOP   0
    
    //wenn das Empfangen Abgeschlossen wurde wird der Merker wieder freigegeben um
    //den nächsten ablauf zu gewährleisten
    
          U     "m_ready_rcv"
          R     "m_rcv"
    
    
    
    //Überprüfen der Empfangenen Daten mit dem Buchstaben der übermittelt wurde
    
          CALL  "BYTE_COMPARE" , "IDB_BYTE_COMPARE"
           IN_Byte_1:="DATA_Chipkate".ID_BYTE1
           IN_Byte_2:=#failure_code
           RE_out   :=#error
    im Großen und ganzen ist meine Idee ganz einfach doch kann das auch Funktionieren? Im Moment tut es das noch nicht. Hat jemand Erfahrung damit und kann mich jemand auf diesem Gebiet wieder auf den rechten Weg bringen den ich glaube im Moment befinde ich mich ich Nirvana.

    Ebenso in welcher Form die Empfangenen Daten abgelegt werden ist mir nicht ganz klar.

    Über einen Tipp wäre ich sehr erfreut. Sollte ich wichtige Informationen vergessen haben kann ich die sofort nachreichen doch weiß ich auf dem Gebiet nicht was wirklich wichtig ist.

    lg HaRii
    Zitieren Zitieren Chipkartenleser an Serielleschnitstelle ET 200S  

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

    Standard

    Mir fällt auf, das Len beim senden nicht gesetzt ist, da muss die Länge der zu sendenden Daten rein.

    Der Aufbau hängt natürlich vom Leser ab, kannst Du mal das Projekt oder den DB einstellen, damit man sieht wie du die Anfrage aufgebaut hast,

    Ansonsten kann noch die Schnittstelleneinstellung falsch ein.

    Weitere Anregungen hier

  3. #3
    hari ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2009
    Ort
    Salzburg, Österreich
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die extrem schnelle Hilfe!

    ich habe es aus dem Grund nicht eingetragen weil ich sie nicht kenne.
    Vor allem ist mir nicht klar ob es ausreicht einfach nur den Buchstaben (Befehl) zu übertragen oder ob er in ein Parket das ich erstelle gegliedert werden muss.
    Angehängte Dateien Angehängte Dateien

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

    Standard

    Erst mal auf die schnelle.

    Das senden passt auf keinen Fall.

    Zum senden musst du einen DB erstellen der das Abfragekommando enthält

    z.B. DB5
    Dann kommt der Befehl, den kenne ich nicht das muss aus der Beschreibung des Lesers hervorgehen, vieleicht mal uploaden.
    Nur Unverbindlich wie so etwas aussehen könnte
    Zb: DB5
    DBB0 CHAR 'R'
    DBB1 CHAR 'C' Befehl Lese Karte (Read Card)
    DBB2 Byte w#16#0A CR
    DBB3 Byte w#16#0D Line Feed

    Bei ASCII werden die anfragen meist mit CR+LF abgeschlossen.
    diese vier Bytes müßen dann zum Leser gesendet werden , dann ist LEN=4

  5. #5
    hari ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2009
    Ort
    Salzburg, Österreich
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ok dann kann das schon einmal so ganz und gar nicht stimmen:

    sende ja jetzt nur ein 's' zum Selektieren der Chipkarte ohne jeglichen Rahmen zu bilden.

    im anhang alle Dokumente die ich zum Kartenleser besitze...

    meine 1. Idee war ja den reader einfach im Binärmodus zu belassen und ihm dann die Telegramme zu übermitteln. könnte das funktionieren?

    Schnittstelle der SPS dabei auf ASCII
    Angehängte Dateien Angehängte Dateien

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

    Standard

    wenn du in die PDF Befehle schauts sieht du ja was du senden musst.

    Zum selectieren muss im DB stehen
    z.B. DB5
    DBB0 byte w#16#02 //STX
    DBB1 byte w#16#01 // Leser 1
    DBB2 byte w#16#01 // Select Commando
    DBB3 byte w#16#73 // = Ascci "s"
    DBB4 byte w#16#73 // BCC Block Checksumme
    DBB5 byte w#16#03 // ETX

    Len wäre 6

    Probier doch mal erst den Leser mit Hyperterminal zu "verstehen", dazu kann man eine Datei anlegen mit den Befehlen und diese vom PC aus senden. Man braucht aber einen Editor für Hex z.b WinCommander.

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

    hari (30.01.2010)

  8. #7
    hari ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.12.2009
    Ort
    Salzburg, Österreich
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    danke danke ich glaube du hast mich gerade wieder einen schritt weiter gebracht =)

Ähnliche Themen

  1. Suche Chipkartenleser an S7
    Von JaZs im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 01.07.2011, 23:22
  2. Et 200s
    Von Thom@at im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 13.01.2011, 00:30
  3. Diagnosedaten ET 200S
    Von JensCS im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.07.2009, 08:25
  4. Kommunikation S7 CPU & ET 200S FC (FU)
    Von breno im Forum Antriebstechnik
    Antworten: 2
    Letzter Beitrag: 12.02.2009, 13:22
  5. ET 200S
    Von Balou im Forum Feldbusse
    Antworten: 5
    Letzter Beitrag: 01.09.2004, 19:47

Lesezeichen

Berechtigungen

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