Step 7 Bausteinänderungen erkennen - SFC51 ?

taxi

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum

Ich möchte Bausteinänderungen durch laden oder löschen erkennen.
Ich habe mich mit den SFC51 beschäftigt aber es nicht geschafft eine Detailinformation zu bekommen welcher Baustein (FB, FC, DB) verändert wurde.

Hat schon wer so etwas gemacht bzw. ist sowas möglich?
Bin mit der Suchfunktion leider auf keinen grünen Zweig gestoßen. :oops:

Danke für eure Hilfe.
taxi
 
Ja, habe so etwas in der Art schon einmal gemacht.
Soweit ich mich gerade erinnere bekommst du aber nur eine Prüfsumme über die Hard- bzw. Software.
Du kannst dann eine Veränderung feststellen, wenn Du Soll- (gespeicherte) mit Ist-Prüfsumme (aktuelle) vergleichst.
Meinte, Du kannst nicht direkt ermitteln, z.B. welcher Baustein verändert wurde (nur halt wurde etwas verändert oder nicht).

Dies machst Du halt über die entsprechenden SZL_ID, welche eigentlich auch gut in der Online Hilfe von S7 beschrieben ist.

Code:
FUNCTION_BLOCK FB 2001
TITLE = KENNUNGEN LESEN

VERSION : 0.1


VAR
  Retval_sfc51    : INT ;     
  sfc51_busy      : BOOL ;    

  szl_HEADER : STRUCT   
   LENTHDR        : WORD ;    
   N_DR           : WORD ;    
  END_STRUCT ;    

  DR : ARRAY  [1 .. 2 ] OF STRUCT   
      Index_1:          byte; // 0=Standard-CPU 
      Index_2:          byte; // CPU-Schutzstufe, Bedienschalterstellung, Prüfsummen     
      sch_schal:        word; // Durch BA-Schalter eingestellte Schutzstufe (1,2,3)
      sch_par:          word; // Parametrierte SS (0,1,2,3; 0=kein PW vergeben / SS ungültig)
      sch_rel:          word; // Gültige Schutzstufe der CPU
      bart_sch:         word; // 1:RUN, 2:RUN-P, 3:STOP, 4:M-RES, 0=Undef.
      anl_sch:          word; // Stellung Anlaufschlater (1:CRST, 2:WRST, 0=undef.)
      ken_f:            word; 
      ken_rel:          word; // Kennung der 4 folg. Prüfsummen (0=ungültig)
      ken_ver1_hw:      word; // Prüfsumme 1 der Hardarekonfiguration (Intel Format)
      ken_ver2_hw:      word; // Prüfsumme 2 der Hardarekonfiguration (Intel Format)
      ken_ver1_awp:     word; // Prüfsumme 1 des Anwednerprogramms (Intel Format)
      ken_ver2_awp:     word; // Prüfsumme 2 des Anwednerprogramms (Intel Format)
      Res_01:           word;
      Res_02:           word;
      sfc_req:          word;
      sfc_act:          word;
      Res_11:           word;
      Res_12:           word;
      Res_13:           word;
      Res_14:           word;
  END_STRUCT;
          
  Screen : STRUCT       
   Key_HS : ARRAY  [0 .. 7 ] OF BOOL ;    
   Key_VS : ARRAY  [0 .. 7 ] OF BOOL ;    
  END_STRUCT ;    
  Retval_sfc20 : INT ;  
  Flag : ARRAY  [0 .. 16 ] OF BOOL ;      

END_VAR


BEGIN
NETWORK
TITLE =Kennung lesen

      CALL "RDSYSST" 
           (
           REQ                      := #Screen.Key_HS[0],
           SZL_ID                   := W#16#232,
           INDEX                    := W#16#4,
           RET_VAL                  := #Retval_sfc51,
           BUSY                     := #sfc51_busy,
           SZL_HEADER               := #szl_HEADER,
           DR                       := #DR
           );

NETWORK
TITLE =Ergebniss umspeichern

      U     #Screen.Key_HS[1]; 
      FP    #Flag[0]; 
      SPBN  blke; 
      
      CALL "BLKMOV" 
           (
           SRCBLK                   := P#DB2001.DBX10.0 BYTE 40,
           RET_VAL                  := #Retval_sfc20,
           DSTBLK                   := P#DB2001.DBX50.0 BYTE 40
           );
      R    #Screen.Key_HS[1]; 
blke: NOP   0; 

END_FUNCTION_BLOCK

DATA_BLOCK DB2001

TITLE = KENNUNGEN LESEN

VERSION : 0.1

FB2001

BEGIN
END_DATA_BLOCK
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt eine übergeordnete Software von Siemens die wir im Unternehmen im Einsatz haben. Such mal nach version dog. Falls diese Lösung für dich in Frage kommt.

mfg
 
Außerdem kann man Version Dog nicht im SPS-Anwenderprogramm nutzen, sondern nur von einem PC außerhalb der SPS.

Harald
 
Zurück
Oben