Forum: Mikrocontroller und Digitale Elektronik Induktion - uC haengt sich auf


von Michael (Gast)


Lesenswert?

Hallo zusammen, ich habe ein kleines Problem mit einer von mir gebauten 
Messanlage. In einem Hallen-Ventilationssystem will ich die 
Effektivitaet eines Waermetauschers messen. Dazu habe ich ein paar 
DS18B20-Sensoren vor und hinter dem Tauscher im Zu- und Abluftkanal 
installiert plus Stroemungssensoren. Die Kabel laufen anschliessend zu 
einem kleinen Mega8, der das Ganze auswerten soll und die fertigen Werte 
in kW/h per RS485 an ein Datenbanksystem uebermittelt. Die 
Antriebsmotoren des Systems sind ueber zwei Frequenzwandler gesteuert, 
die Kabel zwischen Wandler und Motor geschirmt und geerdet. Trotzdem 
tritt folgendes Problem auf: Starten die Motoren, steht der Atmega still 
und reagiert auf nichts mehr. Auf dem Oszilloskop sind Spikes zu 
erkennen. Seltsam ist, dass die Spikes staendig gleichbleibend sind, 
d.h. sie veraendern sich nicht mit der Drehzahl der Motoren. In dem Fall 
waere fuer mich klar, woher die Induktion kommt. Sie kommen mit dem 
Start der Frequenzwandler, verschwinden mit deren Abschaltung in den 
Ruhezustand und sind die ganze Zeit gleichbleibend stark und mit 
derselben Frequenz (soweit man das Frequenz nennen kann).

