You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-21
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
-
# Indradrive API
2
-
###### A Multi-purpose Dynamic Library for **Bosch Rexroth Indradrive M** (MPB-04 Firmware) based on **SIS protocol**
1
+
# **Bosch Rexroth Indradrive API**
2
+
###### A Multi-purpose Dynamic Library for Bosch Rexroth Indradrive M (MPB-04 Firmware) based on *SIS protocol*
3
3
4
-
##Introduction
4
+
# Introduction
5
5
6
6
The Indradrive API provides an universal programming interface to the Indradrive M devices. A dedicated DLL (IndradriveAPI.dll, or IndradriveAPI-LV.dll for LabVIEW) handles the user inputs and converts them to SIS protocol telegrams. These telegrams are transfered to the Indradrive device via RS232 interface (refer to Indradrive User's Manual for more information). The API uses the reply telegram to extract the required data or identifies potentials errors and provides it back to the user.
7
7
8
-
###Drive modes
8
+
## Drive modes
9
9
The API is designed to support two dedicated drive modes:
10
10
* Speed Control
11
11
* Sequencer
12
12
13
-
####Speed Control
13
+
### Speed Control
14
14
The principle of the Speed Control is depicted below:
15
15
16
16

@@ -21,9 +21,9 @@ Based on the requested speed and acceleration, the motor connected to the Indrad
21
21
22
22
The time between providing the data to the API and reaction of the motor depends on the Operating System (most likely Windows), calculation and creation of the SIS telegram and the baudrate to transfer the telegram. The time to go from the current kinematic point to the requested kinematic point can be determined as the following:
whereas  is the acceleration and  the difference between current and targeted speed.
26
+
whereas  is the acceleration and  the difference between current and targeted speed.
27
27
28
28
##### Remarks
29
29
> The Speed Control drive mode cannot be used for real-time applications, since the jitter caused by OS and telegram transmission is unpredictable. Use the Sequencer drive mode for real-time applications instead.
@@ -41,7 +41,7 @@ The Speed Control drive mode is properly controlled in the following order:
41
41
> Speed Control commands the Indradrive to control the next kinematic point. This kinematic operates continuously until the next kinematic point is given or the emergency brake has been used. There is no automatic or time-limited stop system implemented.
@@ -55,11 +55,11 @@ In contrast to Speed Control, the Sequencer will be pre-programmed with a specif
55
55
##### Attention
56
56
> If the PLC routine for the Sequencer is neither properly programmed nor running, the Sequencer drive mode cannot correctly operate.
57
57
58
-
Planning the kinematic sequence premises some calculations to be done for the jerk, if the delay, speed and acceleration is know for each sequence element. The following formula can be used for calculing the respective jerk, :
58
+
Planning the kinematic sequence premises some calculations to be done for the jerk, if the delay, speed and acceleration is know for each sequence element. The following formula can be used for calculing the respective jerk, :
whereas  is the Delay i to get from the previous kinematic point to the next requested kinematic point,  is the acceleration and  is the speed.
62
+
whereas  is the Delay i to get from the previous kinematic point to the next requested kinematic point,  is the acceleration and  is the speed.
63
63
64
64
The Sequencer drive mode is properly controlled in the following order:
65
65
1. Check the current drive mode by using `get_drivemode()`
@@ -72,7 +72,7 @@ The Sequencer drive mode is properly controlled in the following order:
72
72
4. Trigger the operation by using `sequencer_softtrigger()`, or use the hardware trigger (refer to Indradrive's User's Manual)
The API is built for native programming languages such as Python or C#. However, a dedicated LabView variant can be also built, which utilizes specific memory allocation methods needed when the library is used in LabView.
89
91
90
92
1. Install Visual Studio 2017, or later (alternatively, install Visual Studio 2015 Express for Desktop)
91
93
2. Fetch the source code repository
92
-
3.If you have LabVIEW installed on your computer, paste the following code into your `UserDirectories.props` file (and adjust the cintools folder to your LabVIEW version):
94
+
3. If you have LabVIEW installed on your computer, paste the following code into your `UserDirectories.props` file (and adjust the cintools folder to your LabVIEW version):
93
95
94
96
```xml
95
97
<?xml version="1.0" encoding="utf-8"?>
@@ -116,19 +118,22 @@ The API is built for native programming languages such as Python or C#. However,
116
118
- "ReleaseLabview": Final DLLs are located in the ../ folder
117
119
118
120
119
-
## Installation
121
+
# Installation
122
+
123
+
First, download the [most recent release files](https://github.com/Hokyo/BoschRexroth-Indradrive-API/releases/latest), or building them by yourself as described above.
120
124
121
125
The API package consists of:
122
126
* IndradriveAPI.dll, or IndradriveAPI-LV.dll (for LabVIEW)
123
127
* msvcp140.dll
124
128
* vcruntime140.dll
129
+
* ucrtbased.dll
125
130
126
-
As soon as IndradriveAPI.dll or IndradriveAPI-LV.dll has been compiled, copy all DLLs stated above into your binary folder, where your target application will be started from.
131
+
Copy all DLLs stated above into your binary folder, where your target application will be started from.
127
132
128
133
Examples how the bind in the library are provided for both Python and C#.
129
134
130
135
131
-
##Usage
136
+
# Usage
132
137
133
138
The following tables provides an overview of exported functions that can be accessed through the API DLL:
134
139
@@ -156,12 +161,12 @@ Status | `get_diagnostic_num()` | Gets diagnostic number of the current Indradri
156
161
Status | `clear_error()` | Clears a latched error in the Indradrive device
157
162
158
163
159
-
##Examples
164
+
# Examples
160
165
161
166
This sections gives examples for C# and Python how to use to library. However, through the nature of DLL, the API can be also called by other programming languages and development environments, such as LabVIEW, Matlab, etc.
162
167
163
168
164
-
###C# Example
169
+
## C# Example
165
170
166
171
The following code defines a C# class than can be copied in into a seperated .cs file. The Indradrive is accessible within the WpfApplication1 namespace (or whatever namespace you are writing).
0 commit comments