Jump to content

Werte vom Industrial Dual Analog In Bricklet 2.0 kommen mit -45V


Recommended Posts

Hallo,

 

ich habe ein Problem mit den Industrial Dual Analog In Bricklet 2.0, es kommt ab und zu vor, dass die Werte mit -45V ausgelesen werden.

Das Abfrageprogramm startet 1x in 15min, mal kommen richtige Werte, aber auch immer wieder mal mit -45V.

Woran könnte das liegen?

bzw.

Wie kann das umgangen werden?

 

mfg

 

Link to post
Share on other sites

Gibt das Bricklet in dem Fehlerfall genau -45V zurück? Oder irgendetwas krummes nahe an -45V?

Ist die Firmware des Bricklets auf dem neuesten Stand?

Ich hab gerade kurz in die Firmware geschaut, so auf Anhieb kann ich nichts finden was im Fehlerfall/Overflow o.ä. exakt -45V erzeugen könnte. Welche Spannung liegt denn in Wirklichkeit ca. an?

Link to post
Share on other sites

Firmware ist aktuell.

Ich habe 6 Stück Industrial Dual Analog In Bricklet 2.0,

bei allen kommt ab und zu mal -45,xx Volt

Habe schon versucht den Wert nochmal zu laden wenn dieser <0 ist, ohne Erfolg

Link to post
Share on other sites

Kannst du einmal schauen ob im Fehlerfall immer der exakt gleiche Wert übertragen wird und wenn ja welcher das exakt ist?

Welche Spannung/welchen Spannungsbereich versuchst du zu messen?

Link to post
Share on other sites

Nein, es kommen immer andere Werte nach dem Komma.

Gemessen werden 12V, 5V, 24V, 30V, und im Bereich von 3 - 5 Volt.

Wenn der Fehler kommt, und ich im Brick Viewer die Sample Rate wechsle (höher oder niedriger) dann wird sofort der richtige Wert angezeigt.

Link to post
Share on other sites

Sehr komisch. Ich verwende das Industrial Dual Analog In Bricklet 2.0 sogar gerade für ein Projekt wo ich länger Messungen mache und ich kann das definitiv nicht reproduzieren. Klingt ja so als würde das Bricklet (oder der ADC auf dem Bricklet) irgendwie seine Einstellung vergessen und dann entsprechend falsche Werte anzeigen die sich durch die Eingangsspannung aber noch beeinflussen lassen.

Um zu sehen ob es das ist würde ich eine Firmware bauen die regelmäßig die Konfiguration zurück liest und auf Richtigkeit überprüft. Ich melde mich morgen im Laufe des Tages nochmal mit einer Firmware zum Testen.

Link to post
Share on other sites

Hallo,

hat leider nichts gebracht, bei 4Hz, auf Channel 1 wird -45,448V bis -45,459V, auf Channel 0 werden -45,451V bis -45,452V angezeigt

wenn ich auf 2Hz wechsle werden die erwarteten Spannungen von 4,2V bis 4,4V angezeigt

 

 

Link to post
Share on other sites

Echt komisch. Das wechseln auf 2Hz ruft die "SetSampleRate"-Funktion auf. Diese speichert die neue Sample Rate und setzt einen bool Wert auf true. Beim nächsten "Tick-Durchlauf" wird das erkannt und die neue Sample Rate wird auf dem ADC konfiguriert.

Ich hatte jetzt eingebaut dass das Bricklet regelmäßig die konfigurierte Sample Rate vom ADC ausliest und diese mit der zwischengespeicherten vergleicht um diese neu zu schreiben falls notwendig (setzt auch einfach den bool Wert auf true, um sicher zu stellen dass es sich genauso verhält). Das deutet für mich jetzt darauf hin dass der ADC zwar noch die korrekte Konfiguration hat, allerdings irgendwie anders aus dem Tritt kommt. Das neu setzen der Sample Rate führt dann aber wieder zur Besserung.

Ich mache mir nochmal Gedanken, leider kann ich das überhaupt nicht reproduzieren hier 😐.

Link to post
Share on other sites

Ich hab jetzt einen Aufbau mit folgendem Testcode hier laufen (5V an Kanal 0 und 12V an Kanal 1 angeschlossen):

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

HOST = "localhost"
PORT = 4223
UID = "Mj8"

from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_industrial_dual_analog_in_v2 import BrickletIndustrialDualAnalogInV2
import time

if __name__ == "__main__":
    ipcon = IPConnection()
    idai = BrickletIndustrialDualAnalogInV2(UID, ipcon)
    ipcon.connect(HOST, PORT)

    idai.set_sample_rate(idai.SAMPLE_RATE_4_SPS)

    while True:
        v1 = idai.get_voltage(0)
        v2 = idai.get_voltage(1)
        
        if not (4950 < v1 < 5500):
            print(f"V1: {v1}")

        if not (11900 < v2 < 12100):
            print(f"V2: {v2}")

        time.sleep(0.25)
        
    ipcon.disconnect()

Ich lasse das jetzt erstmal ein paar Tage laufen um zu sehen ob ich es nicht doch irgendwie reproduzieren kann. Wenn du irgendeine bestimmte Einstellung oder Abfragerate oder so hast mit dem das Problem öfter auftritt sag Bescheid.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...