Open Core Interface - MLPI
MLPI-MotionLogicProgrammingInterface(mlpi4COM)  1.26.2
IMotion.idl
Go to the documentation of this file.
1 // -----------------------------------------------------------------------
2 // MLPI - <IMotion.idl>
3 // -----------------------------------------------------------------------
4 // Copyright (c) 2012 Bosch Rexroth. All rights reserved.
5 // Redistribution and use in source and binary forms of this MLPI software
6 // (SW) provided to you, with or without modification, are permitted
7 // without prior approval provided that the following conditions are met:
8 //
9 // 1. Redistributions of source code of SW must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 //
12 // 2. Redistributions in binary form of SW must reproduce the above copyright
13 // notice, this list of conditions and the following disclaimer in the
14 // documentation and/or other materials provided with the distribution.
15 //
16 // 3. User recognizes and acknowledges that it acquires no right,
17 // title or interest in or to any of the names or trademarks used in
18 // connection with the SW ("names") by virtue of this License and waives
19 // any right to or interest in the names. User recognizes and acknowledges
20 // that names of companies or names or products of companies displayed
21 // in the documentation of SW to indicate the interoperability of products
22 // with the SW are the names of their respective owners. The use of such
23 // names in the documentation of SW does not imply any sponsorship,
24 // approval, or endorsement by such companies of this product.
25 //
26 // 4. Modified code versions, i.e. any addition to or deletion from
27 // the substance or structure of the original code of the SW running
28 // the MLPI must be plainly marked as such and must not be misrepresented
29 // as being original SW.
30 //
31 // 5. The SW may only be used in connection with a Bosch Rexroth product.
32 //
33 // THIS INFORMATION IS PROVIDED BY BOSCH REXROTH CORPORATION "AS IS"
34 // AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING
35 // (BUT NOTLIMITED TO) ANY IMPLIED WARRANTIES OF MERCHANTABILITY,
36 // FITNESS FOR ANY PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WHILE THE
37 // INFORMATION PROVIDED IS BELIEVED TO BE ACCURATE, IT MAY INCLUDE
38 // ERRORS OR INACCURACIES.
39 // SUBJECT TO COMPULSORY STATUTORY PROVISIONS OF THE GERMAN LAW AS
40 // THE APPLICABLE LAW FOR THIS LICENSE BOSCH REXROTH CORPORATION WILL
41 // NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF
42 // THE SOFTWARE DISTRIBUTED HEREUNDER, INCLUDING BUT NOT LIMITED TO
43 // DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, AND CONSEQUENTIAL DAMAGES.
44 // -----------------------------------------------------------------------
45 //
55 //
56 // -----------------------------------------------------------------------
57 
58 
59 
64 [
65  object,
66  uuid(4F50AEC2-401A-4BD0-AEA5-D374A7144588),
67  dual,
68  nonextensible,
69  helpstring("IMotion Interface"),
70  pointer_default(unique)
71 ]
72 interface IMotion : IDispatch{
73 
76  [
77  uuid(6EBC6476-47D8-4c14-A9BA-0997ABE1D192)
78  ]
79  typedef struct AxisRef
80  {
81  SHORT controlNo;
82  SHORT axisNo;
83  }AxisRef;
84 
85 
88  typedef [v1_enum] enum AxisType
89  {
95  }AxisType;
96 
97 
100  typedef [v1_enum] enum SyncDirection
101  {
105  }SyncDirection;
106 
107 
110  typedef [v1_enum] enum SyncType
111  {
116  }SyncType;
117 
118 
121  typedef [v1_enum] enum StartMode
122  {
127  }StartMode;
128 
129 
132  typedef [v1_enum] enum ProfileExecutionMode
133  {
137 
138 
141  typedef [v1_enum] enum ProfileStartPoint
142  {
149 
156  typedef [v1_enum] enum AxisMode
157  {
161 
165 
169 
173  }AxisMode;
174 
175 
178  typedef [v1_enum] enum CamTableId
179  {
180  CAM_TABLE_1 = 1,
181  CAM_TABLE_2 = 2,
182  CAM_TABLE_3 = 3,
183  CAM_TABLE_4 = 4,
184  CAM_TABLE_5 = 5,
185  CAM_TABLE_6 = 6,
186  CAM_TABLE_7 = 7,
187  CAM_TABLE_8 = 8,
188  CAM_TABLE_9 = 9,
189  CAM_TABLE_10 = 10,
190  CAM_TABLE_11 = 11,
191  CAM_TABLE_12 = 12,
192  CAM_TABLE_13 = 13,
193  CAM_TABLE_14 = 14,
194  CAM_TABLE_15 = 15,
195  CAM_TABLE_16 = 16,
196  CAM_TABLE_17 = 17,
197  CAM_TABLE_18 = 18,
198  CAM_TABLE_19 = 19,
199  CAM_TABLE_20 = 20,
200  CAM_TABLE_21 = 21,
201  CAM_TABLE_22 = 22,
202  CAM_TABLE_23 = 23,
203  CAM_TABLE_24 = 24,
204  CAM_TABLE_25 = 25,
205  CAM_TABLE_26 = 26,
206  CAM_TABLE_27 = 27,
207  CAM_TABLE_28 = 28,
208  CAM_TABLE_29 = 29,
209  CAM_TABLE_30 = 30,
210  CAM_TABLE_31 = 31,
211  CAM_TABLE_32 = 32,
212  CAM_TABLE_33 = 33,
213  CAM_TABLE_34 = 34,
214  CAM_TABLE_35 = 35,
215  CAM_TABLE_36 = 36,
216  CAM_TABLE_37 = 37,
217  CAM_TABLE_38 = 38,
218  CAM_TABLE_39 = 39,
219  CAM_TABLE_40 = 40,
220  CAM_TABLE_41 = 41,
221  CAM_TABLE_42 = 42,
222  CAM_TABLE_43 = 43,
223  CAM_TABLE_44 = 44,
224  CAM_TABLE_45 = 45,
225  CAM_TABLE_46 = 46,
226  CAM_TABLE_47 = 47,
227  CAM_TABLE_48 = 48,
228  CAM_TABLE_49 = 49,
229  CAM_TABLE_50 = 50,
230  CAM_TABLE_51 = 51,
231  CAM_TABLE_52 = 52,
232  CAM_TABLE_53 = 53,
233  CAM_TABLE_54 = 54,
234  CAM_TABLE_55 = 55,
235  CAM_TABLE_56 = 56,
236  CAM_TABLE_57 = 57,
237  CAM_TABLE_58 = 58,
238  CAM_TABLE_59 = 59,
239  CAM_TABLE_60 = 60,
240  CAM_TABLE_61 = 61,
241  CAM_TABLE_62 = 62,
242  CAM_TABLE_63 = 63,
243  CAM_TABLE_64 = 64,
244  CAM_TABLE_65 = 65,
245  CAM_TABLE_66 = 66,
246  CAM_TABLE_67 = 67,
247  CAM_TABLE_68 = 68,
248  CAM_TABLE_69 = 69,
249  CAM_TABLE_70 = 70,
250  CAM_TABLE_71 = 71,
251  CAM_TABLE_72 = 72,
252  CAM_TABLE_73 = 73,
253  CAM_TABLE_74 = 74,
254  CAM_TABLE_75 = 75,
255  CAM_TABLE_76 = 76,
256  CAM_TABLE_77 = 77,
257  CAM_TABLE_78 = 78,
258  CAM_TABLE_79 = 79,
259  CAM_TABLE_80 = 80,
260  CAM_TABLE_81 = 81,
261  CAM_TABLE_82 = 82,
262  CAM_TABLE_83 = 83,
263  CAM_TABLE_84 = 84,
264  CAM_TABLE_85 = 85,
265  CAM_TABLE_86 = 86,
266  CAM_TABLE_87 = 87,
267  CAM_TABLE_88 = 88,
268  CAM_TABLE_89 = 89,
269  CAM_TABLE_90 = 90,
270  CAM_TABLE_91 = 91,
271  CAM_TABLE_92 = 92,
272  CAM_TABLE_93 = 93,
273  CAM_TABLE_94 = 94,
274  CAM_TABLE_95 = 95,
275  CAM_TABLE_96 = 96,
276  CAM_TABLE_97 = 97,
277  CAM_TABLE_98 = 98,
278  CAM_TABLE_99 = 99,
279  CAM_TABLE_100 = 100
280  }CamTableId;
281 
290  typedef [v1_enum] enum AxisCondition
291  {
295 
299 
302 
304 
308  }AxisCondition;
309 
312  typedef [v1_enum] enum StateExtended
313  {
323  }StateExtended;
324 
325 #if defined(WIN32) || defined(WIN64)
326  [
337  uuid(7012438C-0725-4b3a-9089-BE0EBEAC7D2A)
338  ]
340  {
341  struct AxisRef axis;
344  BSTR name;
345  };
346 
364  [
365  uuid(C06715E6-178A-4a79-A723-9D754E37BF64)
366  ]
367  struct AxisValues
368  {
369  DOUBLE actualPosition; //<! Actual position of the axis. See @ref mlpiMotionGetActualPosition or A-0-0100.
370  DOUBLE actualVelocity; //<! Actual velocity of the axis. See @ref mlpiMotionGetActualVelocity or A-0-0102.
371  DOUBLE actualAcceleration; //<! Actual acceleration of the axis. See @ref mlpiMotionGetActualAcceleration or A-0-0103.
372  DOUBLE actualTorque; //<! Actual torque of the axis. See @ref mlpiMotionGetActualPosition or A-0-0110.
373  LONG state; //<! Axis state of the axis. See @ref mlpiMotionGetActualPosition or A-0-0021.
374  LONG stateExtended; //<! Extended axis state of the axis. See @ref mlpiMotionGetActualPosition or A-0-0022.
375  LONG diagnosisNumber; //<! Current diagnosis number of the axis. See @ref mlpiMotionGetActualPosition or A-0-0023.
376  LONG condition; //<! Condition of the axis. See @ref mlpiMotionGetActualPosition or A-0-0024.
377  };
378 
379  [
380  uuid(FA535268-4D01-4e55-B7A1-C6EC83746459)
381  ]
394  struct AxisUnits
395  {
396  BSTR position; //<! Position unit of the axis. e.g. 'Degree'.
397  BSTR velocity; //<! Velocity unit of the axis. e.g. 'Rpm'.
398  BSTR acceleration; //<! Velocity unit of the axis. e.g. 'rad/sec'.
399  BSTR jerk; //<! Velocity unit of the axis. e.g. 'rad/sec^2'.
400  BSTR torque; //<! Velocity unit of the axis. e.g. 'Nm'.
401  };
402 #endif
403 
404 
420  {
421  VARIANT_BOOL done;
422  VARIANT_BOOL active;
423  VARIANT_BOOL aborted;
424  VARIANT_BOOL error;
425  SHORT errorID;
426  SHORT table;
427  LONG additional1;
428  LONG additional2;
429  };
430 
431 
432 
456  [propget, id(1), helpstring("Property Axes")] HRESULT Axes([out, retval] IAxes** Axes);
457 
458 #if defined(WIN32) || defined(WIN64)
459  [id(2), helpstring("Method GetConfiguredAxes")] HRESULT GetConfiguredAxes([out,retval] SAFEARRAY(struct AxisInformation) *axesInfo);
491 
541  [id(3), helpstring("Method GetAxisValues")] HRESULT GetAxisValues([in]SAFEARRAY(struct AxisRef) axes, [out,retval] SAFEARRAY(struct AxisValues) *axisValues);
542 
555  [id(4), helpstring("Method GetAxisUnits")] HRESULT GetAxisUnits([in]SAFEARRAY(struct AxisRef) axes, [out,retval] SAFEARRAY(struct AxisUnits) *axisUnits);
556 #endif
557 };
558 
559 
560 
561 // -----------------------------------------------------------------------
562 // HISTORY
563 // -----------------------------------------------------------------------
564 // 01-Jan-2012
565 // - first release
566 //
567 
568 
569 
HRESULT GetAxisUnits([in]SAFEARRAY(struct AxisRef) axes, [out, retval] SAFEARRAY(struct AxisUnits)*axisUnits)
This function fills an array of AxisUnits structures with information about the units of the axis...
Real axis, this is the common axis during motion.
Definition: IMotion.idl:91
Axis is in state DiscreteMotion.
Definition: IMotion.idl:318
Axis is in state SynchronizedMotion.
Definition: IMotion.idl:320
Axis will only move in negative direction.
Definition: IMotion.idl:104
This structure defines the information about the configured axes. These values no longer change...
Definition: IMotion.idl:339
Slave axis position ramps to an absolutely synchronous position with the master position.
Definition: IMotion.idl:125
Drive not in Ring; Setpoint calculation not active; axis in parameterization.
Definition: IMotion.idl:303
SHORT errorID
TRUE (-1) when motion command issued an error.
Definition: IMotion.idl:425
AxisType
This enumeration defines the type of axis.
Definition: IMotion.idl:88
Drive in Ring; Setpoint calculation active; axis in parameterization.
Definition: IMotion.idl:166
SHORT axisNo
Logical axis number.
Definition: IMotion.idl:82
Cyclic event.
Definition: IMotion.idl:134
Axis is in state ErrorStop.
Definition: IMotion.idl:314
Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive.
Definition: IMotion.idl:162
Drive in Ring; Setpoint calculation not active.
Definition: IMotion.idl:159
Drive in Ring; Setpoint calculation not active.
Definition: IMotion.idl:293
Axis will only move in positive direction.
Definition: IMotion.idl:113
Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive.
Definition: IMotion.idl:297
Single event.
Definition: IMotion.idl:135
AxisType axisType
Defines the type of axis.
Definition: IMotion.idl:343
VARIANT_BOOL aborted
TRUE (-1) as long as command is active.
Definition: IMotion.idl:423
HRESULT GetConfiguredAxes([out, retval] SAFEARRAY(struct AxisInformation)*axesInfo)
This method returns a struct array with information about the currently configured axes in the device...
Axis is in state Homing.
Definition: IMotion.idl:316
Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in parameteriza...
Definition: IMotion.idl:171
Drive not in Ring; Setpoint calculation not active.
Definition: IMotion.idl:160
Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive; axis in parameterization...
Definition: IMotion.idl:170
Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive; axis in parameterization...
Definition: IMotion.idl:305
Definition of the IAxes interface which is a collection of IAxis objects.
Definition: IAxes.idl:72
Drive in Ring; Setpoint calculation not active; axis in parameterization.
Definition: IMotion.idl:301
Synchronize absolute to slave position and relative to current master position.
Definition: IMotion.idl:145
Drive in Ring; Setpoint calculation active.
Definition: IMotion.idl:292
Virtual axis, no physical drive attached.
Definition: IMotion.idl:90
LONG additional1
Additional description of error.
Definition: IMotion.idl:427
StateExtended
This enumeration defines the extended state of an axis.
Definition: IMotion.idl:312
AxisCondition
This enumeration defines the state of an axis.
Definition: IMotion.idl:290
LONG deviceAddress
Address of the connected device. For example, SERCOS drive address.
Definition: IMotion.idl:342
Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in paramete...
Definition: IMotion.idl:172
Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive.
Definition: IMotion.idl:164
Synchronize absolute to master position and relative to current slave position.
Definition: IMotion.idl:144
Axis will synchronize in the direction where it has to move the shortest distance.
Definition: IMotion.idl:112
VARIANT_BOOL error
TRUE (-1) when command has been aborted by another command.
Definition: IMotion.idl:424
No sync at all (only FlexProfile).
Definition: IMotion.idl:115
SyncType
This enumeration defines the direction in which synchronization takes place.
Definition: IMotion.idl:110
Structure containing operation information about an axis. These values do change as soon as the axis ...
Definition: IMotion.idl:367
Axis will synchronize in the direction where it has to move the shortest distance.
Definition: IMotion.idl:102
SHORT table
Short description of error.
Definition: IMotion.idl:426
Synchronize start point relative to current axis positions.
Definition: IMotion.idl:146
Drive in Ring; Setpoint calculation active; axis in parameterization.
Definition: IMotion.idl:300
CamTableId
This enumeration defines the cam table id.
Definition: IMotion.idl:178
IAxes Axes
This property returns a IAxes object which allows access to different IAxis objects. The IAxes interface is a collection interface.
Axis is in state ContinousMotion.
Definition: IMotion.idl:319
A link ring axis.
Definition: IMotion.idl:93
Drive not in Ring; Setpoint calculation not active.
Definition: IMotion.idl:294
ProfileExecutionMode
This enumeration defines how the flex profile is executed.
Definition: IMotion.idl:132
Synchronize current point of profile relative to current axis positions to create no slave axis jump...
Definition: IMotion.idl:147
Axis will only move in negative direction.
Definition: IMotion.idl:114
Axis is in state Standstill.
Definition: IMotion.idl:321
An encoder attached to a real drive, no motion possible.
Definition: IMotion.idl:92
SHORT controlNo
Logical control number.
Definition: IMotion.idl:81
This structure defines the axis through the definition of control and axis number.
Definition: IMotion.idl:79
StartMode
This enumeration defines the method with which synchronization takes place.
Definition: IMotion.idl:121
Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in paramete...
Definition: IMotion.idl:307
Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive.
Definition: IMotion.idl:296
LONG additional2
Additional diagnosis number1.
Definition: IMotion.idl:428
AxisMode
This enumeration defines the state of an axis. When disabled, the device connected to the axis cannot...
Definition: IMotion.idl:156
Axis will only move in positive direction.
Definition: IMotion.idl:103
VARIANT_BOOL active
TRUE (-1) when command is completed.
Definition: IMotion.idl:422
This structure defines the status of a motion command.
Definition: IMotion.idl:419
Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive.
Definition: IMotion.idl:298
Drive in Ring; Setpoint calculation active.
Definition: IMotion.idl:158
BSTR name
Axis Name (A-0-0002).
Definition: IMotion.idl:344
Drive in Ring; Setpoint calculation not active; axis in parameterization.
Definition: IMotion.idl:167
Synchronize absolute slave and master position.
Definition: IMotion.idl:143
Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in parameteriza...
Definition: IMotion.idl:306
Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive.
Definition: IMotion.idl:163
Slave axis position is absolutely synchronous with the master position.
Definition: IMotion.idl:123
Drive not in Ring; Setpoint calculation not active; axis in parameterization.
Definition: IMotion.idl:168
Axis is in state Stopping.
Definition: IMotion.idl:315
ProfileStartPoint
This enumeration defines the method a flex profile uses to interpret the start point.
Definition: IMotion.idl:141
HRESULT GetAxisValues([in]SAFEARRAY(struct AxisRef) axes, [out, retval] SAFEARRAY(struct AxisValues)*axisValues)
This function fills an array of AxisValues structures. Use the axes input parameter to specify the ax...
Definition of the IMotion interface used to access the motion functionality of the MLPI Device...
Definition: IMotion.idl:72
SyncDirection
This enumeration defines the direction in which synchronization takes place.
Definition: IMotion.idl:100
Structure containing units of the axis as strings. You may want to use this structure to read all uni...
Definition: IMotion.idl:394
Axis is in state CoordinatedMotion.
Definition: IMotion.idl:322
Slave axis position ramps to a relatively synchronous position with the master position.
Definition: IMotion.idl:126
An axis that can be used when generating your own controller to operate the drive.
Definition: IMotion.idl:94
Slave axis position is relatively synchronous with the master position (velocity synchronous) ...
Definition: IMotion.idl:124