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

Seite 8 von 8 ErsteErste ... 678
Ergebnis 71 bis 79 von 79

Thema: Profibus/Profinet-Teilnehmer Diagnose

  1. #71
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zusammenfassend (Diagnose per SFC 51 "RDSYSST"):

    Ich kann die CPU-LEDs auslesen per SZL_ID 19_Hex

    Die Profinet-TN-Liste (darunter fallen auch die IMs) per SZL_ID 694_Hex und INDEX 64_Hex (==100_Dez)

    CPU<->CPU und CPU<->Panel über (gegenseitige) Lebensbitüberwachung

    F-Baugruppen-(Kanal-)Diagnose über den zugehörigen DB


    FRAGE: Kann ich auch die LEDs der IMs oder auch den Zustand von CPs auslesen?

  2. #72
    Registriert seit
    09.08.2006
    Beiträge
    3.627
    Danke
    912
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von Flux Beitrag anzeigen
    Die Siemens-Hotline hat mir mitgeteilt, dass alle nicht-diagnosefähigen Signalbaugruppen (in meinem Fall die 300er Serie) auch keine generelle Diagnose (gestört/ok, Spannungswegfall an der Baugruppe, etc.)
    Jo, damit hab ich auch ständig zu kämpfen. Bei DI32 Baugruppen, versuche ich immer den letzten DI auf Dauer-1 legen zu lassen. Das vereinfacht die Sache ungemein... Für alle anderen Baugruppen nehme ich dann auch SFC 51.

    Jedenfalls, um im Büro vorab irgendwas zu testen, brauchst Du die identischen IO-Baugruppen. Da irgendwas mit ner anderen CPU als Dummy zu testen macht wenig Sinn, da die sich ganz anders verhält...

    Gruß.

  3. #73
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Bei DI32 Baugruppen, versuche ich immer den letzten DI auf Dauer-1 legen zu lassen.
    Interessanter "Trick" Werde mal eroieren, ob wir uns das ressourcenmäßig leisten können oder wollen..

  4. #74
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 23 Danke für 20 Beiträge

    Standard

    Hallo Alle!

    Ich wurde gern wissen was der aktuelle Stand der Dinge ist mit den verschiedenen Programmen. Ich habe wieder ein Projekt (für Leute mit langem Gedächtnis, ein kleiner Bruder für das Hochfeld-Magnetlabor Dresden - siehe unter www.hzdr.de) wo ich (diesmal Profinet) Teilnehmer habe, die je nach Bedarf ein- oder ausgeschaltet werden können. Wenn sie ausgeschaltet werden will ich dies erkennen und mit SFC12 diese Teilnehmer deaktivieren. Im alten Projekt hatte ich dies mit FC125 gemacht aber jetzt interessiere ich mich für Euer FB126 Varianten.

    Sind die Programme im Thread noch aktuell oder gibt es neuere Varianten die hier nicht erschienen sind. Wenn es irgend welche Dokumentation gibt, wäre ich auch dafür dankbar!

    Gruß

    Roy

  5. #75
    Matze001 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Hallo,

    anbei die Version die ich seit diesem Thema erfolgreich in etwa 20 Anlagen am Laufen habe.

    Code:
    FUNCTION_BLOCK FB126   
    TITLE   = 'BUS_DIAG'
    AUTHOR  : 'Matze001'
    VERSION : '1.0'   
    
    // ==========================================================================
    // = Baustein:                                               FB126 BUS_DIAG =
    // = Autor:                                                        Matze001 =
    // ==========================================================================
    
    // ==========================================================================
    // = Versionshistorie                                                       =
    // =                                                                        =
    // = V0.1 09.07.2012 Matze001                                               =
    // = -----------------------                                                =
    // = Baustein erstellt, ungetestet                                          =
    // =                                                                        =
    // = V1.0 09.07.2012 Matze001                                               =
    // = -----------------------                                                =
    // = Baustein getestet                                                      =
    // ==========================================================================
    
    // ==========================================================================
    // = Bausteinbeschreibung                                                   =
    // =                                                                        =
    // = Erfassung von Busteilnehmerausfällen                                   =
    // =                                                                        =
    // = Benötigte Bausteine                                                    =
    // =                                                                        =
    // = Keine                                                                  =
    // ========================================================================== 
    
    VAR_INPUT
        ENABLE                  : BOOL;
        PROFIBUS                : BOOL;
        PROFINET                : BOOL;
    END_VAR
    
    VAR_OUTPUT 
     
    END_VAR
    
    VAR      
        Teilnehmer_Busfehler    : ARRAY[1..256] OF BOOL ; 
        SK1_NR                  : INT;
        REQ1                    : BOOL ;
        REQ2                    : BOOL ;
        REQ3                    : BOOL ;
        REQ4                    : BOOL ;
        BUSY1                   : BOOL ; 
        BUSY2                   : BOOL ; 
        BUSY3                   : BOOL ; 
        BUSY4                   : BOOL ; 
    
       
        SZL_Header              : STRUCT
            LenthDR             : WORD ;
            n_DR                : WORD ;
        END_STRUCT ;
      
      
        Abfrage_PB_Slaves       : STRUCT 
            projektiert         : ARRAY[0..255] OF BOOL ; 
            in_Funktion         : ARRAY[0..255] OF BOOL ; 
        END_STRUCT ;
        
        Abfrage_PN_Slaves : STRUCT 
            projektiert_Status  : WORD ;
            projektiert         : ARRAY[0..2047] OF BOOL ;
            in_Funktion_Status  : WORD ;
            in_Funktion         : ARRAY[0..2047] OF BOOL ; 
            mit_Stoerung_Status : WORD ;
            mit_Stoerung        : ARRAY[0..2047] OF BOOL ; 
        END_STRUCT ;
        at_Abfrage_PN_Slaves AT Abfrage_PN_Slaves : STRUCT 
            projektiert         : ARRAY[0..128] OF WORD ; 
            in_Funktion         : ARRAY[0..128] OF WORD ;  
            mit_Stoerung        : ARRAY[0..128] OF WORD ;  
        END_STRUCT ;
       
    
    END_VAR
    
    VAR_TEMP
        Fehler                  : INT ; 
        i                       : INT;   
    END_VAR
    
    
    BEGIN
    
    // Profibusauswertung
    
    
    IF ENABLE AND PROFIBUS AND NOT PROFINET AND SK1_NR = 0 THEN
        REQ1:=TRUE;
        SK1_NR:=1;
    END_IF;
    
    
    
    Fehler := RDSYSST (REQ := REQ1
                      ,SZL_ID := w#16#0092               // Abfrage der projektierten ProfiBus-Stationen
                      ,INDEX := 1                        // Mastersystem-ID
                      ,BUSY := BUSY1
                      ,SZL_HEADER := SZL_Header
                      ,DR := Abfrage_PB_Slaves.projektiert       // Ziel-Datenbereich für die abgefragten Daten
                      ) ;
    
    IF SK1_NR = 1 AND NOT BUSY1 AND FEHLER = 0 THEN
        REQ1:=FALSE;
        REQ2:=TRUE;
        SK1_NR:=2;
    END_IF;
    
    
    Fehler := RDSYSST (REQ := REQ2
                      ,SZL_ID := w#16#0292               // Abfrage der nicht ausgefallenen ProfiBus-Stationen
                      ,INDEX := 1                        // Mastersystem-ID
                      ,BUSY := BUSY2
                      ,SZL_HEADER := SZL_Header
                      ,DR := Abfrage_PB_Slaves.in_Funktion       // Ziel-Datenbereich für die abgefragten Daten
                      ) ;
    
    IF SK1_NR = 2 AND NOT BUSY2 AND FEHLER = 0 THEN
        REQ2:=FALSE;
        SK1_NR:=3;
    END_IF;
    
    IF SK1_NR = 3 THEN
        
        FOR i:= 0 TO 255 DO
           
            Teilnehmer_Busfehler[i+1] := Abfrage_PB_Slaves.projektiert[i] AND NOT Abfrage_PB_Slaves.in_Funktion[i];
            
        END_FOR;
        
        SK1_NR:= 0;
    END_IF;
    
    
    // Profinetauswertung
    
    IF ENABLE AND NOT PROFIBUS AND PROFINET AND SK1_NR = 0 THEN
        REQ3:=TRUE;
        SK1_NR:=11;
    END_IF;
    
    
    Fehler := RDSYSST (REQ := REQ3
                      ,SZL_ID := w#16#0094               // Abfrage der projektierten ProfiNet-Stationen
                      ,INDEX := 100                        // Mastersystem-ID
                      ,BUSY := BUSY3
                      ,SZL_HEADER := SZL_Header
                      ,DR := at_Abfrage_PN_Slaves.projektiert       // Ziel-Datenbereich für die abgefragten Daten
                      ) ;
    
    
    IF SK1_NR = 11 AND NOT BUSY3 AND FEHLER = 0 THEN
        REQ3:=FALSE;
        REQ4:=TRUE;
        SK1_NR:=12;
    END_IF;
    
    Fehler := RDSYSST (REQ := REQ4
                      ,SZL_ID := w#16#0294               // Abfrage der nicht ausgefallenen ProfiNet-Stationen
                      ,INDEX := 100                        // Mastersystem-ID
                      ,BUSY := BUSY4
                      ,SZL_HEADER := SZL_Header
                      ,DR := at_Abfrage_PN_Slaves.in_Funktion       // Ziel-Datenbereich für die abgefragten Daten
                      ) ;
                      
    IF SK1_NR = 12 AND NOT BUSY4 AND FEHLER = 0 THEN
        REQ4:=FALSE;
        SK1_NR:=13;
    END_IF;
    
    
    
    IF SK1_NR = 13 THEN
        
        FOR i:= 1 TO 255 DO
            
            Teilnehmer_Busfehler[i] := Abfrage_PN_Slaves.projektiert[i] AND NOT Abfrage_PN_Slaves.in_Funktion[i];
            
        END_FOR;
        
        SK1_NR:= 0;
    END_IF;    
      
    
    
    
    END_FUNCTION_BLOCK

    Grüße

    Marcel

  6. Folgende 2 Benutzer sagen Danke zu Matze001 für den nützlichen Beitrag:

    RMA (26.06.2013),vollmi (26.06.2013)

  7. #76
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 23 Danke für 20 Beiträge

    Standard

    Vielen Dank, werde ich mich morgen angucken.

    Gruß

    Roy

  8. #77
    Registriert seit
    06.10.2003
    Beiträge
    3.410
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard

    Zitat Zitat von RMA Beitrag anzeigen
    .. werde ich mich morgen angucken...
    Das tue ich auch jeden Morgen .

    Guck dich auch die Funktion "Systemfehler melden" an. Das ist u.U. einfacher und schneller zu realisieren.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  9. Folgender Benutzer sagt Danke zu Onkel Dagobert für den nützlichen Beitrag:

    RMA (26.06.2013)

  10. #78
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 23 Danke für 20 Beiträge

    Standard

    Zitat Zitat von RMA Beitrag anzeigen
    .. werde ich mich morgen angucken...
    Das tue ich auch jeden Morgen .
    Deutsche Sprache schwere Sprache!

    Da ist einiges zu lesen aber auf den ersten Blick sieht es so aus als würde es das tun was ich brauche. Ob es einfacher und schneller geht bin ich noch nicht ganz sicher - die Lernkurve für FC125 habe ich schon hinter mir.

  11. #79
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von RMA Beitrag anzeigen
    Ob es einfacher und schneller geht bin ich noch nicht ganz sicher ...
    Das war allerdings der Grund-Ansatz für diesen Baustein - die Frage ist eher, ob es das tut, was du willst ...

    Gruß
    Larry

Ähnliche Themen

  1. ProfiNet/ProfiBus Diagnose einfach
    Von kliebisch.m im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.12.2011, 10:13
  2. Profinet Teilnehmer Diagnose
    Von GobotheHero im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.08.2010, 17:31
  3. Diagnose Profinet-Teilnehmer anhand der IP
    Von Hawkster im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 08.02.2010, 16:39
  4. Auswertung Profinet Teilnehmer
    Von Ensiferum im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.05.2009, 22:51
  5. Hilfe; ProfiNet/ profiBus- Diagnose....
    Von Cliff im Forum Feldbusse
    Antworten: 12
    Letzter Beitrag: 19.02.2009, 18:53

Lesezeichen

Berechtigungen

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