Hallo Leute, ich bin neu in dem Forum und habe folgendes Projekt bei dem ihr mir hoffentlich bei der Problemlösung helfen könnt. Grundsätzlich geht es um folgendes: es gibt hier einen Prüfstand der Motorpumpen und Injektoren prüft. Dabei kann es passieren dass irgendein Schlauch nicht fest genug sitzt oder bei der Messung etwas schief läuft. Meistens endet es damit, dass halt viel Diesel auf dem Boden landet, aber nichts schlimmeres. Meine Aufgabe besteht nun darin dies zu verhindern. Ein Praktikant vor mir hat fast alles gemacht und ich soll jetzt nun die Fehler finden. Kurz zur Schaltung: Ich habe 3 Sensoren(Temperatur,tauchrohr und nebel) mit einem atmega88a verschalten und eine Protokolumwandlung (USB<->Rs232) mit einem atmega48a gemacht. Außerdem gibt es eine Notausschaltung falls mit den Werten der Sensoren irgendwas nicht passt, geht alles aus. Es gibt auch einen Resetbutton mit dem man die Fehlermeldungen(durch LCD und LED) falls die werte wieder passen, wegmachen kann. Grundsätzlich funktioniert schon fast alles. Es gibt jedoch paar Probleme die ich nicht ganz lösen kann. 1.) Wenn der Nebelsensor aus ist, zeigt der tauchrohrsensor immer ein ok an, jedoch keinen Fehler. (eig nicht schlimm, da alle sensoren immer dran sind) 2.) Bei manchen Tauchrohrsensorwerten geht die anzeige ständig von ok/aus (in ms takt) 3)nun das große Problem: nach einer unbestimmten Zeit resetet sich der oder uC (mal nach 2min und auch mal nach 4h) nach dem sich das Ding 2-3 resetet kommt beim Nebelsensor immer ein error (also unpassender Wert). woran kann das liegen? laut Bedienungsanleitung hat der uC reset Eingang einen Pull up. Parallel zu dem eingang hab ich einen Kondensator(also eig auch fast störungssicher) ich habe mit dem Oszi den Spannungsverlauf gemessen der wird nicht unterbrochen(ist konstant). auch die Sensorik gibt immer normale Spannungen raus(auch mit oszi vermessen) Ist das Problem eher beim Programm oder bei der Schaltung? Ich habe grundsätzlich auch die Freiheit komplett von vorne zu beginnen. Mein Vorgänger hat die Schaltung komplett selber entwickelt, was ich nicht ganz sinnvoll finde. ich hätte lieber einen Arduino genommen. Da kann es zumindest kein interner schaltungsfehler sein, bei dem ich nicht wüsste wie ich den finde. Als Idee hätte ich auch sowas: (mein farvorit) http://www.electronic-software-shop.com/usb-adc-8-eingaenge-12-bit-4095-v.html 3 sensoren da anschließen und dann intern über PC (der immer läuft) das prüfprgramm einfach zu stoppen. Muss ja kein notaus sein. Normal stoppen reicht auch. Die Frage dazu: wie schwer ist das? Also wenn ein Sensor einen unpassenden Wert ausgibt geht der Mauszeiger auf "Stopp" oder der Taskmanager beendet das Programm. Müsste wahrscheinlich über einen batch file gehen. Da müsste ich mich einarbeiten. Vielen Dank im voraus für eure Hilfe Ps:hab die Mainfkt mal eingefügt falls Ihr die anderen sehen wollt, füge ich sie natürlich auch dazu.
speedstar schrieb: > Ps:hab die Mainfkt mal eingefügt falls Ihr die anderen sehen wollt, füge > ich sie natürlich auch dazu. Ich behaupte mal, das hat so keinen Sinn. Erstens blickt da keiner durch, der nicht direkt mit dem Projekt vertraut ist und zweitens ist da ja nicht mal kommentiert, was wofür ist, und was passieren soll, wenn das und das ist. Vermutlich machst du dir am besten selber mal ein Diagramm, welches beschreibt, was wann passieren soll. Ob du nun von vorne anfängst und das etwas strukturierter angehst, ist deine Sache, aber für mich riecht schon die vorhandene Funktion nach Bufferproblemen (ich sage nur mal 'zbuff') und Spaghetti-Code. Ein Mega88 hat übrigens nur 1kByte RAM und der will sorgfältig verwaltet werden.
speedstar schrieb: > IMG_6676.JPG Bei mir kommen immer schon Zweifel an der Technikkompetenz auf, wenn ich solche Bilder sehe. Die Powershot A610 kämpft mit dem letzten Licht und das total unscharfe Zeugs wird auch noch mit 5 Megapixeln hochgeladen.
Das tolle Bild wurde ja schon angesprochen. Ich sehe da kaum Abblockkondensatoren, außer sie sind als SMD auf der Unterseite vorhanden. Gerade bei so einem schönen Lochrasteraufbau sind diese enorm wichtig. An RESET sollte ein 10k PullUp, der Interne ist etwas hochohmig.
Das wichtigste ist, dass Du Dir eine Liste mit allen möglichen Stati machst und dann die dahinterstehende Logik. In vielen Fällen erhältst so schon den Ablauf. Ist ja auch nicht so schwer. Ein Sensor kann die Stati: Fehler (z.B. Drahtbruch), niedrig, erlaubt und hoch haben. Ein Schalter kann die Stati: Fehler (z.B. Drahtbruch), offen oder geschlossen haben. Wenn Du dann nicht weiter weist, kannst Du über konkrete Situationen, hier im Forum diskutieren. Bei Deiner recht schwammigen Erklärung am Anfang, blickt, außer Dir wohl niemand durch.
Sowie die Verdrahtung aussieht so sieht auch der Code aus. Am besten wegschmeissen und vernueftig neu machen.
speedstar schrieb: > Muss ja kein notaus sein. Normal stoppen reicht auch. Das ist gut, denn die beschriebene Schaltung ist kein Not-Aus. Dafür müsste sie konzeptionell bestimmte Sicherheitsanforderungen erfüllen, waw sie nicht tut. EN 60947-5 http://www.pilz.com/de-DE/knowhow/standards/directives-laws Blöd ist natürlich, wenn der Prüflauf gestoppt wird obwohl alles funktioniert, nur weil die Überwachung falsch läuft. Aber immer noch besser, als andersrum. speedstar schrieb: > Grundsätzlich funktioniert schon fast alles. Na das ist ja schön. speedstar schrieb: > woran kann das liegen? Meist an unsauberer Versorgungsspannung, ein Einbruch führt zu einem brown out Reset. Du kannst am ATmega (beiden) mal die fus für brown out einschalten udn auschalten und schauen ob sich darauch was ändert. Die Versorgung kann schwanken durch: - Impulse von aussen (ESD Funke auf Abschirmung einer Leitung) - Überhitzung des ungekühlten Spannungsreglers Auf dem verwackelten Bild sehe ich keinen 100nF Stützkondensator, es kann also ein sinnvoller erster Schritt sein, bei jedem IC auf der Rückseite der Platine direkt zwischen VCC und GND einen http://www.conrad.de/ce/de/product/531855/Keramik-Kondensator-100-nF-50-VDC-10-Holystone-RDCX104K050DKA-1-St?ref=searchDetail einzulöten. Insgesamt ist aber zu befürchten, daß die ganze Platine nicht nach sinnvollen EMV Kriterien aufgebaut ist. Zwar hat er einige wenige Regeln befolgt, wie verdrillte Drähte, aber Kupferlackdraht als Leitung ist bedenklich und die Verdrahtung von oben lässt nichts Gutes für die Unterseite vermuten.
vielen Dank für die vielen Antworten. Hubert G. schrieb: > An RESET sollte ein 10k PullUp, der Interne ist etwas hochohmig. Habe ich jetzt eingebaut. Resetet sich leider trotzdem. Michael Bertrandt schrieb: > Blöd ist natürlich, wenn der Prüflauf gestoppt wird obwohl alles > funktioniert, nur weil die Überwachung falsch läuft. Das ist ja meine Aufgabe genau dies zu verhindern^^ Amateur schrieb: > Das wichtigste ist, dass Du Dir eine Liste mit allen möglichen Stati > machst und dann die dahinterstehende Logik. Das ist wirklich kein Problem und das kriege ich auch selber hin. Das Hauptproblem ist das reseten. ich dachte vllt ist das wichtig zu erwähnen,weil das irgendwie dazu im zusammenhang stehen könnte. Michael Bertrandt schrieb: > Meist an unsauberer Versorgungsspannung, ein Einbruch führt zu einem > brown out Reset. Den Spannugnsverlauf hab ich einmal am beim Eingang und einmal bei der Versorgungsspannung selbst gemessen, war beides nicht auffällig. Michael Bertrandt schrieb: > Auf dem verwackelten Bild sehe ich keinen 100nF Stützkondensator habe ich jetzt eingebaut. Der Reset kommt trotzdem. Ich dachte das kann eher nicht am Programm liegen, da der Reset ja wirklich nach einer beliebigen Zeit kommt, (mal nach paar Minuten. mal nach 30min. habs aber auch schon 4h laufen lassen können.) Sonst noch Ideen was ich ändern könnte oder wie ich das grundsätzlich anders machen kann?
Noch mehr Kondensatoren an allen möglichen Stellen in die Spannungsversorgung. RC Kombinationen an die Eingänge Wenn alles nicht hilft: den Schaltplan in Eagle Zeichnen und eine Platine ätzen lassen ( Das Layout erst mal hier zeigen!)
speedstar schrieb: > Problemlösung Nun wollen wir doch mal ehrlich sein! Der Praktikanten und du sind mit der Aufgabe völlig überfordert. Der Aufbau und das Programm sprechen (besser:" schreien") Bänder. Das kann man nur noch weg schmeißen. Der Aufbau muss mit professionellen Systemen von z.B.: Phoenix oder Siemens erfolgen. Das ganze dient ja wohl Qualitätskontrolle.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.