Meilenstein #12: Mitarbeiterentwicklung und räumliche Expansion
Meilenstein #12 zeigt das stetige Firmenwachstum von RA Consulting sowohl hinsichtlich Mitarbeitendenzahl als auch räumlicher Expansion auf. […]
Meilenstein #12 zeigt das stetige Firmenwachstum von RA Consulting sowohl hinsichtlich Mitarbeitendenzahl als auch räumlicher Expansion auf. […]
In Meilenstein #11 geht es um strategische Partnerschaften und das Engagement von RA Consulting in diversen Netzwerken. […]
Meilenstein #10: Entwicklung von DiagRA® S vom internen Tool zum erfolgreichen Simulationswerkzeug in der Fahrzeugdiagnose unter der Leitung von Dr. Alexander Karmazin […]
Alle diejenigen, die oft Applikationsdatensätze miteinander vergleichen müssen, wissen, dass dies eine mühselige Aufgabe sein kann. Wie schön wäre es, wenn man einfach eine A2L-Beschreibungsdatei und mehrere Datensatzdateien in eine Software laden könnte und diese dann automatisch alle miteinander vergleicht. Wenn dann das Ergebnis noch übersichtlich dargestellt wird und man sich mittels starker Filter leicht auf die für einen selbst interessanten Variablen fokussieren könnte, wäre das ein großer Gewinn.
Das leistet IAV Macara.
Automatischer Datensatzvergleich und einen neu angelegten Datensatz mit manueller Datenübernahme und Schnellfilter.
Und IAV Macara kann noch viel mehr. Der Nutzer kann Daten aus mehreren Datensätzen zu einem neuen Datensatz zusammenführen und hier auch Änderungen vornehmen, also Einzelwerte aber auch Kennlinien und Kennfelder und deren Stützstellen editieren. Natürlich unter Einhaltung der in der A2L beschriebenen Regeln wie harte und weiche Grenzen oder Stützstellenmonotonie. Beim Ändern von Werten helfen jeweils passende Editoren und grafische Anzeigen. Die erstellten Datensätze können dann in den Formaten DCM, CDFX oder PaCo exportiert und auch wieder geladen werden.
Datenansicht im Kennfeld und die Überschreitung harter Grenzen aus der A2L
Für die Nutzung verschiedener Datenquellen stellt die Cloud-Funktionalität den Zugriff auf das Dateisystem und auf Schnittstellen z.B. zu AVL Creta und Etas INCA-Datenbank bereit. Interessiert? Dann kontaktieren Sie uns am besten per email über info@rac.de. RA Consulting ist exklusiver Wiederverkäufer für IAV Macara.
Hinweis: IAV Macara ist zurzeit nur für die Verwendung in der Europäischen Union freigegeben.
Darstellung des Ergebnisses der Plausibilitätsprüfung
Immer mehr Nutzer von DiagRA D und Silver Scan-Tool nutzen die Fernsteuermöglichkeit über die Webservices API. Über die Schnittstelle können externe Anwendungen auf demselben Rechner oder im lokalen Netzwerk nahezu die komplette Funktionalität der beiden Anwendungen nutzen. So lassen sich beispielsweise über ein Python-Skript Flash-Abläufe mit anschließenden Diagnosetests automatisieren oder ganz gezielt spezielle Diagnosetests an HiLs oder Prüfständen in die Experimente integrieren. Natürlich können auch immer wiederkehrende OBD-Tests sehr einfach automatisiert werden.
Technischer Hintergrund: Das Interface der Web Services wird dabei durch ein maschinell verarbeitbares Format gegeben, typischerweise durch WSDL (Web Services Description Language). Dabei wird das Netzwerkprotokoll SOAP (Simple Object Access Protocol) zur Kommunikation verwendet. Hierbei wird XML als Nachrichtenformat und das HTTP-Protokoll zur Kommunikation innerhalb des Netzwerks verwendet. Im Fall von DiagRA D/Silver Scan-Tool findet die Kommunikation zwischen einem Client-Programm und DiagRA D/Silver Scan-Tool statt, wobei DiagRA D/Silver Scan-Tool als Server-Anwendung dient. Die Webservices sind als API für SOAP implementiert, sodass der Nutzer sich weder um die Erstellung der XML-Nachrichten noch die HTTP-Kommunikation kümmern muss.
Das untenstehende Beispiel zeigt, wie mittels Python-Skript über DiagRA D erst die Kommunikation eingeleitet, dann von allen OBD-Steuergeräten alle Werte vom Mode $01, dann gezielt die Steuergeräteversorgungsspannung PID $42 und im Anschluss noch der MIL Status aus dem Mode $03 ausgelesen wird. Zum Abschluss wird die Kommunikation mit dem OBD-System wieder beendet. Als SOAP Client kommt im Beispiel ZEEP zum Einsatz. Eine Dokumentation der Kommandos findet sich direkt in bestehenden Installationen von DiagRA D oder Silver Scan-Tool im Ordner Samples.
Das Webservices-Plugin ist eine optionale Erweiterung einer DiagRA D oder Silver Scan-Tool Lizenz und kann entweder mit einer Lizenz mitbestellt oder nachträglich hinzugefügt werden.
Bei Interesse kontaktieren Sie uns bitte über info@rac.de.
Beispiel Python-Skript:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys import time # PLEASE NOTE: # This script uses the third party package Zeep ("A fast and modern Python SOAP client"). # Find Zeep in the Python package index: https://pypi.org/project/zeep/ # Find its documentation here: https://docs.python-zeep.org/en/master/ # Should you be interested in logging, this might help you: https://docs.python-zeep.org/en/master/plugins.html # Zeep project and sources on GitHub: https://github.com/mvantellingen/python-zeep from zeep import Client, Transport, __version__ as zeep_version # Configure web service connection. # PLEASE NOTE: # If web service is not running on local machine (localhost/127.0.0.1), # you will have to call the login method at first, before being able to use any other method. IP_ADDRESS = "localhost" PORT = 1024 # Set 'INTRANET_ONLY', if an internet connection is not available. # PLEASE NOTE: # This requires the 'soapencoding.xsd' to reside in './resources' subfolder. # It can be downloaded, here: http://schemas.xmlsoap.org/soap/encoding/ INTRANET_ONLY = False # Web service constants RETURN_CODE_SUCCESS = 0 COMMUNICATION_STARTED = 0 COMMUNICATION_STOPPED = 1 COMMUNICATION_ESTABLISHED = 2 class TransportIntranetOnly(Transport): def load(self, url): # See https://stackoverflow.com/a/40280341 if (url == "http://schemas.xmlsoap.org/soap/encoding/"): url = "resources/soapencoding.xsd" # print(url) return super(TransportIntranetOnly, self).load(url) def wait_for_communication(get_status): result = False while True: communication_status = get_status() print(f"Communication status: {communication_status}") if (communication_status == COMMUNICATION_ESTABLISHED): result = True break # Also leave loop if communcation has unexpectedly been stopped. if (communication_status == COMMUNICATION_STOPPED): print("Communication has been stopped.") break time.sleep(1) # Wait before next poll. return result def main(intranetonly): print("Web service OBD sample | RA Consulting GmbH 2021 | www.rac.de") print("") # PLEASE NOTE: # DiagRA D or Silver Scan-Tool needs to be running and web service needs to be activated. wsdl = f"http://{IP_ADDRESS}:{PORT}/wsdl/IDiagRAWebservice" if intranetonly: client = Client(wsdl, transport=TransportIntranetOnly()) else: client = Client(wsdl) webservice = client.service # factory = client.type_factory("ns0") # Needed to handle non-primitive argument and return types. # Perform login. # PLEASE NOTE: # This is required if web service is not running on local machine (localhost/127.0.0.1). # webservice.Login("Example python script") try: # Temporarily increase log level of the web service. Possible values are 1 to 7. # The log file is very helpful if things don't work out as expected. It contains all the called methods, the given arguments, the results and the return codes. # It is written to '%LocalAppData%\RA Consulting\DiagRA D\Log' or '%LocalAppData%\RA Consulting\Silver Scan-Tool\Log', respectively, # and is called 'DiagRA_RemoteControl_*.log'. # You can also set a permanent log level in the Windows registry. Have a look into DiagRA D's/Silver Scan-Tool's help file to find out how this is done. webservice.Configure("LOGLEVEL", "5") # Print versions. webservice_version = webservice.GetVersion("") print("Versions:") print(f"- Python {sys.version}") print(f"- Zeep {zeep_version}") print(f"- Web service {webservice_version}") print() # Set addressword for OBD and obtain its index. # PLEASE NOTE: # If you like to communicate with a distinct ECU/addressword instead, you need to use 'GetECUIndex' # and the web service's non-OBD methods (the ones not containing 'OBD' in their names). # For a list of all available methods, see web service reference PDF that resides in # subfolder '.\Samples\WebServices\Doc' of the installation directory. obd_index = webservice.GetOBDIndex("33", "") print(f"OBD index: {obd_index}") if (obd_index < RETURN_CODE_SUCCESS): print(webservice.GetLastErrorText()) else: # OBD addressword has been successfully set. # Now set protocol. webservice.Configure("PROTOCOL", "ISO 15765-4 (CAN)") # Try to start communication. return_code = webservice.StartOBDCommunication(obd_index) print(f"Start communication: {return_code}") if (return_code == RETURN_CODE_SUCCESS): # Communication could be started. try: # Wait until communication has fully been established, before requesting data. communication_established = wait_for_communication(lambda: webservice.GetOBDCommunicationStatus(obd_index)) if communication_established: # Read current data. result = webservice.GetOBDAllCurrentData(obd_index) print("Current Data: ") for item in result: print(item) # Read module voltage. result = webservice.GetOBDSingleCurrentData(obd_index, "42") print("Control Module Voltage: ") for item in result: print(item) # Get MIL status. result = webservice.GetOBDMILStatus(obd_index) print("Mode 3: ") for item in result: print(item) finally: # Stop communication. return_code = webservice.StopOBDCommunication(obd_index) print(f"Stop communication: {return_code}") finally: # Perform logout. # webservice.Logout() pass if (__name__ == "__main__"): main(INTRANET_ONLY)
Aktuelle Versionen Stand 9. Dezember 2020: 7.45.40
Nur DiagRA D
Das eintägige Training vermittelt DiagRA® D Usern einen umfassenden Einblick in die Funktionalitäten dieser Software, die bei der Entwicklung von Fahrzeugsteuergeräten zur Erfassung von Diagnosedaten eingesetzt wird. In ausführlichen Übungseinheiten haben die Teilnehmer die Möglichkeit, das erlernte Wissen unmmittelbar anzuwenden und zu vertiefen.
Dauer: 8:30 – 16:00 Uhr
Veranstaltungsort: RA Headquarters, Bruchsal (Deutschland)
Sie haben Interesse an einer Individualschulung in Ihrem eigenen Unternehmen? Unser erfahrenes Schulungsteam bietet weltweit individuelle Trainings, die speziell auf Ihre Anforderungen zugeschnitten sind.
Je nachdem, ob Sie praktische Schulungen im Fahrzeug bevorzugen oder theoretische Einheiten wünschen, wir sind darauf spezialisiert, ein Programm nach Ihren Vorstellungen zusammenzustellen.
Für weitere Fragen oder ein maßgeschneidertes Angebot stehen wir Ihnen gerne zur Verfügung.
Diese Schulung vermittelt dem Teilnehmer die nötigen Grundlagen, um die Inhalte von ODX-Beschreibungsdatensätzen deuten zu können. Sie vermittelt Wissen zum Aufbau von PDX Dateien und zu Zusammenhängen, Diagnosediensten, Diagnoseobjekten (Messwerte, Ereignisspeicher, Routinen, Stellgliedtests), Parametern und Umrechnungen innerhalb der ODX-Beschreibung.
Dauer: 8:30 – 16:00Uhr
Ort: Bruchsal
Kosten: Auf Anfrage
Anmeldung und weitere Informationen über info@rac.de
Schulungsinhalte:
Am 05.03.2020 feiert die E-mobil Südwest ihr 10 Jähriges Jubiläum im Neckar Forum Esslingen. Die Feier eröffnete Franz Loogen, Geschäftsführer der e-mobil BW. Zu Beginn sprach der Ministerpräsident Winfried Kretschmann ein Grußwort vor dem Publikum.
10 Jahre E-Mobil Diskussion
In den beiden Podiumsdiskussionen „Mobilität im Wandel – Gemeinsam Chancen ergreifen“ und „Innovation & Klimaschutz – Baden-Württemberg unter Strom“ wurden die bisherigen Aktivitäten der emobil bw, die aktuellen Entwicklungen und die zukünftigen Trends diskutiert.