Skip to content

Commit 4cc2fb0

Browse files
committed
Update README
1 parent 040b3fb commit 4cc2fb0

File tree

2 files changed

+28
-21
lines changed

2 files changed

+28
-21
lines changed

IndradriveAPI.vcxproj.filters

+3
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,8 @@
6666
<None Include="mainpage.dox">
6767
<Filter>Header Files</Filter>
6868
</None>
69+
<None Include="README.md">
70+
<Filter>Resource Files</Filter>
71+
</None>
6972
</ItemGroup>
7073
</Project>

README.md

+25-21
Original file line numberDiff line numberDiff 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*
33

4-
## Introduction
4+
# Introduction
55

66
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.
77

8-
### Drive modes
8+
## Drive modes
99
The API is designed to support two dedicated drive modes:
1010
* Speed Control
1111
* Sequencer
1212

13-
#### Speed Control
13+
### Speed Control
1414
The principle of the Speed Control is depicted below:
1515

1616
![Speed Control Principle](https://github.com/Hokyo/BoschRexroth-Indradrive-API/blob/develop/doc/compile/Indradrive-Drivemodes-SpeedControl.png?raw=true)
@@ -21,9 +21,9 @@ Based on the requested speed and acceleration, the motor connected to the Indrad
2121

2222
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:
2323

24-
![t=t_{i+1}-t_i=\frac{v_{target}-v_{current}}{a}](http://www.sciweavers.org/tex2img.php?eq=t%3Dt_%7Bi%2B1%7D-t_i%3D%5Cfrac%7Bv_%7Btarget%7D-v_%7Bcurrent%7D%7D%7Ba%7D&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0)
24+
![t=t_{i+1}-t_i=\frac{v_{target}-v_{current}}{a}](https://latex.codecogs.com/gif.download?t%3Dt_%7Bi+1%7D-t_i%3D%5Cfrac%7Bv_%7B%5Ctext%7Btarget%7D%7D-v_%7B%5Ctext%7Bcurrent%7D%7D%7D%7Ba%7D)
2525

26-
whereas ![a](http://www.sciweavers.org/tex2img.php?eq=a&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0) is the acceleration and ![v_{target}-v_{current}](http://www.sciweavers.org/tex2img.php?eq=v_%7Btarget%7D-v_%7Bcurrent%7D&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0) the difference between current and targeted speed.
26+
whereas ![a](https://latex.codecogs.com/gif.download?%5Cinline%20a) is the acceleration and ![v_{target}-v_{current}](https://latex.codecogs.com/gif.download?%5Cinline%20v_%7B%5Ctext%7Btarget%7D%7D-v_%7B%5Ctext%7Bcurrent%7D%7D) the difference between current and targeted speed.
2727

2828
##### Remarks
2929
> 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:
4141
> 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.
4242
4343

44-
#### Sequencer
44+
### Sequencer
4545
The principle of the Sequencer is depicted below:
4646

4747
![Sequencer Principle](https://github.com/Hokyo/BoschRexroth-Indradrive-API/blob/develop/doc/compile/Indradrive-Drivemodes-Sequencer.png?raw=true)
@@ -55,11 +55,11 @@ In contrast to Speed Control, the Sequencer will be pre-programmed with a specif
5555
##### Attention
5656
> If the PLC routine for the Sequencer is neither properly programmed nor running, the Sequencer drive mode cannot correctly operate.
5757
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, ![r](http://www.sciweavers.org/tex2img.php?eq=r&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0):
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, ![r](https://latex.codecogs.com/gif.download?%5Cinline%20r):
5959

60-
![r_i=\frac{a_i^2}{a_i(t_i-t_{i-1})-v_i}](http://www.sciweavers.org/tex2img.php?eq=r_i%3D%5Cfrac%7Ba_i%5E2%7D%7Ba_i%28t_i-t_%7Bi-1%7D%29-v_i%7D&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0)
60+
![r_i=\frac{a_i^2}{a_i(t_i-t_{i-1})-v_i}](https://latex.codecogs.com/gif.download?r_i%3D%5Cfrac%7Ba_i%5E2%7D%7Ba_i%28t_i-t_%7Bi-1%7D%29-v_i%7D)
6161

62-
whereas ![t_i-t_{i-1}](http://www.sciweavers.org/tex2img.php?eq=t_i-t_%7Bi-1%7D&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0) is the Delay i to get from the previous kinematic point to the next requested kinematic point, ![a_i](http://www.sciweavers.org/tex2img.php?eq=a_i&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0) is the acceleration and ![v_i](http://www.sciweavers.org/tex2img.php?eq=v_i&bc=White&fc=Black&im=jpg&fs=12&ff=modern&edit=0) is the speed.
62+
whereas ![t_i-t_{i-1}](https://latex.codecogs.com/gif.download?%5Cinline%20t_i-t_%7Bi-1%7D) is the Delay i to get from the previous kinematic point to the next requested kinematic point, ![a_i](https://latex.codecogs.com/gif.download?%5Cinline%20a_i) is the acceleration and ![v_i](https://latex.codecogs.com/gif.download?%5Cinline%20v_i) is the speed.
6363

6464
The Sequencer drive mode is properly controlled in the following order:
6565
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:
7272
4. Trigger the operation by using `sequencer_softtrigger()`, or use the hardware trigger (refer to Indradrive's User's Manual)
7373

7474

75-
### API Modules
75+
## API Modules
7676

7777
Module | Description
7878
------ | -----------
@@ -83,13 +83,15 @@ Sequencer | Programming functions for "Sequencer" drive mode
8383
Speed Control | Programming functions for "Speed Control" drive mode
8484

8585

86-
## Compilation
86+
# Building
87+
88+
[![Build status](https://ci.appveyor.com/api/projects/status/vhys1a4jj7ilklwa?svg=true)](https://ci.appveyor.com/project/Hokyo/boschrexroth-indradrive-api)
8789

8890
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.
8991

9092
1. Install Visual Studio 2017, or later (alternatively, install Visual Studio 2015 Express for Desktop)
9193
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):
9395

9496
```xml
9597
<?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,
116118
- "ReleaseLabview": Final DLLs are located in the ../ folder
117119

118120

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.
120124

121125
The API package consists of:
122126
* IndradriveAPI.dll, or IndradriveAPI-LV.dll (for LabVIEW)
123127
* msvcp140.dll
124128
* vcruntime140.dll
129+
* ucrtbased.dll
125130

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.
127132

128133
Examples how the bind in the library are provided for both Python and C#.
129134

130135

131-
## Usage
136+
# Usage
132137

133138
The following tables provides an overview of exported functions that can be accessed through the API DLL:
134139

@@ -156,12 +161,12 @@ Status | `get_diagnostic_num()` | Gets diagnostic number of the current Indradri
156161
Status | `clear_error()` | Clears a latched error in the Indradrive device
157162

158163

159-
## Examples
164+
# Examples
160165

161166
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.
162167

163168

164-
### C# Example
169+
## C# Example
165170

166171
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).
167172

@@ -293,7 +298,7 @@ namespace WpfApplication1
293298
}
294299
```
295300

296-
### Python Example
301+
## Python Example
297302

298303
```python
299304
import sys
@@ -402,4 +407,3 @@ def main():
402407
if __name__ == "__main__":
403408
sys.exit(int(main() or 0))
404409
```
405-

0 commit comments

Comments
 (0)