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

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

Thema: Auswertung Statuswort von AG_SEND/AG_RECV

  1. #1
    Registriert seit
    03.09.2007
    Ort
    Saarland
    Beiträge
    79
    Danke
    4
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bin gerade dabei mit AG_SEND und AG_RECV rumzuspielen, da ich es brauch für eine Datenübertragung zu/von einer Schraubersteuerung über Profibus.

    Jetzt meine Frage... Wie kann ich das Status-WORD auswerten???

    Ich will verschiedene Zustände abfangen und entsprechend darauf reagieren. Muss ich mir dann aus dem Statuswort die einzelnen Bits zusammensuchen oder gibts ne einfachere und "elegantere" Methode dafür?

    Ich steh im Moment ein wenig auf dem Schlauch...
    Zitieren Zitieren Auswertung Statuswort von AG_SEND/AG_RECV  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Sieh dir mal die Hilfe zu den FC an, oben rechts "siehe auch", dort dann "Auswerten der Anzeigen". Da sind sämtliche Ausgabewerte des Status erklärt.

    Code:
    Die folgende Tabelle informiert über die vom Anwenderprogramm auszuwertende Anzeige, gebildet aus DONE, ERROR und STATUS.
    Hinweis
    Beachten Sie für die Einträge mit der Codierung 8FxxH unter STATUS auch die Angaben im Referenzhandbuch STEP 7 Standard und Systemfunktionen. Sie finden dort Hinweise im Kapitel “Fehlerauswertung mit dem Ausgangsparameter RET_VAL”
    
    DONE    ERROR    STATUS    Bedeutung
    1    0    0000H    Auftrag fertig ohne Fehler.
    0    0    0000H    Kein Auftrag in Bearbeitung.
    0    0    8181H    Auftrag läuft.
    0    1    7000H    Die Anzeige ist nur bei S7-400 möglich: Der FC wurde mit ACT=0 aufgerufen; der Auftrag wird jedoch nicht bearbeitet.
    0    1    8183H    Die Projektierung fehlt oder der FDL-Dienst im PROFIBUS-CP ist noch nicht gestartet.
    0    1    8184H    -    Unzulässiger Datentyp für den Parameter SEND angegeben.-    FDL-Verbindung ohne Auftragspuffer: Systemfehler.-    FDL-Verbindung mit Auftragspuffer: Parameter LEN<4 oder unzulässiger Parameter im Auftragsheader (bei freiem Layer 2 Zugang).
    0    1    8185H    Parameter LEN größer als Quell-Bereich SEND.
    0    1    8186H    Parameter ID ungültig.  ID != 1,2....15,16.
    0    1    8301H    SAP bei Ziel-Station nicht aktiviert.
    0    1    8302H    keine Empfangsresourcen bei Ziel-Station, Empfänger-Station kann empfangene Daten nicht schnell genug verarbeiten bzw. hat kein Empfangsressourcen bereitgestellt.   
    0    1    8303H    Der PROFIBUS-Service ( SDA-SendDatawithAcknowledge)  wird auf diesem SAP von der Ziel-Station nicht unterstützt.Die Anzeige kann auch temporär auftreten, wenn Verbindungen oder Netzübergänge “im RUN” geladen werden
    0    1    8304H    Die FDL-Verbindung ist nicht aufgebaut.
    0    1    8311H    Die Zielstation ist unter der angegebenen PROFIBUS-Adresse nicht erreichbar oder der benutzte Service ist für die angegebene PROFIBUS-Adresse nicht möglich.
    0    1    8312H    PROFIBUS-Fehler im CP : z.B. Buskurzschluß, eigene Station nicht am Ring,.
    0    1    8315H    Interner Parameterfehler  bei einer FDL-Verbindung mit Auftragsheader: Parameter LEN<4 oder unzulässiger Parameter im Auftragsheader (bei freiem Layer 2 Zugang).
    0    1    8F22H    Quell-Bereich ungültig. z.B.:·    Bereich im DB nicht vorhanden·    Parameter LEN < 0
    0    1    8F24H    Bereichsfehler beim Lesen eines Parameters.
    0    1    8F28H    Ausrichtungfehler beim Lesen eines Parameters.
    0    1    8F32H    Parameter enthält zu große DB-Nummer.
    0    1    8F33H    DB-Nummer Fehler.
    0    1    8F3AH    Bereich nicht geladen (DB).
    0    1    8F42H    Quittungsverzug beim Lesen eines Parameters aus dem 
    Peripheriebereich.
    0    1    8F44H    Der Zugriff auf einen in der Bausteinbearbeitung zu lesenden Parameter ist gesperrt.
    0    1    8F7FH    Interner Fehler. z.B. unzulässige ANY-Referenzz.B. Parameter LEN = 0 .
    0    1    8090H    ·    Eine Baugruppe mit dieser Baugruppen-Anfangsadresse ist nicht vorhanden.·    Der verwendete FC passt nicht zur verwendeten Systemfamilie (es sind unterschiedliche FCs für S7-300 und S7-400 zu verwenden).
    0    1    8091H    Baugruppen-Anfangsadresse nicht auf Doppel-Wort-Raster.
    0    1    8092H    In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.    (nur bei S7-400)
    0    1    80A4H    Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut. (bei neueren CPU-Ausgabeständen) Dies kann beispielsweise  begründet sein durch:·    eine fehlende Projektierung von Verbindungen;·    eine Überschreitung der maximalen Anzahl parallel betreibbarer CPs (Angaben hierzu siehe CP-Gerätehandbuch).
    0    1    80B0H    Baugruppe kennt den Datensatz nicht.
    0    1    80B1H    Der Ziel-Bereich ist ungültig.z.B. Ziel-Bereich > 240 Bytes.bei neueren CP-Typen ist folgende Bedeutung möglich (siehe CP-Gerätehandbuch):Die Anzahl der zu sendenden Daten überschreitet die für diesen Dienst zulässige Obergrenze.
    0    1    80B2H    Die K-Busverbindung zwischen CPU und CP ist nicht aufgebaut.(bei älteren CPU-Ausgabeständen; sonst 80A4H ; weitere Angaben siehe dort ) 
    0    1    80C0H    Datensatz kann nicht gelesen werden.
    0    1    80C1H    Der angegebene Datensatz ist gerade in Bearbeitung..
    0    1    80C2H    Es liegt ein Auftragstau vor.
    0    1    80C3H    Betriebsmittel (Speicher) belegt.
    0    1    80C4H    Kommunikationsfehler (tritt temporär auf; daher ist Wiederholung im Anwenderprogramm sinnvoll.
    0    1    80D2H    Baugruppen-Anfangsadresse ist falsch.
    
    V5.0 SP3
    Also nach Start immer Word auslesen und auf 0 vergleichen, dann ist alles IO und fertig, 8181H bedeutet, der Auftrag läuft noch, mit den anderen kann man z.Bsp. eine Fehlermeldung generieren.

    PS: Muß man aber nicht unbedingt machen, es gibt ja noch die Bits Error und Done. Bei Error, kann man dann den Status auslesen und in einer Textanzeige anzeigen, bei Bedarf.
    Geändert von Ralle (24.06.2008 um 11:21 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    03.09.2007
    Ort
    Saarland
    Beiträge
    79
    Danke
    4
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Vielleicht hab ich meine Frage ein wenig falsch gestellt...


    Wie ich das Statuswort auslese ist mir bekannt. Die Fehlermeldungen hab ich auch schon in der Hilfe gefunden.

    Nur wo ich noch nicht so durchblicke:

    Wie unterscheide ich z.B.: 8181h (Auftrag läuft) und 80C1h (Datensatz in Bearbeitung) ?

    Hab noch keine Möglichkeit gefunden, das irgendwie zu vergleichen bzw. herausfinden welcher Hex-Wert nun gerade ansteht (außer 0000h).

    Ich könnte mir ja die Hex-Werte nach binär umbasteln und dann den Vergleich mit den binären Werten machen. Das fände ich allerdings ziemlich umständlich.

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Wießt du jetzt nicht, wie man einen Vergleicher einsetzt oder reden wir komplett aneinander vorbei?

    Code:
     L     #Status
     L     W#16#8181
     ==I   
     SPB   AUFL //Springe zu Auftrag läuft
    
     L     #Status
     L     W#16#81C1
     ==I   
     SPB   DASB //Springe zu Datensatz in Bearbeitung
    Kannst natürlich statt SPB xxx auch

    = M100.0

    schreiben und dann die Merker auswerten.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Hardy81 (24.06.2008)

  6. #5
    Registriert seit
    03.09.2007
    Ort
    Saarland
    Beiträge
    79
    Danke
    4
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Wie schön, wenn die Lösung so einfach ist

    Das Programm, dass ich hier schreibe ist zu 95% in FUP und da gehts mit dem ==I nicht. Das war das was mich so verwundert hat. Aber das Ganze dann mal in AWL zu versuchen, daran hab ich dann nicht gedacht.

    Aber trotzdem nochmal danke...

  7. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    das geht auch mit FUP ... einfach auf ein undeklariertes merkerwort schreiben und dann den CMP ==I verwenden ...

    da mußt du dann natürlich auf einen integerwert vergleichen, also eine dezimalzahl aus dem hex-wert errechnen und das zweierkomplement bilden ... das nenn ich dann mal kopierschutz
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #7
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    Das Programm, dass ich hier schreibe ist zu 95% in FUP und da gehts mit dem ==I nicht
    schau mal unter vergleicher.da findest du bestimmt was für FUP
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  9. #8
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    vl war wie meistens schneller.
    und dazu gleich noch detailliert beschrieben
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  10. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Gerhard K Beitrag anzeigen
    schau mal unter vergleicher.da findest du bestimmt was für FUP
    aber nicht für hex- und dez-werte
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  11. #10
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ein wenig denken muß man schon bevor man es nutzen kann.
    man muß ja nicht alles vorkauen
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

Ähnliche Themen

  1. S7-LAN Adapter CP-MODE AG_SEND AG_RECV
    Von Anaconda55 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.03.2012, 21:53
  2. Antworten: 3
    Letzter Beitrag: 03.11.2011, 10:58
  3. Probleme mit AG_SEND und AG_RECV
    Von -Melanie- im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.05.2011, 14:10
  4. Antworten: 14
    Letzter Beitrag: 16.03.2011, 07:01
  5. Auswertung des ANY-Pointers von AG_SEND
    Von vtrbender im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.10.2008, 10:42

Lesezeichen

Berechtigungen

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