Analogeingang +/-10 V Skalieren

maddin

Well-known member
Beiträge
116
Punkte Reaktionen
5
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen,

gleich die nächste Frage......

Ich bekomme eine Spannung +/- 10V auf ein Beckhoff Anlageingangsmodul EL 3102.

Gibt es zur Skalierung eine fertige Funktion ?

Ich möchte den Eingangswert auf Volt umgerechnet haben. Habe noch nichts gefunden diesbezüglich.

Gruß maddin
 

KingHelmer

Well-known member
Beiträge
1.064
Punkte Reaktionen
137
hmmm,

es sollte ja ein lineares signal sein, nehme ich an, also kannst du dir das ja relativ einfach selbst schreiben

beispiel:

VAR
VoltWert : REAL; (Wert in Volt)
INTWertKlemme : INT; (aktueller Wert)
MaxINTWertKlemme: INT; (Wert bei 10V)
END VAR;
-----------------------

VoltWert:= (INT_TO_REAL(INTWertKlemme) : INT_TO_REAL(MaxINTWertKlemme))*10.0;


_____________________________

Ich persönlich würde dann noch den Voltwert *10 Multiplizieren und als Byte ausgeben.

Soll nur ein Eindruck sein, da kann man natürlich noch einiges zusätzlich einbauen!

Grüße
 
Zuletzt bearbeitet:

Babylonkiller

Member
Beiträge
23
Punkte Reaktionen
4
Zuviel Werbung?
->Hier kostenlos registrieren
Oder so. Damit kannst du rauf und runter Skalieren wie du willst.
(*Formel 1:

( Amax - Amin ) * ( X - Emin )
Kennlinie := -------------------------------- + Amin
Emax - Emin


Fromel 2:


( Amax - Amin ) * ( Emin - X )
Kennlinie := -------------------------------- + Amin
Emin - Emax
*)

FUNCTION Kennlinie : REAL

VAR_INPUT

X: REAL;
Emin: REAL;
Emax: REAL;
Amin: REAL;
Amax: REAL;

END_VAR

(*
( Amax - Amin ) * ( X - Emin )
Kennlinie := -------------------------------- + Amin
Emax - Emin
*)



IF Emin<Emax THEN
IF (X>Emin) AND (X<Emax) THEN
Kennlinie:=(((Amax-Amin)*(X-Emin))/(Emax-Emin))+Amin;
ELSIF X<=Emin THEN
Kennlinie:=Amin;
ELSIF X>=Emax THEN
Kennlinie:=Amax;
END_IF;
END_IF;


(*
( Amax - Amin ) * ( Emin - X )
Kennlinie := -------------------------------- + Amin
Emin - Emax
*)



IF Emin>Emax THEN
IF (X<Emin) AND (X>Emax) THEN
Kennlinie:=(((Amax-Amin)*(Emin-X))/(Emin-Emax))+Amin;
ELSIF X>=Emin THEN
Kennlinie:=Amin;
ELSIF X<=Emax THEN
Kennlinie:=Amax;
END_IF;
END_IF;
 
Zuletzt bearbeitet:
Oben