Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus CAN-Bus selbst auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    AW: Daten aus CAN-Bus selbst auslesen

    Zitat von DefNder Beitrag anzeigen
    Ich geb die Hoffnung nicht auf, dass auch fuer den 2.2l die wichtigsten Werte vom CAN-Bus gelesen und interpretiert werden koennen, so dass die tolle Arbeit von khamuul auch fuer neuere TD4 verwertbar ist.
    da bin ich als 2.2er voll bei dir
    muss den ganzen Fred noch ein paar Mal lesen, um mal mit irgendetwas zu starten

    Kommentar


      AW: Daten aus CAN-Bus selbst auslesen

      @DefNder
      Heated oxygen sensor = PID? Position vor dem DPF zur Messung des Sauerstoffgehalts im Abgas. Benötigter Wert für DPF Regenerationsprozess.

      Post catalytic converter temperature sensor = Catalyst Temp Bank 1 Sensor 2 Sensor sitzt hinter dem Kat
      Pre catalytic converter temperature sensor = Catalyst Temp Bank 1 Sensor 1 Sitzt vor dem Kat
      Post DPF exhaust gas temperature sensor = PID? Position ?

      Die PIDs 36 und 70 gehören zusammen und kommen vom MAPT Sensor.

      PID 44 (Commanded EGR) ist der Stellwert für das AGR. Hier kommt der SOLL- Wert. Der IST Wert wird über den verbauten Positions Sensor zurück gegeben. Wie genau ???
      Hatte noch kein 2,2l AGR das ich zerlegen konnte. Vermutlich ähnlich wie beim 2,4l über Widerstanswert. Von der Verkabelung her passt es.
      Die Werte der KAT Sensoren und des EGR werden irgendwie verrechnet um die Euro5 Norm einzuhalten. Wie entzeiht sich meiner Kentniss.
      Geht nicht gib's nicht, Geht nur schwerer

      Kommentar


        AW: Daten aus CAN-Bus selbst auslesen

        Zitat von DefNder Beitrag anzeigen
        Ja, wobei ich ja doch noch hoffe, dass ich durch einen Vergleich der Haeufigkeiten und der Datenwerte der auftretenden Can-IDs bei vergleichbaren Rahmenbedingungen herausfinden koennte, welche von Deinen haeufig vorkommenden Can-IDs nun welcher von meinen Can-IDs entspricht. Dazu braeuchte ich aber so einen 60-Sekunden Mitschnitt der Daten von Dir, wie ich ihn oben in Post #98 beschrieben habe. Vielleicht laesst sich dann ja herausfinden, welche Can-IDs beim 2.2l TD4 den von Dir benutzten 0x38B, 0x129, usw entsprechen. Sind ja nicht so viele IDs, die wirklich wichtig sind.
        Falls Du dazu Zeit und Lust haben solltest, waere ich Dir sehr dankbar!
        Mit einem Protokoll kann ich momentan und auf die Schnelle nicht dienen. Vielleicht helfen aber bereits Details:

        0x38B: (44%)
        • Bytes 0 bis 2 sind stets null.
        • Byte 3 ist stets 15 (dec)
        • Byte 4+5 kombiniert Geschwindigkeit v = (B4*256+B5)/100 [km/h]
        • Byte 6+7 entsprechen 4+5


        0x129: (30%)
        • Bytes 0,1,4,5 stets null
        • Byte 2 Motor an/aus (3|0 dec)
        • Byte 3 Spritverbrauch, läuft alle 50ml über
        • Bytes 6+7 kombiniert Gaspedalstellung thr = ((B6-12)*256+B7)/10 [%]


        0x38A entspricht inhaltlich übrigens 0x38B, kommt nur wesentlich seltener vor. (9%)

        Ich hoffe, ich konnte Dir damit schonmal weiter helfen. Jetzt muss ich erstmal wieder los...

        PS: Bei Euren beiden KAT-Sensoren - ist der heißere nicht einfach der vorm KAT? ;)

        Kommentar


          AW: Daten aus CAN-Bus selbst auslesen

          Zitat von khamuul Beitrag anzeigen
          Mit einem Protokoll kann ich momentan und auf die Schnelle nicht dienen. Vielleicht helfen aber bereits Details:
          Diese Details hab ich schon aus Deinem frueher mal geposteten Mitschnitt entnommen. Da bist Du aber wohl gefahren, und da passt die Verteilung der IDs ueberhaupt nicht zu meiner Verteilung. Daher ja meine Anfrage nach einerm Mitschnitt unter vergleichbaren Bedingungen (die im Stand sicher eher zu erreichen sind als beim Fahren auf unterschiedlichen Strecken).

          Ich glaube inzwischen, dass Deine Can-ID 0xF6 (fuer rpm und gefahrene Strecke) bei mir der Can-ID 0xDF entspricht, muss dies aber noch verifizieren.

          Leider finde ich bei meinen IDs nichts, was dem monotonen Anstieg des fuer den Verbrauch zustaendigen Bytes aus Deiner ID 0x129 entspricht - das Byte muesste ja auch bei mir ein entsprechendes Verhalten zeigen, und das trifft fuer kein Byte aus allen bei mir ankommenden IDs zu :-( Vielleicht finde ich ja was ueber die Suche nach der Pedalstellung in der gleichen ID (falls sie denn immer noch in dieser ID kodiert ist).

          Kommentar


            AW: Daten aus CAN-Bus selbst auslesen

            Ich habe uebrigens bei meinen IDs eine gefunden, die einigermassen oft kommt (ca 6%) und die bei allen Bytes konstant =0 ist - bis auf ein Byte, und das finde ich interessant. Dieses eine Byte hat bei Standgas im Leerlauf konstant den Wert 0x10 (also dez 16) und geht auf 0, sobald ich aufs Gaspedal trete. Es hat aber nur die beiden Werte 16 und 0, also keine Zwischenwerte. Die (analoge) Pedalstellung kann es also nicht sein.

            Hat jemand eine Idee, was fuer ein Wert das sein koennte, der nur zwei Zustaende kennt und eben abhaengt davon ob Gaspedal gedrueckt ist (Wert 0) oder in Ruhestellung (Wert 16)? Es erscheint mir wenig sinnvoll, einen derartigen Pedalzustand in einer ID zu kodieren. Aber koennte es etwas anderes sein beim Motor, das beim Druecken des Pedals irgendwas hinzuschaltet (oder abschaltet), was lohnenswert waere zu kodieren? Es ist halt auffaellig, dass dieses Byte waehrend meines 60-sec Leerlaufs mit 5x Gasstoss alle 10 sec genau dieses Verhalten wiederspiegelt.

            Sieht dann ungefaehr so aus:

            DC,0,0,0,10,0,0,0,0 \
            DC,0,0,0,10,0,0,0,0 |
            ................... | ca. 250x
            DC,0,0,0,10,0,0,0,0 |
            DC,0,0,0,10,0,0,0,0 /
            DC,0,0,0,0,0,0,0,0 \
            DC,0,0,0,0,0,0,0,0 |
            .................. | ca. 20x
            DC,0,0,0,0,0,0,0,0 |
            DC,0,0,0,0,0,0,0,0 /
            DC,0,0,0,10,0,0,0,0 \
            DC,0,0,0,10,0,0,0,0 |
            ................... | ca. 250x
            DC,0,0,0,10,0,0,0,0 |
            DC,0,0,0,10,0,0,0,0 /


            Die genauen Anzahlen sind natuerlich variabel, weil ich nicht auf die Millisekunde genau Gasstoesse gegeben hab ;-)

            Kommentar


              AW: Daten aus CAN-Bus selbst auslesen

              Könnte diese ID etwas mit dem Anti Stall zu tun haben?
              Gaspedal in Ruhestellung und Kupplung geschlossen = Anti Stall Funktion.
              So würde ich mir diese ID erklären.
              ISt die aktiv muss ja die ECU ggf nachregeln das der Motor nicht abgewürgt wird.
              Geht nicht gib's nicht, Geht nur schwerer

              Kommentar


                AW: Daten aus CAN-Bus selbst auslesen

                Zitat von Dragon Beitrag anzeigen
                Könnte diese ID etwas mit dem Anti Stall zu tun haben?
                Darauf hätte ich auch getippt. -> Leerlaufdrehzahlanhebung

                Kommentar


                  AW: Daten aus CAN-Bus selbst auslesen

                  Moin @DefNder!

                  Der Sonntag ist da, ich bin wieder zuhause und finde etwas Zeit fürs Hobby. :W
                  Das gewünschte Protokoll habe ich Dir in Linkform als PN geschickt. Meine Handlungen:
                  - 10s Zündung an (Vorglühen also dabei - aber nur kurz, weil der Motor direkt davor schon einmal an war - da hats mit dem Protokoll nicht hingehauen. :v)
                  - 60s Motor an mit alle 10s ein kleiner Gasstoß. Ich meine, die letzten 10s war der Motor dann aus.

                  Das ergab bei meiner 2,4l Maschine dann diese Häufigkeitsverteilung der PIDs:
                  19,6% 0x38B
                  16,6% 0xF6
                  16,1% 0x38A
                  15,5% 0x127
                  13,9% 0x128
                  13,3% 0x129
                  2,0% 0x4C2
                  1,8% 0x12A
                  0,6% 0x400
                  0,4% 0x405
                  0,2% 0x442

                  Ich bin gespannt, ob bei Dir einige PIDs deckungsgleich sind. Viel Hoffnung habe ich nicht, denn in dem Falle wäre es ja eigentlich nicht nötig gewesen, neue PIDs für die bestehenden Werte einzuführen, sondern ggf. nur für die neu hinzugekommenen Werte der 2,2l-Maschine. (DPF...) Aber ähnlich sollten sie schon sein, denn sie werden großenteils dieselben Daten enthalten.

                  Kommentar


                    AW: Daten aus CAN-Bus selbst auslesen

                    Vielen, vielen Dank @khamuul!

                    Ich hab mir die Daten mal angesehen. Die Haeufigkeitsverteilungen der IDs zw. dem 2.4l und dem 2.2l lassen sich tatsaechlich nicht in Einklang bringen - hier wurde offenbar sehr viel geaendert an der Steuerelektronik. Dafuer habe ich mir ein kleines Hilfsscript geschrieben, das mir eine graphische Darstellung der Bytes einer ID ueber die Zeit ermoeglicht, und die kann man sehr gut vergleichen.

                    Die ID 0x129 beim 2.4l hat fuer das von mir vorgeschlagene Testszenario (1min Standgas mit Gasstoss alle 10sec) folgendes Diagramm:
                    ID-129.jpg

                    Der rote Pfeil zeigt auf die Linie, die fuer den Verbrauch zustaendig ist (4. Datenbyte). Eine aehnliche Linie muesste ich ja bei irgendeiner ID auch bei mir finden. Gibt es aber nicht! Fuer die RPM zB finde ich (mehrere) Bytes in anderen IDs, die ein entsprechendes Diagramm aufweisen wie die Bytes 5 und 6 in der ID F6 bei khamuul (abgesehen davon, dass ich RPM auch ueber Standard-request bekomme). Aber es gibt kein einziges Byte in meinen IDs, welches einen monotonen Anstieg ueber die Zeit aufweist, wie es der Verbrauch ja nun mal nahelegt.
                    Entweder, der Verbrauch ist NICHT mehr in den (Nicht-Standard-)IDs beim 2.2l enthalten, oder er ist derart in 2 oder mehr Bytes kodiert, dass man dies den einzelnen Bytes nicht mehr ansieht.

                    Bleibt nur noch zu hoffen, dass der Kommilitone von Dragon hierzu etwas herausfinden kann - sonst gibt's fuer den 2.2l wohl keine Verbrauchsanzeigen.
                    Alles andere laesst sich umsetzen bzw erweitern.

                    PS: es gibt uebrigens 21 verschiedene (nicht-Standard-)IDs beim 2.2l im Vergleich zu 11 verschiedenen IDs beim 2.4l - zumindest fuer den 60s-Zeitraum, den khamuul und ich protokolliert haben. Darunter genau 2, die bei beiden auftauchen (0x400 und 0x405), alle anderen sind anders, haben andere Haeufigkeiten und anderes Zeitverhalten.
                    Zuletzt geändert von DefNder; 08.07.2019, 07:39.

                    Kommentar


                      AW: Daten aus CAN-Bus selbst auslesen

                      Ich habe nun Rückmeldung erhalten.
                      Die Software für den 2,2l ist eine komplette Neuentwicklung. Es wurden 104 Standart PIDs eingebaut von denen aber noch nicht alle aktiv genutzt werden. Weiterhin hat Ford noch etwa 150 Herstellerspezifische eingebaut.
                      Der Motor ist ein Grundstock für eine ganze Reihe von Motoren die von 1,2 bis 3,2l gehen. Diese werden alle über das gleiche Steuergerät mit leicht veränderter Software betrieben.
                      Das Problem ist das neue Motorsteuergerät das vorne drin sitzt. Hier sind die meisten Veränderungen vorgenommen worden.

                      Es werden nur noch die 29 Bit Extendet CAN Bus Frames verwendet. Einzelene 11 Bit Standartframes werden in diese Verpackt und mit Nullen aufgefüllt.
                      Hier wäre der Ansatzpunkt um weitere Informationen zu erhalten.

                      Die Software zwischen 2,4l und 2,2l deckt sich nur zu ca 10%
                      Die Berechnungen der Werte sind fast komplett anders als beim 2,4l
                      Auch spielen die neuen Sicherheitssysteme negativ rein. Hier sind viele PIDs verwendet worden die ständig abgefragt werden.
                      Wegfahrsperre,Alarm, Anti-Stall,Durchschnittsverbarauch, Geschwindigkeit und Stelleungen der Pedale haben alle neue PIDs erhalten.
                      Geht nicht gib's nicht, Geht nur schwerer

                      Kommentar


                        AW: Daten aus CAN-Bus selbst auslesen

                        Zitat von Dragon Beitrag anzeigen
                        Wegfahrsperre,Alarm, Anti-Stall,Durchschnittsverbarauch, Geschwindigkeit und Stelleungen der Pedale haben alle neue PIDs erhalten.
                        Vielen Dank fuer die Info! So etwas habe ich mir schon gedacht... Ich komme ja an alles fuer mich Interessante dran ueber die Standard-PIDs, bis auf Strecke/Verbrauch. Kannst Du denn irgendwelche Infos bekommen, WELCHE (Nichtstandard-)PIDs hierfuer benutzt werden?

                        Ich habe durch Analyse der Diagramme das Byte Nr 4 bei der PID 0x16E in Verdacht bzgl Verbrauch - kannst Du das irgendwie verifizieren und mir eine Umrechnungsformel dafuer besorgen? Anders als bei khamuul scheint dieses Byte bei mir naemlich NICHT im Leerlauf anzusteigen, sondern nur dann ansteigende Werte zu liefern, wenn ich auch wirklich fahre. In dem Diagramm sehe ich auch die Schaltvorgaenge: beim Beschleunigen in einem Gang geht der Verbrauch hoch, wenn ich dann den naechsthoeheren Gang schalte, steigt der Verbrauch nur langsam bis ich den Motor wieder staerker hochdrehe usw. Kann es sein, dass der 2.2l hier tatsaechlich bereits einen (umgerechneten) Verbrauch in liter/km (wie auch immer normiert) zur Verfuegung stellt? Wenn Du hierzu irgendwas herausbekommen kannst, waere das toll.

                        Die extended frames kann meine Hardware und meine Software schon verarbeiten, aber wenn ich da ganz ohne Anhaltspunkte anfange zu stochern, dann werde ich ja mit Daten nur so zugemuellt. Eine kurze Fahrt mit ca. 2km Strecke und 3min Fahrdauer erzeugt bei mir bereits 170.000 PIDs, die auf dem Bus vorbeirauschen. Wenn ich da noch die extended abfrage, kann ich ja gar nichts mehr sehen...

                        Kommentar


                          AW: Daten aus CAN-Bus selbst auslesen

                          Sehr interessant. Danke @Dragon ! Sowas muss man natürlich auch wissen, wenn man das Steuergerät mal tauschen muss.

                          Zitat von DefNder Beitrag anzeigen
                          Ich habe durch Analyse der Diagramme das Byte Nr 4 bei der PID 0x16E in Verdacht bzgl Verbrauch - kannst Du das irgendwie verifizieren und mir eine Umrechnungsformel dafuer besorgen? Anders als bei khamuul scheint dieses Byte bei mir naemlich NICHT im Leerlauf anzusteigen, sondern nur dann ansteigende Werte zu liefern, wenn ich auch wirklich fahre. In dem Diagramm sehe ich auch die Schaltvorgaenge: beim Beschleunigen in einem Gang geht der Verbrauch hoch, wenn ich dann den naechsthoeheren Gang schalte, steigt der Verbrauch nur langsam bis ich den Motor wieder staerker hochdrehe usw. Kann es sein, dass der 2.2l hier tatsaechlich bereits einen (umgerechneten) Verbrauch in liter/km (wie auch immer normiert) zur Verfuegung stellt?
                          Wenn der Wert im Stillstand nicht steigt: Hast Du mal daran gedacht, dass es evtl. auch ein Wert für Motorlast sein könnte? Die Motorlast würde dann natürlich stellenweise ähnlich aussehen, wie ein Verbrauchswert, aber sich im Stillstand eben nicht ändern. Vielleicht ließe sich hier was in % oder in Nm hinrechnen.

                          Kommentar


                            AW: Daten aus CAN-Bus selbst auslesen

                            Nein, im Stillstand bleibt der Wert konstant, zumindest im Bereich bis einer Minute oder so. Hab den Motor jetzt nicht eine Stunde laufen lassen, um zu sehen, ob der Wert dann ansteigt.
                            Aber Motor-Last usw ist ja bereits in den Standard-PIDs enthalten und abfragbar. OK, koennte natuerlich doppelt und dreifach drin sein... Ist halt schwierig, den huebsch aussehenden Kurven rein auf Verdacht hin sinnvolle Werte zuzuordnen... das ist Kaffeesatzleserei...

                            Ich belass meine Loesung bei all den Werten, die ich ueber die Standard-PIDs bekomme - hat den Vorteil, dass ich da einen Filter fuer mein CAN-Bus-Modul setzen kann und dann auch NUR diese Werte bei mir ankommen und nicht Millionen anderer Werte, mit denen ich gar nix anfangen kann...
                            Immerhin bekomme ich alle moeglichen Temperaturen, die mich interessieren, und auch Tankfuellstand und paar andere Dnge.

                            Kommentar


                              AW: Daten aus CAN-Bus selbst auslesen

                              als 2.2er finde ich das schade, wenn ich mal an die Umsetzung ranwage, frage ich dich nochmal an ... eigentlich ist nur die Software anders, oder?

                              Kommentar


                                AW: Daten aus CAN-Bus selbst auslesen

                                Zitat von sollner11 Beitrag anzeigen
                                eigentlich ist nur die Software anders, oder?
                                Ja, wie Dragon geschrieben hat, sind - bedingt durch ein anderes Steuergeraet beim 2.2l - die ganzen Nicht-Standard-IDs komplett neu belegt und es sind auch viel mehr geworden.

                                Auf Arduino-Seite aendert sich dadurch nichts an der Hardware, aber die Software muss eben an die neuen IDs angepasst werden. Von den IDs, die khamuul in seinem Quellcode verwendet hat, funktioniert leider nichts mehr beim 2.2l. Dafuer funktioniert aber relativ viel bereits ueber die Standard-PIDs. Lediglich fuer Verbrauchswerte muesste man wissen, durch welche (neue) Nicht-Standard-ID die kodiert werden. Da es beim 2.2l offenbar "geschwaetziger" auf dem CAN-Bus zugeht, ist das ohne technische Hilfsmittel (die mir nicht zur Verfuegung stehen) wie das beruehmte Stochern nach der Nadel im Heuhaufen.

                                Ich kann damit leben, wenn ich wichtige Daten wie Kuehlwasser- und Motoroel-Temperatur bekomme - der Verbrauch ist bei mir relativ konstant um die 10.5 l/100km, und ob der jetzt 10.4 oder 10.6 ist, ist fuer mich nicht so wichtig.

                                Kommentar

                                Lädt...
                                X