Wägezellen mit 4-20mA an AVR NET IO

Gast #1941588
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?
Gast #1941743
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 ?
Gast #1941773
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-/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.html

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?
Gast #1941802
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).
Gast #1941869
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:
1
// Stützpunkte 4-20mA
2
#define AdcRawH 3206                                              // Stützpunkt 2.00 Volt
3
#define AdcRawL  606                                              // Stützpunkt 0.40 Volt

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

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

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

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

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
1
#define Scalekg (uint32_t) (1000.0 / (2000 - 400) * 16384)        // Skalierung 0-1000 kg
2
#define mAzero 4000                                               // 4.000 mA
Dann:
1
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 ?
Gast #1942504
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.
Gast #1942819
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 ???
Gast #1942820
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.
Gast #1942862
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.
Gast #1942873
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
Moderator (Firma: Titel) Persönliche Seite #1942880
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...
Gast #1942897
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.
Gast #1942900
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
Moderator (Firma: Titel) Persönliche Seite #1942924
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"
Gast #1943042
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
Gast #1943106
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.
Gast #1944022
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.
Gast #1944042
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren