Open Core Interface - MLPI
MLPI-MotionLogicProgrammingInterface(mlpi4COM)  1.26.2
IRobot.idl
Go to the documentation of this file.
1 // -----------------------------------------------------------------------
2 // MLPI - <IRobot.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 
62 [
63  object,
64  uuid(4DBD0495-77C9-4F00-A0BA-42EB3B5F1666),
65  dual,
66  nonextensible,
67  helpstring("IRobot Interface"),
68  pointer_default(unique)
69 ]
70 interface IRobot : IDispatch{
71 
74  typedef [v1_enum] enum RobotAxisTypes
75  {
81 
84  typedef [v1_enum] enum RobotTypes
85  {
88  }RobotTypes;
89 
92  typedef [v1_enum] enum RobotSetMode
93  {
96  }RobotSetMode;
97 
100  typedef [v1_enum] enum RobotPerformance
101  {
105 
108  typedef [v1_enum] enum RobotCoordinateSystem
109  {
110  ROBOT_CS_MCS = 0x0000,
111  ROBOT_CS_ACS = 0x0001,
112  ROBOT_CS_BCS = 0x0002,
113  ROBOT_CS_PCS1 = 0x0003,
114  ROBOT_CS_PCS2 = 0x0103,
115  ROBOT_CS_PCS3 = 0x0203,
116  ROBOT_CS_PCS4 = 0x0303,
117  ROBOT_CS_PCS5 = 0x0403,
118  ROBOT_CS_PCS6 = 0x0503,
119  ROBOT_CS_PCS7 = 0x0603,
120  ROBOT_CS_PCS8 = 0x0703,
121  ROBOT_CS_PCS9 = 0x0803,
122  ROBOT_CS_PCS10 = 0x0903,
123  ROBOT_CS_PCS11 = 0x0A03,
124  ROBOT_CS_PCS12 = 0x0B03,
125  ROBOT_CS_PCS13 = 0x0C03,
126  ROBOT_CS_PCS14 = 0x0D03,
127  ROBOT_CS_PCS15 = 0x0E03,
128  ROBOT_CS_PCS16 = 0x0F03,
130 
133  typedef [v1_enum] enum RobotSlopeType
134  {
139 
142  typedef [v1_enum] enum RobotSyncErrorReactionMode
143  {
148 
151  typedef [v1_enum] enum RobotMechCmd
152  {
158  }RobotMechDataCmd;
159 
162  typedef [v1_enum] enum RobotCSType
163  {
166  }RobotCSType;
167 
170  typedef [v1_enum] enum RobotSafeZoneType
171  {
176 
177 #if defined(WIN32) || defined(WIN64)
178 
187  [
188  uuid(365b3b47-8905-4af4-b4a9-41af8b5f82a4)
189  ]
190  struct GroupRef
191  {
192  SHORT controlNo;
193  SHORT groupNo;
194  };
195 
205  [
206  uuid(8c76385d-ca52-4612-adb6-e942c972e61d)
207  ]
209  {
210  struct GroupRef group;
212  BSTR name;
213  };
214 
226  [
227  uuid(9E1D0DE9-ED04-4f74-A7D7-2383E7625609)
228  ]
230  {
231  BSTR name;
232  LONG count;
233  DOUBLE min;
234  DOUBLE max;
235  DOUBLE avg;
236  };
237 
238 
250  [
251  uuid(AB6FEE1B-33F0-47ab-9CBC-88B7DBCFDCF7)
252  ]
254  {
255  RobotMechDataCmd cmd;
256  BSTR object;
257  DOUBLE x;
258  DOUBLE y;
259  DOUBLE z;
260  };
261 
271  [
272  uuid(219BD4DA-1143-472d-8815-154320414D2B)
273  ]
275  {
277  USHORT controlNumber;
278  USHORT axisNumber;
279  };
280 
293  [
294  uuid(46846C9F-70F1-4a96-B799-C4690921D30B)
295  ]
297  {
298  RobotCoordinateSystem coordSys;
299  DOUBLE posX;
300  DOUBLE posY;
301  DOUBLE posZ;
302  DOUBLE rotA;
303  DOUBLE rotB;
304  DOUBLE rotC;
305  RobotCSType csType;
306  };
307 
322  [
323  uuid(F59E1B72-FED4-42a8-B108-96B4213CAD77)
324  ]
326  {
327  AxisRef belt;
328  DOUBLE posX;
329  DOUBLE posY;
330  DOUBLE posZ;
331  DOUBLE rotA;
332  DOUBLE rotB;
333  DOUBLE rotC;
334  DOUBLE begin;
335  DOUBLE total;
336  RobotCSType csType;
337  };
338 
348  [
349  uuid(542CDAAB-E4DF-4f6d-9213-C9307651A83D)
350  ]
352  {
353  AxisRef belt;
354  RobotSyncErrorReactionMode errorType;
355  DOUBLE time;
356  DOUBLE deceleration;
357  DOUBLE jerk;
358  };
374  [
375  uuid(C731C998-9654-4ac4-90AC-2959AAC1AF39)
376  ]
378  {
379  ULONG state;
385  };
386 
387  [
388  uuid(1F4D34EB-A640-4657-AD41-40773DE5B56F)
389  ]
401  {
402  BSTR position;
403  BSTR velocity;
405  };
406 
407 
408 
409 /* // NEW FUNCTIONS _ START HERE - just remove this two lines
410 
411  [
412  uuid(371CF017-0617-43f0-BDDF-A27FAF8071AB)
413  ]
425  struct CoordinateSystemInfo
426  {
427  ULONG cs; //!< Reference to CoordinateSystem.
428  USHORT dimension; //!< Dimension of Kinematic.
429  BSTR name; //!< Name of Kinematic.
430  BSTR posunits; //!< Unit of Vel, Acc and Jrk.
431  };
432 
433  [
434  uuid(FC9B0408-D5BD-47ae-95E7-7B031477A635)
435  ]
455  struct StatusSummary
456  {
457  struct GroupRef group; //!< Reference to the group.
458  ULONG CoordSys; //!< Coordinate System.
459  ULONG state; //!< Kinematics state of the kinematics.
460  ULONG stateExtended; //!< Extended kinematics state of the kinematics.
461  ULONG diagnosisNumber; //!< DiagnosisNumber of the kinematics.
462  USHORT dimension; //!< Dimension of Kinematic.
463  IRobotPoint* actualPosition; //!< Actual position of the kinematics.
464  BSTR actualPosUnit; //!< Unit of actual position.
465  FLOAT actualVelocity; //!< Actual velocity of the kinematics.
466  FLOAT actualAcceleration; //!< Actual acceleration of the kinematics.
467  FLOAT actualJerk; //!< Actual jerk of the kinematics.
468  BSTR pathUnit; //!< Unit of Vel, Acc and Jrk.
469  BSTR timeBase; //!< Unit of time.
470  };
471 
472  //NEW FUNCTIONS _ END HERE - just remove this two lines */
473 
474 
475 #endif
476 
490  [propget, id(1), helpstring("Property Groups")] HRESULT Groups([out, retval] IGroups** Groups);
491 
492 #if defined(WIN32) || defined(WIN64)
493  [id(2), helpstring("Method GetConfiguredGroups")] HRESULT GetConfiguredGroups([out,retval] SAFEARRAY(struct RobotInformation) *robotsInfo);
508 
523  [id(3), helpstring("Method CreatePoint")] HRESULT CreatePoint( [in] SAFEARRAY(DOUBLE) point, [in, defaultvalue(ROBOT_CS_MCS)] enum RobotCoordinateSystem type, [out,retval] IRobotPoint** retPoint);
524 
551  [id(4), helpstring("Method GetKinematicsValues")] HRESULT GetKinematicsValues([in]SAFEARRAY(struct GroupRef) Groups, [out,retval] SAFEARRAY(struct KinematicsValues) *kinematicsValues);
552 
575  [id(5), helpstring("Method GetKinematicsUnits")] HRESULT GetKinematicsUnits([in]SAFEARRAY(struct GroupRef) Groups, [out,retval] SAFEARRAY(struct KinematicsUnits) *kinematicsUnits);
576 
577 
578 
579 /* // NEW FUNCTIONS _ START HERE - just remove this two lines
580 
601  [id(6), helpstring("Method GetStatusSummary")] HRESULT GetStatusSummary([in] SAFEARRAY(struct StatusSummary) statusSummary_in, [out,retval] SAFEARRAY(struct StatusSummary) *statusSummary_out);
602 
603 
604  //NEW FUNCTIONS _ END HERE - just remove this two lines */
605 
606  #endif
607 };
608 
609 
610 // -----------------------------------------------------------------------
611 // HISTORY
612 // -----------------------------------------------------------------------
613 // 01-Jan-2012
614 // - first release
615 // 07-Aug-2012 DOS Subject: getTransform implementation for commlpi
616 // - added structs, enum
617 // 24-Okt-2012 JUR Subject: MLPI4RCF
618 // - struct added
619 // 10-Dez-2012 JUR Subject: WP-00028141 MLPI4RCF
620 // - interface adaption and docu update due to MLPI release
621 // 04-Jan-2013 STR Subject: docu update
622 // - updated docu
623 // 21-May-2013 GB
624 // - added RobotSafeZoneType
625 // 09-Dec-2013 DED Subject: MLPI Robot Information functions
626 // - getStatusSummary implementation
627 
628 
629 
630 
631 
Machine coordinate system.
Definition: IRobot.idl:110
blending by starting next command early
Definition: IRobot.idl:135
change direction of object to (x,y,z)
Definition: IRobot.idl:156
ULONG diagnosisNumber
DiagnosisNumber of the kinematics.
Definition: IRobot.idl:381
Product coordinate system.
Definition: IRobot.idl:121
FLOAT actualVelocity
Actual velocity of the kinematics.
Definition: IRobot.idl:383
DOUBLE avg
Average over all recorded measurements.
Definition: IRobot.idl:235
Product coordinate system.
Definition: IRobot.idl:128
Product coordinate system.
Definition: IRobot.idl:120
This struct saves the information of a belt error reaction.
Definition: IRobot.idl:351
HRESULT CreatePoint([in] SAFEARRAY(DOUBLE) point, [in, defaultvalue(ROBOT_CS_MCS)] enum RobotCoordinateSystem type, [out, retval] IRobotPoint **retPoint)
This method creates a robot point object with the given values. Use this method to create a new point...
Structure containing operation information about a kinematic. These values do change as soon as the k...
Definition: IRobot.idl:377
LONG count
Count over recorded measurements.
Definition: IRobot.idl:232
RobotAxisTypes
This enumeration defines the types of axis used in a robot. This is parameter K-0-0008.
Definition: IRobot.idl:74
RobotMechDataCmd cmd
command for the object
Definition: IRobot.idl:255
BSTR position
Position unit of the kinematics. e.g. &#39;mm&#39;.
Definition: IRobot.idl:402
SHORT groupNo
Logical control number.
Definition: IRobot.idl:193
Product coordinate system.
Definition: IRobot.idl:115
DOUBLE max
Maximum over all recorded measurements.
Definition: IRobot.idl:234
Disable measurement.
Definition: IRobot.idl:103
RobotSetMode
This enumeration defines the set mode for robot motion commands.
Definition: IRobot.idl:92
blending using a spline
Definition: IRobot.idl:137
RCF robot control core.
Definition: IRobot.idl:87
BSTR acceleration
Acceleration unit of the kinematics. e.g. &#39;mm/s2&#39;.
Definition: IRobot.idl:404
Product coordinate system.
Definition: IRobot.idl:127
blending using a circle (deprecated)
Definition: IRobot.idl:136
Definition of the IRobot interface which gives access to the robot control functionality of the MLPI ...
Definition: IRobot.idl:70
USHORT axisNumber
axis number of axis
Definition: IRobot.idl:278
USHORT controlNumber
control number of axis
Definition: IRobot.idl:277
This structure defines the information about the configured axes. These values no longer change...
Definition: IRobot.idl:208
Old robot control core.
Definition: IRobot.idl:86
This structure defines the information about the configuration of an axis of a robot.
Definition: IRobot.idl:274
Product coordinate system.
Definition: IRobot.idl:117
RobotCSType
This enum defines whether the coordinate system of a transformation is Cartesian or cylindric...
Definition: IRobot.idl:162
ULONG stateExtended
Extended kinematics state of the kinematics.
Definition: IRobot.idl:380
Product coordinate system.
Definition: IRobot.idl:116
RobotTypes
This enumeration defines the type of robot.
Definition: IRobot.idl:84
points outside of this zone are allowed
Definition: IRobot.idl:174
DOUBLE z
z data for the command
Definition: IRobot.idl:259
Product coordinate system.
Definition: IRobot.idl:125
axis is used as a positioning axis
Definition: IRobot.idl:77
Product coordinate system.
Definition: IRobot.idl:126
Product coordinate system.
Definition: IRobot.idl:119
If an error occurs, the belt desynchronizes from the belt over time.
Definition: IRobot.idl:145
If an error occurs, the belt desynchronizes from the belt over limits.
Definition: IRobot.idl:146
A Cartesian coordinate system.
Definition: IRobot.idl:164
RobotPerformance
This enumeration defines the type of performance measurement.
Definition: IRobot.idl:100
IGroups Groups
This property returns a IGroups object which allows access to different IGroup objects, as well as access to methods which control ALL groups on the device. The IGroups interface is a collection interface.
RobotSafeZoneType
This enum defines the type of a save zone.
Definition: IRobot.idl:170
BSTR object
object id
Definition: IRobot.idl:256
change position of object to (x,y,z)
Definition: IRobot.idl:155
Product coordinate system.
Definition: IRobot.idl:123
RobotCoordinateSystem
This enumeration defines the type of performance measurement.
Definition: IRobot.idl:108
RobotMechCmd
This enum defines the command for an mechanical object.
Definition: IRobot.idl:151
Definition of the IGroups interface which is a collection of IGroups objects.
Definition: IGroups.idl:72
A cylindric coordinate system.
Definition: IRobot.idl:165
Definition of the IRobotPoint interface.
Definition: IRobotPoint.idl:71
This structure defines the information about the mechanical structure of an robot.
Definition: IRobot.idl:253
BSTR velocity
Velocity unit of the kinematics. e.g. &#39;mm/s&#39;.
Definition: IRobot.idl:403
IRobotPoint * actualPosition
Actual position of the kinematics.
Definition: IRobot.idl:382
This struct saves the information of several transformations.
Definition: IRobot.idl:296
DOUBLE x
x data for the command
Definition: IRobot.idl:257
axis is used as an orientation axis
Definition: IRobot.idl:78
HRESULT GetConfiguredGroups([out, retval] SAFEARRAY(struct RobotInformation)*robotsInfo)
This method returns a struct array with information about the currently configured robots in the devi...
RobotTypes robotType
Defines the type of robot.
Definition: IRobot.idl:211
Product coordinate system.
Definition: IRobot.idl:124
Base coordinate system.
Definition: IRobot.idl:112
If an error occurs, no specific belt synchronous error reaction will happen. The robot stays synchron...
Definition: IRobot.idl:144
Enable measurement.
Definition: IRobot.idl:102
axis is used as a belt axis
Definition: IRobot.idl:79
change size of object to (x,y,z)
Definition: IRobot.idl:157
RobotSyncErrorReactionMode
This enumeration defines error reaction mode of a belt.
Definition: IRobot.idl:142
HRESULT GetKinematicsUnits([in]SAFEARRAY(struct GroupRef) Groups, [out, retval] SAFEARRAY(struct KinematicsUnits)*kinematicsUnits)
This function fills an array of IRobot::KinematicsUnits structures with information about the units o...
Product coordinate system.
Definition: IRobot.idl:122
Product coordinate system.
Definition: IRobot.idl:114
ULONG state
Kinematics state of the kinematics.
Definition: IRobot.idl:379
DOUBLE min
Minimum over all recorded measurements.
Definition: IRobot.idl:233
This structure defines the group through the definition of control and group number.
Definition: IRobot.idl:190
No axis configured.
Definition: IRobot.idl:76
BSTR name
Robot Name (K-0-0002).
Definition: IRobot.idl:212
FLOAT actualAcceleration
Actual acceleration of the kinematics.
Definition: IRobot.idl:384
HRESULT GetKinematicsValues([in]SAFEARRAY(struct GroupRef) Groups, [out, retval] SAFEARRAY(struct KinematicsValues)*kinematicsValues)
This function fills an array of IRobot::KinematicsValues structures. Use the Groups input parameter t...
This structure defines the information a performance measurement.
Definition: IRobot.idl:229
RobotSlopeType
This enumeration defines the slope type for robot motion commands.
Definition: IRobot.idl:133
Product coordinate system.
Definition: IRobot.idl:118
BSTR name
Name of the performance measurement.
Definition: IRobot.idl:231
This struct saves the information of a belt configuration.
Definition: IRobot.idl:325
Product coordinate system.
Definition: IRobot.idl:113
points within this zone are allowed
Definition: IRobot.idl:173
Structure containing units of the kinematics as strings. You may want to use this structure to read a...
Definition: IRobot.idl:400
RobotAxisTypes axisConfiguration
configuration of axis
Definition: IRobot.idl:276
DOUBLE y
y data for the command
Definition: IRobot.idl:258
Axes coordinate system.
Definition: IRobot.idl:111