mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wägezellen mit 4-20mA an AVR NET IO


Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja danke noch mal an alle die mir bis jetzt geholfen habe.
Frage : Beitrag "Wägezellen mit AVR NET IO verbinden"
Ich habe jetzt mit mehreren Lieferanten gesprochen und werde 3 
Wägezellen mit einem Modul verwende das mir 4-20mA Stromausgang liefert. 
Ich bekomme also aus dem Modul 4-20mA auf mein AVR NET IO :-( aber das 
geht nicht weil ich ja nur 0-5V eingang habe.

Hat jemand eine Idee wie ich das jetzt von 4-20mA auf 5V bekomme?

Autor: Andrew Taylor (marsufant)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst fertige Strom/Spannungsumsetzer kaufen. Als IC oder als 
Industriemodule.
Du kannst diese selber bauen (was die Sache nicht wesentlich billiger, 
aber vielleicht für Dich interessanter macht) oder fertig kaufen.

Welchen Weg möchtest Du?

Autor: codehamster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U=R*I ???

Autor: codehamster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem Widerstand von 250 Ohm hast du bei 20mA 5V und bei 4mA 1V

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei einem Widerstand von 250 Ohm hast du bei 20mA 5V und bei 4mA 1V

daran habe ich auch schon gedacht aber ich würde ein teil meiner 
auflösung verlieren. 0-5V in 1-5V

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welchen Weg möchtest Du?
Ich denke fertig kaufen ich muss nichts mehr basteln :-)

Dann schaue ich mal nach umsetzern von 4-20mA auf 0-5V

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tommy schrieb:
> Ich habe jetzt mit mehreren Lieferanten gesprochen und werde 3
> Wägezellen mit einem Modul verwende das mir 4-20mA Stromausgang liefert.
Warum nimmst du nicht einen Messverstärker mit einem Spannungsausgang 
(0..10V), dann wäre nur ein Spannungsteiler nötig.

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal genau beschreiben wo die Reise hingehen soll ? 4-20mA 
wertet man üblicherweise mit 12 BIT aus.

Dein Vorhaben ist recht einfach umzusetzen aber ich habe keine Idee was 
du eigentlich machen willst.

3 Signale 4-20 mA auswerten und dann ? Sorry, habe deinen verlinkten 
Thread gelesen und ebenso diesen hier aber was solls werden und mit 
welcher Genauigkeit ?

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kannst du mal genau beschreiben wo die Reise hingehen soll ? 4-20mA


Ich möchte an das

http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetz...

AVR NET IO Modul von Pollin nutzen um einen Futtermischer zu 
Automatisieren.
Der Mischer hat 3 Wägefüße und ein Modul an dem die Wägefüße 
angeschlossen sind. Das Modul gibt mir 4-20mA Stromsignal raus. Das 
gesamt gewicht vom Mischer soll so 1000kg sein. Also auf das IO Modul 
bezogen 0-5V
(theoretische) Auflösung von 10 Bit, das sind dann 1024 Schritte, macht 
alos ca 1kg schritte wenn ich das richtig gerechnet habe. Das Gewicht 
des Mischers (leer) wird in dem Wägemodul schon abgezogen. Die Software 
auf dem PC macht ein Kollege von mir ich muss nur die Karte mit dem 
Wägefüßen verbinden.

>wertet man üblicherweise mit 12 BIT aus.
Was meinst du damit?

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du bekommst also nur 1x ein 4-20 mA Signal und daraus soll dann eine 
Skalierung 4-20mA = 0-1000 kg werden ?

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Du bekommst also nur 1x ein 4-20 mA Signal und daraus soll dann eine
>Skalierung 4-20mA = 0-1000 kg werden ?

Ja ich muss von 4-20mA auf 0-5V an der IO Karte. Genau das ist meine 
Aufgabe,
die Genauigkeit ist so im bereich von 2-3kg ausreichend (vorgabe vom 
Kunden).

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tommy schrieb:
> die Genauigkeit ist so im bereich von 2-3kg ausreichend
Dann reicht doch die Wandlung von 4V (1V..5V) mit den verbleibenden 800 
Schritten locker aus... ;-)

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal angenommen du verwendest einen 100 Ohm Widerstand dann ergibt sich 
für 4mA = 0.4V und für 20mA = 2.00 V.

