-> Hier kostenlos registrieren
Hallo Allerseits,
ich bin dabei meinen Melde-FC mit Hilfe von Array
[*] etwas dynamisch zu gestalten, was die Array Grenzen angeht.
CPU1214C, TIA Portal V15
Hier der übergebene DB:
	
	
	
		
Hier der FC:
	
	
	
		
Ich habe den FC von unnötigem Code befreit.
CPU bringt folgende Fehlermeldung:
Hab ich was vergessen???
	
		
			
		
		
	
				
			ich bin dabei meinen Melde-FC mit Hilfe von Array
[*] etwas dynamisch zu gestalten, was die Array Grenzen angeht.
CPU1214C, TIA Portal V15
Hier der übergebene DB:
		Code:
	
	STRUCT       AlarmIn : Array[0..99] of Bool;
   END_STRUCT;Hier der FC:
		Code:
	
	FUNCTION "202 AlarmHandling" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT 
      AlarmIn : Array
[*] of Bool;
      AlarmRelease : Array
[*] of Bool;
      AlarmQuit : Array
[*] of Bool;
      resetDelayed : Bool;
   END_VAR
   VAR_OUTPUT 
      blinkAlarm : Bool;
      collAlarm : Bool;
      newAlarm : Bool;
   END_VAR
   VAR_IN_OUT 
      AlarmOut : Array
[*] of Bool;
      AlarmOutOld : Array
[*] of Bool;
   END_VAR
   VAR_TEMP 
      i : Int;
      tempUpperBound : DInt;
      tempLowerBound : DInt;
      tempUpperBound1 : DInt;
      tempLowerBound1 : DInt;
   END_VAR
BEGIN
    // Meldungs Init
    #blinkAlarm := FALSE;
    #collAlarm := FALSE;
    
    #tempUpperBound := UPPER_BOUND(ARR := #AlarmIn, DIM := 1);
    #tempLowerBound := LOWER_BOUND(ARR := #AlarmIn, DIM := 1);
    
    FOR #i := #tempLowerBound  TO #tempUpperBound  DO
      // Alarme, Störungen
        // wenn einkommende Meldung mit Freigabe, dann Meldung ausgeben
      IF #AlarmIn[#i] THEN
          #collAlarm := FALSE;
        END_IF;
        
    END_FOR;
END_FUNCTIONIch habe den FC von unnötigem Code befreit.
CPU bringt folgende Fehlermeldung:
Temporärer CPU-Fehler: Bereichslängenfehler in FC 202 betrifft OB 123-Ausführung
Lesezugriff Typsicherer V-Bereich
fehlerhafte Adresse, Operand ersetzt
Bearbeitung wird fortgesetzt (keine OB-Bearbeitung)
PLC_1 / PLC_1
interne Adressierungsdetails: Caddr=16#00000050, Bereich: Typsicherer V-Bereich, Adr: 4294409296
Der durch die Zugriffsadresse adressierte Wert liegt außerhalb oder nicht vollständig innerhalb des zulässigen Operandenbereiches (CPU-spezifische Größe oder Größe des Datenbausteins).
Behebung:
Wählen Sie die Zugriffsadresse so, dass der adressierte Wert vollständig im jeweils zulässigen Operandenbereich liegt. Überprüfen Sie auch die Adressierungsart und den adressierten Operandentyp.
Öffnen Sie den Baustein, um den Fehler im Kontext des Baustein-Programmcodes anzuzeigen.
Hab ich was vergessen???
 
	 
  
 
 
 
		 
 
		 !
 ! 
  )?
 )? 
  
 
		 
 
		