Unterschiede Analogeingang 4-20mA Single-Ended, Differenzeingang | Füllstandsüberwachung Zisterne

world-e

Level-2
Beiträge
84
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe bei mir im Haus eine Wago 750-881 am Laufen.

Ich möchte nun eine Füllstandsüberwachung der Zisterne mit einem Analogeingang 4-20mA realisieren. Dazu möchte ich den Füllstandssensor TL-136 verwenden. Ein Datenblatt dazu konnte ich leider nicht finden. Er funktioniert auf jeden Fall mit 4-20mA. man findet ihn auf jeden Fall einfach über Google.

Meine Hauptfrage ist allerdings, was der Unterschied zwischen den Analogeingangskarten ist. Hier gibt es welche mit Differenzeingang und Single-Ended.
Konkret geht es um:
750-466 2-Kanal-Analogeingang; 4 … 20 mA; Single-Ended
750-454 2-Kanal-Analogeingang; 4 … 20 mA; Differenzeingang

Kann mir hier jemand den Unterschied erklären und sagen, welche Karte für meinen Zweck die richtige ist?

Momentan habe ich leihweise die 750-454 und die 750-455 (4-Kanal single-ended) zur Verfügung

Weitere Fragen zur Umsetzung sind nicht ausgeschlossen :)

Vielen Dank
 
Hallo world-e,

generell muss beim aufbau der 4..20mA stromschleife beachtet werden, dass es immer eine aktive und eine (oder mehrere) passive komponente geben muss. wenn also der sensor aktiv ist kann die messkarte nur passiv sein und umgekehrt.

unsere differentiellen eingänge (wie z.b. 750-454) sind immer passiv, das bedeutet der sensor muss aktiv sein. bei einem differentiellen eingang sind bei jedem kanal immer beide "beinchen" des mess-shunts als separate klemme rausgezogen und zusätzlich ist das ganze potentialfrei. man kann also sagen, dass sich ein differentieller messeingang ähnlich wie ein multimeter verhält.

single ended eingänge sind dagegen immer potentialbehaftet (entweder 24V oder GND). die 750-455 hat z.b. vier gemeinsame GND anschlüsse für alle vier kanäle zusammen. auch bei der 750-455 müsste der sensor wieder aktiv sein, da dieses modul den sensor nicht mit strom versorgt (also passiv ist). das gegenstück dazu ist die 750-455/020-000; diese hat statt der gemeinsamen masse vier anschlüsse für 24V. das modul ist also aktiv und man kann nur passive sensoren anschließen.

die 750-466 ist eine sonderform der single ended module, da hier sowohl anschlüsse für 24V als auch für die masse (GND) zur verfügung stehen. man kann also wahlweise aktive oder passive sensoren anschließen, je nachdem welche klemmen man benutzt.

vielleicht noch eine generelle sache zum schluss: im normalfall sind aktive sensoren als vierdraht (oder dreidraht) und passive sensoren als zweidraht ausgeführt.

ich hoffe das hilft schon mal ein bisschen bei der auswahl und der passenden verdrahtungsvariante für deinen sensor.

viele grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Rückmeldung, dann sind die Eingangskarten, die ich da habe nicht zu gebrauchen bei einem passiven Sensor. Extern kann man die 24V nicht einspeisen?
 
doch das ist auch möglich indem man den stromkreis vom netzteil in reihe über den sensor und den (am besten differentiellen) eingang schleift. wie gesagt, dann hat man den eingang letztlich wie ein multimeter verwendet.

das ist dann halt mehr verdrahtungsaufwand, funktioniert aber auch.

viele grüße
 
doch das ist auch möglich indem man den stromkreis vom netzteil in reihe über den sensor und den (am besten differentiellen) eingang schleift. wie gesagt, dann hat man den eingang letztlich wie ein multimeter verwendet.

das ist dann halt mehr verdrahtungsaufwand, funktioniert aber auch.

viele grüße
Also würde es dann so aussehen?
750-455.png
 
Ob das mal so funktioniert?
Der Sensor müsste wohl ehr zwischen die 24V und den AI1.
Und Masse auf 0V.
Sonst kannst du die restlichen 3 AI ja nicht mehr sinnvoll nutzen.
 
Habe jetzt mal die andere Eingangskarte 750-454 verwendet und den Sensor vor dem Eingang gesetzt. Obwohl es bei der Eingangskarte wohl egal wäre.
750-454.png

Der Sensor funktioniert zumindest in der Theorie.

Nur sind jetzt weitere Fragen aufgekommen:

Wie skaliere ich nun den WORD-Wert auf ein Balkendiagramm von 0-100%
Wie verhindere ich andauernde Schwankungen im Balkendiagramm?

Vielen Dank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau mal in der Building HVAC oder OScat Lib nach Skalierungs und Filter Bausteinen, genauer Name fällt mir grad nicht ein.
Du musst einen 0 Punkt und einen 100% Punkt definieren.
Das Word kannst du ja in andere Datentypen wandeln. Da musst du dich spielen.
 
Konnte dazu leider noch nichts finden. Muss ich noch weiter recherchieren.

Dachte, dass hier einige Analogwerte skalieren und in Balkendiagrammen anzeigen.
 
 
Habe etwas gefunden und in der Theorie könnte es auch funktionieren. Jetzt muss ich erst mal den Sensor in der Zisterne versenken.