Gehen wir mal weiter von 12 BIT aus dann liefert dein ADC folgende 
Werte:
// Stützpunkte 4-20mA
#define AdcRawH 3206                                              // Stützpunkt 2.00 Volt
#define AdcRawL  606                                              // Stützpunkt 0.40 Volt

Diese 2 Messungen verwendest du nun und skalierst:
// Skalierung Delta ADC + Referenzpunkte
#define RefA 16000.0                                              // Referenzpunkt A 2.0V-0.4V=1.6V
#define RefB  4000.0                                              // Referenzpunkt B 0.4V
#define Scale 65536                                               // zur Basis 2^16

// Berechnung der ADC Korrekturwerte mittels Referenzpunkte
#define Slope  (RefA / (AdcRawH - AdcRawL))                       // Delta U / Delta ADC -> Steigung
#define Offset (uint32_t) ((RefB - (AdcRawL * Slope)) * Scale)    // Offset zur Basis 2^16
#define Factor (uint32_t) ((RefA / (AdcRawH - AdcRawL)) * Scale)  // Steigung zur Basis 2^16

Dann noch die Messung mit 12 BIT und fertig:
uint16_t getAdcValue (void)
{
    uint16_t AvgCount = 0;
    uint32_t AvgSum = 0;

    for (AvgCount = 0; AvgCount < 512; AvgCount ++) {
        ADCSR |= (1 << ADSC);                                     // AD Wandler starten
        while (ADCSR & (1 << ADSC));                              // AD Wandlung fertig ?
        AvgSum += ADC;                                            // Mittelwert über 512 Messungen
    }
    return ((((AvgSum >> 7) * Factor) + Offset) >> 16);           // skaliert auf 12 BIT
}

Der ADC ist nun von linearen Fehlern befreit (Gain / Offset) und die 
Auflösung kommt auch hin. Du brauchst nicht einmal eine externe 
Referenz, die interne ist gut genug. Du nutzt in der Tat nicht den 
vollen Bereich aber deine Messung gibt 4.00 mA - 20.00 mA her.

Das Ganze dann auf kg umrechnen ergibt eine Auflösung von < 1 kg.

// Skalierung 4-20 mA -> 0-1000 kg
#define Scalekg (uint32_t) (1000.0 / (2000 - 400) * 16384)        // Skalierung 0-1000 kg
#define mAzero 4000                                               // 4.000 mA
Dann:
Scale_kg = (uint16_t) (((getAdcValue () -mAzero) *Scalekg) >>14);
Genau das habe ich mit dem NETIO schon gemacht.

Wie sollen dann die Daten Versendet werden ? Netzwerk ?

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Das Ganze dann auf kg umrechnen ergibt eine Auflösung von < 1 kg.

Habs noch mal gerechnet und es sind 0.625 kg.

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja danke an alle die mir geholfen habe, ich werde mich bei den 
einschlägigen anbietern von strom umd spannungswandlern informieren und 
das dann so bauen.

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> ich werde mich bei den einschlägigen anbietern von strom umd
>> spannungswandlern informieren

Häh ? habe dir doch genau vorgemacht wie man das mit einem 100 Ohm 
Widerstand berechnet. Wozu brauchst du jetzt noch einen Wandler ???

Ich habe das nicht mal eben aus dem Ärmel geschüttelt sondern so gelöst 
und es funktioniert. Ich habe den Verdacht du verstehst den 
Lösungsansatz nicht.

Ich frage aber nochmal nach, wie soll nun der Wert in kg übertragen 
werden ? Netwerk ?

Verstehst du den Lösungsweg ?

Den Lösungsansatz den ich dir geliefert habe ist Lauffähig und bei 
Übertragung des Ergebnis mittels UART brauchts gerade mal ~860 Byte. Das 
paßt sogar in einen ATTiny 26.

Autor: gk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Strom-Spannungswandler ist Humbuck, da kannst Du auch gleich einen 
Messverstärker mit Spannungsausgang verwenden. Z.B:

Ebay-Artikel Nr. 300494668247

Ansonsten reicht der bereits beschriebene Widerstand

gk

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...nur mal kurz nachgefragt, bei den Wägezellen, bist du dir sicher das 
es ein Stromausgang von 4-20mA ist und nicht wie sonst bei solchen 
kraftaufnehmern üblich eine Ausgangsspannung von 4-20mV ???

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Häh ? habe dir doch genau vorgemacht wie man das mit einem 100 Ohm
> Widerstand berechnet. Wozu brauchst du jetzt noch einen Wandler ???

