PB-Adresse auslesen

Wlaner

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte gerne wissen wie man die Profibus-Adresse von einem Teilnehmer herausbekommt, der ausfällt oder eine Störung hat. Der OB 82 und der OB 86 zeigen die logische Basisadresse an(MDL_ADDR). Aber wie ermittelt man hiermit die Profibus DP Adresse des Teilnehmers?
Der FB 125 von Siemens gibt diese Adresse aus, also muss das möglich sein sie auszulesen.
 
Hallo Wlaner,

im LB 11 vom OB86 steht die PB Adr. der gestörten oder ausgefallenen Station.
Im Beispiel setzt der Ausfall der Profibusstation mit der Adr 10 den M2.0
und mit der Adr 11 den M2.1
kommt die station wieder werden die jeweiligen Merker zurückgesetzt.

Code:
ORGANIZATION_BLOCK "RACK_FLT"
TITLE = "Loss Of Rack Fault"
//Das Betriebssystem der CPU ruft den OB86 auf, wenn der Ausfall eines 
//Erweiterungsgerätes, eines DP-Mastersystems oder einer Station bei Dezentraler 
//Peripherie erkannt wird. Gilt für kommende und gehende Ereignisse.
AUTHOR : Per
VERSION : 0.1
 
VAR_TEMP
  OB86_EV_CLASS : BYTE ;    //16#38/39 Event class 3
  OB86_FLT_ID : BYTE ;  //16#C1/C4/C5, Fault identifcation code
  OB86_PRIORITY : BYTE ;    //Priority of OB Execution
  OB86_OB_NUMBR : BYTE ;  //86 (Organization block 86, OB86)
  OB86_RESERVED_1 : BYTE ;  //Reserved for system
  OB86_RESERVED_2 : BYTE ;  //Reserved for system
  OB86_MDL_ADDR : WORD ;    //Base address of IM module in rack with fault
  OB86_RACKS_FLTD : ARRAY  [0 .. 31 ] OF BOOL ; //Racks in fault
  OB86_DATE_TIME : DATE_AND_TIME ;  //Date and time OB86 started
  Ereignis_geht : BOOL ;    
  Ereignis_kommt : BOOL ;   
  Station_aktive : BOOL ;   
END_VAR
BEGIN
NETWORK
TITLE =Merker setzen für kommenden oder gehenden Aufruf
      L     B#16#38; 
      L     #OB86_EV_CLASS; 
      ==I   ; 
      =     #Ereignis_geht; 
      L     B#16#39; 
      ==I   ; 
      =     #Ereignis_kommt; 
NETWORK
TITLE =Profibus Adr 10
//Adr:10
      L     10; 
      L     LB    11; 
      ==I   ; 
      =     #Station_aktive; 
      U     #Ereignis_kommt; 
      U     #Station_aktive; 
      S     M2.0;
      U     #Ereignis_geht; 
      U     #Station_aktive; 
      R     M2.0; 
NETWORK
TITLE =Profibus Adr 11
//Adr:11
//
      L     11; 
      L     LB    11; 
      ==I   ; 
      =     #Station_aktive; 
      U     #Ereignis_kommt; 
      U     #Station_aktive; 
      S     M2.1; 
      U     #Ereignis_geht; 
      U     #Station_aktive; 
      R     M2.1; 
END_ORGANIZATION_BLOCK


Gruß Per
 
Zurück
Oben