TESTdrive SDK V02.00
Übersicht Kundenspezifische Erweiterungen möglich Unabhängige Entwicklungen von TESTdrive-Kernsystem (Releases) Eigenständige Erweiterungen durch den Kunden selbst Nutzung von bestehenden MATLAB-Modellen erstellt als Dienstleistung TESTdrive- Erweiterungen
Übersicht Testdrive Berechnungsfunktion Beispiel Gearbox.dlm Beispiel GPXCalc.dlm Externes Programm Beispiel ChnAccess.dlm
Unterschiede Berechnungsfunktion / Objekt Berechnungsfunktion wird über den Formeleditor hinzugefügt. Berechnungsfunktion hat einen oder mehrere Eingabewerte und einen Ausgabewert. Berechnungsobjekt ist eine Klasse mit Methoden. Diese Klasse wird von Testdrive instanziiert. Externes Programm Berechnungsfunktion wird als separater Knoten hinzugefügt. Externem Programm kann eine Konfigurationsdatei hinzugefügt werden. Kann auf z.b. CAN-Schnittstellen zugreifen Interface ist praktisch gleich und ähnlich zur Programmierschnittstelle von IPEmotion
Vorbereitung Material Entwicklungsumgebung Visual Studio C++ (Express) MakeUserDLM.exe Datenlogger (M-LOG, Fleetlog, S-LOG) Verbindungskabel Logger -> Ethernet Empfohlen: 2xUSB-RS232 mit putty.exe um Logausgaben besser erkennen zu können.
DLL erzeugen Die DLL-Schnittstelle ist durch vorgegeben Userfunction GetDLLVersion SetMessageCallback Auslesen und Ausgabe der Versionsnummer der DLL Ausgabe von Logfile-Meldungen aus der DLL heraus Initialize Execute Terminate Einmaliger Aufruf beim Laden der DLL Zyklischer Aufruf mit der Systemrate von TESTdrive Einmaliger Aufruf beim Entladen der DLL Parameter Byte, Word, Integer, LongInt, Float32, Float64, (String)
DLL erzeugen extern C declspec(dllexport) bool Plus_Initialize ( const char psztypes, float UpperLimit, float LowerLimit) extern C declspec(dllexport) bool Plus_Execute ( float * pfresult, float * pfa, float * pfb) extern C declspec(dllexport) bool Plus_Terminate () extern C declspec(dllexport) unsigned char GetDLLVersion () typedef void (*MESSAGE_CBK) (int ilevel, const char sztext) extern C declspec(dllexport) unsigned char SetMessageCallback ( MESSAGE_CBK pmessagecbk)
DLL erzeugen Die DLL-Schnittstelle ist durch vorgegeben Userobject Funktionen aus Userfunction und: Create Dispose Es wird eine Klasse definiert. Dabei lassen sich statische Inhalte in einer Klasse kapseln.
Berechnungsfunktion Projekt mit Entwicklungsumgebung öffnen und kompilieren Dabei entsteht eine DLL Datei. Diese DLL-Datei wird mittels des Kommandozeilenprogramms MakeUserDLM.exe konvertiert.
DLL erzeugen XML-Datei muss händisch geschrieben werden. XML + DLM ablegen in das Programmverzeichnis des PLUGINS! Verzeichnis /Data/DLLImport C:\Program Files (x86)\\ipemotion PlugIn LOG V03.50.03\Data\DllImport Achtung: Die Dateien werden bei einem Update des PlugIns nicht transportiert. Nach einem Neustart von IPEmotion stehen die Funktionen zur Verfügung.
DLL erzeugen TESTdrive = Echtzeitbetriebssystem Es dürfen nur Funktionen aus der Runtime Library benutzt werden Keine Win32 API Funktionen Keine Threads (Multitasking) Die Runtime Library muss statisch dazugebunden werden. Die Nutzung als DLL wird nicht unterstützt Es dürfen keine anderen DLL Abhängigkeiten außer zur Kernel32.dll existieren. Dies kann mit dem Dependency Walker geprüft werden Die DLL muss in eine DLM umgewandelt werden Maximale Anzahl an externen DLLs ist beschränkt (ca. 20) Um statische Librarys (MATLAB) muss ein DLL Wrapper gebaut werden
Berechnungsfunktion Logger anlegen und Berechnung hinzufügen Neue Berechnung erscheint im Formeleditor
Externe Funktionen Logger anlegen und externe Programme hinzufügen Parameter: Erstellte DLM-Datei Runtime-Bibliothek Diese Datei wird in die MDF-Datei abgelegt. Konfigurationsdatei Zusätzliche Parameter Wiederholungszeit Zykluszeit