TIA ProfiNet Diagnose mit IM151-8 CPU unter TIA V16

Newbie

Level-1
Beiträge
29
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich finde gerade irgendwie die Nadel im Heuhaufen nicht...:confused:

Kann mir jemand auf die Schnelle verraten, wie ich mit einer IM151-8 CPU unter TIA V16 eine einfache Diagnose eines einzelnen PN-Teilnehmers umsetzen kann?

Beste Grüße
 
sollte doch wie unter Step7 5.x mit SFC51 RDSYSST funktionieren???

SZL_ID 0D91 Baugruppenzustandsinformation
dann eastat bit1 // Baugruppe vorhanden

Gruß.

Aber definiere "einfache Diagnose" und was für ein PN-Teilnehmer? ;)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,

danke für eine schnelle Antwort!

Ich habe die letzten fünf Jahre hauptsächlich Beckhoff programmiert und nun wieder ein etwas umfangreicheres Projekt (kompletter Umbau einer Bestandsanlage mit einer IM151-8 mit dem TIA-Portal) - bin also etwas raus. Aber ich nehme Herausforderungen grundsätzlich gerne an...:)

Einfache Diagnose im Sinne von PN-Teilnehmer vorhanden bzw. gestört - egal welcher Teilnehmer von welchem Hersteller. Zur einfachen Generierung einer Störmeldung "PN-Teilnehmer XY nicht vorhanden / gestört (BMK)"

Ich schau mir den RDYSYSST mal an...
 
Zuletzt bearbeitet:
PN-Teilnehmer werden eine ET200S sein - da hatte ich auch schon direkt was von einer Einschränkung geslesen, was den RDYSYSST angeht:


=> Hinweis

Die Auswertung der SZL-ID W#16#xy91 für ein Modul mit gepackten Adressen (ET 200S) ist nicht möglich.


Was gibt es in dem Fall für eine alternative Herangehensweise?

Die weiteren Teilnehmer sind 2xSEW Movimot FUs, ein ASi Monitor und eine Molex PN-Device-Karte (Roboter)...

Natürlich könnte ich die ET200S mit Step7 5.x programmieren - allerdings ist in der Anlage auch ein TIA-Panel. Deswegen der Gedanke alles ins TIA zu ziehen, um unter einer Oberfläche arbeiten zu können. Eine 2MB Speicherkarte ist verbaut und das neue Programm sollte auch nicht zu sehr auswuchern...;)

Oder spricht da etwas grundsätzlich dagegen, was meine Vorgehensweise zu einem Krampf werden lässt?:confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Auswertung der SZL-ID W#16#xy91 für ein Modul mit gepackten Adressen (ET 200S) ist nicht möglich.
erstens musst Du ja die Adressen nicht packen, und zweitens willst Du ja nicht die einzelnen Module Auswerten, sondern nur die Kopfstation...
probiers halt mal aus...

Code:
// Kommunikationsstörung PNIO Teilnehmer (Gerätenummer 1)
      L     1                           // Kennbit für PNIO immer 1
      SLW   15
      L     0                           // PNIO-System-ID minus 100
      SLW   11
      +I    
      L     1                           // Stationsnummer
      +I    
      T     #DIAG.INDEX


      CALL  "RDSYSST"
       REQ       :=Impulsmerker_je_Sekunde
       SZL_ID    :=W#16#D91             // 0D91 Baugruppenzustandsinformation
       INDEX     :=#DIAG.INDEX
       RET_VAL   :=#DIAG.Fehler
       BUSY      :=#DIAG.BUSY
       SZL_HEADER:=#DIAG.HEADER
       DR        :="DIAGNOSE PN".PNIO100_GN01


      UN    "DIAGNOSE PN".PNIO100_GN01[0].eastat.BIT01    // Baugruppe vorhanden
      =     Baugruppe_nicht_erreichbar

Die weiteren Teilnehmer sind 2xSEW Movimot FUs, ein ASi Monitor und eine Molex PN-Device-Karte (Roboter)...
Denke das sollte auch mit SFC51 gehn...

Natürlich könnte ich die ET200S mit Step7 5.x programmieren - allerdings ist in der Anlage auch ein TIA-Panel. Deswegen der Gedanke alles ins TIA zu ziehen, um unter einer Oberfläche arbeiten zu können.