Was ich an der ganzen Sache nicht verstehe, ist das Auftreten von 
derartiger Induktion ueberhaupt. An der Anlage ist alles geerdet, was 
nur geerdet werden kann. Wandler, Motoren, Gehaeuse der Anlage, 
Luftkanaele, etc. und trotzdem derartige Effekte. Meine Kabel sind 
ebenfalls geschirmt und geerdet aber trotzdem haeng ich fest. Hat jemand 
einen Tipp oder einen Gedanken dazu? Mir gehen langsam die Ideen aus :-(

Gruesse

von Peter II (Gast)


Lesenswert?

Michael schrieb:
> Auf dem Oszilloskop sind Spikes zu
> erkennen

wo? Auf der Spannungsversorgung vom Amtel oder auf der leitung zu den 
sensoren? Wie sieht die Spannungsversorgung vom Atmel denn aus?

von Klaus R. (klaus2)


Lesenswert?

...die felder bei solchen FUs sind KRASS. und 100%ig geschirmt ist da 
gar nichts, es lagen deshalb schon ganze produktionen still.

sind die sensorkabel geschirmt, verdrillt?

Klaus.

von Georg G. (df2au)


Lesenswert?

Stichwort "Masseschleifen". Manchmal ist zu viel Erdung nicht das 
richtige. Dem Mega8 solltest du eine passend ausgelegte Versorgung 
spendieren und die Schaltung in ein Metallgehäuse packen.
Ohne nähere Kenntnis der Anlage muss man ansonsten raten.

von EMC (Gast)


Lesenswert?

Schirmen und erden bedeudet nicht "Störeinkopplung = 0" sonder nur 
Dämpfung um x dB.
Wenn beide Maßnahmen schon reichen würde wäre vieles sehr einfach, von 
den Fehlern (einseitig, zweiseitig, pig-tails, Leistung/Signal Verlegung 
usw.) gar nicht gesprochen.

von Michael (Gast)


Lesenswert?

Danke fuer die schnellen Rueckmeldungen. Die Spikes treten in der 
Datenleitung auf. Die Leitungen sind gedrillt und geschirmt. Mit dem 
Schirm hab ich schon etwas experimentiert. Ohne Schirm = Katastrophe, 
Schirm an Erde = Etwas besser, Schirm einseitig an GND = Bisher bestes 
Ergebnis aber immer noch Stoerungen. Die Stromversorgung ist ein extra 
Kabel, welches sich erst am Sensorstandort mit dem jeweiligen Sensor 
verbindet und laut Oszi "Sauber" und stabil.

von Helmut L. (helmi1)


Lesenswert?

Michael schrieb:
> An der Anlage ist alles geerdet, was
> nur geerdet werden kann.

Wie geerdet? Nach Elektrikerart (Schirm ueber einige m Gruengelb an 
einen dubiosen Erdungspunkt)  oder nach HF-Technikerart (Abschirmung 
Flaechig auf Montageplatte).

In der RS485 eine Filterdrossel eingebaut? Das gleiche in der 
Datenleitung zum DS18x20 Sensor?

von Michael (Gast)


Lesenswert?

Aeeeeehm, ich denke mal, dass die Anlage nach Elektrikerart geerdet ist. 
Sicher habt ihr schonmal ein Ventilationsaggregat gesehen, der Kasten 
misst ca. 9m Laenge, und 3m in Hoehe und 1,5m Breite. Gefertigt ist er 
aus Aluminium. Der Motor ist erdungstechnisch mit dem Gehaeuse 
verbunden, die abgehenden Kanaele via Erdungskabel ebenfalls. Ich hab 
mal aus Spass die Erdung abgeklemmt um zu sehen, ob sich das Oszillogram 
aendert. Aber es zeigte sich kein Unterschied.

Entstoerdrosseln an den DS18B20ern hab ich nicht verbaut. Ehrlich gesagt 
ist es das erste Mal, dass ich ueberhaupt auf solche Probleme stosse. 
Meint ihr, dass Drosseln oder Ferritkerne das Problem ausreichend 
abdaempfen? Ich bin am Wochenende in dem Gebaeude und poste dann mal das 
Oszillogramm von dort.

Was mich nach wie vor verwirrt ist die Stetigkeit des Signals trotz sich 
aendernder Drehzahl. Beim Abschalten werden die Motoren erst langsam 
abgebremst und stehen einen Moment still, bis sich der FU abschaltet. 
Sogar in der "Stillstandsphase" ist die Stoerung mit gleicher 
Feldstaerke vorhanden. Deshalb war mein Gedanke zuerst, dass die 
Stoerung nicht von den Kanaelen, dem Aggregat selbst oder dem Motor 
herruehrt sondern entweder direkt von dem FU im Schaltschrank, der seine 
Spikes ueber die Erdung verteilt, oder von einem anderen Geraet, was 
parallel laeuft.

Ich weiss ja nicht, vielleicht denke ich ja falsch, aber wie ist das zu 
erklaeren?

von Dietrich L. (dietrichl)


Lesenswert?

Michael schrieb:
> Was mich nach wie vor verwirrt ist die Stetigkeit des Signals trotz sich
> aendernder Drehzahl.

Welche Frequenz haben Deine Störer? Wenn es so ein paar kHz sind, ist es 
(wahrscheinlich) die Taktfrequenz des PWM-Signals, das (gemittelt) die 
sinusförmige Motorspannung erzeugt. Und das hat üblicherweise eine feste 
Frequenz.

Wie lang ist die Leitung zwischen FU und Motor?

Wenn das PWM-Signal ungefiltert zum Motor geht, ist das ein sehr starker 
Störstrahler. Hier hilft ggf. ein Sinusfilter direkt am FU-Ausgang - der 
ist je nach Leistung aber nicht klein.

Und wie lang ist die Leitung zwischen Sensor und µC?

Eventuell bekommst Du das Ganze mit einem 1-Wire-Sensor gar nicht 
gebacken. Mit einem analogen Sensor ist das einfacher, da hier wirksame 
Filter verbaut werden können und die Messung (wahrscheinlich) nicht so 
schnell sein muss.

Gruß Dietrich

von Peter II (Gast)


Lesenswert?

Passiert es denn auch wenn die sensoren nicht angeschlossen sind? Damit 
ich kann mir nicht vorstellen das der µC sich aufhängt wenn an seinen 
IOs merkwürdige spannungen vorhanden sind. Nicht das es ein 
software-fehler ist wenn die Prüfsumme nicht stimmt.

von Uwe (Gast)


Lesenswert?

> kW/h
Ich liebe diese Einheit

von Mathe (Gast)


Lesenswert?

Ja, kWh nach der Zeit abgeleitet gibt doch kW/h, oder ?-)

von Michael (Gast)


Lesenswert?

> Welche Frequenz haben Deine Störer?

Schwer zu sagen, die Frequenz des Rauschens ist ziemlich gemischt. Mein 
Oszi schwankt zwischen kHz und MHz

> Wie lang ist die Leitung zwischen FU und Motor?

Schaetzungsweise 10-12 Meter

> Und wie lang ist die Leitung zwischen Sensor und µC?

Es sind vier Sensoren, die Leitungen laufen erst vom Sensor zu einer 
Verteilerdose am Aggregat, wo sie von vier Kabeln auf ein Kabel 
gebuendelt werden. Leitungslaenge betraegt zwischen 15-25 Meter.

