analogwertverabeitung

tycomatze

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
schon mein 3. beitrag heute, ich weiß... aber wenn ich alles zusammen nehme, kommt alles durcheinander.
ich will mit ner SM 331 2*12Bit nen Analogwert 0-10V einlesen. so da bekomm ich ja dann ne dezimalzahl von x-xy für 0-10V (weiß die werte nicht auswendig) so un jetzt will ich mir durch "variable steuern und bearbeiten" die genaue spannung anzeigenlassen z.b. 4,56 V
ich dachte ok, ich schau: bei 3000 dez ( angenommener wert) hab ich 1 V
so dann geh ich einfach her und teile immer das EW durch 3000 dez dann bekomm ich die Spannug raus. aber dann funktioniert das ganze nur in 1V-Schritten. ich glaube die einziege möglichkeit so einen wert da zustellen wäre mit einer gleitpunktzahl. wie das funktioniert mit vorzeichen, exponent und mantisse hab ich habwegs verstanden. aber wie integriere ich jetzt mein EW des AI in der gleitpunktzahl, dass die gleitpunktzahl von EW beeinflusst wird?
 
Weiss nicht genau was Du willst, aber:

L PEW xy //0-10V = 0-27648dez
DTR //wandelt in Real
L 2764.8
/R
T irgendwohin //dort steht im Status der Volt Wert in Gleitpunkt (Real)
 
hab mir das noch mal genauer angeschaut.
sieht bei mir folgendermaßen aus:
L PEW 0 // hier läd sie das pew0 in de accu
DTR // hier wird die zahl aus dem pew in eine gleitpunktzahl umgewandelt
L 2.764800e+003 // hier läd sie die zahl 2764.8 in den accu1
/R hier dividiert sie accu2 durch accu1. die eingelesene gleitpunktzahl wurde ja vor dem L-Befehle in accu2 geschoben
T AD 0 hier gibt man das ergebnis an ein ausgangdoppeltwort aus

hab ich das alles richtig verstanden?
wenn ja, mir ist nicht ganz klar, wie die cpu das pew in eine gleitzahl umwandelt. das pew hat ja nur 16 bit von denen die unteren 3 frei sind !? und mit der darstellung 2.764800e+003 kann ich auch nicht soviel anfangen. ich weiß das es 2764.8 heißen muss. aber wie kommt man genau darauf?
 
Hallo tycomatze

für sowas nimmt man den FC105
Standard-Library->TI-S7 Converting Blocks

Beim suchen im Forum gibt es auch noch einen anderen Baustein, der High und und Low Bereichsfehler einzeln ausgibt.

Damit wird das PEW scaliert auf einen beliebigen Real-Wert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hab mir das noch mal genauer angeschaut.
sieht bei mir folgendermaßen aus:
L PEW 0 // hier läd sie das pew0 in de accu
DTR // hier wird die zahl aus dem pew in eine gleitpunktzahl umgewandelt
L 2.764800e+003 // hier läd sie die zahl 2764.8 in den accu1
/R hier dividiert sie accu2 durch accu1. die eingelesene gleitpunktzahl wurde ja vor dem L-Befehle in accu2 geschoben
T AD 0 hier gibt man das ergebnis an ein ausgangdoppeltwort aus

hab ich das alles richtig verstanden?
wenn ja, mir ist nicht ganz klar, wie die cpu das pew in eine gleitzahl umwandelt. das pew hat ja nur 16 bit von denen die unteren 3 frei sind !? und mit der darstellung 2.764800e+003 kann ich auch nicht soviel anfangen. ich weiß das es 2764.8 heißen muss. aber wie kommt man genau darauf?

Jeder Analogwert, der als Einheitssignal vorliegt wird als 0-27648 im Nennbereich interpretiert.
Die drei unteren sind nicht frei sondern sind in Abhängigkeit der Auflösung der Karte belegt, eine 12 Bit Auflösung kann nur in Dezimal 8 Schritt auflösen

2.7648e+003 enstpricht einer exponentiellen schreibweise, die da heisst:
2.7648 x 10³
das ist wie beim Taschenrechner so.

Alle S7 Realzahlen sind mit einer Vorkommastelle, nachkommastellen und Exponent dargestellt (Eingeben kannst Du sie normal, aber du brauchst einen dezimalpunkt, also für 10 musst Du 10.0 eingeben).

PS: Das T AD0 wird keinen Sinn machen, es geht zwar aber es ist nicht sinnvoll eine Gleitkommezahl auf ein Binärmuster zu legen.
 
@borromeus: wie kann ich dann den wert ausgeben und wieso ist es nicht sinnvoll eine gleipunktzahl auf ein binärmuster zulegen?

@jabba: mit den standart FCs hab ich noch nicht gearbeitet.
ich schau mir das morgen mal an.
ich hoffe ich kann auf dich zählen, wenn ich nicht klar komme ;-)
 
@borromeus: wie kann ich dann den wert ausgeben und wieso ist es nicht sinnvoll eine gleipunktzahl auf ein binärmuster zulegen?

zum ausgeben des eingelesenen Wertes reicht:
L PEW
T PAW

weil eine Gleitpunktzahl auf einem AD vermutlich ausschaut wie eine Lichtorgel..... kann man aber alles nachlesen im Forum und im Handbuch (Gleitpunktdarstellung).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nunja, wie das aussieht, keine ahnung...
wenn dann brauch ich aber ein PAD, weil ich für eine Gleitpunktzahl immer ein Doppelwort brauche. aber da ich keine analoge ausgabebaugruppe ansteuern will und auch nicht kann (hab keine) und man eine Peripherie-Ausgang nicht mit "variabeln beobachten" beobachten kann, nützt mir das nichts. trotzdem danke

@jabba: habs schon hinbekommen mit dem FC105 :)
 
nunja, wie das aussieht, keine ahnung...
wenn dann brauch ich aber ein PAD, weil ich für eine Gleitpunktzahl immer ein Doppelwort brauche. aber da ich keine analoge ausgabebaugruppe ansteuern will und auch nicht kann (hab keine) und man eine Peripherie-Ausgang nicht mit "variabeln beobachten" beobachten kann, nützt mir das nichts. trotzdem danke

@jabba: habs schon hinbekommen mit dem FC105 :)

Zwecks Anzeige kannst ja auch MD xxx schreiben und dieses beobachten
 
Zurück
Oben