TIA FB Floating Average funktioniert nicht

Der Wert in %MD24: 16#000008F9 = 2297 dez = 3.21878257255e-42 ---> das ist eine sooo kleine REAL-Zahl, daß der Mittelwert 0.0 ist

So müsste es sein: 2297 dez ---> 2297.0 REAL = 16#450F9000

Harald

er bekommt doch nicht mal das Fensterbit, unabhängig vom Durchschnittswert...

Muss es nicht ein LReal Wert sein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Wert in %MD24: 16#000008F9 = 2297 dez = 3.21878257255e-42 ---> das ist eine sooo kleine REAL-Zahl, daß der Mittelwert 0.0 ist

So müsste es sein: 2297 dez ---> 2297.0 REAL = 16#450F9000

Harald

Der Distanzwert (Prozesswert) im EW1 ist 2297.

Wie kann ich dez Wert 2297 umwandeln damit ich die 2297.0 erhalte?
 
Muss es nicht ein LReal Wert sein?
Da wird beim Aufruf des FB eine "implizite" Datentypwandlung von REAL nach LREAL gemacht - siehe das Kästchen am Eingang

Wie kann ich dez Wert 2297 umwandeln damit ich die 2297.0 erhalte?
Bei Convert mußt Du "zusammenklicken" oder per Hand reinschreiben: "Int" To "Real"

PS: evl. mußt Du auch das EW1 als INT deklarieren und nicht als Word.
Ist EW1 auch richtig? Üblicherweise legt man Mehrbyte-Datentypen wie Word/Int/... auf gerade Adressen, z.B. EW0 oder EW2

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaub zwar nicht, dass es an dem Md24 liegt, aber schreib halt mal testweise 33.3 oder sowas ran.
Er scheint ja gar keine Werte zu speichern, sonst hättest du das Fensterbit am Ausgang...
Deshalb habe ich den Taktmerker vemutet.
 
Ich glaub zwar nicht, dass es an dem Md24 liegt
Bei den Beobachten-Bildern sieht man, daß in %MD24 immer nur Ganzzahl-Werte drin sind und keine Gleitpunktzahl-Werte ---> es liegt an dem Convert, der das Bitmuster der Ganzzahl in die REAL-Variable %MD24 schreibt (Word To Real) anstatt von Ganzzahl in Real zu konvertieren (Int To Real).

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe das EW1 (2297 dez) von WORD nach INT und dann von INT nach REAL konvertiert.

Es funktioniert:D
Wie ich schon schrieb: Du mußt das EW1 als INT (oder UINT) deklarieren.
Weil Du EW1 als falscher Datentyp Word deklariert hast, zieht TIA das freundlicherweise automatisch falsch durch, anstatt zu meckern.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anbei einige Screenshot's.

Ich wusste garnicht das man bei Typwechsel auf ungerade Byteadressen adressieren kann. Interessant.

Kleiner Tip noch: Du könntest Distanz_Word direkt als Integer oder uInteger deklarieren statt word, dann sparst du dir die eine Wandlung die ja gar keine ist.
 
Zurück
Oben