-
        

Ergebnis 1 bis 7 von 7

Thema: Probleme mit 4..20mA Schnittstelle

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.05.2006
    Beiträge
    40

    Probleme mit 4..20mA Schnittstelle

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo zusammen,

    ich habe an einen PIC18F452 5 Helligkeitssensoren (0..150000lx) angeschlossen. Das Signal der Sensoren wird als 4..20mA Signal ausgegeben, welches über einen 250Ohm Widerstand in 1-5V gewandelt wird. Soweit funktioniert das ganze.
    Nun das Problem: Ich habe die Sensoren eine zeitlang laufen lassen und dabei hat sich herausgestellt, dass die Werte, welche der AD-Wandler zurückgibt sich wiederholen, d.h. er gibt als AD-Wert 523 zurück, springt auf 610 und fällt dann wieder auf den Wert 523. Auch bleibt er eine zeitlang auf diesem Wert, so dass sich Treppenstufen bilden, dass es aussieht, als ob der Sensor in die Sättigung gegangen ist. Nur gibt es auch höhere Messwerte, so dass es keine Sättigung sein kann. Auch sind die Treppenstufen auch jeweils auf verschiedenen Niveaus.
    Nach Anruf beim Sensorhersteller bekam ich die Auskunft, dass evtl. die Schaltung des PIC nicht genügt mit Strom versorgt ist und er deswegen über den AD-Wandler den Strom vom Messsignal aufnimmt. Kann das sein? Die Spannungsversorgung ist eine Sitop von Siemens (24V, 2,5A) mit der Sensoren und Controller versorgt werden. Stromaufnahme der gesamten Schaltung liegt bei ca. 200mA, also sollte die Sitop ausreichen.
    Im Anhang habe ich eine aufgenommene Messkurve eingefügt.
    Wie kommt es zur Treppenbildung?

    Grüsse
    SteffenJ
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken messkurve.jpg  

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo SteffenJ,

    wenn du einen Skop zur Verfügung hast, kontrolliere als erstes mal die Betriebsspannungen, die Referenzspannung des ADC und die Signale direkt an den 250 Ohm-Widerständen. Hast du vieleicht eine überlagete Wechselspannung auf den Sensorsignalen?
    Sehen schon etwas merkwürdig aus, deine Messwerte.

    Gruß
    Detlef

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.05.2006
    Beiträge
    40
    Hallo magnetix48,

    habe noch vergessen die Messkurve genauer zu beschreiben: Die senkrechten Striche zeigen verschiedene Messzeitpunkte an, habe nur alle in eine Kurve zur Übersicht zusammengefasst. Die Werte wurden jeweils im Abstand von 2Sekunden aufgenommen, also ist zum Beispiel die Stufe, welche bei Messpunkt ca. 3000 anfängt und bei ca. 3200 endet, 400 Sekunden lang. Von daher denke ich, dass da keine so langsame Wechselspannung drauf ist.
    Das mit dem Skop werde ich jetzt mal prüfen, indem ich direkt am Sensorausgang messe, ob da die Werte auch so stufenförmig rauskommen.

    Grüsse
    SteffenJ

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    29.05.2006
    Beiträge
    40
    Bin jetzt beim Experimentieren auf die Wandlungsgeschwindigkeit des ADC gekommen. Kann es daran liegen, dass der PIC mit 20MHZ getaktet ist und ich als ADC-Geschwindigkeit 1:2 eingestellt habe? Bei ersten Tests mit 1:64 sieht das Ergebnis schon besser aus.

    Grüsse
    SteffenJ

    ps: Wie bekomme ich diesen Thread denn ins entsprechende PIC-Forum, damit ich dort weiter fragen kann?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.07.2005
    Ort
    Hangover
    Alter
    51
    Beiträge
    45
    Ja, daran liegt es- Ließ im Datenblatt im Bereich ADC-Wandler mal den Abschnitt mit den Wandlerzeiten !

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    29.05.2006
    Beiträge
    40
    Kann es sein, dass bei einer Messreihe, welche um die 200 (+/- 4) AD-Wandler-Ticks einzelne Ausreisser bei 250 Ticks liegen, wenn die acquisition time nicht eingehalten wird? Oder muss ich dann an einer anderen Stelle suchen? Versuche ein 4..20mA über einen 250Ohm Widerstand zu messen...

    PIC18F452, Takt: 20MHz

    Code:
    void pause(void);
    
    void adc_init()
    {
    	OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_8ANA_0REF, ADC_CH0 & ADC_INT_OFF );
    }
    void pause(void)
    {int i=0;
    	
    for(i=0;i++;i<=1000);
    	
    }
    void adc_messung()
    {
    
    
    
    //	Sensor 1 einlesen
    	while (BusyADC());
    	SetChanADC(ADC_CH3);
    	while (BusyADC());
    	pause();
    	ConvertADC();
    	while (BusyADC());
    	dat.mw1=ReadADC();

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    29.05.2006
    Beiträge
    40
    Keiner? Hmm... Wie wirkt sich das denn überhaupt aus, wenn die Aquisition time nicht eingehalten wird? Sind die gemessenen Werte dann eher zu gering oder können sie auch zu hoch werden?

    Grüsse
    Steffen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •