Wago 750 - 479 /// + - 10V Differenzeingang

Noxx797

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo bräuchte mal eure Hilfe,
möchte gerne das Eingangs Signal der +- 10V Klemme auf +400 bis -400 Skalieren!!!
IM Handbuch steht -32768 bis 32768 nur beim testen macht das so nicht sondern geht im Minus bereich von 32768 auf 64591!!!
Somit kann ich es mit der Funktion FU -Linear 2Punkt nicht machen.


danke für eure Hilfe

gruß Noxx
 
Bit 15 ist das vorzeichen bit. das sind deine 32768.
ich glaube man kann in der steuerungskonfiguration (oder wie hiess das gleich) den typ der variable ändern.
oder man macht einen typcast,
oder man maskiert das bit von hand aus,
oder man rechnet ein wenig
oder oder oder.....
 
Zuletzt bearbeitet:
ohne glaskugel wirds schwer...
also:
in denke du liest den eingang als word ein. in der steuerungskonfiguration solltest den wert von word nach int stellen.
Code:
oder typcast:
i_myValue:= word_to_int(w_myValue);

oder rechnen
if (w_myValue)>32767 then
i_myValue:=(w_myValue-32767)*-1;
else
i_myValue:=w_myValue;
end_if

das ausmaskieren kriege ich aus dem kopf jetzt nicht hin...
 
Das ist bestimmt nur ein Problem der Anzeige bzw. Interpretation des Bitmusters in einer 16-Bit-Variable.
Code:
unsigned     Hex       signed
 64591   =   FC4F   =   -945

Lass Dir den Wert als signed INT anzeigen.
Mache einen INT-Vergleicher - Du wirst sehen, daß 64591 < 0 ist.
Rufe Deine Funktion auf, Du wirst sehen, die funktioniert.

Im übrigen braucht man für Dein Problem eigentlich keine fertige Funktion, einfache Mathematik löst Deine Aufgabe:
Code:
skalierterWert := INT_TO_REAL(messwert) * 400.0 / 32767.0 ;


IM Handbuch steht -32768 bis 32768
Das muß "-32768 bis 32767" heißen, 32768 gibt es nicht bei 16-Bit signed INT.

Harald
 
Zurück
Oben