UDINT in UINT umwandeln

Nouk

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich habe 2 Klemmen : eine Eingangsklemme bei welcher ich eine Encoderfrquenz einlese (UDINT 32Bit), sowie eine PULS Train EncoderSimulationsklemme bei welchem ich die Frequenz wieder auslesen möchte(UINT 16Bit).

Arbeite mit Twincat 2
Wie mache ich eine einfache Konvertierung Von UDINT in UINT?

Danke und Gruss
Nouk
 
Code:
myUINTvar := UDINT_TO_UINT(myUDINTvar);
funktioniert natürlich nur dann korrekt wenn myUDINTvar im Bereich 0 .. 65535 liegt. Was soll bei größeren Werten passieren?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Tipp
Ich habe Frequenzwerte von 250kHz welche ich auf der Klemme ausgeben soll. Die Auflösung der Frequenzmessung: 100: "0,01 Hz".
z.B. bei einer gemessenen
Frq von 33khz habe ich beim Eingang einen Wert von 3'300'000. Rechnet man die Auflösung ergibt dies 33'000 Hz.

Soll ich die Eingangsfrequenz arithmetisch Teilen und dann konvertieren damit ich mit einem UINT darstellen kann?


 
Du könntest die Eingangsfrequenz auf einen Wert kleiner 65535 herunterskalieren, z.B.
Code:
myUINTvar := UDINT_TO_UINT(myUDINTvar / 1000); //250kHz = 25'000'000 --> 25'000


(oder in REAL wandeln: )
Code:
myREALvar := UDINT_TO_REAL(myUDINTvar) / 100000.0; //250kHz = 25'000'000 --> 250.0
//oder
myREALvar := UDINT_TO_REAL(myUDINTvar) / 100.0; //250kHz = 25'000'000 --> 250'000.0

Harald
 
Danke das hat schon mal gut geklappt.

Bin aktuell noch dran einen Mittelwert über die letzten 100 impulse zu bilden und diesen so auzugeben. Da gibt es schon ein paar sachen hier im Forum. Ich schau mir das an und melde mich sobald ich Probleme habe.
Vielen Dank!
 
Zurück
Oben