MLPI Motion Logic Programming Interface Interface for High-Level language programming of IndraMotion XLC/MLC DC-IA/EAM January 2014 1
MLPI (Motion Logic Programming Interface) Contents Introduction Features Examples 2
MLPI (Motion Logic Programming Interface) User Programming AWP MLPI-RT with 13V06 C/C++ IL FBD ST SFC LD <Ethernet> Visual Basic Java VBA C# Objective-C C/C++ G AWP MLPI-NRT with 13V02 3
MLPI (Motion Logic Programming Interface) - Toolbox User program MLPI Client toolboxes MLPI Server (Firmware) 4
MLPI (Motion Logic Programming Interface) Realtime IDE Wind River Workbench 3.3 MLPI applications in C/C++ for VxWorks Realtime Platform (L25, L45, L65) The MLPI Software Development Kit is fully integrated in Wind River Workbench 3.3 for VxWorks Debugging from the development environment Convenient diagnostic functions via IndraWorks parallelly with the development of Wind River Workbench UserApp runs on the Controller-target (Lxx) UserApp.out 5
MLPI (Motion Logic Programming Interface) Nonrealtime-IDE Visual Studio 2005-2012 MLPI applications in C#, C++, for Windows Platform (PC, Vxx) The MLPI Software Development Kit is fully integrated in Microsoft Visual Studio Debugging from the development environment of Microsoft Visual Studio Convenient diagnostic functions via IndraWorks parallelly with the development of Microsoft Visual Studio UserApp runs on PC, communication with Ethernet UserApp.exe 6
MLPI (Motion Logic Programming Interface) Nonrealtime-IDE Eclipse MLPI applications in Java for Windows Platform and Android Platform (PC, Vxx) The MLPI Software Development Kit is fully integrated in Eclipse Debugging from the development environment of Eclipse Convenient diagnostic functions via IndraWorks parallelly with the development of Microsoft Visual Studio UserApp runs on PC/Smart Device, communication with Ethernet UserApp.apk 7
MLPI (Motion Logic Programming Interface) Nonrealtime-IDE Xcode MLPI applications in Objective-C for ios Platform (iphone, ipad) and Mac OS Platform (MacBook, ) The MLPI Software Development Kit is fully integrated in Xcode Debugging from the development environment of Xcode Convenient diagnostic functions via IndraWorks parallelly with the development of Apple Xcode UserApp runs on Mac/Smart Device, communication with Ethernet UserApp.ipa 8
MLPI (Motion Logic Programming Interface) - Integration Homogene integration into the current system The MLPI is an interface that provides access to the functions of IndraMotion XLC/MLC with a high level language Simultaneous work with IndraWorks is possible Fieldbus configuration Diagnosis PLC Programming MLPI based on same system principle Same diagnosis and diagnostic numbers Identical state machines (PLCOpen, SERCOS, etc ) Identical funcionality Common operation with PLC application is possible Resourses (fieldbus, motion, peripherals) can be shared in general 9
MLPI (Motion Logic Programming Interface) Contents Introduction Features Examples 10
MLPI (Motion Logic Programming Interface) - Libraries Structure Overview 1/2 Function library mlpiapilib MLPI connection, solution Function library mlpisystemlib Read systme information (temperature, load, diagnostic data, firmware versions, electrical nameplate, ) Function library mlpiparameterlib Parameter read, write Parameter list read, write Parameter command execute Function library mlpitasklib Task priority read / write Function library mlpiwatchdoglib Watchdog Init, Start, Stop, Reset, Status to monitor the user application Function library mlpitracelib Debug-Traces outputs during program development 11 Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
MLPI (Motion Logic Programming Interface) - Libraries Structure Overview 2/2 Function library mlpilogiclib PLC Start, Stop, Reset, Status read / write PLC program upload Access to I/O area Symbol variable read / write / browse Function library mlpimotionlib General functions (Power, Stop, Home) Single axis operation (Velocity, Absolute, Additive, Relative) Cyclic commands (Velocity, Position) Synchronous operation mode (GearIn, GearInPos, CAM, FlexProfile) Function library mlpiiolib Acyclic read / write by direct drive access Function library mlpicontainerlib Cyclic read / write on fast container buffer 12
MLPI (Motion Logic Programming Interface) Documentation Function reference for every MLPI- Function available (English) Create from source code during the build process and therefore always up-to-date Available as HTML and Compiled Help Data (.chm) Include Getting Start and sample applications Integration in the Wind River Workbench Help system 13
MLPI (Motion Logic Programming Interface) MLPI on L25/L45/L65 User-Application runs equally with XLC/MLC firmware on the target device Project type Downloadable Kernel Object Any User-Apps with as many Tasks as possible Full real-time capability, thanks to Wind River VxWorks 6.3 Including SERCOS synchronous Task Cycle time up to 0.5 ms UserApp.exe Simultaneous operation with PLC application possible MLPI-Tasks are displayed in IndraWorks Taskviewer 14
MLPI (Motion Logic Programming Interface) MLPI is distributed transparently MLPI will automatically tunnelled over IP if needed UserApp.exe can run on PC All funtions can be performed without change to remote control No Ethernet real-time capability UserApp.exe Ethernet Remote access for L25, L45, L65 Same MLPI-libraries for different platforms (L25, L45, L65, Vxx) Same MLPI-libraries for different types (XLC, XLC without SIII, MLC) Only a UserApp.exe for all variants 15
MLPI (Motion Logic Programming Interface) MLPI is available for Multi-Server/Client Simultaneous connections to different controllers possible More user applications can connect simultaneously to a controller UserApp.exe UserApp.exe UserApp.exe UserApp.exe 16 Reproduktion, Bearbeitung, Weitergabe sowie für den Fall von Schutzrechtsanmeldungen.
MLPI (Motion Logic Programming Interface) MLPI is Multi-Platform The MLPI libraries are currently available for MS Windows XP/Vista/7 Apple ios/mac OS Google Android Wind River VxWorks UserApp.apk UserApp.exe UserApp.ipa UserApp.exe Other possible platforms Linux Windows Mobile 17
MLPI (Motion Logic Programming Interface) MLPI is Multi-Language Access to the MLPI libraries with the following programming languages C/C++ C# (.NET) Visual Basic VBA (Office) LabView G Objective-C Java UserApp.exe All programming languages that support Microsoft COM UserApp.exe UserApp.exe Two varients are available Unmanaged C/C++/Obj-C - Statistic (.lib) - Dynamic (.dll) Managed (C++, C#, VB, VBA) - COM/ActiveX (.dll) 18
MLPI (Motion Logic Programming Interface) Example C Example C MLPI function libraries integrate Connect to control Read control status Read S-Parameter of axis 1 position Disconnect 19
MLPI (Motion Logic Programming Interface) Example C# Example C# - Object-oriented Control instance build-up Read PLC variable Read control status Axes configuration list Disconnect 20
In Development PLC access to C/C++ user functions Interaction between PLC and MLPI domain Calling C/C++ in the context of PLC Customized real-time extensions (First Level Customer) Free definition of the interface/functions and components including free naming Possibility to include native C / C + + libraries and plugins 21
MLPI (Motion Logic Programming Interface) - Preparation Software Development Kit (SDK) Complete download of SDK for MLPI available All toolboxes in one package Free connection with Bosch Rexroth products Independent to IW-Suite and XLC/MLC-Firmware - Quick response to customer - Minor releases backward compatible One SDK for all Targets Detailed help Including open sourse examples All information here: http://boschrexroth.com/network 22
MLPI (Motion Logic Programming Interface) Contents Introduction Features Examples 23 Sonic Cheng 27.08.2012 DCC/EAM1/SK Bosch Rexroth AG 2012. Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung,
In Development Realtime Machine control in high-level language Programming with Windriver WorkBench OEM Control is functionally extensible for user programming KnowHow-protection (e.g. control algorithms) possible by user Further axes and I/O can be controlled via PLC Existing C/C++ code can be reused Cyclical position setpoint from C/C++ program 24
MLPI (Motion Logic Programming Interface) Example C++ Diagnose - MlcTray Utility to display the current state of the control Standard visualization on Vxx devices Also used on PC (Ethernet) Neither project nor IndraWorks required (only.exe) Multiple instances simultaneously possible 25
MLPI (Motion Logic Programming Interface) Example C# Engineering Moving axes Moving axes without a PLC program Actual axis configuration read from control Easy programming with C# 26
MLPI (Motion Logic Programming Interface) Example Excel Engineering Excel sheet for analysis Wide range of applications Oscilloscope for data acquisition Read parameters and PLC variables Access to fieldbus and I/O data 27
MLPI (Motion Logic Programming Interface) Example Test Automatic test of PLC projects Test scripts (Java, C / C + +, C #) in external application of MLPI Write and read PLC variables/status Regression tests for PLC project Diverse possibilities to influence from the outside" Increase development efficiency Test conditions generate Result check out 28
MLPI (Motion Logic Programming Interface) Example LabVIEW LabVIEW Model-based development for industrial measurement and control applications Complete function block libraries for MLPI COM interface can be integrated as ActiveX Directly from the LabVIEW model: Axes control Data acquisition Data exchange with PLC 29
MLPI (Motion Logic Programming Interface) - Smart Devices Android, ios MLPI can be integrated natively into Android NDK and ios MLPI allows development of Native-Apps Access to all MLPI functions: Diagnosis SERCOS parameter read PLC variables I/O data Execution of axis movements 30
MLPI (Motion Logic Programming Interface) Practice & Examples Application Scenarios Machine Control External modules for integrating C code to PLC tasks Synchronous task for fast process with a certain response time, e.g. Quick setpoints Control algorithms Migrate existing C sources from proprietary controllers Generate code from Matlab Simulink models Diagnosis & Visualization Continuous tasks for ongoing operations Display Edit Diagnosis Engineering & Tools Asynchronous tasks for transaction with non-specific response time Parameterization Data backup Data access Positioning 31
MLPI (Motion Logic Programming Interface) - Summary Summary Open Interface MLPI is open and versatile No conflict with existing engineering project process Same interface for Real-time and Non-real-time High scalability. One interface for all functions and platforms Client/Server architecture for the operation in Distributed System Flexible Application and Tool development High usability of created tools Modular Tool development Extensive Development environment Visual Studio und Workbench bring a lot of functionalities innately (Version control, Model, Documentation, Team-Server ) Visual Studio and Workbench(Eclipse) is established in IT-sector Extended by Third-Party Tools 32