TIA Poti am Analogeingang unterschiedliche Werte

Credofire

Level-1
Beiträge
640
Reaktionspunkte
35
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe einen Poti am Analogeingang angeschlossen. Also der Gesamtwiderstand an Analog 1 und den Poti an Analog 0. Alles über einen Vorwiderstand, sodass max. ca. 7,5V ankommen.
Wenn ich nun den Poti auf 0 stelle hat der Referenzwiderstand (Gesamtwiderstand) den Wert 74,55 , drehe ich den Poti auf voll ist der Referenzwiderstand auf dem Wert 70,11.
Drehe ich den Poti dazwischen erhöht sich der Wert des Referenzwiderstandes wieder.

Poti_0.jpg Poti_zwischen.jpg Poti_100.jpg

Somit habe ich kein wirklich lineares Verhältnis an meinem "Poti_Prozent" - Ausgang.

Die Parameter für die Scalierung sind folgende:
Poti_Parameter.png
Also beide Eingänge auf 100% skaliert.

Wie kann ich das jetzt kompensieren, damit ich wieder ein lineares Verhältnis bekomme? Wie erklärt sich das generell mit dem veränderlichen Widerstand der doch eigentlich konstant sein sollte?

Vielen Dank!

Gruß
Mathias
 
Du hast einen Spannungsteiler Vorwiderstand zu 3 parallelen Widerständen:
- Eingangswiderstand AI1
- Potie
- Eingangswiderstand AI0 am Schleifer des Poties

Je höher Du das Potie drehst, desto mehr beeinflußt der Eingangswiderstand AI0 den Spannungsteiler zum Analogeingang AI1 (die Spannung an AI1 sinkt). Wenn das Potie auf 0 steht, dann ist der Eingangswiderstand AI0 kurzgeschlossen - er wirkt nicht mehr und die Spannung an AI1 ist am höchsten.

Welchen Widerstand haben das Potie und der Vorwiderstand? Die sollten möglichst vieeel kleiner als die Eingangswiderstände der Analogeingänge sein. Welche Analogbaugruppe hast Du?

Wenn Du dieses Verhalten ausschließen willst, dann mußt Du anstatt Vorwiderstand eine Spannungsstabilisierungsschaltung verwenden (z.B. LM7810).

Harald
 
PS:
Anstatt Spannungsstabilisierungsschaltung kannst Du das Verhalten auch rechnerisch kompensieren/linearisieren. Ich würde mir ein paar Datenpaare (Potiestellung + AI1 + AI0) bei verschiedenen Potiestellungen aufnehmen und in Excel eingeben und in einem Excel-Diagramm eine Linearisierungsformel suchen lassen (so in etwa).

Harald
 
ich nutze die normale 24V Spannungsquelle. Der Vorwiderstand is 22k und der Poti ist 10k.
Die Analogeingänge der S7-1200 haben einen Eingangswiderstand von etwa 100 kOhm.

Wenn Du ein Potie mit 1 kOhm und Vorwiderstand 1,4 ... 1,6 kOhm verwendest, dann sollte sich das Verhalten sehr verbessern. Wenn ich richtig gerechnet habe dann schwankt die Spannung nicht mehr um 0,43V sondern nur noch um 0,06V (zwischen den Potie-Anschlägen).

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Falls Du einen Analogausgang frei hast, dann könntest Du den als hochstabile Spannungsversorgung für das Potie benutzen, dann könntest Du anstatt Vorwiderstand und Referenz-Analogeingang das Potie an den Analogausgang anschließen und 10V ausgeben.

Harald
 
Nochwas zu Deinem Programm zur Berechnung der Potiestellung:

