Step 7 Problem mit SCL Funktion

ekaiser

Level-1
Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe ein Phänomen zum Haare ausreissen.
Ich wandle in einer SCL Funktion einen Sollwert in Inkremente um.
Rufe diesen FC in einem fcACHSE auf. Nach diesem Netzwerk ist der Aufruf des SERVO FC's an dem uebergebe ich den Sollwert in Inkremente
Wenn ich jetzt einen ganz bestimmten Sollwert auf die Funktion zum umrechnen gebe, setzt mir der SERVO FC den Istwert auf null?!?!
Ändere ich den Sollwert, so funktioniert dies einwandfrei! Wie kann dieser FC (zum Umrechnen) meinen anderen FC(Servo) beeinflussen? Ich habe das Problem auch schon soweit isoliert, das ich alles andere ausschließen kann.

anbei der Source vom FC:

FUNCTION FC205 : VOID


//Funktion zum Umrechnen von einer Sollposition in Hundertstel auf Inkremente


VAR_INPUT
inGetriebefaktor :REAL; //Getriebefaktor des Getriebes (zB. i=70)
inDMLinear :REAL; //Wirkdurchmesser
inINKpUmdr :REAL; //Inkremente pro Umdrehungen des Gebers
inSollPos :DINT;
END_VAR


VAR
Umfang :REAL; //Errechnen des Umfangs
PI :REAL;
mmProUmdr :REAL; //mm pro Umdrehung
rSollPos :REAL;
INKs :REAL;
END_VAR




VAR_OUTPUT
outErg :DINT;
END_VAR


BEGIN
PI := 3.141592 ;


IF inSollPos <> 0 THEN
Umfang:= (indmLinear * PI);
mmProUmdr:= (Umfang / inGetriebefaktor);
rSollPos := DINT_TO_REAL(inSollPos) / 100;

INKs:= (rSollPos / mmProUmdr) * inINKPUmdr;
outErg:= REAL_TO_DINT(INKs);
ELSE
outErg:=0;
END_IF;


END_FUNCTION

lg
Ernst
 
Der Fehler dürfte im FC Servo liegen. Vermutlich irgendwo einen Temp verwendet der nicht zwingend beschrieben wird.

im Umrechnungs FC sehe ich jetzt keinen offensichtlichen Fehler.

mfG René
 
Zurück
Oben