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

Ergebnis 1 bis 5 von 5

Thema: Daten über die Freie Kommunikation in die S7-200 laden

  1. #1
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    357
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS Freunde.

    Da ich mich nun mit der Freien Lommunikation mit der S7-200 beschäftigen will bin ich auf ein paar Sachen gestoßen die ich mir nicht erklären kann. Habe folgendes Programm das ich in den Tipps und Tricks der S7-200 gefunden habe (Beispiel ist Programm Nr. 20). Die Programmzeilen lauten wie folgt. Diese Programmzeile werden in einem Interrupt aufgerufen. Es wurde von Siemens für einen Barcodeleser geschrieben.
    LD SM0.0
    MOVB SMB2, *VD56
    INCD VD56
    INCW VW54
    LDB= SMB2, 10
    MOVD VD60, VD66
    MOVW +0, VW64
    ATCH INT_1, 8
    MOVB 2, AB0
    Die erste Fräge währe für was brauche ich das INCW VW54 in diesem Programm es werden ja hier keine Daten abgefragt.
    Die zweite frage währe zur folgenden Programmzeile LDB= SMB2,10. Was wird da im SMB2 mit 10 vergliechen die Anzahl der übertragenen Daten oder was anders.
    Würde mich freuen wenn mir einer diese Fragen erklären könnt. Danke schonmal im voraus.

    Hubert
    Zitieren Zitieren Daten über die Freie Kommunikation in die S7-200 laden  

  2. #2
    Registriert seit
    21.07.2003
    Ort
    Bangkok / Thailand
    Beiträge
    98
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Hallo Hubert,

    der von dir hier beschrieben Programmteil befindet sich im Empfangs-Interrput (INT_0) der freien seriellen Kommunikation.
    Das heisst, mit jedem Zeichen das empfangen wird, wird dieser Interput ausgelöst und das eintreffende Zeichen in Variabeln gespeichert.

    SMB2 = das aktuell über Schnittstelle "0" empfangene Zeichen.
    VD56 = Pointer auf die Stelle wohin das Zeichen geschrieben wird
    *VD56 = "*" bedeutet hier dass die in VD56 stehende Adresse verwendet wird.
    Das empfangene Zeichen wird also NICHT in VD56 selbst, sondern in die hier stehende Adresse gelegt!

    MOVB SMB2, *VD56 'Das empfangene Zeichen wird an die in VD56 stehende Adresse geschrieben.
    INCD VD56 'Der Adress-Pointer wird um 1 erhöht (für das nächste neue Zeichen).


    Zu deiner ersten Frage....
    INCW VW54 'VW54 um 1 erhöhen.

    Da der Interrupt mit jedem empfangenen Zeichen ausgelöst wird, steht in VW54 die Anzahl der Interrupt-Aufrufe.
    Anders gesagt, VW54 enthält die Anzahl der über Schnittstelle "0" empfangene Zeichen.
    VW 54 ist demnach die Länge der vom Barcodeleser gesendeten Zeichenkette.
    (VW54 muss natürlich auch vor jedem neuen Empfang auf "0" gesetzt werden)

    Zu deiner zweiten Frage....
    LDB= SMB2, 10 'Inhalt von SMB2 mit Dezimal-wert 10 vergleichen.

    Ist der Wert in SMB2 gleich DEZ "10" (ASCII "LF") bedeutet dies, dass der Barcodeleser die Übertragung der Zeichenkette
    abschliesst und seine "Endkennung" sendet.

    Bei der seriellen Kommunikation werden sehr häufig die ASCII-Zeichen "LF" (Wert=10) oder "CRLF" (Wert=13) verwendet.

    Ich bin mir zwar nicht 100% sicher, aber ich glaube "LF" ist die Endkennung beim Empfangen von Zeichenketten, und
    "CRLF" ist die Endkennung beim Senden einer Zeichenkette an ein angeschlossenes Gerät.
    Letzters wird auf deine Anwendung eher nicht zutreffen, weil der Barcodeleser vermutlich nur Daten senden kann.

    Ich habe bereits einige Anwendnung mit der freien Kommunikation (Senden & Empfangen) realisiert und hatte eigentlich
    keine nennenswerten Probleme damit.

    PS. Ich würde dir empfehlen zur Inbetriebnahme deiner Anwendung, eine CPU 226 zu verwenden, weil diese 2 Schnittstellen
    besitzt wovon du eine zum Anschluss des Barcodelesers verwenden kannst und die andere für die PPI Verbindung zu deinem PC.
    Dadurch kannst du die Empfange Zeichenkette direkt auf dem Bildschirm ansehen ohne jedesmal dein Verbindungskabel zu wechseln.

    Gruss Guido

  3. #3
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    357
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo Guido.

    Soweit habe ich die Erklärung von dir verstanden. Aber eine Frage bleibt noch. Wenn ich nochmal auf das Beispielprogramm von Siemens zurückkomme (Programmbeispiel "20") das ist ja das VW54 und VW64 für die Zählung der Empfangen Zeichen an Schnittstelle 0 zuständig. Im Programm werden Sie aber garnicht weiter verwendet (vergleichen mit einem Sollwert). Also nach meiner Meinung brauch ich diese beiden ja nicht, oder habe ich da was noch nicht ganz verstanden. Würde mich freuen wenn mir jemand darauf eine Antwort geben kann. Danke im voraus.

    Hubert
    Zitieren Zitieren Daten über die Freie Kommunikation in die S7-200 laden  

  4. #4
    Registriert seit
    21.07.2003
    Ort
    Bangkok / Thailand
    Beiträge
    98
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Hallo Hubert,

    freut mich dass ich dir mit meinen Erklärungen weiter helfen konnte.

    Ich habe mir das (Programmbeispiel "20") nochmals genauer angesehen und stimme dir zu
    dass VW54 und VW 64 nicht weiter im Programm gebraucht werden.
    Sie könnten demnach eigentlich wegfallen. Richtig!

    Ich denke mal dass man mit VW54/VW64 eigentlich nur die "Möglichkeit" aufzeigen möchte
    auch auf die Länge der empfangenen Zeichen-kette des Barcodelesers zu zugreifen.
    Ob es nachher wirklich gebraucht wird hängt dann vom jeweiligen Projekt ab.

    Ich könnte mir vorstellen dass es bei gewissen Anwendungen interessant sein kann zu
    prüfen ob der Barcodeleser die richtige Anzahl an Zeichen gesendet hat.
    (Eine fixe Zeichenketten Länge vorausgesetzt!)
    Durch prüfen der Zeichenketten-länge könnte einem Bediener, mittels eines roten (Fehler) und
    grünen (OK) Signallicht mitgeteilt werden, dass die S7-200 den Barcode richtig empfangen hat.
    Bei rotem Licht (Fehler) müsste der Barcode dann nochmals neu eingescannt werden.

    Ich hoffe ich konnte dir diese Frage auch noch ausreischend beantworten.

    Gruss Guido

  5. #5
    Avatar von hubert
    hubert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    357
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Guido.

    Danke nochmals für deine Hilfe. Konnte leider nicht schneller antworten, bin momentan stark im Stress. Habe nun den größten teil verstanden und werde mich mal daran versuche ein Programm mit meinem Wissen zuschreiben. Es sollen in diesem Programm ungefähr 100 Codekartennummer eingelesen und gespeichert werden und unterschiedlichen Kunden zugewiesen werden. Sollte ich noch Probleme haben so melde ich mich einfach wieder. Also nochmal Danke für deine Hilfe.

    Hubert
    Zitieren Zitieren Daten über die Freie Kommunikation in die S7-200 laden  

Ähnliche Themen

  1. Daten über MP auf PC laden (Excel, LAN)
    Von Hocheck im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 10.08.2012, 21:25
  2. Frage zum laden von Daten (Pointer)
    Von INST im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 13.10.2008, 15:14
  3. S7-226 freie Kommunikation mit ViX250IM
    Von Guido im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 02.09.2005, 19:24
  4. Freie Kommunikation bei S7-200
    Von paladin112 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 15.02.2005, 10:20
  5. Antworten: 5
    Letzter Beitrag: 09.08.2004, 11:13

Lesezeichen

Berechtigungen

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