1 #ifndef __MLPIMOTIONLIB_H__     2 #define __MLPIMOTIONLIB_H__   620 #define MLPI_MOTION_MAX_AXIS_NAME_LEN        (80)   621 #define MLPI_MOTION_MAX_UNITS_LEN            (16)   717   MLPI_CAM_TABLE_1    =   1,
   718   MLPI_CAM_TABLE_2    =   2,
   719   MLPI_CAM_TABLE_3    =   3,
   720   MLPI_CAM_TABLE_4    =   4,
   721   MLPI_CAM_TABLE_5    =   5,
   722   MLPI_CAM_TABLE_6    =   6,
   723   MLPI_CAM_TABLE_7    =   7,
   724   MLPI_CAM_TABLE_8    =   8,
   725   MLPI_CAM_TABLE_9    =   9,
   726   MLPI_CAM_TABLE_10   =  10,
   727   MLPI_CAM_TABLE_11   =  11,
   728   MLPI_CAM_TABLE_12   =  12,
   729   MLPI_CAM_TABLE_13   =  13,
   730   MLPI_CAM_TABLE_14   =  14,
   731   MLPI_CAM_TABLE_15   =  15,
   732   MLPI_CAM_TABLE_16   =  16,
   733   MLPI_CAM_TABLE_17   =  17,
   734   MLPI_CAM_TABLE_18   =  18,
   735   MLPI_CAM_TABLE_19   =  19,
   736   MLPI_CAM_TABLE_20   =  20,
   737   MLPI_CAM_TABLE_21   =  21,
   738   MLPI_CAM_TABLE_22   =  22,
   739   MLPI_CAM_TABLE_23   =  23,
   740   MLPI_CAM_TABLE_24   =  24,
   741   MLPI_CAM_TABLE_25   =  25,
   742   MLPI_CAM_TABLE_26   =  26,
   743   MLPI_CAM_TABLE_27   =  27,
   744   MLPI_CAM_TABLE_28   =  28,
   745   MLPI_CAM_TABLE_29   =  29,
   746   MLPI_CAM_TABLE_30   =  30,
   747   MLPI_CAM_TABLE_31   =  31,
   748   MLPI_CAM_TABLE_32   =  32,
   749   MLPI_CAM_TABLE_33   =  33,
   750   MLPI_CAM_TABLE_34   =  34,
   751   MLPI_CAM_TABLE_35   =  35,
   752   MLPI_CAM_TABLE_36   =  36,
   753   MLPI_CAM_TABLE_37   =  37,
   754   MLPI_CAM_TABLE_38   =  38,
   755   MLPI_CAM_TABLE_39   =  39,
   756   MLPI_CAM_TABLE_40   =  40,
   757   MLPI_CAM_TABLE_41   =  41,
   758   MLPI_CAM_TABLE_42   =  42,
   759   MLPI_CAM_TABLE_43   =  43,
   760   MLPI_CAM_TABLE_44   =  44,
   761   MLPI_CAM_TABLE_45   =  45,
   762   MLPI_CAM_TABLE_46   =  46,
   763   MLPI_CAM_TABLE_47   =  47,
   764   MLPI_CAM_TABLE_48   =  48,
   765   MLPI_CAM_TABLE_49   =  49,
   766   MLPI_CAM_TABLE_50   =  50,
   767   MLPI_CAM_TABLE_51   =  51,
   768   MLPI_CAM_TABLE_52   =  52,
   769   MLPI_CAM_TABLE_53   =  53,
   770   MLPI_CAM_TABLE_54   =  54,
   771   MLPI_CAM_TABLE_55   =  55,
   772   MLPI_CAM_TABLE_56   =  56,
   773   MLPI_CAM_TABLE_57   =  57,
   774   MLPI_CAM_TABLE_58   =  58,
   775   MLPI_CAM_TABLE_59   =  59,
   776   MLPI_CAM_TABLE_60   =  60,
   777   MLPI_CAM_TABLE_61   =  61,
   778   MLPI_CAM_TABLE_62   =  62,
   779   MLPI_CAM_TABLE_63   =  63,
   780   MLPI_CAM_TABLE_64   =  64,
   781   MLPI_CAM_TABLE_65   =  65,
   782   MLPI_CAM_TABLE_66   =  66,
   783   MLPI_CAM_TABLE_67   =  67,
   784   MLPI_CAM_TABLE_68   =  68,
   785   MLPI_CAM_TABLE_69   =  69,
   786   MLPI_CAM_TABLE_70   =  70,
   787   MLPI_CAM_TABLE_71   =  71,
   788   MLPI_CAM_TABLE_72   =  72,
   789   MLPI_CAM_TABLE_73   =  73,
   790   MLPI_CAM_TABLE_74   =  74,
   791   MLPI_CAM_TABLE_75   =  75,
   792   MLPI_CAM_TABLE_76   =  76,
   793   MLPI_CAM_TABLE_77   =  77,
   794   MLPI_CAM_TABLE_78   =  78,
   795   MLPI_CAM_TABLE_79   =  79,
   796   MLPI_CAM_TABLE_80   =  80,
   797   MLPI_CAM_TABLE_81   =  81,
   798   MLPI_CAM_TABLE_82   =  82,
   799   MLPI_CAM_TABLE_83   =  83,
   800   MLPI_CAM_TABLE_84   =  84,
   801   MLPI_CAM_TABLE_85   =  85,
   802   MLPI_CAM_TABLE_86   =  86,
   803   MLPI_CAM_TABLE_87   =  87,
   804   MLPI_CAM_TABLE_88   =  88,
   805   MLPI_CAM_TABLE_89   =  89,
   806   MLPI_CAM_TABLE_90   =  90,
   807   MLPI_CAM_TABLE_91   =  91,
   808   MLPI_CAM_TABLE_92   =  92,
   809   MLPI_CAM_TABLE_93   =  93,
   810   MLPI_CAM_TABLE_94   =  94,
   811   MLPI_CAM_TABLE_95   =  95,
   812   MLPI_CAM_TABLE_96   =  96,
   813   MLPI_CAM_TABLE_97   =  97,
   814   MLPI_CAM_TABLE_98   =  98,
   815   MLPI_CAM_TABLE_99   =  99,
   816   MLPI_CAM_TABLE_100  = 100
   823   MLPI_REST_IN_REST_INCLINEDSINE              = 0x0000,
   824   MLPI_REST_IN_REST_POLY5                     = 0x0100,
   825   MLPI_REST_IN_VELOCITY_POLY5                 = 0x0200,
   826   MLPI_REST_IN_VELOCITY_POLY7                 = 0x0300,
   827   MLPI_VELOCITY_IN_REST_POLY5                 = 0x0400,
   828   MLPI_VELOCITY_IN_REST_POLY7                 = 0x0500,
   829   MLPI_CONSTANT_VELOCITY                      = 0x0600,
   830   MLPI_VELOCITY_IN_VELOCITY_POLY5             = 0x0700,
   831   MLPI_REST_IN_REST_LINEAR                    = 0x0800,
   832   MLPI_REST_IN_REST_POLY7                     = 0x0900,
   833   MLPI_REST_IN_REST_SINE                      = 0x0A00,
   834   MLPI_REST_IN_REST_GUTMANSINE                = 0x0B00,
   835   MLPI_REST_IN_REST_SINEACC                   = 0x0C00,
   836   MLPI_REST_IN_REST_SINETORQUE                = 0x0D00,
   837   MLPI_REST_IN_REST_MOD_TRAPEZE               = 0x0E00,
   838   MLPI_REST_IN_REST_MOD_SINE                  = 0x0F00,
   839   MLPI_VELOCITY_IN_VELOCITY_POLY7             = 0x1000,
   840   MLPI_VELOCITY_IN_VELOCITY_MOD_SINE          = 0x1100,
   841   MLPI_REST_IN_REST_POLY5_VLIM                = 0x1200,
   842   MLPI_REST_IN_REST_PARABOLA                  = 0x1300,
   843   MLPI_REST_IN_REST_POLY8                     = 0x1400,
   844   MLPI_MOTION_IN_MOTION_POLY5                 = 0x2000,
   845   MLPI_MOTION_IN_MOTION_POLY7                 = 0x2100,
   848   MLPI_COMMON_POLY5                           = 0x4000,
   849   MLPI_COMMON_POLY7                           = 0x4100,
   850   MLPI_COMMON_POLY2                           = 0x4200,
   851   MLPI_COMMON_POLY3                           = 0x4300,
   852   MLPI_COMMON_POLY4                           = 0x4400,
   853   MLPI_COMMON_POLY8                           = 0x4500,
   856   MLPI_X_VELOCITY_IN_VELOCITY_TRAPEZE_ALIM    = 0x5000,
   857   MLPI_X_MOTION_IN_MOTION_POLY5_VLIM          = 0x6000,
   858   MLPI_X_MOTION_IN_MOTION_POLY5_SLIM          = 0x6100,
   859   MLPI_X_FIT_VEL_TRAPEZE_ALIM                 = 0x7000,
   860   MLPI_X_FIT_SINE_TRAPEZE_ALIM                = 0x7100,
   861   MLPI_X_FIT_ACC_TRAPEZE_ALIM                 = 0x7200,
   862   MLPI_X_MOTION_IN_MOTION_ACAM                = 0x8000,
   863   MLPI_X_MOTION_IN_MOTION_VCAM                = 0x8100,
   864   MLPI_X_MOTION_IN_MOTION_VCAM2_A             = 0x8200,
   865   MLPI_X_MOTION_IN_MOTION_VCAM2_B             = 0x8300,
   877   MLPI_CAMTABLE_10                            =     10,
   878   MLPI_CAMTABLE_11                            =     11,
   879   MLPI_CAMTABLE_12                            =     12,
   880   MLPI_CAMTABLE_13                            =     13,
   881   MLPI_CAMTABLE_14                            =     14,
   882   MLPI_CAMTABLE_15                            =     15,
   883   MLPI_CAMTABLE_16                            =     16,
   884   MLPI_CAMTABLE_17                            =     17,
   885   MLPI_CAMTABLE_18                            =     18,
   886   MLPI_CAMTABLE_19                            =     19,
   887   MLPI_CAMTABLE_20                            =     20,
   888   MLPI_CAMTABLE_21                            =     21,
   889   MLPI_CAMTABLE_22                            =     22,
   890   MLPI_CAMTABLE_23                            =     23,
   891   MLPI_CAMTABLE_24                            =     24,
   892   MLPI_CAMTABLE_25                            =     25,
   893   MLPI_CAMTABLE_26                            =     26,
   894   MLPI_CAMTABLE_27                            =     27,
   895   MLPI_CAMTABLE_28                            =     28,
   896   MLPI_CAMTABLE_29                            =     29,
   897   MLPI_CAMTABLE_30                            =     30,
   898   MLPI_CAMTABLE_31                            =     31,
   899   MLPI_CAMTABLE_32                            =     32,
   900   MLPI_CAMTABLE_33                            =     33,
   901   MLPI_CAMTABLE_34                            =     34,
   902   MLPI_CAMTABLE_35                            =     35,
   903   MLPI_CAMTABLE_36                            =     36,
   904   MLPI_CAMTABLE_37                            =     37,
   905   MLPI_CAMTABLE_38                            =     38,
   906   MLPI_CAMTABLE_39                            =     39,
   907   MLPI_CAMTABLE_40                            =     40,
   908   MLPI_CAMTABLE_41                            =     41,
   909   MLPI_CAMTABLE_42                            =     42,
   910   MLPI_CAMTABLE_43                            =     43,
   911   MLPI_CAMTABLE_44                            =     44,
   912   MLPI_CAMTABLE_45                            =     45,
   913   MLPI_CAMTABLE_46                            =     46,
   914   MLPI_CAMTABLE_47                            =     47,
   915   MLPI_CAMTABLE_48                            =     48,
   916   MLPI_CAMTABLE_49                            =     49,
   917   MLPI_CAMTABLE_50                            =     50,
   918   MLPI_CAMTABLE_51                            =     51,
   919   MLPI_CAMTABLE_52                            =     52,
   920   MLPI_CAMTABLE_53                            =     53,
   921   MLPI_CAMTABLE_54                            =     54,
   922   MLPI_CAMTABLE_55                            =     55,
   923   MLPI_CAMTABLE_56                            =     56,
   924   MLPI_CAMTABLE_57                            =     57,
   925   MLPI_CAMTABLE_58                            =     58,
   926   MLPI_CAMTABLE_59                            =     59,
   927   MLPI_CAMTABLE_60                            =     60,
   928   MLPI_CAMTABLE_61                            =     61,
   929   MLPI_CAMTABLE_62                            =     62,
   930   MLPI_CAMTABLE_63                            =     63,
   931   MLPI_CAMTABLE_64                            =     64,
   932   MLPI_CAMTABLE_65                            =     65,
   933   MLPI_CAMTABLE_66                            =     66,
   934   MLPI_CAMTABLE_67                            =     67,
   935   MLPI_CAMTABLE_68                            =     68,
   936   MLPI_CAMTABLE_69                            =     69,
   937   MLPI_CAMTABLE_70                            =     70,
   938   MLPI_CAMTABLE_71                            =     71,
   939   MLPI_CAMTABLE_72                            =     72,
   940   MLPI_CAMTABLE_73                            =     73,
   941   MLPI_CAMTABLE_74                            =     74,
   942   MLPI_CAMTABLE_75                            =     75,
   943   MLPI_CAMTABLE_76                            =     76,
   944   MLPI_CAMTABLE_77                            =     77,
   945   MLPI_CAMTABLE_78                            =     78,
   946   MLPI_CAMTABLE_79                            =     79,
   947   MLPI_CAMTABLE_80                            =     80,
   948   MLPI_CAMTABLE_81                            =     81,
   949   MLPI_CAMTABLE_82                            =     82,
   950   MLPI_CAMTABLE_83                            =     83,
   951   MLPI_CAMTABLE_84                            =     84,
   952   MLPI_CAMTABLE_85                            =     85,
   953   MLPI_CAMTABLE_86                            =     86,
   954   MLPI_CAMTABLE_87                            =     87,
   955   MLPI_CAMTABLE_88                            =     88,
   956   MLPI_CAMTABLE_89                            =     89,
   957   MLPI_CAMTABLE_90                            =     90,
   958   MLPI_CAMTABLE_91                            =     91,
   959   MLPI_CAMTABLE_92                            =     92,
   960   MLPI_CAMTABLE_93                            =     93,
   961   MLPI_CAMTABLE_94                            =     94,
   962   MLPI_CAMTABLE_95                            =     95,
   963   MLPI_CAMTABLE_96                            =     96,
   964   MLPI_CAMTABLE_97                            =     97,
   965   MLPI_CAMTABLE_98                            =     98,
   966   MLPI_CAMTABLE_99                            =     99,
   967   MLPI_CAMTABLE_100                           =    100
   974   MLPI_LOCAL_CONTROL = 0,
   984   MLPI_CONTROL_10 = 10,
   985   MLPI_CONTROL_11 = 11,
   986   MLPI_CONTROL_12 = 12,
   987   MLPI_CONTROL_13 = 13,
   988   MLPI_CONTROL_14 = 14,
   989   MLPI_CONTROL_15 = 15,
   990   MLPI_CONTROL_16 = 16,
   991   MLPI_CONTROL_17 = 17,
   992   MLPI_CONTROL_18 = 18,
   993   MLPI_CONTROL_19 = 19,
   994   MLPI_CONTROL_20 = 20,
   995   MLPI_CONTROL_21 = 21,
   996   MLPI_CONTROL_22 = 22,
   997   MLPI_CONTROL_23 = 23,
   998   MLPI_CONTROL_24 = 24,
   999   MLPI_CONTROL_25 = 25,
  1000   MLPI_CONTROL_26 = 26,
  1001   MLPI_CONTROL_27 = 27,
  1002   MLPI_CONTROL_28 = 28,
  1003   MLPI_CONTROL_29 = 29,
  1004   MLPI_CONTROL_30 = 30,
  1005   MLPI_CONTROL_31 = 31,
  1006   MLPI_CONTROL_32 = 32,
  1007   MLPI_CONTROL_33 = 33,
  1008   MLPI_CONTROL_34 = 34,
  1009   MLPI_CONTROL_35 = 35,
  1010   MLPI_CONTROL_36 = 36,
  1011   MLPI_CONTROL_37 = 37,
  1012   MLPI_CONTROL_38 = 38,
  1013   MLPI_CONTROL_39 = 39,
  1014   MLPI_CONTROL_40 = 40,
  1015   MLPI_CONTROL_41 = 41,
  1016   MLPI_CONTROL_42 = 42,
  1017   MLPI_CONTROL_43 = 43,
  1018   MLPI_CONTROL_44 = 44,
  1019   MLPI_CONTROL_45 = 45,
  1020   MLPI_CONTROL_46 = 46,
  1021   MLPI_CONTROL_47 = 47,
  1022   MLPI_CONTROL_48 = 48,
  1023   MLPI_CONTROL_49 = 49,
  1024   MLPI_CONTROL_50 = 50,
  1025   MLPI_CONTROL_51 = 51,
  1026   MLPI_CONTROL_52 = 52,
  1027   MLPI_CONTROL_53 = 53,
  1028   MLPI_CONTROL_54 = 54,
  1029   MLPI_CONTROL_55 = 55,
  1030   MLPI_CONTROL_56 = 56,
  1031   MLPI_CONTROL_57 = 57,
  1032   MLPI_CONTROL_58 = 58,
  1033   MLPI_CONTROL_59 = 59,
  1034   MLPI_CONTROL_60 = 60,
  1035   MLPI_CONTROL_61 = 61,
  1036   MLPI_CONTROL_62 = 62,
  1037   MLPI_CONTROL_63 = 63,
  1038   MLPI_CONTROL_64 = 64,
  1039   MLPI_CONTROL_65 = 65,
  1040   MLPI_CONTROL_66 = 66,
  1041   MLPI_CONTROL_67 = 67,
  1042   MLPI_CONTROL_68 = 68,
  1043   MLPI_CONTROL_69 = 69,
  1044   MLPI_CONTROL_70 = 70,
  1045   MLPI_CONTROL_71 = 71,
  1046   MLPI_CONTROL_72 = 72,
  1047   MLPI_CONTROL_73 = 73,
  1048   MLPI_CONTROL_74 = 74,
  1049   MLPI_CONTROL_75 = 75,
  1050   MLPI_CONTROL_76 = 76,
  1051   MLPI_CONTROL_77 = 77,
  1052   MLPI_CONTROL_78 = 78,
  1053   MLPI_CONTROL_79 = 79,
  1054   MLPI_CONTROL_80 = 80,
  1055   MLPI_CONTROL_81 = 81,
  1056   MLPI_CONTROL_82 = 82,
  1057   MLPI_CONTROL_83 = 83,
  1058   MLPI_CONTROL_84 = 84,
  1059   MLPI_CONTROL_85 = 85,
  1060   MLPI_CONTROL_86 = 86,
  1061   MLPI_CONTROL_87 = 87,
  1062   MLPI_CONTROL_88 = 88,
  1063   MLPI_CONTROL_89 = 89,
  1064   MLPI_CONTROL_90 = 90,
  1065   MLPI_CONTROL_91 = 91,
  1066   MLPI_CONTROL_92 = 92,
  1067   MLPI_CONTROL_93 = 93,
  1068   MLPI_CONTROL_94 = 94,
  1069   MLPI_CONTROL_95 = 95,
  1070   MLPI_CONTROL_96 = 96,
  1071   MLPI_CONTROL_97 = 97,
  1072   MLPI_CONTROL_98 = 98,
  1073   MLPI_CONTROL_99 = 99
  1212 #if !defined(TARGET_OS_VXWORKS)  1213   #pragma pack(push,8)  1228     : controlNo(MLPI_LOCAL_CONTROL)
  1229     , axisNo(MLPI_NO_OBJECT)
  1232     : controlNo(MLPI_LOCAL_CONTROL)
  1236     : controlNo(MLPI_LOCAL_CONTROL)
  1237     , axisNo(static_cast<MlpiAxisNumber>(axisNo))
  1240     : controlNo(controlNo)
  1259     : controlNo(MLPI_LOCAL_CONTROL)
  1260     , groupNo(MLPI_NO_GROUP)
  1263     : controlNo(MLPI_LOCAL_CONTROL)
  1267     : controlNo(MLPI_LOCAL_CONTROL)
  1268     , groupNo(static_cast<MlpiGroupNumber>(groupNo))
  1271     : controlNo(controlNo)
  1320   ULONG           deviceAddress;                        
  1322   WCHAR16         name[MLPI_MOTION_MAX_AXIS_NAME_LEN];  
  1351   DOUBLE      actualAcceleration;                       
  1354   ULONG       stateExtended;                            
  1355   ULONG       diagnosisNumber;                          
  1378   WCHAR16 position[MLPI_MOTION_MAX_UNITS_LEN];          
  1379   WCHAR16 velocity[MLPI_MOTION_MAX_UNITS_LEN];          
  1380   WCHAR16 acceleration[MLPI_MOTION_MAX_UNITS_LEN];      
  1381   WCHAR16 jerk[MLPI_MOTION_MAX_UNITS_LEN];              
  1382   WCHAR16 torque[MLPI_MOTION_MAX_UNITS_LEN];            
  1544   BOOL8                       relativePositioning;  
  1838 #if !defined(TARGET_OS_VXWORKS)  1852 #if defined(TARGET_OS_WINNT)  1853   #if defined(MLPI_EXPORTS)  1854     #define MLPI_API __declspec(dllexport)  1855   #elif defined(MLPI_IMPORTS)  1856     #define MLPI_API __declspec(dllimport)  1861   #if defined(MLPI_EXPORTS)  1862     #define MLPI_API __attribute__ ((visibility("default")))  1863   #elif defined(MLPI_IMPORTS)  3847 #endif // endof: #ifndef __MLPIMOTIONLIB_H__ Flex step type with fixed relative range and absolute master axis position. Start and end velocity ar...
 
