Open Core Interface - MLPI
MLPI-MotionLogicProgrammingInterface(mlpi4LabVIEW)  1.26.2
mlpiMotionLib.h
Go to the documentation of this file.
1 #ifndef __MLPIMOTIONLIB_H__
2 #define __MLPIMOTIONLIB_H__
3 
4 // -----------------------------------------------------------------------
5 // MLPI - <mlpiMotionLib.h>
6 // -----------------------------------------------------------------------
7 // Copyright (c) 2013 Bosch Rexroth. All rights reserved.
8 // Redistribution and use in source and binary forms of this MLPI software
9 // (SW) provided to you, with or without modification, are permitted
10 // without prior approval provided that the following conditions are met:
11 //
12 // 1. Redistributions of source code of SW must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 //
15 // 2. Redistributions in binary form of SW must reproduce the above copyright
16 // notice, this list of conditions and the following disclaimer in the
17 // documentation and/or other materials provided with the distribution.
18 //
19 // 3. User recognizes and acknowledges that it acquires no right,
20 // title or interest in or to any of the names or trademarks used in
21 // connection with the SW ("names") by virtue of this License and waives
22 // any right to or interest in the names. User recognizes and acknowledges
23 // that names of companies or names or products of companies displayed
24 // in the documentation of SW to indicate the interoperability of products
25 // with the SW are the names of their respective owners. The use of such
26 // names in the documentation of SW does not imply any sponsorship,
27 // approval, or endorsement by such companies of this product.
28 //
29 // 4. Modified code versions, i.e. any addition to or deletion from
30 // the substance or structure of the original code of the SW running
31 // the MLPI must be plainly marked as such and must not be misrepresented
32 // as being original SW.
33 //
34 // 5. The SW may only be used in connection with a Bosch Rexroth product.
35 //
36 // THIS INFORMATION IS PROVIDED BY BOSCH REXROTH CORPORATION "AS IS"
37 // AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING
38 // (BUT NOTLIMITED TO) ANY IMPLIED WARRANTIES OF MERCHANTABILITY,
39 // FITNESS FOR ANY PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WHILE THE
40 // INFORMATION PROVIDED IS BELIEVED TO BE ACCURATE, IT MAY INCLUDE
41 // ERRORS OR INACCURACIES.
42 // SUBJECT TO COMPULSORY STATUTORY PROVISIONS OF THE GERMAN LAW AS
43 // THE APPLICABLE LAW FOR THIS LICENSE BOSCH REXROTH CORPORATION WILL
44 // NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE OF
45 // THE SOFTWARE DISTRIBUTED HEREUNDER, INCLUDING BUT NOT LIMITED TO
46 // DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, AND CONSEQUENTIAL DAMAGES.
47 // -----------------------------------------------------------------------
48 //
58 //
59 // -----------------------------------------------------------------------
60 
61 
62 
63 
111 
117 
353 
598 
603 
604 
605 
606 // -----------------------------------------------------------------------
607 // GLOBAL INCLUDES
608 // -----------------------------------------------------------------------
609 #include "mlpiGlobal.h"
610 
611 
612 // -----------------------------------------------------------------------
613 // GLOBAL TYPES
614 // -----------------------------------------------------------------------
615 typedef unsigned long long MLPIMOTIONHANDLE;
616 
617 // -----------------------------------------------------------------------
618 // GLOBAL CONSTANTS
619 // -----------------------------------------------------------------------
620 #define MLPI_MOTION_MAX_AXIS_NAME_LEN (80)
621 #define MLPI_MOTION_MAX_UNITS_LEN (16)
622 
625 typedef enum MlpiAxisType
626 {
632 }MlpiAxisType;
633 
639 {
645 
648 typedef enum MlpiSyncDirection
649 {
654 
657 typedef enum MlpiSyncType
658 {
663 }MlpiSyncType;
664 
667 typedef enum MlpiStartMode
668 {
674 
678 {
685 
689 {
696 
700 {
704 
708 {
712 
715 typedef enum MlpiCamTableId
716 {
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
818 
821 typedef enum MlpiLawType
822 {
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,
846 
847  // common polynomials
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,
854 
855  // extended laws
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,
866 
867  // cam tables
868  MLPI_CAMTABLE_1 = 1,
869  MLPI_CAMTABLE_2 = 2,
870  MLPI_CAMTABLE_3 = 3,
871  MLPI_CAMTABLE_4 = 4,
872  MLPI_CAMTABLE_5 = 5,
873  MLPI_CAMTABLE_6 = 6,
874  MLPI_CAMTABLE_7 = 7,
875  MLPI_CAMTABLE_8 = 8,
876  MLPI_CAMTABLE_9 = 9,
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
968 }MlpiLawType;
969 
972 typedef enum MlpiControl
973 {
974  MLPI_LOCAL_CONTROL = 0,
975  MLPI_CONTROL_1 = 1,
976  MLPI_CONTROL_2 = 2,
977  MLPI_CONTROL_3 = 3,
978  MLPI_CONTROL_4 = 4,
979  MLPI_CONTROL_5 = 5,
980  MLPI_CONTROL_6 = 6,
981  MLPI_CONTROL_7 = 7,
982  MLPI_CONTROL_8 = 8,
983  MLPI_CONTROL_9 = 9,
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
1074 }MlpiControl;
1075 
1078 typedef enum MlpiAxisNumber
1079 {
1080  MLPI_NO_OBJECT = 0,
1081  MLPI_AXIS_1 = 1,
1082  MLPI_AXIS_2 = 2,
1083  MLPI_AXIS_3 = 3,
1084  MLPI_AXIS_4 = 4,
1085  MLPI_AXIS_5 = 5,
1086  MLPI_AXIS_6 = 6,
1087  MLPI_AXIS_7 = 7,
1088  MLPI_AXIS_8 = 8,
1089  MLPI_AXIS_9 = 9,
1090  MLPI_AXIS_10 = 10,
1091  MLPI_AXIS_11 = 11,
1092  MLPI_AXIS_12 = 12,
1093  MLPI_AXIS_13 = 13,
1094  MLPI_AXIS_14 = 14,
1095  MLPI_AXIS_15 = 15,
1096  MLPI_AXIS_16 = 16,
1097  MLPI_AXIS_17 = 17,
1098  MLPI_AXIS_18 = 18,
1099  MLPI_AXIS_19 = 19,
1100  MLPI_AXIS_20 = 20,
1101  MLPI_AXIS_21 = 21,
1102  MLPI_AXIS_22 = 22,
1103  MLPI_AXIS_23 = 23,
1104  MLPI_AXIS_24 = 24,
1105  MLPI_AXIS_25 = 25,
1106  MLPI_AXIS_26 = 26,
1107  MLPI_AXIS_27 = 27,
1108  MLPI_AXIS_28 = 28,
1109  MLPI_AXIS_29 = 29,
1110  MLPI_AXIS_30 = 30,
1111  MLPI_AXIS_31 = 31,
1112  MLPI_AXIS_32 = 32,
1113  MLPI_AXIS_33 = 33,
1114  MLPI_AXIS_34 = 34,
1115  MLPI_AXIS_35 = 35,
1116  MLPI_AXIS_36 = 36,
1117  MLPI_AXIS_37 = 37,
1118  MLPI_AXIS_38 = 38,
1119  MLPI_AXIS_39 = 39,
1120  MLPI_AXIS_40 = 40,
1121  MLPI_AXIS_41 = 41,
1122  MLPI_AXIS_42 = 42,
1123  MLPI_AXIS_43 = 43,
1124  MLPI_AXIS_44 = 44,
1125  MLPI_AXIS_45 = 45,
1126  MLPI_AXIS_46 = 46,
1127  MLPI_AXIS_47 = 47,
1128  MLPI_AXIS_48 = 48,
1129  MLPI_AXIS_49 = 49,
1130  MLPI_AXIS_50 = 50,
1131  MLPI_AXIS_51 = 51,
1132  MLPI_AXIS_52 = 52,
1133  MLPI_AXIS_53 = 53,
1134  MLPI_AXIS_54 = 54,
1135  MLPI_AXIS_55 = 55,
1136  MLPI_AXIS_56 = 56,
1137  MLPI_AXIS_57 = 57,
1138  MLPI_AXIS_58 = 58,
1139  MLPI_AXIS_59 = 59,
1140  MLPI_AXIS_60 = 60,
1141  MLPI_AXIS_61 = 61,
1142  MLPI_AXIS_62 = 62,
1143  MLPI_AXIS_63 = 63,
1144  MLPI_AXIS_64 = 64,
1145  MLPI_AXIS_65 = 65,
1146  MLPI_AXIS_66 = 66,
1147  MLPI_AXIS_67 = 67,
1148  MLPI_AXIS_68 = 68,
1149  MLPI_AXIS_69 = 69,
1150  MLPI_AXIS_70 = 70,
1151  MLPI_AXIS_71 = 71,
1152  MLPI_AXIS_72 = 72,
1153  MLPI_AXIS_73 = 73,
1154  MLPI_AXIS_74 = 74,
1155  MLPI_AXIS_75 = 75,
1156  MLPI_AXIS_76 = 76,
1157  MLPI_AXIS_77 = 77,
1158  MLPI_AXIS_78 = 78,
1159  MLPI_AXIS_79 = 79,
1160  MLPI_AXIS_80 = 80,
1161  MLPI_AXIS_81 = 81,
1162  MLPI_AXIS_82 = 82,
1163  MLPI_AXIS_83 = 83,
1164  MLPI_AXIS_84 = 84,
1165  MLPI_AXIS_85 = 85,
1166  MLPI_AXIS_86 = 86,
1167  MLPI_AXIS_87 = 87,
1168  MLPI_AXIS_88 = 88,
1169  MLPI_AXIS_89 = 89,
1170  MLPI_AXIS_90 = 90,
1171  MLPI_AXIS_91 = 91,
1172  MLPI_AXIS_92 = 92,
1173  MLPI_AXIS_93 = 93,
1174  MLPI_AXIS_94 = 94,
1175  MLPI_AXIS_95 = 95,
1176  MLPI_AXIS_96 = 96,
1177  MLPI_AXIS_97 = 97,
1178  MLPI_AXIS_98 = 98,
1179  MLPI_AXIS_99 = 99
1181 
1184 typedef enum MlpiGroupNumber
1185 {
1186  MLPI_NO_GROUP = 0,
1187  MLPI_GROUP_1 = 1,
1188  MLPI_GROUP_2 = 2,
1189  MLPI_GROUP_3 = 3,
1190  MLPI_GROUP_4 = 4,
1191  MLPI_GROUP_5 = 5,
1192  MLPI_GROUP_6 = 6,
1193  MLPI_GROUP_7 = 7,
1194  MLPI_GROUP_8 = 8,
1195  MLPI_GROUP_9 = 9,
1196  MLPI_GROUP_10 = 10,
1197  MLPI_GROUP_11 = 11,
1198  MLPI_GROUP_12 = 12,
1199  MLPI_GROUP_13 = 13,
1200  MLPI_GROUP_14 = 14,
1201  MLPI_GROUP_15 = 15,
1202  MLPI_GROUP_16 = 16
1204 
1205 
1206 // -----------------------------------------------------------------------
1207 // GLOBAL TYPEDEFS
1208 // -----------------------------------------------------------------------
1209 
1210 
1211 // message packing follows 8-byte natural alignment
1212 #if !defined(TARGET_OS_VXWORKS)
1213  #pragma pack(push,8)
1214 #endif
1215 
1216 
1225 typedef struct MlpiAxisRef
1226 {
1227  MlpiAxisRef()
1228  : controlNo(MLPI_LOCAL_CONTROL)
1229  , axisNo(MLPI_NO_OBJECT)
1230  {}
1231  MlpiAxisRef(MlpiAxisNumber axisNo)
1232  : controlNo(MLPI_LOCAL_CONTROL)
1233  , axisNo(axisNo)
1234  {}
1235  MlpiAxisRef(ULONG axisNo)
1236  : controlNo(MLPI_LOCAL_CONTROL)
1237  , axisNo(static_cast<MlpiAxisNumber>(axisNo))
1238  {}
1239  MlpiAxisRef(MlpiControl controlNo, MlpiAxisNumber axisNo)
1240  : controlNo(controlNo)
1241  , axisNo(axisNo)
1242  {}
1243 
1244  MlpiControl controlNo;
1245  MlpiAxisNumber axisNo;
1246 }MlpiAxisRef;
1247 
1256 typedef struct MlpiGroupRef
1257 {
1258  MlpiGroupRef()
1259  : controlNo(MLPI_LOCAL_CONTROL)
1260  , groupNo(MLPI_NO_GROUP)
1261  {}
1262  MlpiGroupRef(MlpiGroupNumber groupNo)
1263  : controlNo(MLPI_LOCAL_CONTROL)
1264  , groupNo(groupNo)
1265  {}
1266  MlpiGroupRef(ULONG groupNo)
1267  : controlNo(MLPI_LOCAL_CONTROL)
1268  , groupNo(static_cast<MlpiGroupNumber>(groupNo))
1269  {}
1270  MlpiGroupRef(MlpiControl controlNo, MlpiGroupNumber groupNo)
1271  : controlNo(controlNo)
1272  , groupNo(groupNo)
1273  {}
1274 
1275  MlpiControl controlNo;
1276  MlpiGroupNumber groupNo;
1277 }MlpiGroupRef;
1278 
1279 
1294 typedef struct MlpiMotionStatus
1295 {
1296  BOOL8 done;
1297  BOOL8 active;
1298  BOOL8 aborted;
1299  BOOL8 error;
1300  USHORT errorID;
1301  USHORT table;
1302  ULONG additional1;
1303  ULONG additional2;
1305 
1306 
1317 typedef struct MlpiAxisInformation
1318 {
1319  MlpiAxisRef axis;
1320  ULONG deviceAddress;
1321  MlpiAxisType axisType;
1322  WCHAR16 name[MLPI_MOTION_MAX_AXIS_NAME_LEN];
1324 
1343 typedef struct MlpiAxisValues
1344 {
1345  // Input Parameters
1346  MlpiAxisRef axis;
1347 
1348  // Output Parameters:
1349  DOUBLE actualPosition;
1350  DOUBLE actualVelocity;
1351  DOUBLE actualAcceleration;
1352  DOUBLE actualTorque;
1353  ULONG state;
1354  ULONG stateExtended;
1355  ULONG diagnosisNumber;
1356  ULONG condition;
1358 
1372 typedef struct MlpiAxisUnits
1373 {
1374  // Input Parameters
1375  MlpiAxisRef axis;
1376 
1377  // Output Parameters:
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];
1383 }MlpiAxisUnits;
1384 
1397 typedef struct MlpiAxisStatus
1398 {
1399  // Input Parameters
1401 
1402  // Output Parameters:
1404  ULONG MLPI_STRUCT_ALIGN_ULONG stateExtended;
1405  ULONG MLPI_STRUCT_ALIGN_ULONG diagnosisNumber;
1406  ULONG MLPI_STRUCT_ALIGN_ULONG condition;
1408 
1422 typedef struct MlpiMotionStop
1423 {
1424  MlpiAxisRef axis;
1425  DOUBLE deceleration;
1426  DOUBLE jerk;
1427  BOOL8 stop;
1432 
1441 typedef struct MlpiMotionPower
1442 {
1443  MlpiAxisRef axis;
1444  BOOL8 power;
1446 
1459 typedef struct MlpiMotionGearIn
1460 {
1461  MlpiAxisRef axis;
1462  ULONG numerator;
1463  ULONG denominator;
1464  DOUBLE fineadjust;
1465  MlpiAxisRef master;
1467 
1482 typedef struct MlpiMotionGearInPos
1483 {
1484  MlpiAxisRef axis;
1485  ULONG numerator;
1486  ULONG denominator;
1487  DOUBLE fineadjust;
1488  MlpiStartMode startMode;
1489  MlpiSyncDirection syncMode;
1490  MlpiAxisRef master;
1492 
1509 typedef struct MlpiMotionCamIn
1510 {
1511  MlpiAxisRef axis;
1512  ULONG numerator;
1513  ULONG denominator;
1514  DOUBLE fineadjust;
1515  DOUBLE camShaftDistance;
1516  MlpiStartMode startMode;
1517  MlpiSyncDirection syncMode;
1518  MlpiCamTableId camTable;
1519  MlpiAxisRef master;
1521 
1538 typedef struct MlpiMotionMotionProfile
1539 {
1540  MlpiAxisRef axis;
1541  ULONG numerator;
1542  ULONG denominator;
1543  DOUBLE fineadjust;
1544  BOOL8 relativePositioning;
1545  MlpiProfileSetSelection setSelection;
1546  MlpiStartMode startMode;
1547  MlpiSyncDirection syncMode;
1548  MlpiAxisRef master;
1550 
1572 typedef struct MlpiMotionFlexProfileStep
1573 {
1575  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE camShaftDistance;
1577 
1580 
1581  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE startVel;
1582  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE startAcc;
1583  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE startJrk;
1584 
1588 
1589  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE travelVel;
1590  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE limitAcc;
1591  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE limitJrk;
1592 
1593  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE turningPointDisplacement;
1595 
1619 typedef struct MlpiMotionFlexProfile
1620 {
1622  ULONG MLPI_STRUCT_ALIGN_ULONG numerator;
1623  ULONG MLPI_STRUCT_ALIGN_ULONG denominator;
1624  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE fineadjust;
1626  BOOL8 MLPI_STRUCT_ALIGN_BOOL8 useSwitchingPositioning;
1627  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE switchingPosition;
1629  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE masterOffset;
1630  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE slaveOffset;
1632  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE syncVelocity;
1633  DOUBLE MLPI_STRUCT_ALIGN_DOUBLE syncAcceleration;
1637 
1649 typedef struct MlpiMotionMoveVelocity
1650 {
1651  MlpiAxisRef axis;
1652  DOUBLE velocity;
1653  DOUBLE acceleration;
1654  DOUBLE deceleration;
1655  DOUBLE jerk;
1657 
1670 typedef struct MlpiMotionPhasing
1671 {
1672  MlpiAxisRef axis;
1673  DOUBLE phaseShift;
1674  DOUBLE velocity;
1675  DOUBLE acceleration;
1676  DOUBLE deceleration;
1678 
1691 typedef struct MlpiMotionMoveAbsolute
1692 {
1693  MlpiAxisRef axis;
1694  DOUBLE position;
1695  DOUBLE velocity;
1696  DOUBLE acceleration;
1697  DOUBLE deceleration;
1698  DOUBLE jerk;
1700 
1714 typedef struct MlpiMotionMoveContinuousAbsolute
1715 {
1716  MlpiAxisRef axis;
1717  DOUBLE position;
1718  DOUBLE endVelocity;
1719  DOUBLE velocity;
1720  DOUBLE acceleration;
1721  DOUBLE deceleration;
1722  DOUBLE jerk;
1724 
1738 typedef struct MlpiMotionMoveContinuousRelative
1739 {
1740  MlpiAxisRef axis;
1741  DOUBLE distance;
1742  DOUBLE endVelocity;
1743  DOUBLE velocity;
1744  DOUBLE acceleration;
1745  DOUBLE deceleration;
1746  DOUBLE jerk;
1748 
1761 typedef struct MlpiMotionMoveRelative
1762 {
1763  MlpiAxisRef axis;
1764  DOUBLE distance;
1765  DOUBLE velocity;
1766  DOUBLE acceleration;
1767  DOUBLE deceleration;
1768  DOUBLE jerk;
1770 
1783 typedef struct MlpiMotionMoveAdditive
1784 {
1785  MlpiAxisRef axis;
1786  DOUBLE distance;
1787  DOUBLE velocity;
1788  DOUBLE acceleration;
1789  DOUBLE deceleration;
1790  DOUBLE jerk;
1792 
1801 typedef struct MlpiMotionAdminAxisGroup
1802 {
1803  MlpiAxisRef axis;
1804  MlpiGroupRef group;
1806 
1816 typedef struct MlpiMotionTorqueControl
1817 {
1818  MlpiAxisRef axis;
1819  DOUBLE torque;
1820  DOUBLE torqueRamp;
1822 
1832 typedef struct MlpiMotionCyclic
1833 {
1834  MlpiAxisRef axis;
1835  DOUBLE cyclicValue;
1837 
1838 #if !defined(TARGET_OS_VXWORKS)
1839  #pragma pack(pop)
1840 #endif
1841 
1843 
1844 
1845 // -----------------------------------------------------------------------
1846 // GLOBAL EXPORTS
1847 // -----------------------------------------------------------------------
1848 #ifdef MLPI_API
1849  #undef MLPI_API
1850 #endif
1851 
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)
1857  #else
1858  #define MLPI_API
1859  #endif
1860 #else
1861  #if defined(MLPI_EXPORTS)
1862  #define MLPI_API __attribute__ ((visibility("default")))
1863  #elif defined(MLPI_IMPORTS)
1864  #define MLPI_API
1865  #else
1866  #define MLPI_API
1867  #endif
1868 #endif
1869 
1870 
1871 #ifdef __cplusplus
1872 extern "C" {
1873 #endif
1874 
1875 
1883 MLPI_API MLPIRESULT mlpiMotionGetStatus(const MLPIHANDLE connection, const MlpiAxisRef axis, const MLPIMOTIONHANDLE motionHandle, MlpiMotionStatus* status);
1884 
1885 
1896 MLPI_API MLPIRESULT mlpiMotionPower(const MLPIHANDLE connection, const MlpiMotionPower* paramSet, MLPIMOTIONHANDLE* motionHandle);
1897 
1898 
1910 MLPI_API MLPIRESULT mlpiMotionStop(const MLPIHANDLE connection, const MlpiMotionStop* paramSet, MLPIMOTIONHANDLE* motionHandle);
1911 
1912 
1937 MLPI_API MLPIRESULT mlpiMotionHome(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
1938 
1939 
1949 MLPI_API MLPIRESULT mlpiMotionSetAbsoluteMeasurement(const MLPIHANDLE connection, const MlpiAxisRef axis);
1950 
1951 
1998 MLPI_API MLPIRESULT mlpiMotionChangeFlexProfileSet(const MLPIHANDLE connection, const MlpiAxisRef axis, const MlpiMotionFlexProfileStep* paramSet, const ULONG numElements, const DOUBLE masterVel, const MlpiProfileSetSelection set);
1999 
2000 
2011 MLPI_API MLPIRESULT mlpiMotionMoveVelocity(const MLPIHANDLE connection, const MlpiMotionMoveVelocity* paramSet, MLPIMOTIONHANDLE* motionHandle);
2012 
2013 
2044 MLPI_API MLPIRESULT mlpiMotionMoveContinuousAbsolute(const MLPIHANDLE connection, const MlpiMotionMoveContinuousAbsolute* paramSet, MLPIMOTIONHANDLE* motionHandle);
2045 
2046 
2077 MLPI_API MLPIRESULT mlpiMotionMoveContinuousRelative(const MLPIHANDLE connection, const MlpiMotionMoveContinuousRelative* paramSet, MLPIMOTIONHANDLE* motionHandle);
2078 
2089 MLPI_API MLPIRESULT mlpiMotionMoveAbsolute(const MLPIHANDLE connection, const MlpiMotionMoveAbsolute* paramSet, MLPIMOTIONHANDLE* motionHandle);
2090 
2091 
2122 MLPI_API MLPIRESULT mlpiMotionMoveAdditive(const MLPIHANDLE connection, const MlpiMotionMoveAdditive* paramSet, MLPIMOTIONHANDLE* motionHandle);
2123 
2124 
2157 MLPI_API MLPIRESULT mlpiMotionMoveRelative(const MLPIHANDLE connection, const MlpiMotionMoveRelative* paramSet, MLPIMOTIONHANDLE* motionHandle);
2158 
2159 
2166 MLPI_API MLPIRESULT mlpiMotionTorqueControl(const MLPIHANDLE connection, const MlpiMotionTorqueControl* paramSet, MLPIMOTIONHANDLE* motionHandle);
2167 
2168 
2181 
2188 MLPI_API MLPIRESULT mlpiMotionOpenCyclicPositionChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2189 
2190 
2197 MLPI_API MLPIRESULT mlpiMotionOpenCyclicVelocityChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2198 
2199 
2206 MLPI_API MLPIRESULT mlpiMotionOpenCyclicAnalogChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2207 
2208 
2215 MLPI_API MLPIRESULT mlpiMotionOpenCyclicTorqueChannel(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2216 
2217 
2225 MLPI_API MLPIRESULT mlpiMotionWriteCyclicPosition(const MLPIHANDLE connection, const MlpiMotionCyclic* paramSet, const ULONG numElements=1);
2226 
2227 
2235 MLPI_API MLPIRESULT mlpiMotionWriteCyclicVelocity(const MLPIHANDLE connection, const MlpiMotionCyclic* paramSet, const ULONG numElements=1);
2236 
2237 
2245 MLPI_API MLPIRESULT mlpiMotionWriteCyclicAnalog(const MLPIHANDLE connection, const MlpiMotionCyclic* paramSet, const ULONG numElements=1);
2246 
2247 
2255 MLPI_API MLPIRESULT mlpiMotionWriteCyclicTorque(const MLPIHANDLE connection, const MlpiMotionCyclic* paramSet, const ULONG numElements=1);
2256 
2257 
2264 MLPI_API MLPIRESULT mlpiMotionControlOn(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2265 
2266 
2273 MLPI_API MLPIRESULT mlpiMotionControlOff(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2274 
2275 
2282 MLPI_API MLPIRESULT mlpiMotionAddAxisToGroup(const MLPIHANDLE connection, const MlpiMotionAdminAxisGroup* paramSet, MLPIMOTIONHANDLE* motionHandle);
2283 
2284 
2291 MLPI_API MLPIRESULT mlpiMotionRemAxisFromGroup(const MLPIHANDLE connection, const MlpiMotionAdminAxisGroup* paramSet, MLPIMOTIONHANDLE* motionHandle);
2292 
2293 
2318 MLPI_API MLPIRESULT mlpiMotionGearIn(const MLPIHANDLE connection, const MlpiMotionGearIn* paramSet, MLPIMOTIONHANDLE* motionHandle);
2319 
2320 
2350 MLPI_API MLPIRESULT mlpiMotionGearInPos(const MLPIHANDLE connection, const MlpiMotionGearInPos* paramSet, MLPIMOTIONHANDLE* motionHandle);
2351 
2352 
2359 MLPI_API MLPIRESULT mlpiMotionCamIn(const MLPIHANDLE connection, const MlpiMotionCamIn* paramSet, MLPIMOTIONHANDLE* motionHandle);
2360 
2361 
2369 MLPI_API MLPIRESULT mlpiMotionMotionProfile(const MLPIHANDLE connection, const MlpiMotionMotionProfile* paramSet, MLPIMOTIONHANDLE* motionHandle);
2370 
2371 
2413 MLPI_API MLPIRESULT mlpiMotionFlexProfile(const MLPIHANDLE connection, const MlpiMotionFlexProfile* paramSet, MLPIMOTIONHANDLE* motionHandle);
2414 
2415 
2441 MLPI_API MLPIRESULT mlpiMotionSynchronOut(const MLPIHANDLE connection, const MlpiAxisRef axis, MLPIMOTIONHANDLE* motionHandle);
2442 
2443 
2472 MLPI_API MLPIRESULT mlpiMotionPhasing(const MLPIHANDLE connection, const MlpiMotionPhasing* paramSet, MLPIMOTIONHANDLE* motionHandle);
2473 
2474 
2503 MLPI_API MLPIRESULT mlpiMotionPhasingSlave(const MLPIHANDLE connection, const MlpiMotionPhasing* paramSet, MLPIMOTIONHANDLE* motionHandle);
2504 
2505 
2543 MLPI_API MLPIRESULT mlpiMotionGetConfiguredAxes(const MLPIHANDLE connection, MlpiAxisInformation* configAxes, const ULONG numElements, ULONG *numElementsRet);
2544 
2545 
2620 MLPI_API MLPIRESULT mlpiMotionGetAxisValues(const MLPIHANDLE connection, MlpiAxisValues* axisValues, const ULONG numElements);
2621 
2622 
2634 MLPI_API MLPIRESULT mlpiMotionGetAxisUnits(const MLPIHANDLE connection, MlpiAxisUnits* axisUnits, const ULONG numElements);
2635 
2696 MLPI_API MLPIRESULT mlpiMotionGetAxisStatus(const MLPIHANDLE connection, MlpiAxisStatus* axisStatus, const ULONG numElements);
2697 
2706 MLPI_API MLPIRESULT mlpiMotionCreateAxis(const MLPIHANDLE connection, const MlpiAxisType axisType, const WCHAR16* name, const MlpiAxisRef axis, const ULONG deviceAddress);
2707 
2708 
2714 MLPI_API MLPIRESULT mlpiMotionDestroyAxis(const MLPIHANDLE connection, const MlpiAxisRef axis);
2715 
2716 
2736 MLPI_API MLPIRESULT mlpiMotionGetActualPosition(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2737 
2738 
2758 MLPI_API MLPIRESULT mlpiMotionGetActualVelocity(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2759 
2760 
2780 MLPI_API MLPIRESULT mlpiMotionGetActualAcceleration(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2781 
2782 
2802 MLPI_API MLPIRESULT mlpiMotionGetActualTorque(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2803 
2804 
2828 MLPI_API MLPIRESULT mlpiMotionGetInterpolatedPosition(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2829 
2830 
2855 MLPI_API MLPIRESULT mlpiMotionGetInterpolatedVelocity(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2856 
2857 
2879 MLPI_API MLPIRESULT mlpiMotionGetInterpolatedTorque(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2880 
2881 
2901 MLPI_API MLPIRESULT mlpiMotionGetPositionLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2902 
2903 
2923 MLPI_API MLPIRESULT mlpiMotionSetPositionLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
2924 
2925 
2945 MLPI_API MLPIRESULT mlpiMotionGetPositionLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2946 
2947 
2967 MLPI_API MLPIRESULT mlpiMotionSetPositionLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
2968 
2969 
2989 MLPI_API MLPIRESULT mlpiMotionGetVelocityLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
2990 
2991 
3011 MLPI_API MLPIRESULT mlpiMotionSetVelocityLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3012 
3013 
3033 MLPI_API MLPIRESULT mlpiMotionGetVelocityLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3034 
3035 
3055 MLPI_API MLPIRESULT mlpiMotionSetVelocityLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3056 
3057 
3077 MLPI_API MLPIRESULT mlpiMotionGetVelocityLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3078 
3079 
3099 MLPI_API MLPIRESULT mlpiMotionSetVelocityLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3100 
3101 
3121 MLPI_API MLPIRESULT mlpiMotionGetAccelerationLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3122 
3123 
3143 MLPI_API MLPIRESULT mlpiMotionSetAccelerationLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3144 
3145 
3165 MLPI_API MLPIRESULT mlpiMotionGetJerkLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3166 
3167 
3187 MLPI_API MLPIRESULT mlpiMotionSetJerkLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3188 
3189 
3209 MLPI_API MLPIRESULT mlpiMotionGetTorqueLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3210 
3211 
3231 MLPI_API MLPIRESULT mlpiMotionSetTorqueLimitBip(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3232 
3233 
3253 MLPI_API MLPIRESULT mlpiMotionGetTorqueLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3254 
3255 
3275 MLPI_API MLPIRESULT mlpiMotionSetTorqueLimitPos(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3276 
3277 
3297 MLPI_API MLPIRESULT mlpiMotionGetTorqueLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3298 
3299 
3319 MLPI_API MLPIRESULT mlpiMotionSetTorqueLimitNeg(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3320 
3321 
3328 MLPI_API MLPIRESULT mlpiMotionGetPositionScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT* value);
3329 
3330 
3347 MLPI_API MLPIRESULT mlpiMotionSetPositionScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value);
3348 
3349 
3356 MLPI_API MLPIRESULT mlpiMotionGetVelocityScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT* value);
3357 
3358 
3375 MLPI_API MLPIRESULT mlpiMotionSetVelocityScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value);
3376 
3377 
3384 MLPI_API MLPIRESULT mlpiMotionGetAccelerationScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT* value);
3385 
3386 
3403 MLPI_API MLPIRESULT mlpiMotionSetAccelerationScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value);
3404 
3405 
3412 MLPI_API MLPIRESULT mlpiMotionGetTorqueScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT* value);
3413 
3414 
3431 MLPI_API MLPIRESULT mlpiMotionSetTorqueScaling(const MLPIHANDLE connection, const MlpiAxisRef axis, const USHORT value);
3432 
3433 
3453 MLPI_API MLPIRESULT mlpiMotionGetModulo(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3454 
3455 
3475 MLPI_API MLPIRESULT mlpiMotionSetModulo(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3476 
3477 
3497 MLPI_API MLPIRESULT mlpiMotionGetSlaveDriveFeedTravel(const MLPIHANDLE connection, const MlpiAxisRef axis, DOUBLE* value);
3498 
3499 
3519 MLPI_API MLPIRESULT mlpiMotionSetSlaveDriveFeedTravel(const MLPIHANDLE connection, const MlpiAxisRef axis, const DOUBLE value);
3520 
3521 
3571 MLPI_API MLPIRESULT mlpiMotionGetState(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG* value);
3572 
3573 
3611 MLPI_API MLPIRESULT mlpiMotionGetStateExtended(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG* value);
3612 
3613 
3633 MLPI_API MLPIRESULT mlpiMotionGetDiagnosisNumber(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG* number);
3634 
3635 
3656 MLPI_API MLPIRESULT mlpiMotionGetDiagnosisText(const MLPIHANDLE connection, const MlpiAxisRef axis, WCHAR16* buffer, const ULONG numElements);
3657 
3658 
3679 MLPI_API MLPIRESULT mlpiMotionGetName(const MLPIHANDLE connection, const MlpiAxisRef axis, WCHAR16* name, const ULONG numElements);
3680 
3681 
3698 MLPI_API MLPIRESULT mlpiMotionSetName(const MLPIHANDLE connection, const MlpiAxisRef axis, const WCHAR16* name);
3699 
3700 
3741 MLPI_API MLPIRESULT mlpiMotionGetAxisType(const MLPIHANDLE connection, const MlpiAxisRef axis, USHORT* type);
3742 
3743 
3770 MLPI_API MLPIRESULT mlpiMotionGetCondition(const MLPIHANDLE connection, const MlpiAxisRef axis, ULONG* value);
3771 
3772 
3789 MLPI_API MLPIRESULT mlpiMotionSetCondition(const MLPIHANDLE connection, const MlpiAxisRef axis, const ULONG value);
3790 
3791 
3818 MLPI_API MLPIRESULT mlpiMotionLoadDefaultParameters(const MLPIHANDLE connection, const MlpiAxisRef axis);
3819 
3820 
3837 MLPI_API MLPIRESULT mlpiMotionClearError(const MLPIHANDLE connection, const MlpiAxisRef axis);
3838 
3839 
3840 
3841 #ifdef __cplusplus
3842 }
3843 #endif
3844 
3845 
3846 
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
Definition: mlpiGlobal.h:200
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
Definition: mlpiGlobal.h:171
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
Definition: mlpiGlobal.h:158
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
Definition: mlpiGlobal.h:162
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...
A link ring axis.
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...
Set 2 on axis.
#define MLPI_STRUCT_ALIGN_ULLONG
8 byte unsigned integer, aligned within structs to MLPI data type ULLONG
Definition: mlpiGlobal.h:297
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
Definition: mlpiGlobal.h:306
wchar_t WCHAR16
UTF16 string.
Definition: mlpiGlobal.h:193
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
Definition: mlpiGlobal.h:287
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
Definition: mlpiGlobal.h:302
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
Definition: mlpiGlobal.h:296
MlpiProfileMasterType
Enumeration for Flex profile master definition.
Set 3 on axis.
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.
Cyclic execution.
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.
Set 0 on 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.
Master is time-based.
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.
No sync at all.
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
Definition: mlpiGlobal.h:168
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
Definition: mlpiGlobal.h:177
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
Definition: mlpiGlobal.h:300
unsigned long MLPIHANDLE
common MLPI-API handle value
Definition: mlpiGlobal.h:206
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.
Set 1 on 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.