TIA Lower/Upper-Bound in for-Schleife

MFreiberger

Level-3
Beiträge
2.813
Reaktionspunkte
742
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Zusammen,

hat einer eine Idee, warum ich Probleme mit folgendem Code habe?:

Code:
FOR #Ti_i := 1 TO 4 DO
    #Ti_Bnd[#Ti_i].Lower := DINT_TO_INT(IN := LOWER_BOUND(ARR := #IOa_POSIT, DIM := INT_TO_UDINT(#Ti_i)));
    #Ti_Bnd[#Ti_i].Upper := DINT_TO_INT(IN := UPPER_BOUND(ARR := #IOa_POSIT, DIM := INT_TO_UDINT(#Ti_i)));
END_FOR;

Immer, wenn ich es übersetzen lassen will, schmiert TIA ab...


Wenn ich es so schreibe geht es:

Code:
#Ti_Bnd[1].Lower := DINT_TO_INT(IN := LOWER_BOUND(ARR := #IOa_POSIT, DIM := 1));
#Ti_Bnd[1].Upper := DINT_TO_INT(IN := UPPER_BOUND(ARR := #IOa_POSIT, DIM := 1));
#Ti_Bnd[2].Lower := DINT_TO_INT(IN := LOWER_BOUND(ARR := #IOa_POSIT, DIM := 2));
#Ti_Bnd[2].Upper := DINT_TO_INT(IN := UPPER_BOUND(ARR := #IOa_POSIT, DIM := 2));

#Ti_Bnd[3].Lower := DINT_TO_INT(IN := LOWER_BOUND(ARR := #IOa_POSIT, DIM := 3));
#Ti_Bnd[3].Upper := DINT_TO_INT(IN := UPPER_BOUND(ARR := #IOa_POSIT, DIM := 3));

#Ti_Bnd[4].Lower := DINT_TO_INT(IN := LOWER_BOUND(ARR := #IOa_POSIT, DIM := 4));
#Ti_Bnd[4].Upper := DINT_TO_INT(IN := UPPER_BOUND(ARR := #IOa_POSIT, DIM := 4));


VG

MFreiberger
 
Liegt unter Umständen an Tia.
Was ich dir aber mal auf den Weg geben möchte: ein array[*] mit unbekannter Grösse am inout Parameter klappt im der Simulation nicht. Nur das du da nicht zuweit suchen musst.
 
Zurück
Oben