> Passiert es denn auch wenn die sensoren nicht angeschlossen sind?

Ich habe die Sensoren nicht abgeklemmt aber habe im "Standby" gemessen, 
also ohne Sensoraktivitaet. Stoerung ist da.

> Damit ich kann mir nicht vorstellen das der µC sich aufhängt wenn an
> seinen IOs merkwürdige spannungen vorhanden sind. Nicht das es ein
> software-fehler ist wenn die Prüfsumme nicht stimmt.

Es ist definitiv kein Softwarefehler. Ich hab am Controller durch eine 
"Serviceapplikation" die Moeglichkeit jeden Sensor einzeln aufzurufen 
und im Loop abzufragen, um im Falle eines Falles evtl. Fehler wie 
Kabelbruch oder sonstwas schnell eingrenzen zu koennen. Jeder DS ist 
also an einem eigenen Port angeschlossen, nicht alle an einem (laesst 
sich im Fehlerfall austauschen ohne Eingriff ins 
Programm/Adresspeicher). Schalte ich die FUs ein, steht der Loop zur 
Abfrage sofort still und der uC reagiert weder auf das 
interruptgesteuerte Tastenpanel noch auf sonstwas. Das letzte 
Messergebnis aktualisiert sich also nicht mehr. Schalte ich die FUs dann 
ab laeuft er manchmal aber selten sofort weiter, aber meistens muss ich 
durch Unterbrechung der Versorgungsspannung neustarten

von Peter II (Gast)


Lesenswert?

Michael schrieb:
>> Passiert es denn auch wenn die sensoren nicht angeschlossen sind?
>
> Ich habe die Sensoren nicht abgeklemmt aber habe im "Standby" gemessen,
> also ohne Sensoraktivitaet. Stoerung ist da.

darum ging es nicht. Die Frage ist ob es über die Leitung der sensoren 
kommt oder über die Versorgungsspannung. Teste mal was ohne die Kabel zu 
den sensoren passiert.

von Helmut L. (helmi1)


Lesenswert?

Kannst du auch mal ein paar Fotos von der Verdrahtung machen oder ist 
das geheim?

von Klaus (Gast)


Lesenswert?

Michael schrieb:
> der uC reagiert weder auf das interruptgesteuerte Tastenpanel

Löst die Störung möglicherweise einen Interruptsturm über das 
Tastenpanel aus?

MfG Klaus

von B-loch (Gast)


Lesenswert?

Uwe schrieb:
>> kW/h
> Ich liebe diese Einheit

kg*m²/s^4
Was soll das sein?
Masse mal Beschleunigung zum Quadrat?
Kraft pro Kraft?

von B-loch (Gast)


Lesenswert?

B-loch schrieb:
> Kraft pro Kraft?

Eher Kraft pro Beschleunigung?

von Uwe (Gast)


Lesenswert?

Beschleunigte Energie !

von Uwe (Gast)


Lesenswert?

Energie pro Beschleunigung !

von Uwe (Gast)


Lesenswert?

Aus der englische Wikipedia :
Terms such as watts per hour are often misused when watts would be 
correct.[16] Watts per hour properly refers to the change of power per 
hour. Watts per hour (W/h) might be useful to characterize the ramp-up 
behavior of power plants. For example, a power plant that reaches a 
power output of 1 MW from 0 MW in 15 minutes has a ramp-up rate of 4 
MW/h. Hydroelectric power plants have a very high ramp-up rate, which 
makes them particularly useful in peak load and emergency situations.

von Michael (Gast)


Lesenswert?

> Die Frage ist ob es über die Leitung der sensoren
> kommt oder über die Versorgungsspannung. Teste mal was ohne die Kabel zu
> den sensoren passiert.

Die Versorgungsspannung ist am Hauptverteiler und am Zwischenverteiler 
zu den Sensoren glatt wie ein Babypopo, das war das erste, was ich 
ueberprueft habe. Der Witz ist dabei, dass die Versorgungsspannung ueber 
ein gewoehnliches 4x0,75 Installationskabel kommt, welches neben der 
Datenleitung verlaeuft. Wahrscheinlich machens dort die Kondensatoren 
vom Schaltnetzteil rund.

> Kannst du auch mal ein paar Fotos von der Verdrahtung machen oder ist
> das geheim?