Naja, musst Du selber wissen... Beides im selben Projekt macht auf Dauer mehr Nachteile als Vorteile. Und ich versuche so viel wie möglich NICHT im TIA zu machen. Das nervt einfach...
 
Vielen Dank für die hilfreiche Unterstützung!

Ich probiere es erstmal mit dem TIA-Portal - scheint für mich das Pferd zu sein, auf welches in Zukunft gesetzt wird.;)

Was nervige Projektierungssoftware angeht habe ich mittlerweile ein ziemlich dickes Fell!:ROFLMAO:

Bis dahin, beste Grüße!
 
Ich probiere es erstmal mit dem TIA-Portal - scheint für mich das Pferd zu sein, auf welches in Zukunft gesetzt wird.;)

aber nicht für S7-300 S7-400... Für S7-1500 bleibt Dir ja nichts weiter übrig...

Hier noch der DB:

Code:
DATA_BLOCK "DIAGNOSE PN"
TITLE =Diagnose PNIO Teilnehmer
AUTHOR : xxx
FAMILY : xxx
NAME : DIAGNOSE
VERSION : 0.1
NON_RETAIN




  STRUCT 	
   PNIO100_GN01 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 1
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN02 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 2
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN03 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 3
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN04 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 4
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN05 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 5
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN06 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 6
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN07 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 7
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN08 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 8
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN09 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 9
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN10 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 10
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
   PNIO100_GN11 : ARRAY  [0 .. 65 ] OF //PNIO-System 100 Gerätenummer 11
   STRUCT 	
    adr1 : WORD ;	
    adr2 : WORD ;	//Steckplatznummer
    logadr : WORD ;	
    solltyp : WORD ;	
    isttyp : WORD ;	
    reserviert : WORD ;	
    eastat : STRUCT 	
     BIT08_15 : BYTE ;	//Datenkennung für logische Adresse
     BIT00 : BOOL ;	//Baugruppe gestört (über Diagnosealarm erkannt)
     BIT01 : BOOL ;	//Baugruppe vorhanden
     BIT02 : BOOL ;	//Baugruppe nicht verfügbar
     BIT03 : BOOL ;	//Baugruppe deaktiviert
     BIT04 : BOOL ;	//Störung der Station (nur Stellvertreter-Slot)
     BIT05 : BOOL ;	//Ein CiR-Vorgang für diese Baugruppe /Station ist gerade aktiv oder noch nicht a
     BIT06 : BOOL ;	//reserviert für S7-400
     BIT07 : BOOL ;	//Baugruppe im Lokalbussegment
    END_STRUCT ;	
    ber_bgbr : WORD ;	
   END_STRUCT ;	
  END_STRUCT ;	
BEGIN
   
END_DATA_BLOCK
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kurze Nachfrage zum DB...

In der Dokumentation finde ich keine Beschreibung zur Array-Länge. In deinem DB habe ich 66 Elemente [0..65] vom Datensatz zur SLZ-ID W#16xy91 je Teilnehmer im PN-Strang. Ich nehme an, dass das der Maximalausbau einer Station ist?

Wenn ich in die HW-Konfig (Gerätesicht) gehe, ist im Steckplatz 0 das PN-Device (z.B. ET200s) selbst und in den Steckplätzen 1-63 die entsprechend gestecken IO-Karten, richtig?

Werden die Elemente 64/65 noch anderweitig genutzt?

Vielen Dank im Voraus!
 
hmm, weiss nicht mehr genau, hatte das mal für ne ET200SP gebaut. Glaub da war auch irgendwo nen Fehler in den Handbüchern... ich würds erstmal so lassen. Vielleicht fällt mir noch ein, wie ich auf die Länge gekommen bin...

PS:

das N_DR gibt ja die Anzahl der Datensätze zurück...

Also DIAG.HEADER.LENTHDR ist die Länge des Datensatzes in Byte
und DIAG.HEADER.N_DR ist die Anzahl der DAtensätze, also Arrayelemente bei mir...

kannst ja gegebenenfalls anpassen, wenn das bei Dir nicht 66 sind... hab jetzt nichts zum ausprobieren hier, was da bei mir wirklich zurückkommt.
 
Zuletzt bearbeitet:
Also ich nehme immer "DeviceStates".
Der schmeißt ein bool-Array raus, ob Teilenehmer Nr. X gestört.
Keinerlei Detail-Diagnose, aber total einfach. Das ist dann fast wie bei Beckhoff "WcState".
 
Zurück
Oben