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

Ergebnis 1 bis 7 von 7

Thema: Empfangs-DB auslesen

  1. #1
    Registriert seit
    30.11.2007
    Ort
    Eifel
    Beiträge
    82
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Servus,

    ja ich schon wieder. Habs endlich geschafft Daten mit der CP340 zu senden und zu empfangen, die werden in einem DB200 auch schön angezeigt. Frage: So von nem Anfänger an die Meister.... wie kann ich die Daten auslesen. Ich bekomme ja mit das die im DB200 liegen und die Länge des aktuellen Telegramms bekomme ich ja auch mit... so ist das ja nicht. Wollte mir jetzt nen eigenen FC schreiben um den DB200 auszulesen und das Telegramm zu zerlegen...

    Zur Zeit hab ich bei SPS en ganzes Sägewerk vor dem Kopf....
    Zitieren Zitieren Empfangs-DB auslesen  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    wenn du mal genau beschreibst was du zerlegen willst und wie auswerten findet sich bestimmt ne Lösung.

    André
    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....
    Zitieren Zitieren String  

  3. #3
    Registriert seit
    30.11.2007
    Ort
    Eifel
    Beiträge
    82
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Im Anhang habe ich den DB200 mal als Screenshot beigefügt. Hinter jedem letzten Zeichen kommt noch ein "CR" dazu als Endezeichen. So und nun will ich diesen String in einen eigenen FC einlesen und dann dort zerlegen und verarbeiten.....

    Zwischen zwei Befehlen steht ein ";" als Trennung. Dann sieht das wie folgt aus: "X 5000;K90" und das letzte Zeichen ist immer ein Carrige Return.....

    Aber wie gesagt, ein Sägewerk vor dem Kopf ist im Moment nix gegen die Blockade die ich da hab...
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Black Scorpion (30.03.2009 um 17:00 Uhr)

  4. #4
    Registriert seit
    07.10.2008
    Beiträge
    78
    Danke
    1
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Prinzipfrage !
    Ist es eventuell eine feste Länge des Telegrammes,
    dies wird bei serieller Übetragung oft gemacht.
    Wenn nicht kannst Du SCL ?

    Ansonsten einen String anlegen z.B. String[200]
    Dieser liegt z.B. im DB200 ab Byte 0
    Die Länge (1 Byte) aus dem Receive kopierst du in DB200.DBB1, dort steht die belegte Länge vom String.
    Ab hier kannst Du mit den Stringoperationen der S7 nach z.B. einem ";" suchen, den String bis zur Fundstelle umkopieren nach z.B. Befehl1, dann weitersuchen und wieder einen String extrahieren von Fundstelle1+1 bis Fundstelle 2 usw.
    Gib aber einfach mal genauer an, was Du da für daten erhälst.

  5. #5
    Registriert seit
    30.11.2007
    Ort
    Eifel
    Beiträge
    82
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nein, die Länge des Telegrammes kann variieren....

    Ja ein wenig SCL beherrsche ich...hab schon eigene Funktionen geschrieben und bin auch zuversichtlich das das hier auch klappen wird, wenn ich wüsste wie es geht....

    DB200.DBB1 ==> was ist das, was kann ich darunter verstehen....

    Also ich will die Zeichenkette die ich empfangen habe, die im DB200 steht mit der angegebenen Länge lang nach auslesen und irgendwie ablegen, in ner Variablen oder so, damit ich die dann durchsuchen und weiter verarbeiten kann....

  6. #6
    Registriert seit
    07.10.2008
    Beiträge
    78
    Danke
    1
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Wenn Du den String im DB200 ab Byte 0 mit z.B. String[200] anlegst, so ist dieser bereich genau 202 Byte lang.
    im ersten byte DB200.DBB0 steht eine 200 für die definierte Länge des String,
    im zweiten byte steht die tatsächliche benutze Länge. Wenn Du also 50 zeichen empfängst, kopierst Du die Empfangsdaten ab dem 3.Byte in den String. Dann trägst du die EMpfangene Länge ein und hast eine gebrauchsfertigen String zur weiteren Verarbeitung.
    Zur Vorsicht lösche ich den Empfangsdb nach dem Umkopieren/Auswerten wieder ab, damit kein Müll beim nächsten Empfang zu Fehlern führt.

  7. #7
    Registriert seit
    30.11.2007
    Ort
    Eifel
    Beiträge
    82
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Im Prinzip hab ich das jetzt dank dir auch verstanden. Danke... Aber jetzt stellt sich die Frage "WIE KOPIERT MAN DAS?" Ich bin jetzt nur mit Bits unterwegs gewesen und solch was komplexes hab ich noch nie gemacht....

Ähnliche Themen

  1. S7 MMC auslesen
    Von Wowa05 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 30.01.2010, 11:20
  2. PAW auslesen?
    Von metacircle im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.12.2008, 13:11
  3. SZL auslesen
    Von der Micha im Forum Hochsprachen - OPC
    Antworten: 19
    Letzter Beitrag: 09.08.2008, 19:02
  4. OP 37 auslesen!
    Von RobRoy94 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 16.03.2006, 18:28
  5. SPS mit c auslesen
    Von Speedy3311 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 24.08.2005, 15:30

Lesezeichen

Berechtigungen

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