Geheim? lol Wer das Datenblatt vom DS und Atmega lesen kann, wird das 
Geheimnis innerhalb von 5min entschluesseln. Fotos kann ich gern machen, 
aber leider erst am Wochenende. Von Samstag nachmittag bis in die Nacht 
bin ich dort vor Ort und live hier im Forum, dann kann ich alle Daten 
inkl. Oszillograme posten

> Löst die Störung möglicherweise einen Interruptsturm über das
> Tastenpanel aus?

War auch schon mein Gedanke. Das Bedienpanel ist ueber ein kurzes Kabel 
mit D-Sub-Stecker am Gehaeuse angeschlossen. Ich hab mehrere von den 
"Messtationen" dort und in jedes ein eigenes Display einzubauen ist 
Unsinn. Deshalb hab ich ein Handgeraet mit drei Tastern und Display 
gebastelt, welches ich per Stecker anklemme und ueber einen 
Tasteninterrupt die Initialisierung und den Sprung ins Servicemenue 
aktiviere.
Sobald der Interrupt das "Serviceflag" gesetzt hat und die Hauptroutine 
ins Servicemenue springt, ist der Interrupt abgeschaltet bis zum 
Ruecksprung in die Hauptroutine, sprich mit Verlassen des Servicemenues. 
Im Menu werden die Taster via Polling abgefragt. Der einzige Interrupt, 
der aktiv bleibt, ist die Ablesung des Stromzaehlers, der Impulse 
aussendet, die via Interrupt erfasst werden. Das koennte ich nochmal 
testen... Guter Gedanke!

von Michael (Gast)


Lesenswert?

Hallo zurueck aus der Halle :-)
Ich hab das Problem gefunden. Der Stromzaehler, der den Energieverbrauch 
der Venti-Zentrale erfasst, hatte ne Macke. Anstatt eines 
Rechtecksignals spuckte er ne Sinuswelle in den Interrupt-Orbit, was 
natuerlich das Programm festsetzt.

Weiterhin ist es mir gelaungen, die Kommunikation zu stabilisieren und 
das Problem einzukreisen. Das eigentliche Problem ist nicht die 
Abstrahlung vom Schaltschrank oder vom Ventilationsaggregat, was ich 
erst annahm, sondern die Metall-Luftkanaele. Ein Teilstueck der 
Kabelstraenge laeuft ueber einen Luftkanal und genau dort faengt er die 
Induktion ein. Habe von allen Kabeln die Abschirmungen miteinander 
verbunden und einseitig (einseitig wegen Brummschleife) an GND gelegt 
und die Pullup-Potis etwas in der Leistung gesteigert (von 5k auf ca. 
2,8k). Jetzt ist die Ablesung sauber und die Spikes in der Norm. Das 
Signal zweier vorhandener Analogsensoren fuer CO2-Messung habe ich mit 
Kondensatoren (100nF Keramik + 10uF Elektrolyt) knitterfrei gebuegelt 
:-)

Jetzt das Interessante: In dem Gebaeude gibts noch einen Ventilatorraum 
einen Stock tiefer, der die Garderoben und Sozialraeume versorgt. Das 
selbe Aggregat und die Selben FUs. Dort habe ich mal testweise 
billigsten Telefondraht als Verkablung eingesetzt, ohne Abschirmung oder 
etwaigen Heckmeck. Mein Kollege, der den Mist immerhin studiert hat, 
meinte mal, dass das fuer 1wire besser ist als jedes FTP-Kabel. Nach der 
Aktion oben haben wir eigentlich beide schon damit gerechnet, dass wir 
heute die Kabel dort gegen FTPs tauschen werden. Nachdem ich dann mein 
Scopemeter am Verteiler angeschlossen und die Anlage eingeschaltet hab 
und mir schonmal in Vorahnung auf das Oszillogram zur Beruhigung eine 
Kippe angesteckt habe, hats mich fast vom Hocker gehauen: Ein absolut 
klares Rechtecksignal ohne auch nur den Hauch einer Stoerung. Und das 
auf allen Kanaelen. Selbst harte Manoever wie schnelles Beschleunigen 
der Motoren, abruptes Abbremsen mit den Gleichstrombremsen, etc. 
erzeugten keine Reaktion im Kabel.

Kann mir das mal einer erklaeren? :-)

von Peter II (Gast)


Lesenswert?

Michael schrieb:
> Hallo zurueck aus der Halle :-)
> Ich hab das Problem gefunden. Der Stromzaehler, der den Energieverbrauch
> der Venti-Zentrale erfasst, hatte ne Macke. Anstatt eines
> Rechtecksignals spuckte er ne Sinuswelle in den Interrupt-Orbit, was
> natuerlich das Programm festsetzt.

