MLPI Motion Logic Programming Interface Schnittstelle zur Hochsprachenprogrammierung für IndraMotion XLC/MLC DC-IA/EAM Januar 2014 1
MLPI (Motion Logic Programming Interface) Gliederung Einleitung Features Beispiele 2 Sebastian Krauskopf 30.04.2012 DC-IA/EAM1/SK Bosch Rexroth AG 2012. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung,
MLPI (Motion Logic Programming Interface) - Anwenderprogrammierung AWP MLPI-RT mit 13V06 C/C++ AWL FBS ST AS KOP <Ethernet> Visual Basic Java VBA C# Objective-C C/C++ G AWP MLPI-NRT mit 13V02 3
MLPI (Motion Logic Programming Interface) - Toolboxen Anwenderprogramm MLPI Client Bibliotheken MLPI Server (Firmware) 4
MLPI (Motion Logic Programming Interface) Realtime IDE Wind River Workbench 3.3 MLPI Applikationen in C/C++ für VxWorks Realtime Plattformen (L25, L45, L65) Das MLPI Software Development Kit integriert sich vollständig in Wind River Workbench 3.3 for VxWorks Debugging aus der Entwicklungsumgebung Komfortable Diagnosefunktionen über IndraWorks parallel zur Entwicklung mit Wind River Workbench UserApp läuft auf dem Steuerungs-Target (Lxx) UserApp.out 5
MLPI (Motion Logic Programming Interface) Nonrealtime-IDE Visual Studio 2005-2010 MLPI Applikationen in C#, C++, für Windows Plattformen (PC, Vxx) Das MLPI Software Development Kit integriert sich vollständig in Microsoft Visual Studio Debugging aus der Entwicklungsumgebung Microsoft Visual Studio Komfortable Diagnosefunktionen über IndraWorks parallel zur Entwicklung mit Microsoft Visual Studio UserApp läuft auf PC, Kommunikation über Ethernet UserApp.exe 6
MLPI (Motion Logic Programming Interface) Nonrealtime-IDE Eclipse MLPI Applikationen in Java für Windows Plattformen und Android Plattformen (PC, Vxx) Das MLPI Software Development Kit integriert sich vollständig in Eclipse Debugging aus der Entwicklungsumgebung Eclipse Komfortable Diagnosefunktionen über IndraWorks parallel zur Entwicklung mit Microsoft Visual Studio UserApp läuft auf PC/Smart Device, Kommunikation über Ethernet UserApp.apk 7
MLPI (Motion Logic Programming Interface) Nonrealtime-IDE Xcode MLPI Applikationen in Objective-C für ios Platform (iphone, ipad) und Mac OS Plattform (MacBook, ) Das MLPI Software Development Kit integriert sich vollständig in Xcode Debugging aus der Entwicklungsumgebung Xcode Komfortable Diagnosefunktionen über IndraWorks parallel zur Entwicklung mit Apple Xcode UserApp läuft auf Mac/Smart Device, Kommunikation über Ethernet UserApp.ipa 8
MLPI (Motion Logic Programming Interface) - Integration Homogene Integration in vorhandenes System Die MLPI ist eine Schnittstelle, die den Zugriff auf die Funktionen der IndraMotion XLC/MLC aus einer Hochsprache erlaubt Simultanes Arbeiten mit IndraWorks weiterhin möglich Feldbuskonfiguration Diagnose SPS Programmierung MLPI basiert auf gleichem Systemverständnis Gleiche Diagnosen und Diagnosenummern Identische Zustandsmaschinen (PLCOpen, SERCOS, etc ) Identischer Funktionsumfang Gemeinsamer Betrieb mit SPS-Applikation möglich Ressourcen (Feldbus, Motion, Peripherie) können gemeinsam genutzt werden 9
MLPI (Motion Logic Programming Interface) Gliederung Einleitung Features Beispiele 10
MLPI (Motion Logic Programming Interface) - Bibliotheken Übersichtliche Strukturierung 1/2 Funktionsbibliothek mlpiapilib MLPI verbinden, lösen Funktionsbibliothek mlpisystemlib Lesen von Systeminformationen (Temperatur, Last, Diagnosedaten, Firmwareversionen, elektr. Typenschild, ) Funktionsbibliothek mlpiparameterlib Parameter lesen, schreiben Parameterliste lesen, schreiben Parameterkommando ausführen Funktionsbibliothek mlpitasklib Task Priorität lesen / schreiben Funktionsbibliothek mlpiwatchdoglib Watchdog Init, Start, Stop, Reset, Status zur Überwachung der User Applikation Funktionsbibliothek mlpitracelib Ausgabe von Debug-Traces während der Programmentwicklung 11
MLPI (Motion Logic Programming Interface) - Bibliotheken Übersichtliche Strukturierung 2/2 Funktionsbibliothek mlpilogiclib SPS Start, Stop, Reset, Status lesen / schreiben, SPS Programm laden Zugriff auf E/A Bereich Symbolvariablen lesen/schreiben/browsen Funktionsbibliothek mlpimotionlib Allgemeine Funktionen (Power, Stop, Home) Einzelachsbetrieb (Velocity, Absolute, Additive, Relative) Zyklische Kommandierung (Velocity, Position) Synchrone Betriebsart (GearIn, GearInPos, CAM, FlexProfile) Funktionsbibliothek mlpiiolib Azyklisches Lesen / Schreiben per direktem Treiber Zugriff Funktionsbibliothek mlpicontainerlib Zyklisches Lesen / Schreiben über schnelle Container Buffer 12
MLPI (Motion Logic Programming Interface) Dokumentation Funktionsreferenz für jede MLPI-Funktion vorhanden (englisch) Wird aus Quellcode während des Build- Prozesses erstellt und ist damit immer aktuell Verfügbar als HTML und Compiled Help Datei (.chm) Enthält Erste Schritte und Beispielapplikationen Integration in das Wind River Workbench Hilfesystem 13
MLPI (Motion Logic Programming Interface) MLPI auf L25/L45/L65 User-Applikation läuft gleichberechtigt mit XLC/MLC Firmware auf dem Target Gerät Projekttyp Downloadable Kernel Object Beliebig viele User-Apps mit beliebig vielen Tasks Voll echtzeitfähig dank Wind River VxWorks 6.3 Inklusive SERCOS synchrone Task Zykluszeiten bis 0,5 ms UserApp.exe Gleichzeitiger Betrieb mit SPS-Applikation möglich. MLPI-Tasks werden im IndraWorks Taskviewer angezeigt 14
MLPI (Motion Logic Programming Interface) MLPI ist verteilungstransparent MLPI wird bei Bedarf automatisch über IP getunnelt UserApp.exe kann auf PC laufen Alle Funktionen sind ohne Änderung auf entfernte Steuerung möglich Über Ethernet nicht echtzeitfähig UserApp.exe Ethernet Entfernter Zugriff auch für L25, L45, L65 Gleiche MLPI-Bibliotheken für unterschiedliche Plattformen (L25, L45, L65, Vxx) Gleiche MLPI-Bibliotheken für unterschiedliche Ausprägung (XLC, XLC ohne SIII, MLC) Eine UserApp.exe für alle Varianten 15
MLPI (Motion Logic Programming Interface) MLPI ist Multi-Server/Client fähig Gleichzeitige Verbindungen auf unterschiedliche Steuerungen möglich Mehrere User-Applikationen können sich gleichzeitig mit einer Steuerung verbinden UserApp.exe UserApp.exe UserApp.exe UserApp.exe 16
MLPI (Motion Logic Programming Interface) MLPI ist Multi-Plattform Die MLPI Bibliothek sind momentan verfügbar für MS Windows XP/Vista/7 Apple ios/mac OS Google Android Wind River VxWorks UserApp.apk UserApp.exe UserApp.ipa UserApp.exe Weitere Plattformen möglich Linux Windows Mobile 17
MLPI (Motion Logic Programming Interface) MLPI ist Multi-Language Zugriff auf die MLPI Bibliotheken aus folgenden Programmiersprachen C/C++ C# (.NET) Visual Basic VBA (Office) LabView G Objective-C Java UserApp.exe Alle Programmiersprachen, die Microsoft COM unterstützen UserApp.exe UserApp.exe Zwei Varianten verfügbar Unmanaged C/C++/Obj-C - Statisch (.lib) - Dynamisch (.dll) Managed (C++, C#, VB, VBA) - COM/ActiveX (.dll) 18
MLPI (Motion Logic Programming Interface) Beispiel C Beispiel C MLPI Funktionsbibliotheken einbinden Verbinden mit Steuerung Steuerungsstatus lesen Position von Achse 1 über S-Parameter lesen Trennen der Verbindung 19 Sebastian Krauskopf 30.04.2012 DCC/DC-IA/SK Bosch Rexroth AG 2012. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung,
MLPI (Motion Logic Programming Interface) Beispiel C# Beispiel C# - Objektorientiert Steuerungsinstanz erstellen SPS Variable lesen Steuerungsstatus lesen Konfigurierten Achsen auflisten Trennen der Verbindung 20 Sebastian Krauskopf 30.04.2012 DCC/DC-IA/SK Bosch Rexroth AG 2012. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung,
In Entwicklung PLC-Zugriff auf C/C++ Anwenderfunktionen Zusammenspiel der PLC- und MLPI-Domäne Aufruf von C/C++ aus dem Kontext der SPS Kundenspezifische Echtzeiterweiterungen (First Level Customer) Freie Definition der Schnittstelle/Funktionen und Bausteine inkl. freie Namensgebung Möglichkeit zum Einbinden eigener C/C++ Bibliotheken und Plugins 21
MLPI (Motion Logic Programming Interface) - Bereitstellung Software Development Kit (SDK) MLPI als SDK Komplettdownload verfügbar Alle Toolboxen in einem Paket Frei in Verbindung mit Bosch Rexroth Produkten Unabhängig zu IW-Suite-Takt und XLC/MLC-Firmware - Schnelle Reaktion auf Kunden - Minor-Releases abwärtskompatibel Ein SDK für alle Targets Ausführliche Hilfe Inklusive quelloffener Beispiele Alle Informationen hier: http://boschrexroth.com/network 22 31.07.2012 DC-IA/EAM Bosch Rexroth AG 2012. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
MLPI (Motion Logic Programming Interface) Gliederung Einleitung Features Beispiele 23
In Entwicklung Realtime Maschinensteuerung in Hochsprache Programmierung mit Windriver WorkBench OEM Steuerung ist für den Anwender durch eigene Programmierung funktional erweiterbar KnowHow-Schutz (z.b. Regelalgorithmen) durch den Anwender möglich Weitere Achsen und I/O können über SPS bedient werden Vorhandener C/C++ Code kann weiter verwendet werden Zyklische Lagesollwertvorgabe aus C/C++ Programm 24
MLPI (Motion Logic Programming Interface) Beispiel C++ Diagnose - MlcTray Hilfsprogramm zur Anzeige des aktuellen Zustands der Steuerung Standard-Visualisierung auf Vxx Geräten Verwendbar auch auf PC (Ethernet) Benötigt weder Projekt noch IndraWorks (nur.exe) Mehrere Instanzen gleichzeitig möglich 25
MLPI (Motion Logic Programming Interface) Beispiel C# Engineering Verfahren von Achsen Bewegen von Achsen ohne SPS-Programm Aktuelle Achskonfiguration wird aus Steuerung gelesen Einfache Programmierung durch C# 26
MLPI (Motion Logic Programming Interface) Beispiel Excel Engineering Excel zur Auswertung Vielfältige Einsatzmöglichkeiten Oszilloskop für Messdatenerfassung Lesen von Parametern und SPS-Variablen Zugriff auf Feldbusse und E/A-Daten 27
MLPI (Motion Logic Programming Interface) Beispiel Test Automatiktest von SPS Projekten Test-Skripte (Java, C/C++, C#) in externen Anwendung über MLPI Schreiben und Lesen von SPS-Variablen/Zuständen Regressionstests für SPS Projekt Vielfältige Einwirkungsmöglichkeiten von außen Steigerung der Entwicklungseffizienz Testzustände erzeugen Ergebnisse überprüfen 28
MLPI (Motion Logic Programming Interface) Beispiel LabVIEW LabVIEW Modellbasierte Entwicklung für industrielle Mess-, Steuer- und Regelanwendungen Fertige Funktionsblockbibliothek für MLPI Funktionen COM-Schnittstelle kann als ActiveX eingebunden werden Direkt aus dem LabView Modell: Steuerung von Achsen Messdatenerfassung Datenaustausch mit SPS 29
MLPI (Motion Logic Programming Interface) - Smart Devices Android, ios MLPI kann in Android NDK und ios nativ eingebunden werden MLPI erlaubt Entwicklung von Native-Apps Zugriff auf alle MLPI Funktionen: Diagnose SERCOS Parameter lesen SPS Variablen E/A Daten Ausführung von Achsbewegungen 30
MLPI (Motion Logic Programming Interface) Praxis & Beispiele Anwendungs-Szenarien Maschinensteuerung Externe Bausteine zur Einbindung von C-Code in SPS-Tasks Synchrone Task für schnelle Vorgänge mit bestimmter Reaktionszeit, z.b. Schnelle Sollwertvorgaben Regelungsalgorithmen Migration vorhandener C-Quellen von proprietären Controllern Generierter Code aus Matlab Simulink Modellen Diagnose & Visualisierung Kontinuierliche Tasks für fortlaufende Vorgänge Anzeigen Editoren Diagnosen Engineering & Tools Asynchrone Tasks für Vorgänge mit nicht bestimmter Reaktionszeit Parametrierung Datensicherung Dateizugriffe Positionieraufgaben 31
MLPI (Motion Logic Programming Interface) - Zusammenfassung Zusammenfassung Offene Schnittstelle MLPI ist offen und vielfältig einsetzbar Kein Konflikt mit vorhandenen Projektierungsabläufen Gleiche Schnittstelle für Echtzeit und Nicht-Echtzeit Hohe Skalierbarkeit. Eine Schnittstelle über alle Funktionen und Plattformen Client/Server Architektur für den Einsatz in Verteilten Systemen Flexible Anwendungs- und Toolentwicklung Hohe Wiederverwendbarkeit der geschaffenen Tools Modulare Toolentwicklung Umfangreiche Entwicklungsumgebung Visual Studio und Workbench bringen viel Funktionalität von Haus aus mit (Versionskontrolle, Modellierung, Dokumentation, Team-Server ) Visual Studio und Workbench(Eclipse) ist im IT-Bereich etabliert Erweiterbar durch Third-Party Tools 32
MLPI (Motion Logic Programming Interface) - Fazit Softwarebarrieren verringert, Multifunktionalität der Steuerung ermöglicht Flexibilität und neue Gestaltungsspielräume zulassen 33
MLPI (Motion Logic Programming Interface) Vielen Dank für die Aufmerksamkeit! 34