Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SCL 3.02 KB | None | 0 0
  1.  
  2. REGION Step 2 - Refresh device properties
  3.     IF "ScanProfinet" = 1 THEN
  4.        
  5.         #si_RetExist := DeviceStates(LADDR := #LADDR,
  6.                                      MODE := 4,
  7.                                      STATE := #sa_Exist);
  8.        
  9.         #si_RetDisabled := DeviceStates(LADDR := #LADDR,
  10.                                         MODE := 3,
  11.                                         STATE := #sa_Disabled);
  12.        
  13.         #si_RetConfigure := DeviceStates(LADDR := #LADDR,
  14.                                          MODE := 1,
  15.                                          STATE := #sa_Configure);
  16.        
  17.         #si_RetFault := DeviceStates(LADDR := #LADDR,
  18.                                      MODE := 2,
  19.                                      STATE := #sa_Fault);
  20.        
  21.         #si_RetProblem := DeviceStates(LADDR := #LADDR,
  22.                                        MODE := 5,
  23.                                        STATE := #sa_Problem);
  24.         ;
  25.     ELSE
  26.         RETURN;
  27.     END_IF;
  28.  
  29. END_REGION
  30.  
  31.  
  32. REGION Step3 - Saving error code
  33.     #ti_CounterErrors := 0;
  34.    
  35.     FOR #ti_NrOfDevice := 0 TO 512 DO
  36.        
  37.         IF #sa_Configure[#ti_NrOfDevice] THEN
  38.             #Diagnostic_Array[#ti_NrOfDevice].Configure := TRUE;
  39.            
  40.            
  41.            
  42.             IF #sa_Exist[#ti_NrOfDevice] THEN
  43.                 #Diagnostic_Array[#ti_NrOfDevice].Exist := FALSE;
  44.                 ;
  45.             ELSE
  46.                 #Diagnostic_Array[#ti_NrOfDevice].Exist := TRUE;
  47.                 #ti_CounterErrors := #ti_CounterErrors + 1;
  48.                 ;
  49.             END_IF;
  50.            
  51.            
  52.             IF #sa_Disabled[#ti_NrOfDevice] = FALSE THEN
  53.                 #Diagnostic_Array[#ti_NrOfDevice].Enable := FALSE;
  54.                
  55.             ELSE
  56.                 #Diagnostic_Array[#ti_NrOfDevice].Enable := TRUE;
  57.                 #ti_CounterErrors := #ti_CounterErrors + 1;
  58.                 ;
  59.             END_IF;
  60.            
  61.            
  62.             IF #sa_Fault[#ti_NrOfDevice] = FALSE THEN
  63.                 #Diagnostic_Array[#ti_NrOfDevice].Faulty := FALSE;
  64.  
  65.             ELSE
  66.                 #Diagnostic_Array[#ti_NrOfDevice].Faulty :=  TRUE;
  67.                 #ti_CounterErrors := #ti_CounterErrors + 1;
  68.                 ;
  69.             END_IF;
  70.            
  71.            
  72.             IF #sa_Problem[#ti_NrOfDevice] = FALSE THEN
  73.                 #Diagnostic_Array[#ti_NrOfDevice].Problem := FALSE;
  74.  
  75.             ELSE
  76.                 #Diagnostic_Array[#ti_NrOfDevice].Problem :=  TRUE;
  77.                 #ti_CounterErrors := #ti_CounterErrors + 1;
  78.                 ;
  79.             END_IF;
  80.            
  81.            
  82.         ELSE
  83.             #Diagnostic_Array[#ti_NrOfDevice].Configure := 0;
  84.         END_IF;
  85.         ;
  86.        
  87.         ;
  88.     END_FOR;
  89.    
  90.    
  91.  
  92. END_REGION
  93.  
  94.  
  95. REGION Step 4 - Error flag
  96.     IF #ti_CounterErrors = 0 THEN
  97.         #qx_Error := FALSE;
  98.         "ScanProfinet" := FALSE;
  99.         ;
  100.     ELSE
  101.         #qx_Error := TRUE;
  102.     END_IF;
  103.    
  104.    
  105. END_REGION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement