• Online: 3.470

hadez' VAG Coding-Mania

Tipps, Tricks & Tweaks zu VAG Codierungen

Sat Oct 20 14:34:06 CEST 2018    |    hadez16    |    Kommentare (58)    |   Stichworte: Audi, Codierung, Diagnose, Freischaltung, Seat, Skoda, VAG, VCDS, VW

Der VCDScripter

 

VCDScripter OberflächeVCDScripter Oberfläche

Mit dem VCDScripter seid ihr in der Lage Vorgänge mit und innerhalb VCDS vollständig zu automatisieren. Neu-Deutsch würde man dies als One-Click-Lösung bezeichnen, die sich bereits bei Apps wie OBD11 etabliert haben.

 

Ständig wiederkehrende Codierungen und das Abarbeiten von textuell niedergeschrieben Schritten kann somit nachhaltig zum einen durchgeführt, und zum anderen mit anderen Menschen geteilt werden.

 

Zu diesem Zweck stellt der VCDScripter eine sehr simple und leicht zu verstehende Skript-Sprache bereit, die euch das manuelle Klicken und Eintragen von Werten etc. abnimmt.

 

Der prinzipielle Ablauf eines VCDScripts lautet

 

  1. Öffne Steuergerät
  2. Mache etwas im Steuergerät
  3. Schließe Steuergerät

 

Das erstellte Skript lässt sich entweder direkt ausführen, in einer .vsf Datei abspeichern, oder in eine unabhängig ausführbare EXE-Datei konvertieren, die ihr an Menschen weitergeben könnt, die den VCDScripter nicht besitzen.

 

Auto-VervollständigungAuto-Vervollständigung

Der Skript-Editor selbst hilft euch mit einer automatischen Vervollständigung bei dem Erstellen von Skripten, zudem lassen sich über Rechtsklick vorgefertigte Befehl-Beispiele einfügen und im Menü-Band ein paar Beispiele in den Editor laden.

 

Ebenso werdet ihr zuverlässig darauf hingewiesen wenn ihr euch nicht an die korrekte Syntax haltet.

 

In der Summe gibt es derzeit 15 verfügbare Befehle, mit denen ihr VCDS steuern könnt:

 

  • StartVCDS
  • CreateAutoscan
  • CreateAdpMap
  • CreateAdpMapDump
  • CreateHexAdpMap
  • CreateHexAdpMapDump
  • CheckForUnits
  • TestPartNo
  • TestComponent
  • TestAdpChannel
  • LoginToUnit
  • ClearDTCs
  • ClearAllDTCs
  • OpenUnit
  • CloseUnit
  • ChangeCoding
  • ChangeCodingInSub
  • ChangeAdpChannel

 

Die Befehle sind ausführlich mit Beispielen in der ebenfalls verfügbaren Dokumentation beschrieben (siehe Downloads weiter unten).

 

Nutzungsbeispiel mit Weitergabe eines Skripts

 

Als vereinfachtes Beispiel möchten wir den Zeigertest sowie die Nachtankmenge im Tacho eines Fahrzeugs auf MQB-Basis freischalten.

 

Beispiel-SkriptBeispiel-Skript

Das Skript startet VCDS (Pflichtbefehl) und öffnet anschließend das Steuergerät 17 (Tacho).

Mit ChangeCoding ist es möglich auf die Codierung Einfluss zu nehmen. Der 1. Parameter innerhalb der Klammer gibt die zu setzenden Bits an, der 2. Parameter die Bits, die man deaktivieren möchte. Zur genauen Syntax bitte die Dokumentation sichten.

 

In diesem Fall aktivieren wir Byte 1 Bit 0 (Zeigertest), sowie Byte 10 Bit 4 (Nachtankmenge).

Anschließend wird das Steuergerät wieder geschlossen.

 

Damit ist der Vorgang beendet.

Wie bereits weiter oben angedeutet, hat man nun 3 Möglichkeiten:

 

MöglichkeitenMöglichkeiten

  1. Das Skript direkt ausführen
  2. Das Skript in eine .vsf Datei abspeichern (Speichern-Dialog)
  3. Das Skript in eine unabhängig von VCDScripter ausführbare Datei schreiben

 

Beim Starten des Skripts muss VCDS geschlossen sein, das Interface mit dem Notebook sowie Fahrzeug verbunden sein, und die Zündung eingeschaltet sein.

 

Das als .vsf Datei gespeicherte Skript lässt sich später erneut in den VCDScripter laden um es weiter zu bearbeiten/abzuspeichern/auszuführen.

 

Ausführbare Skript-DateiAusführbare Skript-Datei

Veräußert man das Skript, und füllt im Idealfall das Autor- sowie Kommentar-Feld, so erhält man eine ausführbare Datei, die ohne VCDScripter das Skript auf einem Rechner ausführt, der nicht über VCDScripter verfügen muss.

Die "Unbekannte" was bei einem One-Click also letztlich durchgeführt wird, wie man dies von den OBD11-Anwendungen kennt, fällt hier also weg. Was ausgeführt werden würde bekommt der Benutzer nochmals angezeigt. Auf diesem Wege kann man Codierungen bereitstellen für Benutzer, die sich eher nicht trauen komplexe Schritte in VCDS durchzuführen o.ä.

 

Das Versiegeln eines Skripts

 

Speichert man ein Skript als .vsf Datei, bekommt man die Frage gestellt ob man das Skript versiegeln möchte.

 

Verneint man dies, wird das Skript ohne Weiteres als .vsf im angegebenen Ordner unter angegebenem Dateinamen abgespeichert.

 

VersiegelungVersiegelung

Bejaht man die Frage, so wird der Inhalt des Skripts mit einer eindeutigen Prüfsumme belegt. Somit ist bei einem erneuten Öffnen absolut sichergestellt, dass es sich um das Skript handelt, welches der Autor ursprünglich erstellt hat.

 

Stimmt die Prüfsumme nicht überein, wurde das Skript anderweitig verändert.

Diese Methodik dient der Vertrauensbindung gegenüber Dritten.

PrüfsummePrüfsumme

 

 

 

 

Hinweise und Einschränkungen

 

Folgende Hinweise:

 

  • Die verwendeten Methoden zum Know-How Schutz lassen viele Virenscanner Alarm schlagen. Es ist kein schädlicher Code vorhanden! Virenscanner ausschalten oder bitte Ausnahme definieren.
  • Dies trifft ebenso auf die veräußerten ausführbaren .exe Skripts zu!
  • Unterstützt wird die Deutsche und Englische Version von VCDS
  • Die Dokumentation enthält eine sehr viel genauere Beschreibung der Möglichkeiten und Befehle. Bitte zuerst lesen!
  • Keine Software ist perfekt und alle Eventualitäten abzudecken ist unmöglich. Helft mir gerne, Probleme auszuräumen.
  • Getestet für Windows 7 und Windows 10. Es muss mindestens das .NET Framework 4.5 installiert sein.
  • VCDS muss im Standardpfad C:\Ross-Tech installiert sein
  • Während das Skript läuft darf keine weitere Bedienung durch den Benutzer erfolgen bis das Skript beendet ist. Dies wird durch eine entsprechende Meldung verdeutlicht.

 

Folgende Einschränkungen gelten:

 

  • Es werden lediglich HEX-V2 und HEX-NET unterstützt. Ein altes Interface führt zum Abbruch
  • Kurze Codierungen werden nicht unterstützt und führen zum Abbruch
  • Anpassungskanäle auf Kanalnummer-Basis werden nicht unterstützt und führen zum Abbruch
  • Der Einsatz bei Fahrzeuge die keine automatische Steuergeräte-Erkennung unterstützten führt zum Abbruch
  • Getestet und qualifiziert ist die Version lediglich für die angegebene VCDS-Version. Keine Garantie, Haftung oder Gewährleistung bei Problemen mit anderen Versionen

 

Beispiel Anhängerkupplung MQB-Plattform

 

Beispiel-Skript AHK MQBBeispiel-Skript AHK MQB

Eine mögliche Lösung für eine automatisierte Freischaltung einer Anhängerkupplung an einem MQB-basierten Fahrzeug, die verschiedene Möglichkeiten und Befehle des VCDScripters aufzeigt, sieht man auf dem linken Bild.

 

 

 

 

 

 

 

Downloads

 

VCDScripter Version 1.8.0

(08.08.2019)

Neuerungen Version 1.8

  • Zwingende Voraussetzung: VCDS Version 19.6.1
  • Anpassungen an neuen Abbild-Dialog
  • Neue Befehle CreateHexAdpMap, CreateHexAdpMapDump, CreateAdpMapDump

 

 

(MD5 Hash ZIP: 22edb846fecbe235232d6c99e33fd1fb)

 

Wer gut findet wie ich meine Freizeit opfere, dem stelle ich die Möglichkeit einer Spende bereit: https://paypal.me/hadez16Tools ;)

Hat Dir der Artikel gefallen? 40 von 41 fanden den Artikel lesenswert.

Sat Feb 26 08:42:21 CET 2022    |    hadez16

Also in dem 30-Farben Skript war mal ganz am Anfang ein Fehler drin, aber auf der OneNote sollte es schon länger korrigiert abliegen. Ich benutze es selbst für die 30 Farben, aber manchmal verhaspelt sich VCDS und man muss ab einem Punkt X wieder von vorne Anfangen.

Sat Feb 26 20:19:28 CET 2022    |    spitfire2003

Also ich hab die Datei von One Note von DJdüse und hab es jetzt 3 mal versucht und es stürzt jedes Mal kurz vorm Ende ab. Also es fehlen die letzen 3-4 Farben. Ich hab es sogar auf der langsamsten Geschwindigkeit laufen lassen und trotzdem bricht er immer wieder ab.

Sat Feb 26 21:00:02 CET 2022    |    hadez16

Dann korrigier das Skript wenn ein Fehler drin ist ;)

Sat Feb 26 22:49:47 CET 2022    |    WildeSau87

Ich habe heute ein wenig getestet und die eine oder andere Frage.

 

1. im Anhang ist ein Bild. Ich habe die Codierung so angewandt wie sie auch als Beispiel zu finden war.

leider bekomme ich hier eine Fehler Meldung? Was mache ich falsch?

 

2. Ist es möglich auch Kanalwerte zu ändern? In der PDF steht was von nicht möglich.


Sun Feb 27 00:38:46 CET 2022    |    spitfire2003

@hadez16 das werde ich versuchen sobald ich ne ruhige Minute habe und mir das ganze mal anschauen. ;)

Sun Feb 27 00:43:33 CET 2022    |    spitfire2003

@wildeSau87 Hast du auch ein Bild wo man die Endungen einsehen kann ? Damit man sieht es was er machen soll ? So kann man nur raten..

Sun Feb 27 08:52:18 CET 2022    |    hadez16

@WildeSau87

ich müsste das vollständige Skript sehen. Übrigens musst du den Titel des Anpassungskanals nicht unbedingt ausschreiben, es reicht aus wenn soviel angegeben ist, dass VCDS nur einen Kanal zum Suchbegriff findet.

 

AnpassungsKANÄLE, also wo man noch Nummern angeben muss, werden nicht unterstützt.

Sun Feb 27 09:33:14 CET 2022    |    WildeSau87

Hier mal das Script

 

StartVCDS() ;Pflichtbefehl zu Beginn. Starte VCDS

OpenUnit("6D") ;Öffne Steuergerät Adresse 6D

LoginToUnit("12345") ;Zugriffsberechtigung bei geöffnetem Steuergerät eingeben

ChangeAdpChannel("Ansteuerung durch Schalter für Heckklappenfernentriegelung-Tastfunktion beim Schließen", "nicht aktiv") Ändere Anpassungskanal mit Zeichenfolge, ändere in angegebenen Wert

ChangeAdpChannel("Ansteuerung durch Taster für Heckklappenöffnung Funkschlüssel-Tastfunktion beim Schließen", "nicht aktiv") Ändere Anpassungskanal mit Zeichenfolge, ändere in angegebenen Wert

ChangeAdpChannel("Ansteuerung durch Schalter für Heckklappenfernentriegelung-Tippfunktion beim Schließen", "aktiv") Ändere Anpassungskanal mit Zeichenfolge, ändere in angegebenen Wert

ChangeAdpChannel("Ansteuerung durch Taster für Heckklappenöffnung Funkschlüssel-Tippfunktion beim Schließen", "aktiv") Ändere Anpassungskanal mit Zeichenfolge, ändere in angegebenen Wert

CloseUnit() ;Schließe aktuell geöffnetes Steuergerät

 

 

