Datentyp word umwandeln

win98

Level-2
Beiträge
109
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo.

ich lese aus meinem AI einen wert aus und der ist vom datentyp word

die adresse ist PEW272

als ergebnis erhalte ich werte von min -32768 bis max 32767

diese entsprechen einer scala von 0 bis 120 und ich möchte diese entsprechend umwandeln:

120/32767*(Wert von PEW272)

nur kann ich keinen UMWANDLER, MULTIPLIKATIONS und DIVISIONSBAUSTEIN benutzen, weil der datentyp aus PEW272 word ist.

wie kann ich das umgehn? bzw womit kann ich word in real oder int umwandeln..

bin für jede hilfe dankbar
 
Hallo,
im Symbol Editor sollst Du PEW 272 INT als Datentyp eintragen.
INT -> Real

L PEW272
ITD (Wandlung 16 auf 32 Bits)
DTR (Wandlung DINT auf Real)
T MD XXX
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo.

ich lese aus meinem AI einen wert aus und der ist vom datentyp word

die adresse ist PEW272

als ergebnis erhalte ich werte von min -32768 bis max 32767

diese entsprechen einer scala von 0 bis 120 und ich möchte diese

Ich glaub der FC105 (SCALE) aus der Simatic-Bibliothek ist genau das Richtige für Deinen Anwendungsfall.

Ansonsten:
WORD in INTEGER:
Code:
L WERT_Word // MW, DW oder PEW
T WERT_Int // MW, DW usw.

WORD in REAL so wie schon von Taddy beschrieben.

Gruß Approx
 
Scale

Hallo,

der SCALE funktioniert nur wenn der Wertebereich zwischen -27648 und 27648 liegt. Das ist bei Siemens AI-Modulen der Fall. Bei anderen Herstellern ist das oft nicht so. Der FC105 geht dann in den Über/Untersteuerungsbereich und gibt den MAX/MIN-Wert aus.

André
 
Hallo SPS-Concept,
da von Win98 keine Angabe bezüglich der HW gemacht wurde, bin ich mal von einer normalen Siemens-AE-Baugruppe ausgegangen. Wenn der Geber des PEW ein DP-Teilnehmer o.Ä. ist, hast Du natürlich recht. :D In dem Link findet Win98 aber auch Lösungsansätze diesbezüglich...

Greez
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die adresse ist PEW272
als ergebnis erhalte ich werte von min -32768 bis max 32767
diese entsprechen einer scala von 0 bis 120

Dies lässt mich ohne Angabe zur Hardware zu dem Schluss kommen dass der FC105 ungeeignet ist. Vielleicht ist das mit den -32768 bis max 32767 auch nur ein Trugschluss. Aber ich denke der nächste Beitrag von win98 wird das aufklären.

Falls das mit dem Wertebereich zutrifft muss noch sichergestellt werden dass kein Drahtbruch/Kurzschluss vorliegt. Bei Siemens AI gibts dafür ne Kennung die der FC105 auch auswertet. Bei anderen Herstellern muss man das anhand der Diagnosedaten des Slaves auswerten.

André
 
Oder noch einfacher und flexibler sowas wie den FC105 selber programmieren mit freier eingabe ines min und max Eingangswertes. Damit kann man festlegen "wenn der Eingangswert sich von - bis ändert ändert sich der Ausgangswert von - bis.
Ich hatte mal vor kurzem son FB reingestellt.

peter(R)
 
Soll der Ausgangswert -32768 bis +32767 dem Endwert 0 bis +120 entsprechen?
Code:
L PEW xxx
ITD
L 32678
+D
L 120
*D
DTR
L 65536.0
/R
T MD yyy
Oder entspricht dies -120 bis +120?
Code:
L PEW xxx
ITD
L 120
*D
DTR
L 32678.0
/R
T MD yyy
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@ Rainer

habe gerade mal nachgeschaut bei PT100
-50° = 80,31 Ohm, 0° = 100 Ohm, 120° = 146,6 Ohm, 150° = 157,3 Ohm

Damit passt so eine linearität wohl nicht ( ausser der Messwandler bügelt das
wieder grade). D.h. bevor wir nicht wissen bei wieviel Grad der Messwandler 0 (bzw. 4)mA ausgibt hilft alles nix nur die 20mA bei 100° liegen fest. Steht aber normal auf dem Wandler drauf.

peter(R)
 
der Ausgangswert -32768 bis +32767 entspricht dem Endwert 0 bis +120

aber wenn ich das so eingeb und MD beobachte bekomm ich ein statuswert(DEZ) von L#1116536736 und mein PEW272 ist auf 5808

von der hardware häng ich an einem op7 komplettgerät (panel und sps in einem)

meine karte ist Baugruppe C7 AI4/AO4/DI4

mit dem FC105 kämpf ich noch, weil der ja wieder INT will und ich im FUP nicht WORD in INT konvertieren kann
 
Zuletzt bearbeitet:
Der FC105 braucht keine Baugruppe !!!

Bei IN gibst Du dein PEW272 ein
bei HI_LIM 120.0
Bei LO_LIM 0.0
Bipolar True (oder einen Merker der immer 1 ist)
Out wird der MD100
RET_VAL wir zB. MW104 (ist nur ein Wert für Fehlermeldung)

peter(R)
 
Zurück
Oben