Als erstes habe ich den WORD-Wert "geglättet", damit die Anzeige nicht ständig kleine Änderungen anzeigt, dazu den FB_wSendOnDelta aus der Wago Gebäude-Bibliothek verwendet.
Danach den Wert skaliert mit dem FB FuAI aus der Building HVAC 03 Bibliothek verwendet.

In Codesys sieht es dann so aus:
Analogeingang.png

Balkenanzeige.png
 
Hast du die 3 niederwertigsten Bits des Eingangswortes rausgeschoben? Die beinhalten nur die Statusinformationen des Eingangs.
Der eigentliche Analogwert liegt auf Bit3 -Bit14. ansonsten könnte es zu Messfehlern kommen.

Grüße Jan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du die 3 niederwertigsten Bits des Eingangswortes rausgeschoben? Die beinhalten nur die Statusinformationen des Eingangs.
Der eigentliche Analogwert liegt auf Bit3 -Bit14. ansonsten könnte es zu Messfehlern kommen.

Grüße Jan
Da ich nicht weiß, wie man das machen sollte, habe ich das auch nicht gemacht. :)

Genauso wenig, wie eine "Kalibrierung" mache. Also wie ich die Werte anpassen kann, wenn die Zisterne komplett leer und komplett voll ist. Aber momentan reicht mir die ungefähre Anzeige.

Aber ich nehme gerne Input auf, wie ich die Einstellungen vornehmen kann.
 
ich habe hier ein Beispiel für die Analogwertverarbeitung in Codesys 2.3. Da sind 2 Funktionen aus der Oscat-Lib mit dabei. Eventuell kannst du es ja bei dir
mit einbinden.
 

Anhänge

Hast du die 3 niederwertigsten Bits des Eingangswortes rausgeschoben? Die beinhalten nur die Statusinformationen des Eingangs.
... ansonsten könnte es zu Messfehlern kommen.

Na, durch das Rausschieben der drei niederwertigsten Bits kann man sich aber noch viel grössere "Mess"-Fehler einfangen!
Da es sich hier wirklich nur um die 3 niederwertigsten Bits handelt, die man "plattmachen" soll, ist ihr StörEinfluss relativ gering und oft wird deshalb auch bewusst auf das Plattmachen verzichtet.
Zumindest bei Siemens wird unterstellt, dass die übrigen 13 Bits UNverschoben weiterverarbeitet werden. Das macht auch Sinn, weil es dann fast (!) egal ist, in wievielen (relevanten) Bits das Ergebnis der D/A-Wandlung zur Verfügung steht. Die Anzahl der Bits hat dann nur einen Einfluss darauf, wie fein die Abstufung (Granularität) der UmwandlungsErgebnisse ist.

Sooo, um zunächst bei der Schieberei zu bleiben: das Wort um 3 BitPositionen nach rechts schieben und dann um 3 BitPositionen nach links zurückschieben.
Es ist in diesem Fall egal, ob man für das RechtsSchieben einen Befehl benutzt, der "Nullen nachzieht" oder "das VorzeichenBit nachzieht".
Falls dies zu sehr nach Böhmischen Dörfern oder Bahnhof klingt: bitte erstmal vergessen (und bei Gelegenheit tiefer einarbeiten), denn es gibt noch zwei andere LösungsWege:

- verUNDen mit einer Maske 16#FFF8 (falls auch hier Böhmische Dörfer oder Bahnhof gilt, dann jetzt erstmal ignorieren und weiterlesen!)

- dividieren durch 8 und anschliessend wieder mit 8 multiplizieren. Liegt das WandlungsErgebnis (mit den hineingeschmuggelten StatusBits) ohnehin im DatenTyp INT vor, so drängt sich dieser Lösungsweg geradezu auf.
Dieser Lösungsweg hat aber evtl. einen Haken. Ein "ganz schlauer" Compiler könnte einem einen Strich durch die Rechnung machen, wenn er nämlich bemerkt, dass direkt nach der Division durch eine Zahl eine Multiplikation mit derselben Zahl ausgeführt werden soll und er könnte in seinem ÜberEifer denken, dass er der SPS deshalb sowohl das Dividieren als auch das Multiplizieren ersparen kann.
Als Pessimist würde ich deshalb schreiben
HilfsVariable := MessWert / 8 ;
Ergebnis := HiflsVariable * 8 ;
statt einfach
Ergebnis := MessWert / 8 * 8 ;

Der eigentliche Analogwert liegt auf Bit3 -Bit14.
Nein, auf Bit3 .. Bit15. Wer behauptet, Bit15 sei ohnehin "nur" das VorzeichenBit, hat die Darstellung im ZweierKomplement nicht verstanden.
 
Zuletzt bearbeitet:
Bit15 wird nicht benutz...
Aha, weil "<0 nicht möglich (Verpolungsschutz)".
Ich gebe mich geschlagen ... und denke trotzdem, dass ich nichts "Schlimmes" behauptet habe. ;)

Anm.:
Bei "VerpolungsSchutz" dürfte es sich um eine reine HardwareAngelegenheit handeln.
Ob auch nach der A/D-Wandlung die Software bzw. Firmware nochmal "draufhaut", damit Bit15 nie zu 1 werden kann?
Wahrscheinlich. :unsure:

Übrigens, ich sehe gerade, dass das höchstwertige der 3 niederwertigsten Bits nie 1 werden soll. Das wäre ein erheblicher Grund, auf das "Plattmachen" der 3 StatusBits grosszügig zu verzichten, ohne ein ganz schlechtes Gewissen zu hinterlassen.
 
Zuletzt bearbeitet:
Zurück
Oben