FEDRA emulsion software from the OPERA Collaboration
Flexmotn.h
Go to the documentation of this file.
1 /********************************************************************/
2 /* FLEXMOTN.H */
3 /* Include File for FlexMotion32.dll */
4 /* */
5 /* Written by the Motion Control Development Team */
6 /* COPYRIGHT 1997-2000 National Instruments All Rights Reserved. */
7 /********************************************************************/
8 // A few notes about the structure of commands
9 // Commands have many arguments in common, for instance:
10 
11 // boardID: In DOS, this is simply the board address. In a DLL,
12 // this will be a number from 1 to 32. In 16 bit environment this will
13 // tell the DLL which record in the <nimotion.cfg> file to search for
14 // the hex address of the board, as well as any other parameters needed.
15 // In 32 bit environment this information is obtained from the registry.
16 
17 // resource\axis\vectorSpace\Encoder: The device number tells the board exactly
18 // which resource\axis\vectorSpace\Encoder ... you are trying to control or read.
19 // The resource numbers are listed in the function reference manual.
20 
21 // inputVector: The Input Vector argument tells the board where you want the
22 // input data values to the command to come from. For instance, the load_target_pos()
23 // function could have an inpvect of 0xFF (if the data is being sent from the host computer)
24 // or 0x03 (if the data is to be read from the general purpose variable 3).
25 // See the FlexMotion user manual for more information on input
26 // vectors and general purpose variables.
27 
28 // returnVector: The returnVector tells the board where you would like the results of
29 // the operation to be sent, (ie. returned to the host or sent to a general
30 // purpose variable. This is only used on read commands and the flex_wait()
31 // function.
32 
33 // All other arguments are specific to each command, and should be referred
34 // to in the manual.
35 
36 // The read commands are given in two different styles: with or without
37 // the _rtn suffix. The functions without the _rtn suffix do not return
38 // any value to the application that calls them, in fact they don't return data
39 // to the host application at all unless given the returnVector of 0xFF. The value
40 // must be read explicitly by a separate execution of the flex_communicate command.
41 // The read commands that have the _rtn suffix are expecting a valid pointer
42 // to where you would like the data returned. These routines do in fact wait
43 // for the board to respond with data before returning to the calling
44 // application.
45 
46 // Errors: There are two forms of errors returned:
47 // 1) Non Modal: These are returned by the DLL in the return value of
48 // each function. These are usually serious errors like
49 // communication errors.
50 // 2) Modal:These errors are returned by the board after the it gets the command.
51 // These errors can be read using the flex_read_error_msg_rtn command. It
52 // returns the command ID which caused the error, the device ID and the error
53 // code.
54 // For Error Codes and Command IDs refer to errors.doc and commands.doc respectively.
55 
56 
57 #ifndef ___FlexMotn_h___
58 #define ___FlexMotn_h___
59 
60 
61 #ifdef WIN32
62  #ifndef _WINDOWS
63  #define _WINDOWS
64  #endif
65 #endif
66 
67 #ifdef _Windows
68  #define _WINDOWS //For Borland C++ Ver5.0 Support
69 #endif
70 
71 #ifdef _WINDOWS
72  #include <windows.h>
73 #endif
74 
75 
76 #ifdef __cplusplus
77  extern "C"{
78 #endif
79 
80 #include "motncnst.h"
81 #include "MotnErr.h"
82 
83 #define MAXBOARDS 0x20 //32 boards allowed in this version of the DLL
84 
85 
86 //Function Prototypes For flexmotion32.dll
87 #ifdef WIN32
88  #define FLEXFUNC __declspec(dllexport) APIENTRY
89  #define PCFUNC __declspec(dllimport) APIENTRY
90 #else
91  #define FLEXFUNC i32
92  #define FAR
93 #endif
94 
95 #define BOARD u8 boardID
96 #define BOARDID boardID
97 
98 
99 
100 // PID is the structure passed to flex_load_loop_params() function
101 // (PID and PIVFF parameters)
102 typedef struct{
111 } PID;
112 
113 // REGISTRY is the structure passed to flex_read_registry() function in order to
114 // return info about the object registry entry.
115 typedef struct{
121 
122 
123 // The Initialization function
125 
127 // Axis & Resource Configuration Functions
129 
130 //Configure Axis Resources
131 FLEXFUNC flex_config_axis(BOARD, u8 axis, u8 primaryFeedback, u8 secondaryFeedback,
132  u8 primaryOutput, u8 secondaryOutput);
133 
134 //Configure Move Complete Status Criteria
135 FLEXFUNC flex_config_mc_criteria(BOARD, u8 axis, u16 criteria, u16 deadband, u8 delay,
136  u8 minPulse);
137 
138 //Configure Step Mode & Polarity
139 FLEXFUNC flex_config_step_mode_pol(BOARD, u8 axisOrStepperOutput, u16 modeAndPolarityMap);
140 
141 //Configure Vector Space
142 FLEXFUNC flex_config_vect_spc(BOARD, u8 vectorSpace, u8 xAxis, u8 yAxis, u8 zAxis);
143 
144 //Enable Axes
145 FLEXFUNC flex_enable_axes(BOARD, u8 reserved, u8 PIDRate, u8 axisMap);
146 
147 // Load Counts/Steps per Revolution
148 FLEXFUNC flex_load_counts_steps_rev(BOARD, u8 axisOrEncoder, u16 unitType, u32 countsOrSteps);
149 
150 //Load All PID Parameters
151 FLEXFUNC flex_load_pid_parameters(BOARD, u8 axis, PID FAR *PIDValues, u8 inputVector);
152 
153 // Load Single PID Parameter
154 FLEXFUNC flex_load_single_pid_parameter(BOARD, u8 axis, u16 parameterType, u16 PIDValue, u8 inputVector);
155 
156 //Load Velocity Filter Time Constant & Run/Stop Threshold
157 FLEXFUNC flex_load_vel_tc_rs(BOARD, u8 axis, u16 filterTime, u16 runStopThreshold, u8 inputVector);
158 
159 //Set Stepper Loop Mode
161 
162 
164 // Trajectory Functions
166 
167 // Load Acceleraton
168 FLEXFUNC flex_load_acceleration(BOARD, u8 axisOrVectorSpace, u16 accelerationType, u32 acceleration, u8 inputVector);
169 
170 //Load Following Error
171 FLEXFUNC flex_load_follow_err(BOARD, u8 axis, u16 followingError, u8 inputVector);
172 
173 //Load Velocity in RPM
174 FLEXFUNC flex_load_rpm(BOARD, u8 axisOrVectorSpace, f64 RPM, u8 inputVector);
175 
176 // Load Acceleration in RPS/sec
177 FLEXFUNC flex_load_rpsps(BOARD, u8 axisOrVectorSpace, u16 accelerationType, f64 RPSPS, u8 inputVector);
178 
179 //Load Target Position
180 FLEXFUNC flex_load_target_pos(BOARD, u8 axis, i32 targetPosition, u8 inputVector);
181 
182 //Load Velocity
183 FLEXFUNC flex_load_velocity(BOARD, u8 axisOrVectorSpace, i32 velocity, u8 inputVector);
184 
185 //Load Vector Space Position
186 FLEXFUNC flex_load_vs_pos (BOARD, u8 vectorSpace, i32 xPosition, i32 yPosition, i32 zPosition, u8 inputVector);
187 
188 //Read per Axis Status
189 FLEXFUNC flex_read_axis_status(BOARD, u8 axis, u8 returnVector);
190 //Read per Axis Status
192 
193 //Read Blend Status
194 FLEXFUNC flex_read_blend_status(BOARD, u8 axisOrVectorSpace, u8 returnVector);
195 //Read Blend Status
196 FLEXFUNC flex_read_blend_status_rtn(BOARD, u8 axisOrVectorSpace, u16 FAR *blendStatus);
197 
198 //Read Following Error
199 FLEXFUNC flex_read_follow_err(BOARD, u8 axisOrVectorSpace, u8 returnVector);
200 //Read Following Error
201 FLEXFUNC flex_read_follow_err_rtn(BOARD, u8 axisOrVectorSpace, i16 FAR *followingError);
202 
203 //Read Motion Complete Status
204 FLEXFUNC flex_read_mcs_rtn(BOARD, u16 FAR *moveCompleteStatus);
205 
206 //Read Position
207 FLEXFUNC flex_read_pos(BOARD, u8 axis, u8 returnVector);
208 //Read Position
210 
211 //Read Velocity in RPM
212 //The data is returned in "IEEE f64" format and has to be converted appropriately.
213 FLEXFUNC flex_read_rpm(BOARD, u8 axisOrVectorSpace, u8 returnVector);
214 //Read Velocity in RPM
215 //The data is returned in "IEEE f64" format and is converted in the DLL.
216 FLEXFUNC flex_read_rpm_rtn(BOARD, u8 axisOrVectorSpace, f64 FAR *RPM);
217 
218 // Read Trajectory Status
219 FLEXFUNC flex_read_trajectory_status(BOARD, u8 axisOrVectorSpace, u16 statusType, u8 returnVector);
220 // Read Trajectory Status
221 FLEXFUNC flex_read_trajectory_status_rtn(BOARD, u8 axisOrVectorSpace, u16 statusType, u16 FAR *status);
222 
223 //Read Velocity
224 FLEXFUNC flex_read_velocity(BOARD, u8 axisOrVectorSpace, u8 returnVector);
225 //Read Velocity
226 FLEXFUNC flex_read_velocity_rtn(BOARD, u8 axisOrVectorSpace, i32 FAR *velocity);
227 
228 //Read Vector Space Position
229 FLEXFUNC flex_read_vs_pos (BOARD, u8 vectorSpace, u8 returnVector);
230 //Read Vector Space Position
231 FLEXFUNC flex_read_vs_pos_rtn (BOARD, u8 vectorSpace, i32 FAR *xPosition, i32 FAR *yPosition, i32 FAR *zPosition);
232 
233 //Reset Position
234 FLEXFUNC flex_reset_pos (BOARD, u8 axis, i32 position1, i32 position2, u8 inputVector);
235 
236 //Set Operation Mode
237 FLEXFUNC flex_set_op_mode (BOARD, u8 axisOrVectorSpace, u16 operationMode);
238 
239 // Check Move Complete Status
241  u16 axisOrVSMap, u16* moveComplete);
242 
243 // Check Blend Complete Status
245  u16 axisOrVSMap, u16* blendComplete);
246 
247 // Wait for Move Complete
248 FLEXFUNC flex_wait_for_move_complete (BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap,
249  u32 timeout, i32 pollInterval, u16* moveComplete);
250 
251 // Wait for Blend Complete
252 FLEXFUNC flex_wait_for_blend_complete (BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap,
253  u32 timeout, i32 pollInterval, u16* blendComplete);
254 
256 
257 //Load Circular Arc
258 FLEXFUNC flex_load_circular_arc (BOARD, u8 vectorSpace, u32 radius, f64 startAngle,
259  f64 travelAngle, u8 inputVector);
260 
261 //Load Helical Arc
262 FLEXFUNC flex_load_helical_arc (BOARD, u8 vectorSpace, u32 radius, f64 startAngle,
263  f64 travelAngle, i32 linearTravel, u8 inputVector);
264 
265 //Load Spherical Arc
266 FLEXFUNC flex_load_spherical_arc (BOARD, u8 vectorSpace, u32 radius, f64 planePitch,
267  f64 planeYaw, f64 startAngle, f64 travelAngle, u8 inputVector);
268 
269 
271 
272 //Configure Gear Master
273 FLEXFUNC flex_config_gear_master(BOARD, u8 axis, u8 masterAxisOrEncoderOrADC);
274 
275 //Enable Gearing
277 
278 //Enable Gearing Single Axis
280 
281 //Load Gear Ratio
282 FLEXFUNC flex_load_gear_ratio(BOARD, u8 axis, u16 absoluteOrRelative,
283  i16 ratioNumerator, u16 ratioDenominator, u8 inputVector);
284 
285 
287 
288 //Acquire Trajectory Data
289 FLEXFUNC flex_acquire_trajectory_data(BOARD, u16 axisMap, u16 numberOfSamples, u16 timePeriod);
290 
291 //Load Base Velocity
292 FLEXFUNC flex_load_base_vel(BOARD, u8 axis, u16 baseVelocity, u8 inputVector);
293 
294 //Load Blend Factor
295 FLEXFUNC flex_load_blend_fact(BOARD, u8 axisOrVectorSpace, i16 blendFactor, u8 inputVector);
296 
297 //Load Position Modulus
298 FLEXFUNC flex_load_pos_modulus(BOARD, u8 axis, u32 positionModulus, u8 inputVector);
299 
300 //Load Velocity Threshold in RPM
301 FLEXFUNC flex_load_rpm_thresh(BOARD, u8 axis, f64 threshold, u8 inputVector);
302 
303 //Load S-Curve Time
304 FLEXFUNC flex_load_scurve_time(BOARD, u8 axisOrVectorSpace, u16 sCurveTime, u8 inputVector);
305 
306 //Load Torque Limit
307 FLEXFUNC flex_load_torque_lim(BOARD, u8 axis, i16 primaryPositiveLimit, i16 primaryNegativeLimit,
308  i16 secondaryPositiveLimit, i16 secondaryNegativeLimit, u8 inputVector);
309 
310 //Load Torque Offset
311 FLEXFUNC flex_load_torque_offset(BOARD, u8 axis, i16 primaryOffset, i16 secondaryOffset, u8 inputVector);
312 
313 //Load Velocity Override
314 FLEXFUNC flex_load_velocity_override(BOARD, u8 axisOrVectorSpace, f32 overridePercentage, u8 inputVector);
315 
316 //Load Velocity Threshold
317 FLEXFUNC flex_load_velocity_threshold(BOARD, u8 axis, u32 threshold, u8 inputVector);
318 
319 //Read DAC
320 FLEXFUNC flex_read_dac(BOARD, u8 axisOrDAC, u8 returnVector);
321 //Read DAC
322 FLEXFUNC flex_read_dac_rtn(BOARD, u8 axisOrDAC, i16 FAR *DACValue);
323 
324 //Read DAC Limit Status
326 //Read DAC Limit Status
327 FLEXFUNC flex_read_dac_limit_status_rtn(BOARD, u8 FAR *positiveStatus, u8 FAR *negativeStatus);
328 
329 //Read Steps Generated
330 FLEXFUNC flex_read_steps_gen(BOARD, u8 axisOrStepperOutput, u8 returnVector);
331 //Read Steps Generated
332 FLEXFUNC flex_read_steps_gen_rtn(BOARD, u8 axisOrStepperOutput, i32 FAR *steps);
333 
334 //Read Target Position
335 FLEXFUNC flex_read_target_pos(BOARD, u8 axis, u8 returnVector);
336 //Read Target Position
338 
339 //Read Trajectory Data
341 //Read Trajectory Data
342 //returnData points to an array of size <= 12 depending upon the
343 //number of axes data is being acquired for. For 6 axes returnData
344 //points to an array of size 12.
346 
347 
349 // Buffered Functions
351 
352 // Configure Buffer
353 FLEXFUNC flex_configure_buffer (BOARD, u8 buffer, u8 resource, u16 bufferType, i32 bufferSize,
354  u32 totalPoints, u16 oldDataStop, f64 requestedInterval, f64 FAR *actualInterval);
355 
356 // Write Buffer
357 FLEXFUNC flex_write_buffer (BOARD, u8 buffer, u32 numberOfPoints,
358  u16 regenerationMode, i32 *data, u8 inputVector);
359 
360 // Read Buffer
361 FLEXFUNC flex_read_buffer (BOARD, u8 buffer, u32 numberOfPoints, u8 returnVector);
362 FLEXFUNC flex_read_buffer_rtn (BOARD, u8 buffer, u32 numberOfPoints, i32* data);
363 
364 // Check Buffer
365 FLEXFUNC flex_check_buffer (BOARD, u8 buffer, u8 returnVector);
366 FLEXFUNC flex_check_buffer_rtn (BOARD, u8 buffer, u32 *backlog, u16 *bufferState,
367  u32 *pointsDone);
368 
369 // Clear Buffer
371 
373 // Start & Stop Motion Functions
375 
376 //Blend Motion
377 FLEXFUNC flex_blend(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap);
378 
379 //Start Motion
380 FLEXFUNC flex_start(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap);
381 
382 //Stop Motion
383 FLEXFUNC flex_stop_motion(BOARD, u8 axisOrVectorSpace, u16 stopType, u16 axisOrVSMap);
384 
385 
387 // Motion IO Functions
389 
390 //Configure Inhibit Outputs
391 FLEXFUNC flex_configure_inhibits(BOARD, u8 axisMap, u8 polarityMap);
392 
393 //Enable Home Inputs
395 
396 //Enable Limits
397 FLEXFUNC flex_enable_limits(BOARD, u16 limitType, u8 forwardLimitMap, u8 reverseLimitMap);
398 
399 //Load Software Limit Positions
400 FLEXFUNC flex_load_sw_lim_pos(BOARD, u8 axis, i32 forwardLimit, i32 reverseLimit, u8 inputVector);
401 
402 //Read Home Input Status
404 //Read Home Input Status
406 
407 //Read Limit Status
408 FLEXFUNC flex_read_limit_status(BOARD, u16 limitType, u8 returnVector);
409 //Read Limit Status
410 FLEXFUNC flex_read_limit_status_rtn(BOARD, u16 limitType, u8 FAR *forwardLimitStatus, u8 FAR *reverseLimitStatus);
411 
412 //Set Home Input Polarity
414 
415 //Set Inhibit MOMO
417 
418 //Set Limit Input Polarity
419 FLEXFUNC flex_set_limit_polarity(BOARD, u8 forwardPolarityMap, u8 reversePolarityMap);
420 
421 
423 
424 //Configure Breakpoint
425 FLEXFUNC flex_configure_breakpoint(BOARD, u8 axisOrEncoder, u16 enableMode, u16 actionOnBreakpoint, u16 reserved);
426 
427 //Enable Breakpoint
428 FLEXFUNC flex_enable_breakpoint(BOARD, u8 axisOrEncoder, u16 enable);
429 
430 //Load Breakpoint Modulus
431 FLEXFUNC flex_load_bp_modulus(BOARD, u8 axisOrEncoder, u32 breakpointModulus, u8 inputVector);
432 
433 //Load Breakpoint Position
434 FLEXFUNC flex_load_pos_bp(BOARD, u8 axisOrEncoder, i32 breakpointPosition, u8 inputVector);
435 
436 //Read Breakpoint Status
437 FLEXFUNC flex_read_breakpoint_status(BOARD, u8 axisOrEncoder, u16 breakpointType, u8 returnVector);
438 //Read Breakpoint Status
439 FLEXFUNC flex_read_breakpoint_status_rtn(BOARD, u8 axisOrEncoder, u16 breakpointType, u16 FAR *breakpointStatus);
440 
441 //Set Breakpoint Output MOMO
442 FLEXFUNC flex_set_breakpoint_momo(BOARD, u8 axisOrEncoder, u8 mustOn, u8 mustOff, u8 inputVector);
443 
444 //Enable High-Speed Capture
445 FLEXFUNC flex_enable_hs_capture(BOARD, u8 axisOrEncoder, u16 enable);
446 
447 //Read Captured Position
448 FLEXFUNC flex_read_cap_pos(BOARD, u8 axisOrEncoder, u8 returnVector);
449 //Read Captured Position
450 FLEXFUNC flex_read_cap_pos_rtn(BOARD, u8 axisOrEncoder, i32 FAR *capturedPosition);
451 
452 //Read High-Speed Capture Status
453 FLEXFUNC flex_read_hs_cap_status(BOARD, u8 axisOrEncoder, u8 returnVector);
454 //Read High-Speed Capture Status
455 FLEXFUNC flex_read_hs_cap_status_rtn(BOARD, u8 axisOrEncoder, u16 FAR *highSpeedCaptureStatus);
456 
457 //Configure High-Speed Capture (replaces flex_set_hs_cap_pol)
458 FLEXFUNC flex_configure_hs_capture(BOARD, u8 axisOrEncoder, u16 captureMode, u16 reserved);
459 
461 // Find Home & Index Functions
463 
464 //Find Home
465 FLEXFUNC flex_find_home(BOARD, u8 axis, u16 directionMap);
466 
467 //Find Index
468 FLEXFUNC flex_find_index(BOARD, u8 axis, u16 direction, i16 offset);
469 
470 
472 // Analog & Digital IO Functions
474 
475 // Configure PWM Output
476 FLEXFUNC flex_configure_pwm_output (BOARD, u8 PWMOutput, u16 enable, u16 clock);
477 
478 // Enable ADCs
479 FLEXFUNC flex_enable_adcs (BOARD, u8 reserved, u16 ADCMap);
480 
481 // Enable Encoders
483 
484 // Load DAC
485 FLEXFUNC flex_load_dac (BOARD, u8 DAC, i16 outputValue, u8 inputVector);
486 
487 // Load PWM Duty Cycle
488 FLEXFUNC flex_load_pwm_duty (BOARD, u8 PWMOutput, u16 dutycycle, u8 inputVector);
489 
490 // Read ADC
491 FLEXFUNC flex_read_adc (BOARD, u8 ADC, u8 returnVector);
492 // Read ADC
494 
495 // Read Encoder Position
496 FLEXFUNC flex_read_encoder (BOARD, u8 axisOrEncoder, u8 returnVector);
497 // Read Encoder Position
498 FLEXFUNC flex_read_encoder_rtn (BOARD, u8 axisOrEncoder, i32 FAR *encoderCounts);
499 
500 // Read I/O Port
502 // Read I/O Port
504 
505 // Reset Encoder Position
506 FLEXFUNC flex_reset_encoder (BOARD, u8 encoder, i32 position, u8 inputVector);
507 
508 // Select Signal (RTSI)
509 FLEXFUNC flex_select_signal (BOARD, u16 destination, u16 source);
510 
511 // Set ADC Range
513 
514 // Configure Encoder Filter
515 FLEXFUNC flex_configure_encoder_filter (BOARD, u8 axisOrEncoder, u16 frequency);
516 
517 // Set I/O Port Direction
519 
520 // Set I/O Port MOMO
521 FLEXFUNC flex_set_port(BOARD, u8 port, u8 mustOn, u8 mustOff, u8 inputVector);
522 
523 // Set I/O Port Polarity
525 
527 // Error & Utility Functions
529 
530 // Get Error Description
531 FLEXFUNC flex_get_error_description(u16 descriptionType, i32 errorCode, u16 commandID, u16 resourceID,
532  i8 FAR *charArray, u32 FAR *sizeOfArray);
533 
534 // Get Motion Board Information
535 FLEXFUNC flex_get_motion_board_info (BOARD, u32 informationType, u32 FAR *informationValue);
536 
537 // Get Motion Board Name
538 FLEXFUNC flex_get_motion_board_name (BOARD, i8 FAR *charArray, u32 FAR *sizeOfArray);
539 
540 //Read Error Message
541 FLEXFUNC flex_read_error_msg_rtn(BOARD, u16 FAR *commandID, u16 FAR *resourceID, i32 FAR *errorCode);
542 
543 // Get Last Error
544 FLEXFUNC flex_get_last_error(BOARD, u16 *commandID, u16 *resourceID, i32 *errorCode);
545 
546 // Get u32
547 FLEXFUNC flex_getu32(BOARD, u8 resource, u16 attribute, u32 *value);
548 
549 // Set u32
550 FLEXFUNC flex_setu32(BOARD, u8 resource, u16 attribute, u32 value);
551 
553 // On-board Programming Functions
555 
556 //Begin Program Storage
558 
559 //End Program Storage
561 
562 //Insert Label
564 
565 //Jump to Label on Condition
566 FLEXFUNC flex_jump_label_on_condition (BOARD, u8 resource, u16 condition, u8 mustOn,
567  u8 mustOff, u16 matchType, u16 labelNumber);
568 
569 //Load Program Delay
571 
572 //Pause/Resume Program
574 
575 //Read Program Status
576 FLEXFUNC flex_read_program_status (BOARD, u8 program, u8 returnVector);
577 //Read Program Status
579 
580 //Run Program
582 
583 //Set User Status MOMO
585 
586 //Stop Program
588 
589 //Wait on Condition
590 FLEXFUNC flex_wait_on_condition(BOARD, u8 resource, u16 waitType, u16 condition, u8 mustOn,
591  u8 mustOff, u16 matchType, u16 timeOut, u8 returnVector);
592 
593 
595 
596 //Load Memory Object Description
597 //Maximum size of description that can be entered is 32 chars
598 FLEXFUNC flex_load_description(BOARD, u8 object, i8 FAR *description);
599 
600 // Object Memory Management
602 
603 //Read Memory Object Description
604 //description points to an array of size 32
606 
607 //Read Object Registry
609 
610 
612 
613 //Add Variables
614 FLEXFUNC flex_add_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
615 
616 //AND Variables
617 FLEXFUNC flex_and_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
618 
619 //Divide Variables
620 FLEXFUNC flex_div_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
621 
622 //Load Constant to Variable
623 FLEXFUNC flex_load_var(BOARD, i32 value, u8 variable1);
624 
625 //Logical Shift Variable
626 FLEXFUNC flex_lshift_var(BOARD, u8 variable1, i8 logicalShift, u8 returnVector);
627 
628 //Multiply Variables
629 FLEXFUNC flex_mult_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
630 
631 //Invert Variable
632 FLEXFUNC flex_not_var(BOARD, u8 variable1, u8 returnVector);
633 
634 //OR Variables
635 FLEXFUNC flex_or_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
636 
637 //Read Variable
638 FLEXFUNC flex_read_var(BOARD, u8 variable1, u8 returnVector);
639 //Read Variable
640 FLEXFUNC flex_read_var_rtn(BOARD, u8 variable1, i32 FAR *value);
641 
642 //Subtract Variables
643 FLEXFUNC flex_sub_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
644 
645 //Exclusive OR Variables
646 FLEXFUNC flex_xor_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector);
647 
648 
650 // Advanced Functions
652 
653 //Clear Power Up Status
655 
656 //Communicate
657 FLEXFUNC flex_communicate(BOARD, u8 mode, u8 wordCount, u8 FAR *resource,
658  u16 FAR *command, u16 FAR *data, u8 vector);
659 
660 //Flush Return Data Buffer
662 
663 //Enable Auto Start
664 FLEXFUNC flex_enable_auto_start(BOARD, u8 enableOrDisable, u8 programToExecute);
665 
666 //Enable Shut Down
668 
669 //Enable 1394 Watchdog
671 
672 //Read Communication Status
674 
675 //Reset Default Parameters
677 
678 //Save Default Parameters
680 
681 //Set Interrupt Event Mask
683 
684 
686 
688 // This includes functions that have been retired. They may be completely removed at
689 // any time, please do not use them in new development.
691 
692 #include "FlexComp.h"
695 
696 #ifdef __cplusplus
697 }
698 #endif
699 
700 #endif
701 
CSerialPort port
Definition: AcqCOM.cxx:12
FLEXFUNC flex_load_target_pos(BOARD, u8 axis, i32 targetPosition, u8 inputVector)
FLEXFUNC flex_enable_1394_watchdog(BOARD, u16 enableOrDisable)
FLEXFUNC flex_load_circular_arc(BOARD, u8 vectorSpace, u32 radius, f64 startAngle, f64 travelAngle, u8 inputVector)
FLEXFUNC flex_load_sw_lim_pos(BOARD, u8 axis, i32 forwardLimit, i32 reverseLimit, u8 inputVector)
FLEXFUNC flex_load_pos_bp(BOARD, u8 axisOrEncoder, i32 breakpointPosition, u8 inputVector)
FLEXFUNC flex_read_registry_rtn(BOARD, u8 index, REGISTRY FAR *registryRecord)
FLEXFUNC flex_set_port_pol(BOARD, u8 port, u16 portPolarityMap)
FLEXFUNC flex_mult_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_load_delay(BOARD, u32 delayTime)
FLEXFUNC flex_load_velocity(BOARD, u8 axisOrVectorSpace, i32 velocity, u8 inputVector)
FLEXFUNC flex_load_var(BOARD, i32 value, u8 variable1)
FLEXFUNC flex_read_mcs_rtn(BOARD, u16 FAR *moveCompleteStatus)
FLEXFUNC flex_enable_shutdown(BOARD)
FLEXFUNC flex_configure_inhibits(BOARD, u8 axisMap, u8 polarityMap)
FLEXFUNC flex_load_rpm(BOARD, u8 axisOrVectorSpace, f64 RPM, u8 inputVector)
FLEXFUNC flex_flush_rdb(BOARD)
FLEXFUNC flex_get_motion_board_info(BOARD, u32 informationType, u32 FAR *informationValue)
FLEXFUNC flex_check_blend_complete_status(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap, u16 *blendComplete)
FLEXFUNC flex_reset_encoder(BOARD, u8 encoder, i32 position, u8 inputVector)
FLEXFUNC flex_enable_gearing_single_axis(BOARD, u8 axis, u16 enable)
FLEXFUNC flex_reset_pos(BOARD, u8 axis, i32 position1, i32 position2, u8 inputVector)
FLEXFUNC flex_read_home_input_status(BOARD, u8 returnVector)
FLEXFUNC flex_set_limit_polarity(BOARD, u8 forwardPolarityMap, u8 reversePolarityMap)
FLEXFUNC flex_acquire_trajectory_data(BOARD, u16 axisMap, u16 numberOfSamples, u16 timePeriod)
FLEXFUNC flex_read_axis_status_rtn(BOARD, u8 axis, u16 FAR *axisStatus)
FLEXFUNC flex_set_port(BOARD, u8 port, u8 mustOn, u8 mustOff, u8 inputVector)
FLEXFUNC flex_find_index(BOARD, u8 axis, u16 direction, i16 offset)
FLEXFUNC flex_load_spherical_arc(BOARD, u8 vectorSpace, u32 radius, f64 planePitch, f64 planeYaw, f64 startAngle, f64 travelAngle, u8 inputVector)
FLEXFUNC flex_enable_axes(BOARD, u8 reserved, u8 PIDRate, u8 axisMap)
FLEXFUNC flex_load_counts_steps_rev(BOARD, u8 axisOrEncoder, u16 unitType, u32 countsOrSteps)
FLEXFUNC flex_read_breakpoint_status(BOARD, u8 axisOrEncoder, u16 breakpointType, u8 returnVector)
FLEXFUNC flex_write_buffer(BOARD, u8 buffer, u32 numberOfPoints, u16 regenerationMode, i32 *data, u8 inputVector)
FLEXFUNC flex_read_velocity_rtn(BOARD, u8 axisOrVectorSpace, i32 FAR *velocity)
FLEXFUNC flex_enable_encoders(BOARD, u16 encoderMap)
FLEXFUNC flex_load_follow_err(BOARD, u8 axis, u16 followingError, u8 inputVector)
FLEXFUNC flex_load_blend_fact(BOARD, u8 axisOrVectorSpace, i16 blendFactor, u8 inputVector)
FLEXFUNC flex_check_buffer(BOARD, u8 buffer, u8 returnVector)
FLEXFUNC flex_read_vs_pos_rtn(BOARD, u8 vectorSpace, i32 FAR *xPosition, i32 FAR *yPosition, i32 FAR *zPosition)
FLEXFUNC flex_load_bp_modulus(BOARD, u8 axisOrEncoder, u32 breakpointModulus, u8 inputVector)
FLEXFUNC flex_sub_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_read_pos(BOARD, u8 axis, u8 returnVector)
FLEXFUNC flex_load_pid_parameters(BOARD, u8 axis, PID FAR *PIDValues, u8 inputVector)
FLEXFUNC flex_set_stepper_loop_mode(BOARD, u8 axis, u16 loopMode)
FLEXFUNC flex_read_trajectory_data(BOARD, u8 returnVector)
FLEXFUNC flex_read_cap_pos(BOARD, u8 axisOrEncoder, u8 returnVector)
FLEXFUNC flex_getu32(BOARD, u8 resource, u16 attribute, u32 *value)
FLEXFUNC flex_set_op_mode(BOARD, u8 axisOrVectorSpace, u16 operationMode)
FLEXFUNC flex_load_single_pid_parameter(BOARD, u8 axis, u16 parameterType, u16 PIDValue, u8 inputVector)
FLEXFUNC flex_load_vs_pos(BOARD, u8 vectorSpace, i32 xPosition, i32 yPosition, i32 zPosition, u8 inputVector)
FLEXFUNC flex_add_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_load_pwm_duty(BOARD, u8 PWMOutput, u16 dutycycle, u8 inputVector)
FLEXFUNC flex_set_adc_range(BOARD, u8 ADC, u16 range)
FLEXFUNC flex_config_gear_master(BOARD, u8 axis, u8 masterAxisOrEncoderOrADC)
FLEXFUNC flex_load_helical_arc(BOARD, u8 vectorSpace, u32 radius, f64 startAngle, f64 travelAngle, i32 linearTravel, u8 inputVector)
FLEXFUNC flex_read_vs_pos(BOARD, u8 vectorSpace, u8 returnVector)
FLEXFUNC flex_configure_pwm_output(BOARD, u8 PWMOutput, u16 enable, u16 clock)
FLEXFUNC flex_read_dac_rtn(BOARD, u8 axisOrDAC, i16 FAR *DACValue)
FLEXFUNC flex_configure_hs_capture(BOARD, u8 axisOrEncoder, u16 captureMode, u16 reserved)
FLEXFUNC flex_read_port_rtn(BOARD, u8 port, u16 FAR *portData)
FLEXFUNC flex_configure_buffer(BOARD, u8 buffer, u8 resource, u16 bufferType, i32 bufferSize, u32 totalPoints, u16 oldDataStop, f64 requestedInterval, f64 FAR *actualInterval)
FLEXFUNC flex_lshift_var(BOARD, u8 variable1, i8 logicalShift, u8 returnVector)
FLEXFUNC flex_read_description_rtn(BOARD, u8 object, i8 FAR *description)
FLEXFUNC flex_enable_breakpoint(BOARD, u8 axisOrEncoder, u16 enable)
FLEXFUNC flex_read_dac_limit_status(BOARD, u8 returnVector)
#define BOARD
Definition: Flexmotn.h:95
FLEXFUNC flex_not_var(BOARD, u8 variable1, u8 returnVector)
FLEXFUNC flex_read_buffer(BOARD, u8 buffer, u32 numberOfPoints, u8 returnVector)
FLEXFUNC flex_read_home_input_status_rtn(BOARD, u16 FAR *homeStatus)
FLEXFUNC flex_read_csr_rtn(BOARD, u16 FAR *csr)
FLEXFUNC flex_clear_buffer(BOARD, u8 buffer)
FLEXFUNC flex_read_encoder_rtn(BOARD, u8 axisOrEncoder, i32 FAR *encoderCounts)
FLEXFUNC flex_select_signal(BOARD, u16 destination, u16 source)
FLEXFUNC flex_get_motion_board_name(BOARD, i8 FAR *charArray, u32 FAR *sizeOfArray)
FLEXFUNC flex_read_target_pos(BOARD, u8 axis, u8 returnVector)
FLEXFUNC flex_enable_auto_start(BOARD, u8 enableOrDisable, u8 programToExecute)
FLEXFUNC flex_get_last_error(BOARD, u16 *commandID, u16 *resourceID, i32 *errorCode)
FLEXFUNC flex_read_rpm_rtn(BOARD, u8 axisOrVectorSpace, f64 FAR *RPM)
FLEXFUNC flex_read_rpm(BOARD, u8 axisOrVectorSpace, u8 returnVector)
FLEXFUNC flex_read_limit_status(BOARD, u16 limitType, u8 returnVector)
FLEXFUNC flex_enable_hs_capture(BOARD, u8 axisOrEncoder, u16 enable)
FLEXFUNC flex_stop_motion(BOARD, u8 axisOrVectorSpace, u16 stopType, u16 axisOrVSMap)
FLEXFUNC flex_or_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_read_limit_status_rtn(BOARD, u16 limitType, u8 FAR *forwardLimitStatus, u8 FAR *reverseLimitStatus)
FLEXFUNC flex_and_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_load_rpsps(BOARD, u8 axisOrVectorSpace, u16 accelerationType, f64 RPSPS, u8 inputVector)
FLEXFUNC flex_read_blend_status_rtn(BOARD, u8 axisOrVectorSpace, u16 FAR *blendStatus)
FLEXFUNC flex_stop_prog(BOARD, u8 program)
FLEXFUNC flex_load_gear_ratio(BOARD, u8 axis, u16 absoluteOrRelative, i16 ratioNumerator, u16 ratioDenominator, u8 inputVector)
FLEXFUNC flex_read_program_status(BOARD, u8 program, u8 returnVector)
FLEXFUNC flex_read_pos_rtn(BOARD, u8 axis, i32 FAR *position)
FLEXFUNC flex_load_rpm_thresh(BOARD, u8 axis, f64 threshold, u8 inputVector)
FLEXFUNC flex_config_mc_criteria(BOARD, u8 axis, u16 criteria, u16 deadband, u8 delay, u8 minPulse)
FLEXFUNC flex_load_vel_tc_rs(BOARD, u8 axis, u16 filterTime, u16 runStopThreshold, u8 inputVector)
FLEXFUNC flex_load_description(BOARD, u8 object, i8 FAR *description)
FLEXFUNC flex_read_axis_status(BOARD, u8 axis, u8 returnVector)
FLEXFUNC flex_read_encoder(BOARD, u8 axisOrEncoder, u8 returnVector)
FLEXFUNC flex_read_adc(BOARD, u8 ADC, u8 returnVector)
FLEXFUNC flex_pause_prog(BOARD, u8 program)
FLEXFUNC flex_xor_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_load_velocity_override(BOARD, u8 axisOrVectorSpace, f32 overridePercentage, u8 inputVector)
FLEXFUNC flex_initialize_controller(BOARD, i8 FAR *settingsName)
FLEXFUNC flex_insert_program_label(BOARD, u16 labelNumber)
FLEXFUNC flex_config_step_mode_pol(BOARD, u8 axisOrStepperOutput, u16 modeAndPolarityMap)
FLEXFUNC flex_read_error_msg_rtn(BOARD, u16 FAR *commandID, u16 FAR *resourceID, i32 FAR *errorCode)
FLEXFUNC flex_read_hs_cap_status_rtn(BOARD, u8 axisOrEncoder, u16 FAR *highSpeedCaptureStatus)
FLEXFUNC flex_read_blend_status(BOARD, u8 axisOrVectorSpace, u8 returnVector)
FLEXFUNC flex_read_follow_err_rtn(BOARD, u8 axisOrVectorSpace, i16 FAR *followingError)
FLEXFUNC flex_read_dac(BOARD, u8 axisOrDAC, u8 returnVector)
FLEXFUNC flex_read_cap_pos_rtn(BOARD, u8 axisOrEncoder, i32 FAR *capturedPosition)
FLEXFUNC flex_configure_encoder_filter(BOARD, u8 axisOrEncoder, u16 frequency)
FLEXFUNC flex_enable_limits(BOARD, u16 limitType, u8 forwardLimitMap, u8 reverseLimitMap)
FLEXFUNC flex_load_base_vel(BOARD, u8 axis, u16 baseVelocity, u8 inputVector)
FLEXFUNC flex_read_trajectory_status(BOARD, u8 axisOrVectorSpace, u16 statusType, u8 returnVector)
FLEXFUNC flex_read_breakpoint_status_rtn(BOARD, u8 axisOrEncoder, u16 breakpointType, u16 FAR *breakpointStatus)
FLEXFUNC flex_enable_gearing(BOARD, u16 gearMap)
FLEXFUNC flex_setu32(BOARD, u8 resource, u16 attribute, u32 value)
FLEXFUNC flex_read_var(BOARD, u8 variable1, u8 returnVector)
FLEXFUNC flex_read_program_status_rtn(BOARD, u8 program, u16 FAR *programStatus)
FLEXFUNC flex_read_var_rtn(BOARD, u8 variable1, i32 FAR *value)
FLEXFUNC flex_read_follow_err(BOARD, u8 axisOrVectorSpace, u8 returnVector)
FLEXFUNC flex_save_defaults(BOARD)
FLEXFUNC flex_check_buffer_rtn(BOARD, u8 buffer, u32 *backlog, u16 *bufferState, u32 *pointsDone)
FLEXFUNC flex_start(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap)
FLEXFUNC flex_read_port(BOARD, u8 port, u8 returnVector)
FLEXFUNC flex_wait_for_blend_complete(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap, u32 timeout, i32 pollInterval, u16 *blendComplete)
FLEXFUNC flex_load_scurve_time(BOARD, u8 axisOrVectorSpace, u16 sCurveTime, u8 inputVector)
FLEXFUNC flex_read_dac_limit_status_rtn(BOARD, u8 FAR *positiveStatus, u8 FAR *negativeStatus)
FLEXFUNC flex_div_vars(BOARD, u8 variable1, u8 variable2, u8 returnVector)
FLEXFUNC flex_read_target_pos_rtn(BOARD, u8 axis, i32 FAR *targetPosition)
FLEXFUNC flex_wait_for_move_complete(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap, u32 timeout, i32 pollInterval, u16 *moveComplete)
FLEXFUNC flex_load_dac(BOARD, u8 DAC, i16 outputValue, u8 inputVector)
FLEXFUNC flex_end_store(BOARD, u8 program)
FLEXFUNC flex_read_steps_gen(BOARD, u8 axisOrStepperOutput, u8 returnVector)
FLEXFUNC flex_load_pos_modulus(BOARD, u8 axis, u32 positionModulus, u8 inputVector)
FLEXFUNC flex_configure_breakpoint(BOARD, u8 axisOrEncoder, u16 enableMode, u16 actionOnBreakpoint, u16 reserved)
FLEXFUNC flex_load_velocity_threshold(BOARD, u8 axis, u32 threshold, u8 inputVector)
FLEXFUNC flex_set_breakpoint_momo(BOARD, u8 axisOrEncoder, u8 mustOn, u8 mustOff, u8 inputVector)
FLEXFUNC flex_read_trajectory_status_rtn(BOARD, u8 axisOrVectorSpace, u16 statusType, u16 FAR *status)
FLEXFUNC flex_config_axis(BOARD, u8 axis, u8 primaryFeedback, u8 secondaryFeedback, u8 primaryOutput, u8 secondaryOutput)
FLEXFUNC flex_read_steps_gen_rtn(BOARD, u8 axisOrStepperOutput, i32 FAR *steps)
FLEXFUNC flex_read_trajectory_data_rtn(BOARD, i32 FAR *returnData)
FLEXFUNC flex_config_vect_spc(BOARD, u8 vectorSpace, u8 xAxis, u8 yAxis, u8 zAxis)
FLEXFUNC flex_object_mem_manage(BOARD, u8 object, u16 operation)
FLEXFUNC flex_get_error_description(u16 descriptionType, i32 errorCode, u16 commandID, u16 resourceID, i8 FAR *charArray, u32 FAR *sizeOfArray)
FLEXFUNC flex_begin_store(BOARD, u8 program)
FLEXFUNC flex_wait_on_condition(BOARD, u8 resource, u16 waitType, u16 condition, u8 mustOn, u8 mustOff, u16 matchType, u16 timeOut, u8 returnVector)
FLEXFUNC flex_check_move_complete_status(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap, u16 *moveComplete)
FLEXFUNC flex_set_irq_mask(BOARD, u16 mask)
FLEXFUNC flex_load_torque_lim(BOARD, u8 axis, i16 primaryPositiveLimit, i16 primaryNegativeLimit, i16 secondaryPositiveLimit, i16 secondaryNegativeLimit, u8 inputVector)
FLEXFUNC flex_enable_home_inputs(BOARD, u16 homeMap)
FLEXFUNC flex_set_status_momo(BOARD, u8 mustOn, u8 mustOff)
FLEXFUNC flex_find_home(BOARD, u8 axis, u16 directionMap)
FLEXFUNC flex_clear_pu_status(BOARD)
struct REGSTRY REGISTRY
FLEXFUNC flex_read_adc_rtn(BOARD, u8 ADC, i16 FAR *ADCValue)
FLEXFUNC flex_enable_adcs(BOARD, u8 reserved, u16 ADCMap)
FLEXFUNC flex_load_torque_offset(BOARD, u8 axis, i16 primaryOffset, i16 secondaryOffset, u8 inputVector)
FLEXFUNC flex_read_velocity(BOARD, u8 axisOrVectorSpace, u8 returnVector)
FLEXFUNC flex_blend(BOARD, u8 axisOrVectorSpace, u16 axisOrVSMap)
FLEXFUNC flex_communicate(BOARD, u8 mode, u8 wordCount, u8 FAR *resource, u16 FAR *command, u16 FAR *data, u8 vector)
#define FAR
Definition: Flexmotn.h:92
FLEXFUNC flex_jump_label_on_condition(BOARD, u8 resource, u16 condition, u8 mustOn, u8 mustOff, u16 matchType, u16 labelNumber)
FLEXFUNC flex_reset_defaults(BOARD)
FLEXFUNC flex_load_acceleration(BOARD, u8 axisOrVectorSpace, u16 accelerationType, u32 acceleration, u8 inputVector)
FLEXFUNC flex_run_prog(BOARD, u8 program)
FLEXFUNC flex_set_inhibit_momo(BOARD, u8 mustOn, u8 mustOff)
#define FLEXFUNC
Definition: Flexmotn.h:91
FLEXFUNC flex_set_home_polarity(BOARD, u16 homePolarityMap)
FLEXFUNC flex_read_buffer_rtn(BOARD, u8 buffer, u32 numberOfPoints, i32 *data)
FLEXFUNC flex_read_hs_cap_status(BOARD, u8 axisOrEncoder, u8 returnVector)
FLEXFUNC flex_set_port_direction(BOARD, u8 port, u16 directionMap)
MFTYPE32 long position
Definition: Milproto.h:644
long i32
Definition: MotnCnst.h:35
unsigned long u32
Definition: MotnCnst.h:24
float f32
Definition: MotnCnst.h:37
double f64
Definition: MotnCnst.h:36
unsigned short u16
Definition: MotnCnst.h:23
char i8
Definition: MotnCnst.h:33
unsigned char u8
Definition: MotnCnst.h:22
short i16
Definition: MotnCnst.h:34
Definition: Flexmotn.h:102
u16 vff
Definition: Flexmotn.h:110
u16 kd
Definition: Flexmotn.h:106
u16 kv
Definition: Flexmotn.h:108
u16 ki
Definition: Flexmotn.h:104
u16 td
Definition: Flexmotn.h:107
u16 ilim
Definition: Flexmotn.h:105
u16 aff
Definition: Flexmotn.h:109
u16 kp
Definition: Flexmotn.h:103
Definition: Flexmotn.h:115
u32 pstart
Definition: Flexmotn.h:118
u16 type
Definition: Flexmotn.h:117
u32 size
Definition: Flexmotn.h:119
u16 device
Definition: Flexmotn.h:116