The RMP Motion Controller APIs
AxisMovePT.sq
1
2// constants
3uint32 AXIS = 0;
4uint64 POINT_COUNT = 50;
5int32 int32POINT_COUNT = POINT_COUNT;
6double TIME_SLICE = 0.001;
7string START_POSITIONS = "start";
8string MIDDLE_POSITIONS = "middle";
9string FINAL_POSITIONS = "final";
10string TIMES = "times";
11
12void main()
13{
14 MakeArrays();
15 Move();
16 DestroyArrays();
17 print("Exit ok");
18}
19
20void Move()
21{
22 enum motionType = 0; // RSIMotionTypePT (from rsiEnums.h)
23
24 AxisAbort(AXIS);
25 AxisClearFaults(AXIS);
26 AxisAmpEnableSet(AXIS, true);
27 AxisPositionSet(AXIS, 0);
28
29 AxisMovePT(AXIS, motionType, START_POSITIONS, TIMES, int32POINT_COUNT, -1, false, false);
30 AxisMovePT(AXIS, motionType, MIDDLE_POSITIONS, TIMES, int32POINT_COUNT, -1, false, false);
31 AxisMovePT(AXIS, motionType, FINAL_POSITIONS, TIMES, int32POINT_COUNT, -1, false, true);
32 AxisMotionDoneWait(AXIS);
33}
34
35void MakeArrays()
36{
37 array_create(START_POSITIONS, POINT_COUNT);
38 array_create(MIDDLE_POSITIONS, POINT_COUNT);
39 array_create(FINAL_POSITIONS, POINT_COUNT);
40 array_create(TIMES, POINT_COUNT);
41
42 double start_first = 0.0;
43 double middle_first = start_first + POINT_COUNT;
44 double final_first = middle_first + POINT_COUNT;
45
46 for(uint64 i = 0; i < POINT_COUNT; ++i)
47 {
48 array_set(TIMES, i, TIME_SLICE);
49 array_set(START_POSITIONS, i, start_first + i);
50 array_set(MIDDLE_POSITIONS, i, middle_first + i);
51 array_set(FINAL_POSITIONS, i, final_first + i);
52 }
53}
54
55void DestroyArrays()
56{
57 array_destroy(START_POSITIONS);
58 array_destroy(MIDDLE_POSITIONS);
59 array_destroy(FINAL_POSITIONS);
60 array_destroy(TIMES);
61}
62