Sorry ich habe mich verlesen und bin bei der Antwotr durche einander 
gekommen. So wie du es beschrieben hast ist es am einfachste und ich 
werde es so machen. Danke für die Hilfe.

Autor: ddddd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum nimmst du nicht ne wägezelle mit ner gescheiten schnittstelle
wie rs232,rs485 oder can?

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> warum nimmst du nicht ne wägezelle mit ner gescheiten schnittstelle
> wie rs232,rs485 oder can?

Die Zellen sind schon in der Anlage eingebaut und ich denke, dass es 
über einen Analogwert einfacher ist.

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde dennoch gern wissen wie die Daten dann an den PC gelangen ? 
Wie du es letzenendes machst ist ja deine Sache also viel Erfolg.

Autor: gk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grobi schrieb:
> wie sonst bei solchen kraftaufnehmern üblich eine Ausgangsspannung von -20mV

Hab ich noch nie gesehen, üblich sind z.B. 2mV/V.

warum nimmst du nicht ne wägezelle mit ner gescheiten schnittstelle
wie rs232,rs485 oder can?

Das wäre sicherlich die beßte Lösung. Die 10 bit Auflösung sind schon 
recht knapp für diese Anwendung. Durch den Tara des Leergewichtes 
reduziert sich die Auflösung noch mehr.

gk

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gk schrieb:
> warum nimmst du nicht ne wägezelle mit ner gescheiten schnittstelle
> wie rs232,rs485 oder can?
> Das wäre sicherlich die beßte Lösung.
Ziemlich halbgar, der Vorschlag...
Warum nicht logischerweise welche mit Ethernet?

> Das wäre sicherlich die beßte Lösung.
Es geht hier offenbar nicht darum, die beste Lösung zu erreichen, 
sonder (wie meistens) einfach nur eine Ausreichende. Und wenn der 
AD-Wandler <1 kg auflösen kann, dann reicht das für gewünschte 2-3kg 
locker aus.
Zudem gibt es Tricks, die Auflösung des Wandlers noch ein wenig in die 
Höhe zu schrauben...
Oder viel einfacher: es wird ein externer 12- oder 14-Bit Wandler 
angeschlossen...

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ausgangslage war ja die Verwendung des NETIO Boards.

>> Oder viel einfacher: es wird ein externer 12- oder 14-Bit Wandler
>> angeschlossen...

Ein deutliches JA... deswegen der Lösungsansatz von mir mittels 
Oversampling hier auch 12 BIT herauszuholen. Das Messen ist hier aber 
eher noch der triviale Anteil. Eine vernünftige Anbindung per Netzwerk 
wäre ja der nächste Schritt und da muß man dann schon ein wenig 
Gehirnschmalz reinstecken.

Zum Thema 14 BIT, man nehme einen MSP430F2013 und bastelt sich nen 2ten 
Wandler für kleines Geld und gut ist.

Autor: gk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Ziemlich halbgar, der Vorschlag...
> Warum nicht logischerweise welche mit Ethernet?


OK, eigentlich meinte ich einen passenden Messverstärker mit einer 
geeigneten seriellen Schnittstelle, z.B. RS485. Einen Messverstärker mit 
Ethernet kenne ich nicht. Es gibt Mehrkanalgeräte, wie z.B. den Quantum 
X o.a. die liegen aber bei mehreren K€.

Lothar Miller schrieb:
> Es geht hier offenbar nicht darum, die beste Lösung zu erreichen,
> sonder (wie meistens) einfach nur eine Ausreichende. Und wenn der
> AD-Wandler <1 kg auflösen kann, dann reicht das für gewünschte 2-3kg
> locker aus.

