Memcpy versus For / Next

shrimps

Level-1
Beiträge
422
Reaktionspunkte
49
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich versuche gerade mein gelerntes zu optimieren:
(Twincat V2.11)
Gibt es eigentlich einen Unterschied im Ergebnis zwischen den beiden Programmteilen:
Voraussetzung, beide Strukturen sind identisch:

Falls nicht, ist der memcpy ja deutlich "kleiner" und "sicherer"...

LG
Shrimps


Code:
astMotor      : ARRAY [1..motor_anzahl] OF  _stMotor;  
astMerker    : ARRAY [1..motor_anzahl] OF  _stMotor;   

entweder:
        MEMCPY(ADR(astMotor),ADR(astMerker),SIZEOF(astMotor));

oder:

        FOR Index := 1 TO motor_anzahl DO                
            astMotor[Index] :=     astMerker[Index];
        END_FOR
 
Das Ergebnis ist in beiden Fällen gleich. MEMCPY dürfte dabei nicht nur beim Schreiben, sondern auch bei der Ausführung etwas schneller sein, weil es (hoffentlich) mit Block Move-Befehlen der CPU arbeitet. Nachteil ist, dass MEMCPY Beckhoff-spezifisch ist. Wenn das Programm auf eine andere CoDeSys-SPS übertragen werden soll, hast Du eine Stelle mehr, die Du anpassen musst.
 
Zurück
Oben