Parameterübergabe in SCL nicht korrekt

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich habe folgende SCL Funktion.

Code:
FUNCTION FC955 : VOID
VERSION : '1.0'
AUTHOR  : BS
VAR_INPUT
   
   DB_Input : BLOCK_DB;
   Startbyte : INT;
   Anzahl : INT;
    
END_VAR
VAR_TEMP
    
    Index : INT;
    Hilfsindex : INT;
    Zwischenwert : REAL;
    
END_VAR
    
    
    FOR Index := 1 TO Anzahl BY 1 DO
        
        Hilfsindex := Startbyte + Index * 4 - 4;
        
        Zwischenwert := DWORD_TO_REAL(DB_Input.DD[Hilfsindex]);
        
        IF Zwischenwert <> -100.00 AND Zwischenwert <> -200.00 THEN
            
            Zwischenwert := Zwischenwert * -1.0;
            DB_Input.DD[Hilfsindex] := REAL_TO_DWORD(Zwischenwert);
            
        END_IF;    
    END_FOR;
    
END_FUNCTION


Diese rufe ich in einem anderen Baustein auf:

Code:
"Invertiere Realwert"(DB_Input :=  WORD_TO_BLOCK_DB(INT_TO_WORD(DB_Einzelmesswerte))// IN: BLOCK_DB
                                  ,Startbyte :=  8// IN: INT
                                  ,Anzahl :=  2// IN: INT
                                  ); // VOID

Dabei bekomme ich an der stalle startbyte angezeigt, dass die Parameterübergabe nicht korrekt sei. kann mir jemand helfen?
 
... die Meldung bezieht sich hier m.E. auf den übergebenen DB (bzw. dessen Nummer).
"DB_Einzelmesswerte" sollte hier dann ein INT sein und als Wert z.B. 11 beinhalten wenn du DB 11 ansprechen willst. Aus der von dir gewählten Bezeichnung für die Variable könnte man aber auch schliessen, dass du da einen BLOCK_DB deklariert hast - überprüf das doch mal bitte ...

Gruß
Larry
 
Zurück
Oben