Open Core Interface - MLPI
MLPI-MotionLogicProgrammingInterface(mlpi4COM)  1.26.2
IMovement.idl
Go to the documentation of this file.
1 // -----------------------------------------------------------------------
2 // MLPI - <IMovement.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 
63 [
64  object,
65  uuid(4F50AEC2-401A-4BD0-AEA5-4474A7144588),
66  dual,
67  nonextensible,
68  helpstring("IMovement Interface"),
69  pointer_default(unique)
70 ]
71 interface IMovement : IDispatch{
72 
99  [id(1), helpstring("Method Home")] HRESULT Home(void);
100 
123  [id(2), helpstring("Method SetAbsoluteMeasurement")] HRESULT SetAbsoluteMeasurement(void);
124 
152  [id(3), helpstring("Method Power")] HRESULT Power(VARIANT_BOOL value);
153 
183  [id(4), helpstring("Method MoveVelocity")] HRESULT MoveVelocity([in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk);
184 
215  [id(5), helpstring("Method MoveAbsolute")] HRESULT MoveAbsolute([in] DOUBLE position, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk);
216 
251  [id(6), helpstring("Method MoveRelative")] HRESULT MoveRelative([in] DOUBLE distance, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk);
252 
285  [id(7), helpstring("Method MoveAdditive")] HRESULT MoveAdditive([in] DOUBLE distance, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk);
286 
320  [id(8), helpstring("Method Stop")] HRESULT Stop([in] VARIANT_BOOL stop, [in] DOUBLE deceleration, [in] DOUBLE jerk);
321 
322 #if defined(WIN32) || defined(WIN64)
323  [id(9), helpstring("Method GearIn")] HRESULT GearIn([in] AxisRef* masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust);
357 #endif
358 
359 #if defined(WIN32) || defined(WIN64)
360  [id(10), helpstring("Method GearInPos")] HRESULT GearInPos([in] AxisRef* masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust, [in] StartMode startMode, [in] SyncDirection syncMode);
397 #endif
398 
399 #if defined(WIN32) || defined(WIN64)
400  [id(11), helpstring("Method FlexProfile")]HRESULT FlexProfile([in] AxisRef* masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust, [in] LONG setSelection, [in] VARIANT_BOOL useSwitchingPos, [in] DOUBLE switchingPosition, [in] ProfileStartPoint profileEntry, [in] DOUBLE masterOffset, [in] DOUBLE slaveOffset, [in] SyncType syncMode, [in] DOUBLE syncVelocity, [in] DOUBLE syncAcceleration, [in] ProfileExecutionMode executionMode);
446 #endif
447 
448 
490  [id(12), helpstring("Method Status")]HRESULT Status([out, retval] struct MotionStatus *motionStatus);
491 
492 
500  [id(13), helpstring("Method Wait")]HRESULT Wait(VARIANT timeoutValue);
501 
513  [id(14), helpstring("Method PhasingSlave")] HRESULT PhasingSlave([in] DOUBLE phaseShift, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration);
514 
525  [id(15), helpstring("Method PhasingMaster")] HRESULT Phasing([in] DOUBLE phaseShift, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration);
526 
535  [id(16), helpstring("Method TorqueControl")] HRESULT TorqueControl([in] DOUBLE torque, [in] DOUBLE torqueRamp);
536 
551  [id(17), helpstring("Method CamIn")] HRESULT CamIn([in] AxisRef* masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust, [in] DOUBLE camShaftDistance, [in] SyncDirection syncMode, [in] StartMode startMode, [in] CamTableId camId);
552 
559  [id(18), helpstring("Method SynchronOut")] HRESULT SynchronOut();
560 
568  [id(19), helpstring("Method OpenCyclicPositionChannel")] HRESULT OpenCyclicPositionChannel();
569 
577  [id(20), helpstring("Method OpenCyclicVelocityChannel")] HRESULT OpenCyclicVelocityChannel();
578 
586  [id(21), helpstring("Method OpenCyclicAnalogChannel")] HRESULT OpenCyclicAnalogChannel();
587 
595  [id(22), helpstring("Method OpenCyclicTorqueChannel")] HRESULT OpenCyclicTorqueChannel();
596 
604  [id(23), helpstring("Method WriteCyclicPosition")] HRESULT WriteCyclicPosition([in] DOUBLE cyclicValue);
605 
613  [id(24), helpstring("Method WriteCyclicVelocity")] HRESULT WriteCyclicVelocity([in] DOUBLE cyclicValue);
614 
622  [id(25), helpstring("Method WriteCyclicAnalog")] HRESULT WriteCyclicAnalog([in] DOUBLE cyclicValue);
623 
631  [id(26), helpstring("Method WriteCyclicTorque")] HRESULT WriteCyclicTorque([in] DOUBLE cyclicValue);
632 };
633 
634 
635 
636 // -----------------------------------------------------------------------
637 // HISTORY
638 // -----------------------------------------------------------------------
639 // 01-Jan-2012
640 // - first release
641 //
642 
643 
HRESULT SynchronOut()
This function commands a synchronization out to an axis.
HRESULT GearIn([in] AxisRef *masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust)
This function commands a velocity synchronization to the master.
HRESULT Stop([in] VARIANT_BOOL stop, [in] DOUBLE deceleration, [in] DOUBLE jerk)
This function stops the axis. The target position is set and the axis will perform a trapezoidal velo...
HRESULT OpenCyclicPositionChannel()
This function opens a cyclic channel to an axis. As soon as the channel is open, you can write cyclic...
HRESULT MoveVelocity([in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk)
This function commands a single axis movement of a single axis.
HRESULT Home(void)
This function serves to home an axis. Only an axis with incremental encoders can be homed...
HRESULT MoveAbsolute([in] DOUBLE position, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk)
This function defines an absolute position movement of a single axis.
HRESULT Phasing([in] DOUBLE phaseShift, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration)
The function adjusts the master axis with the specified velocity and acceleration.
HRESULT Power(VARIANT_BOOL value)
This function commands power to the drive.
HRESULT SetAbsoluteMeasurement(void)
This function serves to "set absolute measurement" of an axis. Only axes with absolute encoders can b...
HRESULT OpenCyclicVelocityChannel()
This function opens a cyclic channel to an axis. As soon as the channel is open, you can write cyclic...
HRESULT WriteCyclicTorque([in] DOUBLE cyclicValue)
This function commands a cyclic value to an axis.
HRESULT MoveAdditive([in] DOUBLE distance, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk)
This function commands an additive movement. The additive position is added to the target position an...
HRESULT MoveRelative([in] DOUBLE distance, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk)
This function commands a relative movement. The relative position is added to the current position an...
HRESULT WriteCyclicVelocity([in] DOUBLE cyclicValue)
This function commands a cyclic value to an axis.
HRESULT TorqueControl([in] DOUBLE torque, [in] DOUBLE torqueRamp)
The function carries out a specific torque on a axis.
HRESULT Wait(VARIANT timeoutValue)
This function waits for completion (state DONE or ERROR) of the latest motion command.
HRESULT WriteCyclicAnalog([in] DOUBLE cyclicValue)
This function commands a cyclic value to an axis.
HRESULT OpenCyclicAnalogChannel()
This function opens a cyclic channel to an axis. As soon as the channel is open, you can write cyclic...
HRESULT GearInPos([in] AxisRef *masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust, [in] StartMode startMode, [in] SyncDirection syncMode)
This function commands a position synchronization to the master.
HRESULT Status([out, retval] struct MotionStatus *motionStatus)
This function reads the movement status. It returns information about the last started motion command...
HRESULT FlexProfile([in] AxisRef *masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust, [in] LONG setSelection, [in] VARIANT_BOOL useSwitchingPos, [in] DOUBLE switchingPosition, [in] ProfileStartPoint profileEntry, [in] DOUBLE masterOffset, [in] DOUBLE slaveOffset, [in] SyncType syncMode, [in] DOUBLE syncVelocity, [in] DOUBLE syncAcceleration, [in] ProfileExecutionMode executionMode)
This function commands a synchronization movement to an axis.
HRESULT WriteCyclicPosition([in] DOUBLE cyclicValue)
This function commands a cyclic value to an axis.
Definition of the IMovement interface used to access motion commands to move an axis or drive...
Definition: IMovement.idl:71
HRESULT PhasingSlave([in] DOUBLE phaseShift, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration)
The function adjusts the slave axis with the specified velocity and acceleration. ...
HRESULT OpenCyclicTorqueChannel()
This function opens a cyclic channel to an axis. As soon as the channel is open, you can write cyclic...
HRESULT CamIn([in] AxisRef *masterAxis, [in] LONG numerator, [in] LONG denominator, [in] DOUBLE fineadjust, [in] DOUBLE camShaftDistance, [in] SyncDirection syncMode, [in] StartMode startMode, [in] CamTableId camId)
This function commands a synchronization movement to an axis.