Step 7 PN-Slave diagnose (2 PN-Systeme) bei einer H-CPU

ziede

Level-1
Beiträge
44
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
ich bearbeite gerade ein Projekt in dem ein S7-H-System (2 Racks mit S7 417-5H PN/DP) eingesetzt werden.
Die PN-Slaves haengen an beiden CPUs (daraus ergeben sich die 2 PN-Systeme), das PN laeuft auch soweit fehlerlos, eine Diagnose der einzelnen Module inerhalb eines PN-Slaves funktioniert auch.
Leider bekomme ich es nicht hin die PN-Slaves zu kontrollieren, ob sie i.O. sind.
Dafuer wird hier ein Baustein verwedet, der mit einem PN-System (innerhalb des H-Systems nur das PN-System 100) auch funktioniert, das 2. PN-System (in diesem Falle PN-System 101) kann ich damit jedoch nicht kontrollieren.

Kann mir da jemand weiterhelfen den Fehler zu finden?

Den Baustein habe ich als Quelle angefuegt.

Mfg
Bjoern
 

Anhänge

  • PN-Slave-diagnose.zip
    1,6 KB · Aufrufe: 2
ganz so einfach ist das nicht...

Da Du von 2 PNIO-Systemen redest, gehe ich mal davon aus, dass Du S2-Teilnehmer hast, also nen "offenen Ring" Was für PN-Slaves sind das wirklich?

Für ET200SP hab ich das mal so gelöst:

jeder Slave bekommt 3 Meldungen, Redundanzefehler zu CPU0, Redundanzfehler zu CPU1, Slave ausgefallen

2 SCF51 Aufrufe mit SZL_ID W#16#D91 für IO-System 100 und IO-System 101

Code:
// PNIO-System 100 -------------------------------------------------------------------
      L     3                           // laufende Nummer des SFC51 Aufrufes
      T     #AufrufNr

      L     "DIAGNOSE PN".ALLG.Zaehler_REQ_SFC51    // nur einen SFC51 gleichzeitig anfordern
      L     #AufrufNr
      ==I   
      FP    "DIAGNOSE PN".ALLG.Flanke[3]
      =     #DIAG.REQ

      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       :=#DIAG.REQ
       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



// PNIO-System 101 -------------------------------------------------------------
      L     4                           // laufende Nummer des SFC51 Aufrufes
      T     #AufrufNr

      L     "DIAGNOSE PN".ALLG.Zaehler_REQ_SFC51    // nur einen SFC51 gleichzeitig anfordern
      L     #AufrufNr
      ==I   
      FP    "DIAGNOSE PN".ALLG.Flanke[4]
      =     #DIAG.REQ

      L     1                           // Kennbit für PNIO immer 1
      SLW   15
      L     1                           // PNIO-System-ID minus 100
      SLW   11
      +I   
      L     1                           // Stationsnummer
      +I   
      T     #DIAG.INDEX

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

auswerten tue ich dann jeweils das eastat.bit01 (Baugruppe vorhanden)
"DIAGNOSE PN".PNIO100_GN01[0].eastat.BIT01 // Profinet-Anschaltung 1 erreichbar CPU0
"DIAGNOSE PN".PNIO101_GN01[0].eastat.BIT01 // Profinet-Anschaltung 1 erreichbar CPU1

Slave ausgefalle wäre dann:
UN "DIAGNOSE PN".PNIO100_GN01[0].eastat.BIT01 // Profinet-Anschaltung 1 erreichbar CPU0
UN "DIAGNOSE PN".PNIO101_GN01[0].eastat.BIT01 // Profinet-Anschaltung 1 erreichbar CPU1
= Slave ausgefallen

...
 
Moin ducati,

Erstmal zu deinen Fragen:
- Ja, du hast recht es sind S2-Teilnehmer.
- Als PN-Teilnehmer werden ET200SP (6ES7 155-6AU01-0CN0), PN/PN Koppler (6ES7 158-3AD10-0XA0) sowie Scalance XC200 (6GK5 206-2BB00-2AC2) verwendet.

Danke fuer deine Quelle, mit der werde ich weiterarbeiten.

Mfg
Bjoern
 
Zurück
Oben