MLPIRESULT mlpiMotionGearIn(const MLPIHANDLE connection, const MlpiMotionGearIn *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands velocity synchronization to the master. 
 
struct MlpiMotionTorqueControl MlpiMotionTorqueControl
Structure to command torque to an axis. 
 
MLPIRESULT mlpiMotionGetAccelerationLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the bipolar acceleration limit of an axis. 
 
MLPIRESULT mlpiMotionRemAxisFromGroup(const MLPIHANDLE connection, const MlpiMotionAdminAxisGroup *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function removes an axis from a group. 
 
MLPIRESULT mlpiMotionGetDiagnosisNumber(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG *number)
This function reads the diagnostic number of the axis. 
 
MLPIRESULT mlpiMotionGetInterpolatedPosition(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the actual interpolated position of an axis. The interpolated position is the pos...
 
Synchronize start point relative to current axis positions. 
 
MLPIRESULT mlpiMotionControlOff(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function switches the axis away from controlled motion. 
 
MLPIRESULT mlpiMotionSetJerkLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the bipolar jerk limit of an axis. 
 
struct MlpiGroupRef MlpiGroupRef
This structure defines the group through the definition of control and group number. 
 
MLPIRESULT mlpiMotionFlexProfile(const MLPIHANDLE connection, const MlpiMotionFlexProfile *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an axis to synchronize to the master by using a flex profile. The command can only be used on IndraDrives with interpolation in the control or with Sercos drives. 
 
MLPIRESULT mlpiMotionOpenCyclicVelocityChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function opens a cyclic channel for cyclic velocity commands. 
 
MLPIRESULT mlpiMotionGetCondition(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG *value)
This function reads the axis condition. 
 
MLPIRESULT mlpiMotionGetAxisUnits(const MLPIHANDLE connection, MlpiAxisUnits *axisUnits, const ULONG numElements)
This function returns the current unit settings of an array of axes in string representation. Use it to read the unit settings for display in an HMI. If you want detailed information about the unit and scaling settings of the axis, please look at the functions mlpiMotionGetPositionScaling, mlpiMotionGetVelocityScaling, etc... 
 
MLPIRESULT mlpiMotionClearError(const MLPIHANDLE connection, const MlpiAxisRef axis)
Clears a pending error for the axis. An axis needs to be free of errors before commanding power and s...
 
MLPIRESULT mlpiMotionOpenCyclicPositionChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
The following functions all deal with motion that is commanded by sending cyclic data. This is used to be able to generate your own profiles. This is contrary to all other motion commands where the profiles are generated by the control. In order to be able to write cyclic data, a "channel" must be opened first. Once opened, cyclic data should be written every motion cycle. No explicit error will occur if no cyclic data is written. In this case, the last known cyclic data will be send again. But keep in mind, that the movement on the drive might be jittered or even result in errors in the drive. To correctly synchronize your cyclic write access to the drive you might want to have a look at the function mlpiTaskWaitForEvent. The cyclic command mode can be canceled using any other single or synchronous motion command. Prior to opening a cyclic channel, you should initialize the first channel value by using the corresponding write command (e.g. mlpiMotionWriteCyclicPosition). 
 
MLPIRESULT mlpiMotionGetActualVelocity(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the actual velocity of an axis. 
 
MLPIRESULT mlpiMotionStop(const MLPIHANDLE connection, const MlpiMotionStop *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands a stop of motion to the drive. 
 
MLPIRESULT mlpiMotionMoveAbsolute(const MLPIHANDLE connection, const MlpiMotionMoveAbsolute *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an absolute movement. This means that the axis will move to a given target pos...
 
MLPIRESULT mlpiMotionChangeFlexProfileSet(const MLPIHANDLE connection, const MlpiAxisRef axis, const MlpiMotionFlexProfileStep *paramSet, const ULONG numElements, const DOUBLE masterVel, const MlpiProfileSetSelection set)
This function writes all parameters necessary to configure a flex profile. 
 
An encoder that is attached to a real drive, no motion possible. 
 
unsigned long long ULLONG
8 byte unsigned integer 
 
MLPIRESULT mlpiMotionGetAxisType(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT *type)
This function reads the type of the axis. 
 
MLPIRESULT mlpiMotionGetAxisStatus(const MLPIHANDLE connection, MlpiAxisStatus *axisStatus, const ULONG numElements)
This function fills an array of MlpiAxisStatus structures. Use the axis element of the structure to s...
 
Slave axis position is absolutely synchronous with the master position. 
 
MLPIRESULT mlpiMotionWriteCyclicVelocity(const MLPIHANDLE connection, const MlpiMotionCyclic *paramSet, const ULONG numElements=1)
This function commands a cyclic velocity. It is possible to give an array to paramSet and to set the ...
 
MlpiGroupNumber
This enumeration defines the available kinematics group numbers. 
 
MLPIRESULT mlpiMotionGetStatus(const MLPIHANDLE connection, const MlpiAxisRef axis, const MLPIMOTIONHANDLE motionHandle, MlpiMotionStatus *status)
This function reads the status of a motion command. 
 
MLPIRESULT mlpiMotionSetPositionScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value)
This function writes to the position scaling of an axis. 
 
MLPIRESULT mlpiMotionGetDiagnosisText(const MLPIHANDLE connection, const MlpiAxisRef axis, WCHAR16 *buffer, const ULONG numElements)
This function reads the diagnostic message of the axis. 
 
MLPIRESULT mlpiMotionOpenCyclicTorqueChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function opens a cyclic channel for cyclic torque commands. 
 
struct MlpiAxisUnits MlpiAxisUnits
Structure containing units of the axis as strings. You may want to use this structure to read all uni...
 
signed char BOOL8
1 byte boolean 
 
An axis that can be used when generating your own controller to operate the drive. 
 
MLPIRESULT mlpiMotionSetName(const MLPIHANDLE connection, const MlpiAxisRef axis, const WCHAR16 *name)
This function writes the name of the axis. 
 
struct MlpiMotionCyclic MlpiMotionCyclic
This structure is used when operating the axis in cyclic position command mode. A cyclic value (posit...
 
unsigned short USHORT
2 byte unsigned integer 
 
Axis will synchronize in the direction in which it has to move the shortest distance. 
 
MLPIRESULT mlpiMotionGetTorqueLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the bipolar torque force limit of an axis. 
 
MLPIRESULT mlpiMotionGetTorqueScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT *value)
This function reads the acceleration scaling of an axis. 
 
MLPIRESULT mlpiMotionControlOn(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function switches the axis to controlled motion. 
 
MLPIRESULT mlpiMotionGetConfiguredAxes(const MLPIHANDLE connection, MlpiAxisInformation *configAxes, const ULONG numElements, ULONG *numElementsRet)
This function returns a list of configured axes. 
 
struct MlpiMotionMoveRelative MlpiMotionMoveRelative
This structure defines a relative position move of a single axis. 
 
MLPIRESULT mlpiMotionGetActualTorque(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the actual torque of an axis. 
 
MLPIRESULT mlpiMotionSetCondition(const MLPIHANDLE connection, const MlpiAxisRef axis, const ULONG value)
This function writes to the axis condition. 
 
Default step type with fixed relative hub and range. Start and end velocity also fixed. 
 
MLPIRESULT mlpiMotionMotionProfile(const MLPIHANDLE connection, const MlpiMotionMotionProfile *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an axis to synchronize to the master by using a motion profile. The command can only be used on IndraDrives with interpolation in the drive. 
 
MLPIRESULT mlpiMotionGetActualAcceleration(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the actual acceleration of an axis. 
 
MLPIRESULT mlpiMotionGetState(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG *value)
This function reads the state of an axis. 
 
MLPIRESULT mlpiMotionSetVelocityLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the negative velocity limit of an axis. 
 
MLPIRESULT mlpiMotionWriteCyclicPosition(const MLPIHANDLE connection, const MlpiMotionCyclic *paramSet, const ULONG numElements=1)
This function commands a cyclic position. It is possible to give an array to paramSet and to set the ...
 
struct MlpiMotionMoveContinuousRelative MlpiMotionMoveContinuousRelative
This structure defines a continuous relative move of a single axis. 
 
struct MlpiMotionFlexProfileStep MlpiMotionFlexProfileStep
This struct defines a single step of a FlexProfile. Use multiple steps to create a profile...
 
struct MlpiMotionGearInPos MlpiMotionGearInPos
This structure defines a position synchronization of the slave to the master using a gear and fine ad...
 
Axis will only move in positive direction. 
 
MLPIRESULT mlpiMotionSetVelocityLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the bipolar velocity limit of an axis. 
 
MLPIRESULT mlpiMotionMoveAdditive(const MLPIHANDLE connection, const MlpiMotionMoveAdditive *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an additive movement. The additive position is added to the target position an...
 
Axis will only move in positive direction. 
 
Single execution. When the profile is finished, the axis will continue to run with end velocity of th...
 
MlpiProfileSetSelection
The motion profile or flex profile works based on a set of parameters. In order to change a set consi...
 
struct MlpiAxisStatus MlpiAxisStatus
Structure containing status information about an axis. These values do change as soon as the axis is ...
 
MLPIRESULT mlpiMotionOpenCyclicAnalogChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function opens a cyclic channel for cyclic analogue commands. 
 
MlpiSyncType
This enumeration defines the direction and type in which synchronization takes place. Only for FlexProfile! 
 
MLPIRESULT mlpiMotionGetInterpolatedVelocity(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the actual interpolated velocity of an axis. The interpolated velocity is the vel...
 
Synchronize absolute slave and master position. 
 
struct MlpiMotionStatus MlpiMotionStatus
This structure defines the status of a motion command. 
 
MlpiAxisNumber
This enumeration defines the available axis numbers. 
 
struct MlpiAxisInformation MlpiAxisInformation
Structure containing parametric information about an axis. These values no longer change...
 
#define MLPI_STRUCT_ALIGN_ULLONG
8 byte unsigned integer, aligned within structs to MLPI data type ULLONG 
 
struct MlpiMotionMoveAbsolute MlpiMotionMoveAbsolute
This structure defines an absolute position move of a single axis. 
 
MLPIRESULT mlpiMotionSynchronOut(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function commands an axis to become unsynchronized. The axis will continue to run with the veloc...
 
MLPIRESULT mlpiMotionWriteCyclicTorque(const MLPIHANDLE connection, const MlpiMotionCyclic *paramSet, const ULONG numElements=1)
This function commands a cyclic torque value. It is possible to give an array to paramSet and to set ...
 
#define MLPI_STRUCT_ALIGN_STRUCT
structure, dummy 
 
wchar_t WCHAR16
UTF16 string. 
 
unsigned int ULONG
4 byte unsigned integer 
 
MlpiProfileExecutionMode
This enumeration defines how the flex profile is executed. 
 
Slave axis position is relatively synchronous with the master position (velocity synchronous). 
 
MLPIRESULT mlpiMotionTorqueControl(const MLPIHANDLE connection, const MlpiMotionTorqueControl *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands a move torque. 
 
Axis will only move in negative direction. 
 
#define MLPI_STRUCT_ALIGN_BOOL8
1 byte boolean, aligned within structs to MLPI data type BOOL8 
 
MlpiControl
This enumeration defines the control that should be addressed. 
 
MLPIRESULT mlpiMotionMoveContinuousAbsolute(const MLPIHANDLE connection, const MlpiMotionMoveContinuousAbsolute *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands a movement to a position where a commanded velocity is reached. Once this position is reached, the axis will continue to run with the commanded velocity until another command is issued. 
 
MLPIRESULT mlpiMotionMoveContinuousRelative(const MLPIHANDLE connection, const MlpiMotionMoveContinuousRelative *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands a movement of a specified relative distance ending with the specified velocity...
 
struct MlpiMotionPower MlpiMotionPower
Structure to command power to an axis. 
 
#define MLPI_STRUCT_ALIGN_ENUM
enumeration, aligned within structs to 32 bit 
 
MLPIRESULT mlpiMotionPhasingSlave(const MLPIHANDLE connection, const MlpiMotionPhasing *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an axis to perform a slave phase offset when the drive is synchronized to the ...
 
struct MlpiMotionCamIn MlpiMotionCamIn
This structure defines a position synchronization of the slave to the master using gear...
 
MLPIRESULT mlpiMotionMoveVelocity(const MLPIHANDLE connection, const MlpiMotionMoveVelocity *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands a velocity movement. Once the commanded velocity had been reached, the axis will continue to run with this velocity until another command is issued. 
 
MLPIRESULT mlpiMotionSetAccelerationLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the bipolar acceleration limit of an axis. 
 
MLPIRESULT mlpiMotionGetModulo(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the modulo value of an axis. 
 
unsigned long long MLPIMOTIONHANDLE
MLPI-API handle value used for motion functions. 
 
#define MLPI_STRUCT_ALIGN_ULONG
4 byte unsigned integer, aligned within structs to MLPI data type ULONG 
 
MlpiProfileMasterType
Enumeration for Flex profile master definition. 
 
MLPIRESULT mlpiMotionGetName(const MLPIHANDLE connection, const MlpiAxisRef axis, WCHAR16 *name, const ULONG numElements)
This function reads the name of the axis. 
 
MLPIRESULT mlpiMotionWriteCyclicAnalog(const MLPIHANDLE connection, const MlpiMotionCyclic *paramSet, const ULONG numElements=1)
This function commands a cyclic analog value. It is possible to give an array to paramSet and to set ...
 
MLPIRESULT mlpiMotionCreateAxis(const MLPIHANDLE connection, const MlpiAxisType axisType, const WCHAR16 *name, const MlpiAxisRef axis, const ULONG deviceAddress)
This function creates an axis. If an axis already exists, it will be overwritten. ...
 
struct MlpiMotionAdminAxisGroup MlpiMotionAdminAxisGroup
This structure defines information for adding and removing an axis to or from a group. 
 
MlpiSyncDirection
This enumeration defines the direction in which synchronization takes place. 
 
MlpiLawType
Enumeration for Flex profile motion laws for segments. 
 
MlpiStartMode
This enumeration defines how the synchronization is done. 
 
MLPIRESULT mlpiMotionLoadDefaultParameters(const MLPIHANDLE connection, const MlpiAxisRef axis)
Load default parameters for the axis. 
 
MLPIRESULT mlpiMotionGearInPos(const MLPIHANDLE connection, const MlpiMotionGearInPos *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands position synchronization to the master. 
 
struct MlpiMotionMoveVelocity MlpiMotionMoveVelocity
This structure defines a velocity move of a single axis. 
 
MLPIRESULT mlpiMotionGetPositionLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the negative position limit of an axis. 
 
Slave axis position ramps to a relatively synchronous position with the master position. 
 
struct MlpiMotionFlexProfile MlpiMotionFlexProfile
This structure defines a position synchronization of the slave to the master using gear...
 
Flex step type with absolute master and slave axis positions. Start and end velocity are taken dynami...
 
MLPIRESULT mlpiMotionGetSlaveDriveFeedTravel(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the feed distance of a following axis. 
 
Synchronize absolute to slave position and relative to current master position. 
 
MLPIRESULT mlpiMotionSetAccelerationScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value)
This function writes to the velocity scaling of an axis. 
 
MLPIRESULT mlpiMotionGetVelocityScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT *value)
This function reads the velocity scaling of an axis. 
 
Synchronize absolute to master position and relative to current slave position. 
 
MLPIRESULT mlpiMotionSetTorqueLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the bipolar torque force limit of an axis. 
 
MLPIRESULT mlpiMotionPhasing(const MLPIHANDLE connection, const MlpiMotionPhasing *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an axis to perform a master phase offset when the drive is synchronized to the...
 
MLPIRESULT mlpiMotionCamIn(const MLPIHANDLE connection, const MlpiMotionCamIn *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands an axis to synchronize to the master by using a cam table. ...
 
struct MlpiAxisValues MlpiAxisValues
Structure containing operation information about an axis. These values do change as soon as the axis ...
 
MLPIRESULT mlpiMotionGetActualPosition(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the actual position of a axis. 
 
MLPIRESULT mlpiMotionGetTorqueLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the positive torque force limit of an axis. 
 
Slave axis position ramps to an absolutely synchronous position with the master position. 
 
MLPIRESULT mlpiMotionGetVelocityLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the negative velocity limit of an axis. 
 
struct MlpiMotionGearIn MlpiMotionGearIn
This structure defines a velocity synchronization of the slave to the master using a gear and fine ad...
 
struct MlpiMotionStop MlpiMotionStop
Structure to command stop to an axis. 
 
MLPIRESULT mlpiMotionGetAccelerationScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT *value)
This function reads the acceleration scaling of an axis. 
 
MlpiAxisType
This enumeration defines the type of axis. 
 
MlpiProfileStartPoint
This enumeration defines the method of how a flex profile interprets the start point. 
 
struct MlpiMotionMoveAdditive MlpiMotionMoveAdditive
This structure defines an additive position move of a single axis. 
 
MLPIRESULT mlpiMotionGetInterpolatedTorque(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the interpolated torque of an axis. If there is no operation mode with torque int...
 
MLPIRESULT mlpiMotionSetTorqueScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value)
This function writes to the torque scaling of an axis. 
 
MLPIRESULT mlpiMotionGetTorqueLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the negative torque force limit of an axis. 
 
struct MlpiMotionMotionProfile MlpiMotionMotionProfile
This structure defines a position synchronization of the slave to the master using gear...
 
MLPIRESULT mlpiMotionSetPositionLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the positive position limit of an axis. 
 
Flex step type with fixed relative hub and range. Start and end velocity are taken dynamically from p...
 
MLPIRESULT mlpiMotionSetVelocityScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value)
This function writes to the velocity scaling of an axis. 
 
struct MlpiMotionMoveContinuousAbsolute MlpiMotionMoveContinuousAbsolute
This structure defines a continuous absolute move of a single axis. 
 
MLPIRESULT mlpiMotionSetPositionLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the negative position limit of an axis. 
 
Axis will only move in negative direction. 
 
double DOUBLE
8 byte floating point 
 
struct MlpiAxisRef MlpiAxisRef
This structure defines the axis through the definition of control and axis number. 
 
MLPIRESULT mlpiMotionAddAxisToGroup(const MLPIHANDLE connection, const MlpiMotionAdminAxisGroup *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function adds an axis to a group. 
 
Virtual axis, no physical drive attached. 
 
MLPIRESULT mlpiMotionGetJerkLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the bipolar jerk limit of an axis. 
 
MLPIRESULT mlpiMotionSetAbsoluteMeasurement(const MLPIHANDLE connection, const MlpiAxisRef axis)
This function commands to "set absolute measurement" of an axis. Only axis with absolute encoders can...
 
MLPIRESULT mlpiMotionGetAxisValues(const MLPIHANDLE connection, MlpiAxisValues *axisValues, const ULONG numElements)
This function fills an array of MlpiAxisValues structures. Use the axis element of the structure to s...
 
Axis will synchronize in the direction in which it has to move the shortest distance. 
 
MLPIRESULT mlpiMotionPower(const MLPIHANDLE connection, const MlpiMotionPower *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands power to the drive. This is only necessary for a real axis. Virtual axis can be moved without giving power to the axis. 
 
#define MLPI_STRUCT_ALIGN_DOUBLE
8 byte floating point, aligned within structs to MLPI data type DOUBLE 
 
unsigned long MLPIHANDLE
common MLPI-API handle value 
 
MLPIRESULT mlpiMotionMoveRelative(const MLPIHANDLE connection, const MlpiMotionMoveRelative *paramSet, MLPIMOTIONHANDLE *motionHandle)
This function commands a relative movement. The relative position is added to the current position an...
 
MLPIRESULT mlpiMotionGetVelocityLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the positive velocity limit of an axis. 
 
MLPIRESULT mlpiMotionGetPositionLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the positive position limit of an axis. 
 
MLPIRESULT mlpiMotionSetSlaveDriveFeedTravel(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes the feed distance of a following axis. 
 
MLPIRESULT mlpiMotionSetModulo(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the modulo value for an axis of an axis. 
 
MLPIRESULT mlpiMotionDestroyAxis(const MLPIHANDLE connection, const MlpiAxisRef axis)
This function destroys an axis. 
 
MlpiCamTableId
This enumeration defines the available cam numbers. The cams actually available depend on the hardwar...
 
MLPIRESULT mlpiMotionHome(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE *motionHandle)
This function commands to home an axis. Only axes with incremental encoders can be homed...
 
Synchronize current point of profile relative to current axis positions to create no slave axis jump...
 
struct MlpiMotionPhasing MlpiMotionPhasing
This structure defines a phase shift of a slave axis that can either be applied to the master positio...
 
int MLPIRESULT
common MLPI-API return value 
 
MLPIRESULT mlpiMotionGetVelocityLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE *value)
This function reads the bipolar velocity limit of an axis. 
 
MLPIRESULT mlpiMotionSetVelocityLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the positive velocity limit of an axis. 
 
Real axis, this is the common axis when doing motion. 
 
MlpiProfileStepType
This enumeration defines the relation between master and slave for each flex profile step...
 
Flex step type with fixed relative hub absolute master axis position. Start and end velocity are take...
 
MLPIRESULT mlpiMotionSetTorqueLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the negative torque force limit of an axis. 
 
MLPIRESULT mlpiMotionGetStateExtended(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG *value)
This function reads the extended state of the axis. 
 
MLPIRESULT mlpiMotionSetTorqueLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value)
This function writes to the positve torque force limit of an axis. 
 
Master is position-based. 
 
MLPIRESULT mlpiMotionGetPositionScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT *value)
This function reads the position scaling of an axis.