www.mikrocontroller.net

Forum: PC-Programmierung AWL für Messbereich


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

für ein Projekt möchte ich den Strom und die Spannung einer Maschine 
messen.
Dazu benutze ich WAGO-Komponenten.

Die Spannung messen ist kein Problem, das funzt.

Probleme habe ich beim Strom. Dazu messe ich den Spannungsabfall über 
einem SHUNT (bei 100A 60mV Spannungsabfall)...dieser wird von einem 
Messumformer (eingestellt auf : -60mV...60mV) auf 0 bis 10V umgeformt.

Die Auflösung 16Bit (32768)

Messbereiche
                   Anfang       Mitte        Ende

Strom             -100A         0            100A
Bits               0            16384        32768
Messumformereing. -60mV         0            60mV
Messumformerausg.  0V           5V           10V

Wenn ich nun den Strom messe, wenn der Motor aus ist, bekomme ich nicht 
NULL sondern 16384 geliefert, also quasi genau die Mitte von -60mV und 
60mV. Was ja sozusagen auch richtig ist aber ist es denn möglich das 
auch so zu programmieren, dass es bei 0V auch 0A sind???
Muss aber in beide Richtungen messen, da die Maschine als Motor und Gen. 
arbeiten soll. Hab schon die F1-Taste gedrückt aber so richtig geholfen 
hat mir die Hilfe nicht, was auch sicher daran liergt, dass ich kein 
TOP-Programmierer bin. Das hielt sich immer in Grenzen bei mir. Nun 
gehts aber nicht anders...

Vielleicht kann mir ja jemand helfen.

MfG Markus

Autor: Flutsch1987 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm,
macht 16 bit nicht einen Wertebereich von 0 bis 65536-1 und 
dementsprechend 15 bit 32786-1 ?
Könnte es also sein das du das Vorzeichenbit nicht berücksichtigt hast? 
Würde dann heißen 16 bit Auflösung macht als Vorzeichenbit und einen 
Wertebereich von -(32786-1) bis 32786-1 ...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:

> Wenn ich nun den Strom messe, wenn der Motor aus ist, bekomme ich nicht
> NULL sondern 16384 geliefert, also quasi genau die Mitte von -60mV und
> 60mV. Was ja sozusagen auch richtig ist

Sehe ich auch so.

> aber ist es denn möglich das
> auch so zu programmieren, dass es bei 0V auch 0A sind???

Speichere den Messwert in einer int Variablen (also einer Variablen, die 
ein Vorzeichen haben kann) ab und zieh 16384 ab.
Schon hast du Werte die von -16384 bis +16384 laufen.
0 entspricht 0A
-16384 entspricht -100A
+16384 entspricht +100A


Wo liegt das Problem ein bischen Mathe zu betreiben und ein wenig 
rumzurechnen?

Dasselbe Ergebnis hättest du ja sowieso bekommen, wenn du deine 
Werteumrechnung von 0 bis 32767 auf -100A bis +100A schon mathematisch 
so weit fertig gemacht hättest. Dort wäre es dann in 1 Formel 
aufgetaucht und jetzt hast du es eben auf 2 mal.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.