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?
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?
Bei einem Widerstand von 250 Ohm hast du bei 20mA 5V und bei 4mA 1V
>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
>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
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.
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 ?
>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?
Du bekommst also nur 1x ein 4-20 mA Signal und daraus soll dann eine Skalierung 4-20mA = 0-1000 kg werden ?
>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).
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... ;-)
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 ?
>> Das Ganze dann auf kg umrechnen ergibt eine Auflösung von < 1 kg.
Habs noch mal gerechnet und es sind 0.625 kg.
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.
>> 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.
Strom-Spannungswandler ist Humbuck, da kannst Du auch gleich einen Messverstärker mit Spannungsausgang verwenden. Z.B: http://cgi.ebay.de/1x-Messverstarker-Clip-HBM-AE-301-15-26-V-DC-NEU-/300494668247?pt=Mess_Pr%C3%BCftechnik&hash=item45f6e0c1d7 Ansonsten reicht der bereits beschriebene Widerstand gk
...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 ???
> 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.
warum nimmst du nicht ne wägezelle mit ner gescheiten schnittstelle wie rs232,rs485 oder can?
> 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.
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.
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
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...
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.
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
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"
> 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
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.
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.