Ethernet Teilnehmer ausgefallen

HarryH

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

ich habe eine S7-315-2PN/DP mit mehreren Ethernetteilnehmern:
1. Kontrollwaage -> open TCP/IP (TCON, TSEND, TRCV, TDISCON)
2. Etikettierer -> open TCP/IP (TCON, TSEND, TRCV, TDISCON)
3. Panel OP177B -> Ethernet
4. Andere S7-300 -> S7-Verbindung über Ethernet
5. usw.


Nun möchte der Kunde wissen (Störmeldung) welcher Ethernet Teilnehmer ausgefallen ist.
Wie kann ich das realisieren? Habt ihr so etwas schon einmal gemacht?

Für ausgefallene Profibus Teilnehmer verwende ich den "FC... GLOBAL_DP_DIAG" von Siemens. Der gibt mir in dem dazugehörigen DB aus, welcher DP-Teilnehmer ausgefallen ist.
Gibt es sowas vergleichbares auch für Ethernet Teilnehmer?

Gruß HarryH
 
Ja gibt es ......
Nehm den FB128 "FC... GLOBAL_DP_DIAG" und den dazugehörigen DB.
Gleiche Anwendung wie der "FC... GLOBAL_DP_DIAG".

Grüße
wiesel

(Erst wurde mir der erste Beitrag nicht angezeigt............. mmmmmmmmhhhhh)
 
@wiesel187

Das hört sich gut an mit dem "FB128 PNIODiag". Ich finde den nur leider nicht im "Katalog"!?!?!? :confused:

Wo hast du den her?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
http://support.automation.siemens.c...lib.csinfo&lang=en&objid=26996747&caller=view

Da den FB Nehmen.

Und den DB200 selber machen ( Hat bei mir mit der Automatischen generierung nicht hingehauen) Mit der Struktur

Code:
Slave    ARRAY[1..255]            
    STRUCT            
Bit0    BOOL    FALSE    Device war gestört    
Bit1    BOOL    FALSE        
Bit2    BOOL    FALSE        
Bit3    BOOL    FALSE        
Bit4    BOOL    FALSE        
Bit5    BOOL    FALSE        
Bit6    BOOL    FALSE        
Bit7    BOOL    FALSE        
Bit8    BOOL    FALSE    Device ist vorhanden und ok    
Bit9    BOOL    FALSE        
Bit10    BOOL    FALSE    Device ist gestört    
Bit11    BOOL    FALSE    Device ist ausgefallen    
Bit12    BOOL    FALSE        
Bit13    BOOL    FALSE        
Bit14    BOOL    FALSE        
Bit15    BOOL    FALSE        
    END_STRUCT            
Daten    ARRAY[1..609]            
    WORD

Grüße
wiesel
 
Ich habe jetzt den FB126 in mein Projekt eingefügt. In OB1, in OB100, und in den anderen OB's die in dem Siemens Beispiel angegeben wurden. Nach Neustart der CPU hat die CPU mir auch den DB erzeugt.

Nur jetzt kommt die große Frage: Woher weiß ich denn welches Bytes in dem DB mein Teilnehmer sind? Wenn ich das richtig verstehe diagnostiziert der FB Profibus- und Ethernet-Netze. Welcher DB-Teil ist DP und welcher Ethernet?

Hat jemand eine Idee wie ich da weiter komme?

Gruß Harry
 
Der FB126 ist, wie der Name schon sagt, für Profinet IO, also in deinem Fall imho nicht zu gebrauchen.

Pauschal würde ich sagen das du das nur an den Status-Info der TCON und Co. FB's rausfinden kannst.
Bei intelligenten Teilnehmern, wie der anderen S7 würde sich ein zusätzliches Byte im Datenaustausch mit einem Takt oder Toggle Bit anbieten,
oder auch hier wieder die Status-Info der Kommunikations-FB's.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der FB126 ist, wie der Name schon sagt, für Profinet IO, also in deinem Fall imho nicht zu gebrauchen.

Pauschal würde ich sagen das du das nur an den Status-Info der TCON und Co. FB's rausfinden kannst.
Bei intelligenten Teilnehmern, wie der anderen S7 würde sich ein zusätzliches Byte im Datenaustausch mit einem Takt oder Toggle Bit anbieten,
oder auch hier wieder die Status-Info der Kommunikations-FB's.

Mfg
Manuel

Dem kann ich mich anschliessen. Der FB126 wird wohl nix bringen da es sich nicht um Profinet IO-Devices handelt.
 
Wenn du es für die PN-IO Stationen wissen willst kannst es ja über die SZL machen!
Bei den TCP/IP Verbindungen ware ja möglich ein Lifebit und einen Watchdog Zyklisch auszutauschen!
Mfg
 
Danke für die Antworten. Das der FB126 NUR für ProfiNET Teilnehmer geeignet ist habe ich garnicht realisiert gehabt. :-(
OK, dann geht das so nicht.

Frage: Wie würdet ihr das mit den Panels machen? Ich habe konkret 6x OP177B. Wenn eins davon ausgefallen ist, möchte ich an meinem "Main-"Panel MP377 eine Meldung generieren. Mir fällt da nur ne Lösung mit einem Skript ein. -> Z.B. Bit zum OP177B setzen. Über das Skript setzt das Panel das Bit wieder zurück. Das Problem ist nur, das die OP177B keine Skrips unterstützen. Hab ihr eine andere Idee?


@SCM:
Was bedeutet "SZL"?


Gruß HarryH
 
Mit der SZL müsstest du eigentlich sehen das ein Panel ausgefallen ist!

Ich mach das so:
Code:
  U     #CHECK_ACTIVE
      =     L      0.0
      BLD   103
      CALL  "RDSYSST"
       REQ       :=L0.0
       SZL_ID    :=W#16#694
       INDEX     :=W#16#64
       RET_VAL   :="DIAG DP/PN".PNS1.RETVAL
       BUSY      :="DIAG DP/PN".PNS1.BUSY
       SZL_HEADER:="DIAG DP/PN".PNS1.SZL_HEADER
       DR        :="DIAG DP/PN".PNS1.DATA
      NOP   0

W#16#0694:
Diagnosezustand der Erweiterungsgeräte im zentralen Aufbau / der Stationen
eines
IOControllersystems
(Status-Bit = 1: mind. eine Baugruppe des Rack/Station ist gestört oder
deaktiviert)


INDEX 0: Zentrale Baugruppe
1-31: Dezentrale Baugruppe am PROFIBUS DP
100-115: Dezentrale Baugruppe am PROFINET IO

Ich hab da einen UDT angelegt den ich dann für das jeweilige PN IO System anlege:
Aufbau der Auswertungsstruct:

Code:
TYPE "UDT DIAG PN"
AUTHOR : SCM
NAME : DIAG
VERSION : 0.1


  STRUCT     
   SZL_HEADER : STRUCT     //Kopinformationen
    LENTHDR : WORD ;    //Länge eines Datensatzes dieser Teilliste in Byte
    N_DR : WORD ;    //Anzahl der Datensätze, die diese Teilliste enthält.
   END_STRUCT ;    
   DATA : STRUCT     //Datensatz
    INDEX : WORD ;    //Index
    DEVICE_STATUS : ARRAY  [0 .. 2047 ] OF //Station [xxxx] gestört
    BOOL ;    
   END_STRUCT ;    
   RETVAL : INT ;    //Fehlerinformation
   BUSY : BOOL ;    //Auswertung laeuft
  END_STRUCT ;    
END_TYPE
Das erste Bit der Stationserrors bedeutet das mindestens 1ne Station gestört oder ausgefallen ist!

Mfg Mario
 
Frage: Wie würdet ihr das mit den Panels machen? Ich habe konkret 6x OP177B. Wenn eins davon ausgefallen ist, möchte ich an meinem "Main-"Panel MP377 eine Meldung generieren. Mir fällt da nur ne Lösung mit einem Skript ein. -> Z.B. Bit zum OP177B setzen. Über das Skript setzt das Panel das Bit wieder zurück. Das Problem ist nur, das die OP177B keine Skrips unterstützen. Hab ihr eine andere Idee?

Bei den Panels gibt es einen Bereichszeiger genannt Korrdination, dieser würde sich anbieten.

Mfg
Manuel
 
Zurück
Oben