Zunächst einmal war zunächst nicht bekannt, dass die Wägezellen schon 
eingebaut sind und bereits einen 4-20mA Ausgang haben. Auch wenn die 
Meßverstärker in den Wägezellen eingebaut sind, bezahlt man die im 
Prinzip mit. Deshalb ist es besser, sofern man die Wahl noch hat, einen 
geeigneten Messverstärker zu verwenden, der einerseits eine 
entsprechende Schnittstelle hat, wie zum Bsp. RS485 (wegen der 
Leitungslänge) und an den die 3 Wägezellen angeschlossen werden können. 
Die gibt es für unter 300 €. Und warum muss es denn unbedingt Ethernet 
sein.
gk

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gk schrieb:
> Zunächst einmal war zunächst nicht bekannt, dass die Wägezellen schon
> eingebaut sind und bereits einen 4-20mA Ausgang haben. Auch wenn die
> Meßverstärker in den Wägezellen eingebaut sind, bezahlt man die im
> Prinzip mit.
Na gut, das ist ein Deep-Link:
>> Tommy schrieb:
>>> Ja danke noch mal an alle die mir bis jetzt geholfen habe.
>>> Frage : Beitrag "Wägezellen mit AVR NET IO verbinden"
Und darin:
>>> Ich möchte diese Geräte nutzen http://www.tewe.com/pdf/stab500s.pdf.
Und das sind die nackten Kraftaufnehmer...

> Und warum muss es denn unbedingt Ethernet sein.
Weils letztendlich an einen PC geht...
Dazu muß man aber die ganze Geschichte kennen:
Beitrag "Anlage über RJ45 steuern"

Autor: gk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich möchte diese Geräte nutzen http://www.tewe.com/pdf/stab500s.pdf.
  Und das sind die nackten Kraftaufnehmer...

Genau und da steht nichts von 4..20 mA, sondern 0,74mV/V für 600Kg. 
Nehmen wir mal 10V Speisespannung an, dann entsprechen 7,4mV 600kg. 2kG 
entsprechen dann rund 25µV. Und da reicht keine Feld-,Wald- und 
Wiesentechnik. Kommerzielle Messverstärker lösen das locker in 20,000 
Teile auf, die Messlatte liegt wohl bei besser 200.000 Teile. Und wenn 
ich so eine Kiste für 200-300 Euro mit RS485 bekomme, der auch die 
stabile Speisespannung für die 3 Kraftaufnehmer zur Verfügung stellt, 
dann bastel ich maximal den RS232/USB auf RS485 zusammen. Deb Thread 
lesen auch sicherlich Leute mit, die sich noch nicht auf eine Hardware 
festgelegt haben.
gk

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ein echter Puzzlethread :-)

Auf deutliches nachfragen kam diese Antowrt:
>> Der Mischer hat 3 Wägefüße und ein Modul an dem die Wägefüße
>> angeschlossen sind. Das Modul gibt mir 4-20mA Stromsignal raus. Das
>> gesamt gewicht vom Mischer soll so 1000kg sein.

Also nochmal viel Erfolg, dieser Thread ist schräg und vielleicht meldet 
sich ja der Ersteller noch mal zu Wort.

Autor: Tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schon gesagt es geht nicht darum die beste Lösung zufinden sondern 
eine die schnell und Praktikabel ist. Ich habe die Vorgabe von Kunden, 
dass ich ein Signal von 4-20mA bekomme welches ich mit dem NET IO Board 
von Pollin auswerten muss. Das Gewicht soll an einen PC geleitet werden 
und dieser soll dann die Ausgänge auf dem Board schalten um 
Futterkomponenten zuzusetzen. Die genauigkeit von der Messung soll so 
bei 2-3 Kg sein aber wenn es 5 sind kann ich es immernoch nutzen, da es 
sich um mischungen handelt im 800-900kg Bereich. Also die kleineste 
Komponenten Mänge wäre so ca. 150kg. Ich werde die Variante mit dem 
Widerstand wählen und so das Stromsignal in ein Spannungssignal 
umsetzen.

Ja danke an alle die mir geholfen haben. Sorry wenn es etwas un 
übersichtlich wurde, bei der nächsten Frage werde ich die Eckdaten 
besser beschreiben.

Autor: gk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tommy schrieb:
> Ja danke an alle die mir geholfen haben

Die Hilfe wirst Du auch weiterhin noch brauchen. Das mit dem Widerstand 
funktioniert prinzipiell schon. Und jetzt kommt das aber. In der Regel 
beziehen sich die 4..20mA Stromausgänge auf Masse. Dein 
A-/D-Wandlereingang aber vermutlich auch. Und wenn jetzt die Schutzerde 
ins Spiel kommt, die beidseitig mit Masse verbunden ist, gibt es gleich 
mehrere Probleme. Am besten, malst du Dir das mal auf.
gk

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.