Mitsubishi FX0N - 40 MR-> Datenregister

Turbohesse

Level-2
Beiträge
58
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich habe aktuell folgendes Problem:

Ich muss einen Wert im Display mit 2 Nachkommastellen eintragen, da die 0N keine nachkommastellen kennt, skaliere ich diesen um den Faktor 100 im Display.
Das ergibt den Wert z.B. 125 für 1,25 (das ist in etwa auch alles.... also ich bewege mich da zwischen 100 und 140)
Dazu kommt ein festgelegtes Gewicht was ich einem gewicht am Analogeingang subtrahiere und dieses Ergebnis dann durch ein weiteres festgelegtes Gewicht teile.
Das Problem ist, dadurch, das ich überall den Faktor 100 habe und ich bei einem Eingangswert von z.B.450 Digits demnach 45.000 Digits habe, muss ich ein Doppelwort benutzen. Dies habe mit [DINC D158] realisiert, D159 ist frei!
In dieser Programmzeile liest er das auch korrekt ein, in den Nachfolgenden Rechenoperationen nicht! Ist dort evtl der befehl nichtmehr D158 sondern D?158 ???
noch eine info zur Programmstruktur in Kurzform:

M8000 als (S) ----------------------------[DINC DXXX]
I-------------------------Variablen alle so benannt

I-------------------------[MUL D158 K100 D160] Ab hier ist dann D158= -22xxx also data overflow.....

Was hab ich falch gemacht, bzw. wie geht es anders?
 
Für die Multiplikation von Doppelwörtern mußt du DMUL_M benutzen sonst werden nur 16 Bit benutzt, also nur D158.
Multiplizierst du 450 mit 100 brauchst du aber 32 Bit also D158 und D159 sowie D160 und D161
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tatsächlich hat mich dein DMUL Befehl mich darauf gebracht, in jedem Befehl indem ich Doppelwörter benutze auch ein D vor den Befehl zu schreiben und siehe an: Es funktioniert. Habe es gestern Abend mit erfolg fertiggestellt. Danke dafür :D
 
Zurück
Oben