Ich wüsste nicht wie ich den Text kürzen könnte. Kann man die Nr. die davor steht verwenden? Ist die dann immer bei allen gleichen Modellen gleich?

Sun Feb 27 10:03:16 CET 2022    |    hadez16

Die Nummer ist eindeutig, die reicht schon!

 

Was ist denn dieser Text da hinter dem Befehl: "Ändere Anpassungskanal mit Zeichenfolge..."

 

Das sieht falsch aus, jedenfalls sehe ich kein Kommentar-Semikolon

Sun Feb 27 13:05:47 CET 2022    |    WildeSau87

Das was dahinter steht ist lediglich der Originale Text der beim einfügen des Befehls kommt. (Die Erklärung)

Hab das jetzt mal entfernt.

 

so siehts im Original aus. Übersichtliche als hier. Ich ersetze den Text noch durch die Kennung am Anfang und dann wäre es sehr kompakt.

 

Unabhängig davon wirft ja er ein Fehler.


Sun Feb 27 13:08:09 CET 2022    |    hadez16

Warum er da Fehler wirft weiß ich nicht...bzw verstehe ich nicht.

Versuchs mal mit den IDs...

Tue Mar 01 09:27:12 CET 2022    |    WildeSau87

Ich werde es mal mit IDs machen und berichten. Noch ne frage: einige Codierungen sind ja nur für VFL und andere nur für FL. Kann man dennoch eine Codierung daraus machen und dem Script irgendwie sagen, hey wenn so dann so?

 

Ich hatte gesehen das es mit der Teilenummer geht aber ginge das auch anderweitig?

Tue Mar 01 09:37:16 CET 2022    |    hadez16

Nein, eine Wenn-Dann-Verzweigung geht nur auf Basis von Teilenummern. Wobei das doch ausreichen sollte um zwischen VFL und FL zu unterscheiden?

Tue Mar 01 20:09:08 CET 2022    |    WildeSau87

VFL und FL müssten ja dann klar unterschiedliche Teilenummern haben sofern das der Fall ist.

 

Wie würde das Script dann aufgebaut sein?

 

VFL wenn Teile Nr. nicht vorhanden dann weiter mit ???

 

oder zuerst mit FL startet und dann VFL.

 

Mal angekommen es startet mit FL und das Script erkennt die richtige Teile Nr.

überspringt der dann das zweite Script mit VFL oder versucht er diesen dennoch und merkt dann das es nicht geht?

Wed Mar 02 06:54:40 CET 2022    |    hadez16

Such doch mal nach der berühmten OneNote Codierübersicht. Dort sind Beispiel-Skripte drin, die eine solche Unterscheidung bei ich glaube der Verkehrszeichenerkennung deutlich machen.

In der Doku ist der Test-Befehl auf die Teilenummer eigentlich gut genug beschrieben.

Fri Mar 04 09:33:27 CET 2022    |    WildeSau87

Das mit der Heckklappe hat nun geklappt. Ich hab die IDs genommen und diese auf ein minimum gekürzt. Es sind ja vier Codierungen in den Channels. Ich habe das Script 2-3 gestartet und ab der dritten Codierungen stürzt das Script ab.

 

Fehlermeldung: Script zu lang inaktiv. Vorgang wird abgebrochen.

 

Ich hab das Script nun 1x unterteilt, indem ich nach der zweiten Codierungen das STG verlasse und neu reingehe.

Mit diesem Umweg klappt es aber muss das sein?

Fri Mar 04 13:18:41 CET 2022    |    hadez16

Der Fehler bedeutet, dass VCDS zu lange nicht reagiert hat.

Hast du die Geschwindigkeit des Skripts mal verringert?

Sat Mar 05 18:28:28 CET 2022    |    WildeSau87

ja hab es um 1-2 stufen verringert aber kein unterschied. ich teste es mal in der langsamten stufe.

Wed Jun 15 17:56:25 CEST 2022    |    chicodaking

Mahlzeit. Ich habe leider auch dieses Problem des 30 Farben Scriptes. Kurz vor Ende bricht er ab und zeigt mir dann folgendes. Bild siehe Anhang. Hat da eventuell jemand eine Lösung dazu ?

Deine Antwort auf "Codierungen automatisieren mit VCDScripter"