prima. Also Doch ein Softwarefehler.

von Michael (Gast)


Lesenswert?

Peter II schrieb:
> prima. Also Doch ein Softwarefehler.

Nein, ein Hardwarefehler, der die Software durcheinander gebracht hat. 
Der Zaehler wurde ausgetauscht und der uC laeuft.

von Peter II (Gast)


Lesenswert?

Michael schrieb:
> Peter II schrieb:
>> prima. Also Doch ein Softwarefehler.
>
> Nein, ein Hardwarefehler, der die Software durcheinander gebracht hat.
> Der Zaehler wurde ausgetauscht und der uC laeuft.

sollte eine Software nicht micht allem zurechkommen? Man könnte z.b. den 
ISR abschaltet wenn zu viele pro sekunde ankommen und dann einen Fehler 
melden.

von Michael (Gast)


Lesenswert?

Ohne Dich persoenlich anzugreifen - aber denk nochmal nach. Der 
Interrupt ist an einem Stromzaehler angeschlossen. Der Zaehler gibt pro 
10W Verbrauch ein Rechtecksignal ab, welches den Interrupt ausloest und 
eine Variable fuer den Stromverbrauch hochzaehlt. Und was dann? Dann 
warten wir auf den naechsten Pulse. Im Programm sieht es dann so aus:

ISR (wenn Signal nach 0 zieht):

Interrupt deaktivieren
Variable hochzaehlen
Warten bis das Signal wieder auf "1" zieht
Interrupt aktivieren

Ende

Bei maximalem Strombedarf kommt der Interrupt alle 3-4 Sekunden. Bei 
einer Sinuswelle, wie es in dem fehlerhaften Zaehler der Fall war, 
100mal pro Sekunde. Was ist deiner Meinung nach jetzt falsch am 
Programm?

von Ape (Gast)


Lesenswert?

Michael schrieb:
> Bei maximalem Strombedarf kommt der Interrupt alle 3-4 Sekunden. Bei
> einer Sinuswelle, wie es in dem fehlerhaften Zaehler der Fall war,
> 100mal pro Sekunde. Was ist deiner Meinung nach jetzt falsch am
> Programm?

Dass du einen sehr offensichtlichen Fehler nicht behandelst, sondern 
dein Programm zugrunde geht. Es kann ja anscheinend passieren, dass 
solch ein Stromzähler kaputt geht.

Gruß

von Mystik (Gast)


Lesenswert?

Ape schrieb:
> Michael schrieb:
>> Bei maximalem Strombedarf kommt der Interrupt alle 3-4 Sekunden. Bei
>> einer Sinuswelle, wie es in dem fehlerhaften Zaehler der Fall war,
>> 100mal pro Sekunde. Was ist deiner Meinung nach jetzt falsch am
>> Programm?
>
> Dass du einen sehr offensichtlichen Fehler nicht behandelst, sondern
> dein Programm zugrunde geht. Es kann ja anscheinend passieren, dass
> solch ein Stromzähler kaputt geht.
>
> Gruß

...so ist es......stell dir vor, dein Programm hätte statt sich tot zu 
rennen ein Feedback über diesen Zustand gegeben, dann hättest du ein 
paar wertvolle Stunden deines Lebens sinnvoller verbringen können ;-)

von Michael (Gast)


Lesenswert?

Sicher, man kann eine Fehlererkennung einbauen, da habt ihr zu 100% 
recht. Aber dazu muss man wissen, was passiert/welche Effekte entstehen, 
wenn Fehler auftreten. Eine Fehlerscanner fuer meine Temp- und 
Feuchtesensoren hab ich drin, da weiss ich durch Erfahrung, was 
passieren kann und wie dass dann aussehen wird. Auch der Zaehler hat 
einen Fehlerscanner, naemlich wenn ueber einen Zeitraum x garkeine 
Impulse mehr kommen, obwohl die Anlage laeuft. Allerdings war ich mir 
nicht im klaren darueber, dass bei einem Fehler eine 5V Sinuswelle am 
Ausgang entsteht oder entstehen kann. Man lernt eben staendig dazu :-) 
Deshalb nichts fuer ungut und nochmals vielen Dank an alle Schreiber 
fuer die hilfreichen Tipps

von Klaus R. (klaus2)


Lesenswert?

SW Entwicklung ist schnell gemacht, eine anständige Diagnose aber ein 
anhängendes riesen Übel :)

Klaus.

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
Noch kein Account? Hier anmelden.