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.
long MLPIRESULT
common MLPI-API return value
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.
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.
unsigned long ULONG
4 byte unsigned integer
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...
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.