Dein DIV (#Poti_Prozent := #Potispannung / #Referenzspannung) gefällt mir nicht. Wenn die Referenzspannung am Analogeingang ausfällt dann bekommst Du eine Division durch 0. Das kannst Du leicht verhindern, indem Du z.B. Spannung_Gesamt.LO_LIM auf 0.0000001 (1.0e-7) festlegst (anstatt 0.0)

Wenn Dein Ergebnis #Potie_Prozent anstatt 0.0 ... 1.0 die Werte 0.0 ... 100.0 ergeben soll, dann kannst Du das einfach erreichen indem Du Spannung_Poti.HI_LIM auf 10000.0 festlegst (anstatt 100.0)

Harald
 
Moin, Mathias!
... ich habe einen Poti am Analogeingang angeschlossen. ...
Somit habe ich kein wirklich lineares Verhältnis an meinem "Poti_Prozent" - Ausgang.
Nicht bei allem, wo Poti draufsteht, ist auch lineares drin - es gibt z.B. auch logarithmische. Haste mal mit 'nem Multimeter geschaut, ob Du bei Deinem Exemplar ein lineares Verhalten erwarten darfst?
Wenn's ein DrahtPoti ist, wird es wohl linear sein - aber dann wäre es wahrscheinlich sowieso niederohmiger?
 
Somit habe ich kein wirklich lineares Verhältnis an meinem "Poti_Prozent" - Ausgang.
Nicht bei allem, wo Poti draufsteht, ist auch lineares drin
Seine Aussage bzgl. nicht linear bezieht sich darauf, daß die Referenzspannung absinkt wenn er am Potie dreht. (Die Ursache dafür habe ich in #2 erklärt)
Ob es eine Linearität zwischen Drehwinkel und Widerstand gibt erwähnt er nirgends.

Harald
 
Gib doch am Ausgang die Spannung aus, die du am Eingang erwartest, dann kannst du dir das Poti sparen :ROFLMAO: .
Der "richtige" Dagobert hätte die AnalogEingabe und die AnalogAusgabe auch noch eingespart.
Wahrscheinlich hätten monatelange Experimente von Daniel D. aus E. ihn schliesslich zu der Erkenntnis gebracht, dass man mit der SPS sowieso nur Ärger hat und die eigentlich auch noch einsparen kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gib doch am Ausgang die Spannung aus, die du am Eingang erwartest, dann kannst du dir das Poti sparen :ROFLMAO: .

Um es mal teilweise mit Whitney Houston zu sagen, Gott habe sie selig: My name is not ORAKEL.
Woher soll ich denn wissen welche Spannung ich erwarte? dafür ist doch das Poti. Für ne Glaskugel ist die 1214C einfach zu klein :-D
Außerdem hat die 1214C keinen Analogausgang.

@Harald: es ist nicht wichtig ob der Wert als 1 oder als 100 steht in diesem Fall. Wichtig ist an dieser Stelle nur das Verhältnis. Es wird damit die Messergeschwindigkeit geregelt zwischen 200 und 400 U/min. Und wenn ich ne Division durch 0 hab wird sich das Messer dann nicht drehen, da es keinen vernünftigen Drehzahlwert gibt. Der Hinweis ist aber sehr gut, vielleicht kann ich das noch zu ner besseren Fehlermeldung zusammenfrickeln.
 
wenn ich ne Division durch 0 hab wird sich das Messer dann nicht drehen, da es keinen vernünftigen Drehzahlwert gibt.
Hast Du das mal ausprobiert? Ich finde keine Siemens-Dokumentation ob und welches Ergebnis der DIV-Baustein bei Division durch 0 bei einer S7-1200 liefert.
Ich würde mich nicht drauf verlassen, daß eine SPS jetzt und in allen folgenden Firmwareversionen die Division durch 0 in meinem Sinne abfängt, wenn sie schon nicht in STOP geht und das Verhalten nicht dokumentiert oder gar garantiert ist. Ich würde selber dafür sorgen, daß eine Division durch 0 gar nicht erst auftritt.

Harald
 
@Harald Du hast recht, ich werde dies berücksichtigen. Sicher ist sicher. Aber ne Division durch 0,0000001 würde mir nen riesigen Wert ergeben, sodas ich meinen Wert 1 noch mal begrenzen müsste, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn kein elektrisches Problem auftritt, dann kann die Potiespannung theoretisch nicht höher als die Referenzspannung werden. Die Analogeingänge können aber im Rahmen der Meßfehler auch eine leicht höhere Potiespannung als die Referenzspannung liefern, so daß auch ganz normal mehr als 1.0 rauskommen kann.

Ich würde das Ergebnis #Poti_Prozent auf max 1.0 begrenzen (Sicher ist sicher) und wenn die Referenzspannung kleiner ca. 1V (10.0) ist, dann auf 0.0 setzen. Also erst auf > 1V prüfen, dann dividieren und danach begrenzen - dann darf die Skalierung der Referenzspannung auch 0.0 liefern (kann bei 0-100 bleiben).

Harald
 
Wenn die Referenzspannung am Analogeingang ausfällt dann bekommst Du eine Division durch 0.

Und wenn ich ne Division durch 0 hab wird sich das Messer dann nicht drehen, da es keinen vernünftigen Drehzahlwert gibt.

Es ging doch um den Fall, dass die ReferenzSpannung zu 0 wird! Durch die wird doch dividiert. Dass sich das Messer dann nicht dreht, ist durch die fehlende RefSpannung nicht gewährleistet, es sei denn auf dem Wege eines STOPP der SPS wegen der Division durch 0. Die einzig vernünftige Drehzahl bei einem auftretenden Defekt ist für meinen Geschmack die Drehzahl 0.
 
Es ging doch um den Fall, dass die ReferenzSpannung zu 0 wird! Durch die wird doch dividiert. Dass sich das Messer dann nicht dreht, ist durch die fehlende RefSpannung nicht gewährleistet,
Ist wohl doch gewährleistet, weil "Division durch 0" das Ergebnis 0 liefert und dadurch #Poti_Prozent = 0.0 wird, woraus sehr wahrscheinlich die Soll-Drehzahl berechnet wird.


Ich finde keine Siemens-Dokumentation ob und welches Ergebnis der DIV-Baustein bei Division durch 0 bei einer S7-1200 liefert.
In der TIA-Hilfe schweigt sich Siemens aus über das Thema "Division durch 0" bei S7-1200. Doch im S7-1200 Systemhandbuch steht drin:
S7-1200 Systemhandbuch schrieb:
Operationen Addieren, Subtrahieren, Multiplizieren und Dividieren
ENO-Status
ENO = 0 | Division durch 0 (IN2 = 0): Das Ergebnis ist undefiniert und Null wird zurückgegeben.
Hmm, jetzt müsste Siemens nur noch eindeutig erklären, was mit "Null" gemeint ist ... können die nicht einfach "0" schreiben? Können die sich nicht auch mal unmissverständlich ausdrücken? ;)

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Harald, habe da so meine Bedenken, weil ...
Es wird damit die Messergeschwindigkeit geregelt zwischen 200 und 400 U/min.

Dass "Null" nicht unbedingt "0" bedeutet, ist leider so, siehe VisualBasic - oder war's nur in VBA unter Excel so?
Aber in Hinblick auf sich ändernde SW-Stände sorgt man insbesondere bei Sicherheits-relevanten Fragen natürlich lieber selbst für klare Verhältnisse - da hast Du absolut Recht!
 
.. Hmm, jetzt müsste Siemens nur noch eindeutig erklären, was mit "Null" gemeint ist ... können die nicht einfach "0" schreiben? ..
ENO wird in Worten zu Null oder auch in Zahlen zu "0", wie es euch beliebt. Das Ergebnis der Division ist undefiniert, bzw. NAN. Es wäre mathematisch definitiv falsch, wenn das Ergebnis zu Null werden würde! So würde ich es jedenfalls unmissverständlich erwarten.

Wenn man in dem Fall dennoch eine Null als Ergebnis haben möchte, dann in etwa so:

Code:
if not (ERGEBNIS = ERGEBNIS) then
        ERGEBNIS := 0;
end_if;
 
Zuletzt bearbeitet:
Es wäre mathematisch definitiv falsch, wenn das Ergebnis zu Null werden würde!
Ja, ist natürlich mathematisch falsch, aber 0% bis 100% von 0 V ReferenzSpannung sollten auch 0 V ergeben (unmathematisch gedacht).
Der Fehler liegt eben darin, dass die ReferenzSpannung unerlaubterweise streikt und darum ist es mindestens genau so sinnvoll, diesen Fall als Fehler zu interpretieren.
Noch logischer fänd ich es, bereits dann Alarm zu schlagen, wenn die RefSpannung eine Untergrenze von z.B. 8 V unterschreitet, denn die "Auflösung" nach der A/D-Wandlung lässt zu wünschen übrig, wenn z.B. nur der Bereich 0 V bis 1 V (für 100%) genutzt wird.
Hatte mal das Problem, dass ich wegen der beschränkten Auflösung bei einer TemperaturMessung per Pt100 mit Stufen von 1/3 K leben musste, die gerne viel kleiner hätten sein dürfen.
Das war eigentlich auch so ein Fall, wobei allerdings die relevanten SpannungsWerte alle ganz dicht bei 10 V lagen (statt dicht bei 0V).

Verrat mir mal bitte, was Du mit ...
Code:
if not (ERGEBNIS = ERGEBNIS) then
        ERGEBNIS := 0.0;
end_if;
... meinst. Welchen Teil von "ERGEBNIS = ERGEBNIS" habe ich nicht verstanden?
Bedeutet das, dass der Vergleich ausflippt, wenn ERGEBNIS einen Fehlerzustand beinhaltet?
 
Zurück
Oben