Page 1
2-axis Motion Control Module User Manual (I-8092F) (Version 2.3) Macro Function Library in C++ for WinCon and I-8000 series PAC controllers ICPDAS I-8092F Software User Manual...
Page 2
The names used for identification only maybe registered trademarks of their respective companies. License The user can use, modify and backup this software on a single machine. The user may not reproduce, transfer or distribute this software, or any copy, in whole or in part. ICPDAS I-8092F Software User Manual...
3.3 Reading the Current Velocity ..............31 3.4 Reading the Current Acceleration............31 3.5 Reading the DI Status ................32 3.6 Reading and Clearing the ERROR Status ..........34 3.7 Setting the general Dinigtal output ............35 ICPDAS I-8092F Software User Manual...
Page 4
6.3.5 Mixed Linear and Circular 2-axis motions in Continuous Interpolation ..71 6.4 Set the Interrupt Factors................. 74 6.4.1 Set the Interrupt Factors ..................74 6.4.2 Interrupt Disabled .....................76 6.4.3 Read the Interrupt Occurrence ................77 6.5 Other functions..................78 ICPDAS I-8092F Software User Manual...
Page 5
6.5.4 Stopping the Axes.....................81 6.5.5 Clear the Stop Status ..................85 6.5.6 End of Interpolation ..................85 6.5.7 Setting the COMPARE value ................86 APPENDIX A (I-8092F BASIC FUNCTIONS) ....87 A.1 i8092F Command Set................87 A.2 Pulse Output Command ................. 88 A.2.1 Signal Types......................88 A.2.2 Fixed Pulse Driving ..................90...
Some useful costumed functions are provided for users to develop applications efficiently. If possible, do not mix these two groups of functions together. Some internal parameters may be changed beyond users'consideration. ICPDAS I-8092F Software User Manual...
All functions are listed in following form: Function_name (parameter1, parameter2, …) Description: Explanation of this function. Parameters: Definitions of the parameters and how to use them. Return: The return value of this function. Example: Simple example program in C++. Remark: Comments. ICPDAS I-8092F Software User Manual...
Description: This function registers a module that is installed in slot number, slot, by assigning a card number. Registration must be performed for each I-8092F motion control module before other functions are called. After registration, each module can be identified by its corresponding module number.
Page 10
//if a module is found, then it is registered as its slot number. i8092MF_RESET_CARD(cardNo); Found++; (Found == 0) //if Wincon cannot find any I-8092F module, //please add codes to handle the exception here. return; //=================== for I-8000 =================== //set the module number the same as the slot number, respectively.
Page 11
0x0000 ~ 0x9999 Example: WORD VER_No; VER_No = i8092MF_GET_VERSION(); //Read the version code of i8092.dll Remark: If the return value is 0x0607 06 : the year is 2006 07: the month is July. ICPDAS I-8092F Software User Manual...
Assigned mode (Please refer to Table 2-2) nMode: Return: None Example: i8092_SET_PULSE_MODE(1, AXIS_XYZ, 2); //set the pulse mode of X, Y, and Z axes as mode 2 i8092_SET_PULSE_MODE(1, AXIS_U, 3); //set the pulse mode of U axis as mode 3 ICPDAS I-8092F Software User Manual...
The assigned maximum speed of each axis when the data: controller performs an interpolation motion. However, setting the value of axis 1 is enough. For axis 1, the maximum value is 4,000,000 PPS. Return: None ICPDAS I-8092F Software User Manual...
Active level setting for the reverse limit switch. nRLEdge: 0 = low active; 1 = high active Return: None Example: i8092MF_SET_HLMT(1, AXIS_XY, 0, 0); //set all the trigger levels as low-active for all limit switches //on module 1. ICPDAS I-8092F Software User Manual...
Active level setting for the near home sensor. nNHEdge: 0 = low active; 1 = high active Return: None Example: i8092MF_SET_NHOME(1, AXIS_XY, 0); //set the trigger level of NHOME of X and Y axes on module 1 to be active low. ICPDAS I-8092F Software User Manual...
Value of the reverse software limit dwRL: (-2,147,483,648 ~ +2,147,483,647) Position counter to be compared: nType: 0 = logical position counter (LP), i.e., the command position 1 = encoder position counter (EP), i.e., the real position Return: None ICPDAS I-8092F Software User Manual...
Division setting for A quad B input signals: nDivision: 0 = 1/1 1 = 1/2 2 = 1/4 Sets the trigger level for the Z phase nZEdge: 0 = low active; 1 = high active ICPDAS I-8092F Software User Manual...
This function outputs a DO signal (ENABLE) to enable the motor driver. Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: Return: None Example: i8092_SERVO_ON(1, AXIS_XY); //enables all drivers on module 1. ICPDAS I-8092F Software User Manual...
Sets the trigger level nAEdge: 0 = low active; 1 = high active Return: None Example: i8092MF_SET_ALARM(1, AXIS_XY, 1, 0); //enable the ALARM for X and Y axes on module 1 and set them //as low-active. ICPDAS I-8092F Software User Manual...
Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: Enabled filters. The sum of the code numbers (0~31) are used FEn: to select input signals. Please refer to the following table. ICPDAS I-8092F Software User Manual...
Page 21
16: nIN3. Note: The default wiring design is: nIN0 is connected to the NEAR HOME (NHOME) sensors; nIN1 is connected to the HOME sensors; and nIN2 is connected to the index of Encoder input (Z phase). ICPDAS I-8092F Software User Manual...
2. If this function is enabled, the software limit function cannot be used. void i8092MF_VRING_DISABLE(BYTE WORD cardNo, axis) Description: This function disables the variable ring counter function. Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: Return: None ICPDAS I-8092F Software User Manual...
Axis or axes (Please refer to Table 2-1) axis: Return: None Example: i8092MF_ AVTRI_DISABLE(1, AXIS_X); //enable the X axis of module 1 to generate a triangle form in its //speed profile if the pulse number for output is too low. ICPDAS I-8092F Software User Manual...
//on module 1, the controller will output 1 pulses to the motor driver. i8092MF_EXD_MP(1, AXIS_X, 2); //Each time the handwheel inputs a pulse to the X axis //on module 1, the controller will output 2 pulses to the motor driver. ICPDAS I-8092F Software User Manual...
None Example: i8092MF_EXD_FP(1, AXIS_X, 5); //Each time the controller detects a falling edge of an XEXP+ //signal, it will output 5 pulses to the X axis. Example of fixed pulse driving using an external signal ICPDAS I-8092F Software User Manual...
None Example: i8092MF_EXD_CP(1, AXIS_X, 20); //Each time the controller detects a falling edge of an XEXP+ //signal, it will continuously drive X axis at the speed of 20 PPS. Continuous driving using an external signal ICPDAS I-8092F Software User Manual...
Axis or axes (Please refer to Table 2-1.) axis: The axis can be either X and Y Return: None Example: i8092MF_EXD_DISABLE(1, AXIS_X); //disable the external input driving control function //of X axis on module 1 ICPDAS I-8092F Software User Manual...
The configuration file is generated by the PACEzGo. Parameters: Module number cardNo: Return: 0: successfully -1: cannot open the pre-defined configuration file. Example: i8092MF_ LOAD_CONFIG (1); //load the configuration file and configure the module 1. ICPDAS I-8092F Software User Manual...
The axis can be either X and Y Return: The current LP value (-2,147,483,648 ~ +2,147,483,647) Example: long X_LP; X_LP = i8092MF_GET_LP(1, AXIS_X); //Reads the LP value of the X axis on module 1. ICPDAS I-8092F Software User Manual...
The axis can be either X and Y Return: Current EP value (-2,147,483,648 ~ +2,147,483,647) Example: long X_EP; X_EP = i8092MF_GET_EP(1, AXIS_X); //reads the encoder value (EP) of the X axis on module 1. ICPDAS I-8092F Software User Manual...
Axis (Please refer to Table 2-1) axis: The axis can be either X and Y Return: Current acceleration (in PPS/Sec) Example: DWORD dwdata; dwdata = i8092MF_GET_CA(1, AXIS_X); //reads the current acceleration value of the X axis on module 1. ICPDAS I-8092F Software User Manual...
//get the status of limit+ sensor of X axis on module 1 WORD i8092MF_GET_DI_ALL(BYTE WORD cardNo, axis) Description: This function reads All digital inputs (DI) status. Parameters: Module number cardNo: Axis (Please refer to Table 2-1) axis: The axis can be either X and Y ICPDAS I-8092F Software User Manual...
Page 33
ALARM signal bit 8 bit 9 bit 10 bit 11 IN3 signal bit 12 bit 13 bit 14 LMT+ signal bit 15 LMT- signal Example: WORD DI_Flag=i8092MF_GET_DI_ALL(1, AXIS_X) ; // get all status of module 1。 ICPDAS I-8092F Software User Manual...
STOP status. i8092MF_CLEAR_STOP(1); WORD i8092MF_GET_ERROR_CODE(BYTE WORD cardNo, axis) Description: This function reads the ERROR status. Parameters: Module number cardNo: Axis (Please refer to Table 2-1) axis: The axis can be either X and Y ICPDAS I-8092F Software User Manual...
Axis (Please refer to Table 2-1) axis: The axis can be either X and Y DO output: 0=OFF,1=ON nLevel Return: Example: i8092MF_SET_OUT0 (1, AXIS_XY, 1); //set the DO of X and Y to ON。 ICPDAS I-8092F Software User Manual...
Note: 0~7 are used for digital outputs Return: WORD 16-bit DI data. Example: WORD IN_Data; i8092MF_ IN_Data = FRNET_IN(1, 8); //Read the 16-bit DI which is on module 1 and the group number is 8. ICPDAS I-8092F Software User Manual...
Group number, range 0~7 wSA: Note: 8~15 are used by digital inputs 16-bit data data: Return: None Example: i8092MF_ FRNET_OUT(1, 0,0xffff); //Write 0xffff to the 16-bit DO which is on module 1 and the group number is 0. ICPDAS I-8092F Software User Manual...
5 Auto Homing The I-8092F module provides an automatic homing function. After setting the appropriate parameters, the assigned axes are able to perform automatic homing. Settings are required to be made in four steps for performing the automatic HOME search: Search for the near home sensor (NHOME) at a normal speed (V).
2: Moves in a negative direction nStep2: 0: Step 2 is not executed 1: Moves in a positive direction 2: Moves in a negative direction nStep3: 0: Step 3 is not executed 1: Moves in a positive direction ICPDAS I-8092F Software User Manual...
Page 40
Near HOME (IN0) is active 20000 PPS (V) HOME (IN1) is active 500 PPS (HV) Z-phase (IN2) is active 500 PPS (HV) No sensor is required. Move 3500 20000 PPS (V) pulses along the X axis. ICPDAS I-8092F Software User Manual...
Return: The Homing sequence has been completed. The Homing sequence is not complete. Example: (i8092MF_HOME_WAIT(1, AXIS_X) == NO) //perform some actions here if the X axis on module 1 has not completed //its homing sequence. ICPDAS I-8092F Software User Manual...
//set the max. speed of XY axes to 20K PPS. //======================================================== i8092MF_NORMAL_SPEED(cardNo, AXIS_XY, 0); //use a symmetric T-curve for all axes on module 1. i8092MF_SET_V(cardNo, AXIS_XY, 2000); //set the speed of all axes on module 1 to 2000 PPS. i8092MF_SET_A(cardNo, AXIS_XY,1000); ICPDAS I-8092F Software User Manual...
Page 43
//set the number of remaining offset pulses to 9 pulses for all axes. i8092MF_FIXED_MOVE(cardNo, axis, 10000); //move all axes on module 1 for 10000 pulses. Note: Relevant parameters must be set to achieve the desired motion. ICPDAS I-8092F Software User Manual...
The maximum value is 4,000,000 PPS. For interpolation, set the speed value for axis1 is enough. Return: None Example: i8092MF_SET_V(1, AXIS_X, 120000); //set the speed for the X axis on module 1 to 120000 PPS. ICPDAS I-8092F Software User Manual...
6.1.5 Setting the Deceleration void i8092MF_SET_D(BYTE WORD DWORD cardNo, axis, data) Description: This function sets the deceleration value for the assigned axes. Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: ICPDAS I-8092F Software User Manual...
Page 46
//therefore, do not set any deceleration value that is larger than //20,000*125 PPS/sec. And 20,000 *125 = 2,500,000. i8092MF_SET_D(1, AXIS_X, 100000); //set the deceleration value of the X axis on module 1 to 100K PPS/Sec. ICPDAS I-8092F Software User Manual...
//therefore, do not set any jerk value that is larger than //20,000*781.25 PPS/sec^2. And 20,000 *781.25 = 15,625,000. i8092MF_SET_K(1, AXIS_X, 1000); //set the acceleration rate value of the X axis on module 1 to //1,000*10 (= 10,000) PPS/Sec^2. ICPDAS I-8092F Software User Manual...
Axis or axes (Please refer to Table 2-1) axis: The number of remaining offset pulses. (-32,768 ~ +32,767) data: Return: None Example: i8092MF_SET_AO(1, AXIS_X, 200); //set the number of remaining offset pulses for the X axis on //module 1 to 200 pulses. ICPDAS I-8092F Software User Manual...
//set the start velocity of all axes on module 1 to be 2000 PPS i8092MF_SET_AO(cardNo, AXIS_XY, 9); //set the remaining offset pulses to be 9 PPS i8092MF_FIXED_MOVE(cardNo, AXIS_XY, 10000); // move 10000 Pulses for each axis on module 1 ICPDAS I-8092F Software User Manual...
//set the acceleration value of all axes to 1000 PPS/S. i8092MF_SET_SV(cardNo, AXIS_XY, 2000); //set the start velocity of all axes to 2000 PPS i8092MF_CONTINUE_MOVE(cardNo, AXIS_XY, 1000); //move all axes on module 1 at a speed of 1000 PPS. ICPDAS I-8092F Software User Manual...
//select module 1. i8092MF_SET_MAX_V(cardNo, AXIS_XY, 20000); //set the maximum speed of all axes to 20K PPS. //=============================================== i8092MF_VECTOR_SPEED(cardNo, 0); //set module 1 to perform 2-axis linear or circular motion //at a constant vector speed. i8092MF_SET_VSV(cardNo, 1000); ICPDAS I-8092F Software User Manual...
Page 52
//2-axis linear motion using an asymmetric T-curve velocity profile. i8092MF_SET_VSV(cardNo, 100); //set the start vector speed to 100 PPS. i8092MF_SET_VV(cardNo, 2000); //set the vector speed to 2000 PPS. i8092MF_SET_VA(cardNo, 1000); //set the vector acceleration to 1000 PPS/Sec. i8092MF_SET_VD(cardNo, 500); ICPDAS I-8092F Software User Manual...
Page 53
//set the starting vector speed to sv PPS. i8092MF_SET_VV(cardNo, v); //set vector speed to v PPS. i8092MF_SET_VA(cardNo, a); //set the vector acceleration to a PPS/Sec. i8092MF_SET_VAO(cardNo, 0); //set the value of remaining offset pulses to 0 Pulse. ICPDAS I-8092F Software User Manual...
Page 54
//set the deceleration to d PPS/Sec. i8092MF_SET_VAO(cardNo, 0); //set the value of remaining offset pulses to 0. i8092MF_CIRCLE_CW(cardNo, c1, c2); //execute the 2-axis CW circular motion. Note: Relevant parameters should be set before issuing the motion command. ICPDAS I-8092F Software User Manual...
Parameters: Module number cardNo: The vector speed value (in PPS) data: Return: None Example: i8092MF_SET_VV(1, 120000); //set the vector speed of the interpolation on module 1 //to 120000 PPS. ICPDAS I-8092F Software User Manual...
//set the maximum speed value of the X axis as 20,000 PPS. //therefore, do not set any acceleration value that is larger than //20,000*125 PPS/sec. And 20,000 *125 = 2,500,000. i8092MF_SET_VA(1, 100000); //set the vector acceleration of the interpolation motion //on module 1 to 100K PPS/Sec. ICPDAS I-8092F Software User Manual...
//set the maximum speed value of the X axis as 20,000 PPS. //therefore, do not set any deceleration value that is larger than //20,000*125 PPS/sec. And 20,000 *125 = 2,500,000. i8092MF_SET_VD(1, 100000); //set the vector deceleration value of interpolation motion //on module 1 to 100K PPS/Sec. ICPDAS I-8092F Software User Manual...
//therefore, do not set any jerk value that is larger than //20,000*781.25 PPS/sec^2. And 20,000 *781.25 = 15,625,000. i8092MF_SET_VK(1, 10000); //set the acceleration rate of the interpolation motion on module // 1 to 10,000 PPS/ Sec^2. ICPDAS I-8092F Software User Manual...
Please refer to the figure below for more information. Parameters: Module number cardNo: The number of remaining offset pulses (-32,768 ~ +32,767) data: Return: None Example: i8092MF_SET_VAO(1, 200); //set the number of remaining offset pulse value on module 1 to 200. ICPDAS I-8092F Software User Manual...
-8,388,607 ~ +8,388,607 Return: An error has occurred. Use the i8092MF_GET_ERROR_CODE() function to identify the error. No errors. Example: i8092MF_LINE_2D(1, 12000, 10000); //execute the 2-axis linear interpolation motion on module 1. 2-axis linear interpolation motion ICPDAS I-8092F Software User Manual...
No errors. Example: i8092MF_ARC_CW(1, -5000, -5000, -10000, -10000); //Issues a command to perform a circular motion (an arc) //in a CW direction. Please refer to the following figure. 2-axis circular motion in a CW direction ICPDAS I-8092F Software User Manual...
Page 62
No errors. Example: i8092MF_ARC_CCW(1, -5000, -5000, -10000, -10000); //Issues a command to perform a circular motion (an arc) //in a CCW direction. Refer to the following figure. 2-axis circular motion in a CCW direction ICPDAS I-8092F Software User Manual...
X-axis in pulses. ( -8,388,607 ~ +8,388,607 The relative position of the center to the current position of cp2: Y-axis in pulses. ( -8,388,607 ~ +8,388,607 Return: An error has occurred. Use the i8092MF_GET_ERROR_CODE () function to identify ICPDAS I-8092F Software User Manual...
Page 64
No errors Example: i8092MF_CIRCLE_CCW(1, 0, 10000); //execute a circular motion (a circle) in CCW direction //on module 1 ICPDAS I-8092F Software User Manual...
Acceleration (PPS/Sec) Deceleration of the last segment (in PPS/Sec) Return: An error has occurred. Use the i8092MF_GET_ERROR_CODE() function to identify the error. No errors. Example: BYTE cardNo=1; //select module 1. sv=1000; //starting speed: 1000 PPS. ICPDAS I-8092F Software User Manual...
This function sets the necessary parameters for a 2-axis continuous linear interpolation using symmetric T-curve speed profile. Parameters: Module number cardNo: Starting speed (in PPS) VSV: Vector speed (in PPS) Vector acceleration (PPS/Sec) Return: None ICPDAS I-8092F Software User Manual...
This array contains a list of segment end point data at axis 1. fp1[ ]: -8,388,607 ~ +8,388,607 This array contains a list of segment end point data at axis 2. fp2[ ]: -8,388,607 ~ +8,388,607 Return: ICPDAS I-8092F Software User Manual...
Set the value for the starting speed ( in PPS). Set the value for the vector speed (in PPS). Set the acceleration value (in PPS/Sec). Set the ratio value between the two assigned axes. ratio: ICPDAS I-8092F Software User Manual...
Page 70
0Xf,160000); //set maximum speed value to 18000 PPS. i8092MF_RATIO_INITIAL(cardNo, sv, v, a, 0.36); //The ratio is 0.36. (loop2 = 0; loop2 < 5; loop2++) (loop1 = 0; loop1 < 5; loop1++) i8092MF_RATIO_2D(cardNo, 0, 3600, 0); ICPDAS I-8092F Software User Manual...
Starting speed (in PPS) VSV: Vector speed (in PPS) Vector acceleration (PPS/Sec) Return: None Example: i8092MF_MIX_2D_INITIAL(…); //This function should be defined before the i8092MF_MIX_2D_CONTINUE() //function is used. Please refer to the example of this function. ICPDAS I-8092F Software User Manual...
Page 72
() function to identify the error. No errors. Example: BYTE cardNo=1; //select module 1. sv=300; //starting speed: 300 PPS v=18000; //vector speed: 18000 PPS long a=500000; //acceleration: 500000 PPS/Sec unsigned short loop1; i8092MF_SET_MAX_V(cardNo, AXIS_XY, 160000); ICPDAS I-8092F Software User Manual...
Acceleration Offset Pulse output. Interrupt occurs at the start of the constant speed C-STA drive or begin of Acceleration Offset Pulse output. D-END Interrupt occurs when the driving is finished Return: None ICPDAS I-8092F Software User Manual...
Page 75
AXIS_XY, 10000); while (i8092MF_STOP_WAIT(CardNo, 0xf) == NO) //Wait for motion done DoEvents(); Sleep(1); //IST function DWORD WINAPI i8092_ThreadFunction(LPVOID lParam) DWORD dwEvent; WORD RR3_X; if(hINTP != NULL) //Wait the event object dwEvent = WaitForSingleObject(hINTP, INFINITE); switch(dwEvent) ICPDAS I-8092F Software User Manual...
Slot_Interrupt_Done(BYTE Slot), Slot_Interrupt_Close(BYTE Slot) in the WinConSDK. 6.4.2 Interrupt Disabled void i8092MF_INTFACTOR_DISABLE(BYTE WORD cardNo, axis) Description: This function disables the interrupt factors Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: ICPDAS I-8092F Software User Manual...
Interrupt occurs at the start of the constant 0x040 C-STA speed drive or begin of Acceleration Offset Pulse output. 0x080 D-END Interrupt occurs when the driving is finished Example: i8092MF_GET_RR3 (cardNo, AXIS_X); //read the Interrupt status of AXIS_X ICPDAS I-8092F Software User Manual...
Axis or Axes (Please refer to Table 2-1 for the axis definition.) axis: Return: None Example: Please refer to the example in section 6.5.2. 6.5.2 Release the Holding Status, and Start the Driving void i8092MF_DRV_START(BYTE WORD cardNo, axis) ICPDAS I-8092F Software User Manual...
//command Y-axis to move 15,000 Pulse. This command is be held. i8092MF_DRV_START(cardNo, AXIS_XY); //release the holding status. X and Y axes will start to move simultaneously. 6.5.3 Waiting until the Motion Is Completed BYTE i8092MF_STOP_WAIT(BYTE WORD cardNo, axis) ICPDAS I-8092F Software User Manual...
Page 80
//set the value of remaining offset pulses to 9 pulses. i8092MF_FIXED_MOVE(cardNo, AXIS_XY, 10000); // move all axes on module 1 for 10000 pulses. (i8092MF_STOP_WAIT(cardNo, AXIS_X) == NO) //perform some actions here if the X axis has not finished its //motion. ICPDAS I-8092F Software User Manual...
Description: This function immediately stops the assigned axes. Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: Return: None Example: i8092MF_STOP_SUDDENLY(1, AXIS_XY); //immediately stop the X and Y axes. ICPDAS I-8092F Software User Manual...
Page 82
//stop the interpolation of card 1 in a decelerating way. void i8092MF_VSTOP_SUDDENLY(BYTE cardNo) Description: This function stops interpolation motion of the assigned module immediately. Parameters: Module number cardNo: Return: None Example: i8092MF_VSTOP_SUDDENLY(1); // stop the interpolation of card 1 immediately. ICPDAS I-8092F Software User Manual...
Page 83
VSTOP_ SUDDENLY (). Stop pulse output simply( ERROR_CODE 256 returned) Parameters: Module number cardNo: Axis or axes (Please refer to Table 2-1) axis: Return: None Example: i8092MF_SSTOP_SUDDENLY(1, AXIS_XY); //immediately stop the X and Y axes. ICPDAS I-8092F Software User Manual...
Page 84
Except for State-Control, This function provides the similar feature with i8092MF_ VSTOP_ SUDDENLY (). Stop pulse output simply( ERROR_CODE 256 returned) Parameters: Module number cardNo: Return: None Example: i8092MF_SVSTOP_SUDDENLY(1); // stop the interpolation of card 1 immediately. ICPDAS I-8092F Software User Manual...
In this way, you do not have to execute i8092MF_INTP_END() function. Parameters: Module number cardNo: 2-axis interpolation type: 3-axis interpolation Return: None Example: i8092MF_INTP_END(1, 0); //declear the end of a 2-axis interpolation on card 1. ICPDAS I-8092F Software User Manual...
Set the COMPARE value: -2,147,483,648 ~ +2,147,483,647 data: Return: None Example: i8092MF_SET_COMPARE(cardNo, AXIS_X, 0, 1, 5000); //Set the comparison function for X-Axis. EP; and //Set the compared source to be the COMP+ value to 5000. ICPDAS I-8092F Software User Manual...
Appendix A (I-8092F Basic Functions) A.1 i8092F Command Set Table A-1 I-8092F motion command classification Function Classification Statement Set the command register (WR0), mode registers (WR1~WR3), output register (WR4), and interpolation Registers Management Functions mode register (WR5). Get the status registers (RR0~RR7) Set the initial status of the system.
A.2 Pulse Output Command A.2.1 Signal Types I-8092F has two modes for pulse output command: One is fixed-pulse command output mode; the other is continuous pulse command output mode. User can choose the modes by setting the specific registers. There are two ways to choose the desired pulse mode: a) adjusting hardware jumper, and b) setting registers by software programming.
Page 89
Fig. A-3 Pulse / Direction input mode 1 Fig. A-4 Pulse / Direction input mode 2 Fig. A-5 Pulse / Direction input mode 3 Fig. A-6 Pulse / Direction input mode 4 ICPDAS I-8092F Software User Manual...
A.2.2 Fixed Pulse Driving When host CPU writes a pulse numbers into I-8092F for fixed pulse driving, and configures the performance such as acceleration / deceleration and speed. I-8092F will generate the pulses and output them automatically. When output pulse numbers are equal to the command pulse numbers, I-8092F stops the output.
Page 91
Fig. A-7 Fixed pulse driving Fig. A-8 Changing the output pulse numbers in driving Fig. A-9 Changing command during Fig. A-10 Changing the lesser pulse deceleration numbers than output pulse stop Fig. A-11 Offset pulse in fixed-pulse driving ICPDAS I-8092F Software User Manual...
Enable / disable, active levels and mode setting are possible.And it is necessary to set the following parameters: Range: R Initial Speed: SV (PPS) Driving Speed: V (PPS) Acceleration: A (PPS/Sec) Fig. A-12 Continuous driving ICPDAS I-8092F Software User Manual...
A.2.6 Constant Speed Driving When the driving speed command set in I-8092F is lower than the initial speed, the acceleration /deceleration will not be performed, instead, a constant speed driving starts. If the user wants to perform the sudden stop when the home sensor or encoder Z-phase signal is active, it is better not to perform the acceleration / deceleration driving, but the low-speed constant driving from the beginning.
According to the motion control, we should used acceleration / deceleration planning for improving the capability of path planning and reducing the position error. The speed driving profile in I-8092F can be configured as T-curve and S-curve acceleration / deceleration. A.3.1 Trapezoidal Driving [Symmetric] T-curve Description The linear acceleration / deceleration driving is also called the trapezoidal driving.
Page 95
WR3 as 1, and then use decelerating command (03h) to set the deceleration. When performing the symmetric trapezoidal driving, the following parameters should be preset. Range: R Initial Speed: SV (PPS) Driving Speed: V (PPS) Acceleration: A (PPS/Sec) Output Pulse Number P ICPDAS I-8092F Software User Manual...
When an object is to be moved using stacking equipment, the acceleration and the deceleration of vertical transfer need to be changed since gravity acceleration is applied to the object. I-8092F performs automatic deceleration in fixed pulse driving in the non-symmetric linear acceleration where the acceleration where the acceleration and the deceleration are different.
Page 97
Driving Speed: V: (PPS) Output Pulse Number: P Note: In the case of A>D, the following condition is applied to the ratio of the > × acceleration and the deceleration. , where CLK=16 MHz 4 × ICPDAS I-8092F Software User Manual...
(60h) to 1 can enable the Function. Fig. A-17 Triangle prevention of fixed pulse driving P=2×(Pa+Pd) P: Output pulse number Pa: Number of pulses utilized at acceleration Pd: Number of pulses utilized at deceleration ICPDAS I-8092F Software User Manual...
Velocity equation of segment (1): < (1-4) Velocity equation of segment (2): − − > (1-5) Boundary condition: (1-6) By the BCs and then we can find that (1-7) Fig. A-18 Complete S-curve acc. planning ICPDAS I-8092F Software User Manual...
Page 100
Boundary condition of the connection for (1), (2): (1-12) We can find that (1-13) × − Fig. A-19 Partial S-curve planning In case of S-curve acceleration / deceleration driving, the acceleration profile is not linear. The ICPDAS I-8092F Software User Manual...
Page 101
K. So the acceleration of S-curve includes regions a, b and c. In deceleration, as same as acceleration, the driving speed decelerate parabolically in three regions d, e and f. Fig. A-20 S-Curve acceleration / deceleration driving ICPDAS I-8092F Software User Manual...
Page 102
From (1-15), (1-16), when the output pulse in acceleration of S-curve is more than 1/12 of total output pulse; it will stop increasing acceleration and start to decrease the acceleration value. Fig. A-21 The rule of 1/12 of parabolic acceleration/deceleration. ICPDAS I-8092F Software User Manual...
A.4 Pulse Output Commands A.4.1 2-Axes Interpolation The I-8092F can be set for linear interpolation. To execute the linear interpolation, the user can, according to the present point coordinates, set the finish point coordinates and the interpolation command(s), as shows in Fig. A-22. For individual axis control, the command pulse number is unsigned, and it is controlled by + direction command or - direction command.
A.4.2 Circular Interpolation I-8092F can be selected for circular interpolation. The circular interpolation is starting from the current position (start point). After setting the center point of circular, the finish position and the CW or CCW direction, the user can start the circular interpolation. Note: The coordinates setting value is the relative value of the start point coordinates.
Page 105
By the equation: RSV=RV+RA×TA, and you can get the time and displacement for the acceleration area. 6. If the pulse numbers of deceleration segment are same as the acceleration segment, it can figure easily: manual decelerating point=total output pulse-output pulse during acceleration ICPDAS I-8092F Software User Manual...
Page 106
Note: 1. This formula cannot be used in the constant vector speed driving. 2. In circular interpolation only manual deceleration in trapezoidal driving is available; the automatic deceleration in S-curve driving is not available. Fig. A-25 Calculation of manual deceleration point for circular interpolation ICPDAS I-8092F Software User Manual...
CPU will write the designated interpolation data, for 2 or 3 axes, into I-8092F. If a bit in the bit pattern data from CPU is “1”, I-8092F will output a pulse at the time unit; if it is “0”, I-8092F will not output any pulse at the time unit.
Page 108
SC will become 0 automatically. (2)The host CPU stops writing any command into I-8092F. When SC=0, and when no other data is updated, I-8092F will stop outputting pulse. Then, the bit pattern interpolation is finished.
D9 of RR0 is 1 or 0. And then, repeat writing commands and checking D9. The flow chart is shown at the right side. Fig. A-28 Continuous Interpolation by Polling Method ICPDAS I-8092F Software User Manual...
Page 110
1. The INTN will be on the Hi level if the host CPU writes the next interpolation command to I-8092F. If the interrupt clear command (3Dh) is written to command register, the INTN signal will return to high-Z level from the Low level.
Both of two above situations, user can take the home search motion to let the machine return the operation origin. I-8092F provide the functions that automatically executes a home search sequence such → →...
A.7 I-8092F Function Library We develop the simple but powerful high-level functions set application programming interface (API) by using the specific command and data registers of MCX312. These libraries are composed of motion and interpolation commands, status display, and I/O signal management make programming your controller easy.
Table2-1. cmd is the command code setting in the WR0 register. Available command codes are shown in section A.8. Example: //Set all axes for axis switching. i8092_COMMAND(1, 0x3, 0xf); ICPDAS I-8092F Software User Manual...
Page 115
Parameters: cardNo is the board number. data is the 32-bit hexadecimal value setting in the WR3 register. Example: //Set the all axes software limit enabled as comparing with the real position counter. i8092_SET_WR2(1, 0xf, 0x0023); ICPDAS I-8092F Software User Manual...
Page 116
Table 2-1. data is the 32-bit hexadecimal value setting in the WR4 register. Example: //Set the 2-axes OUT1 signals of Hi active level. i8092_SET_WR4(1, 0xf, 0x0202); ICPDAS I-8092F Software User Manual...
Page 117
WORD axis) Function: Get the main status register (RR0). Parameters: cardNo is the board number. axis is the motion axes, as shows in Table 2-1. Example: //Get the x axis main status register. i8092_GET_RR0(1, 0x1); ICPDAS I-8092F Software User Manual...
Page 118
WORD axis) Function: Get the main status register (RR2). Parameters: cardNo is the board number. axis is the motion axes, as shows in Table 2-1. Example: //Get the x axis status register 2. i8092_GET_RR2(1, 0x1); ICPDAS I-8092F Software User Manual...
Page 119
Example: //Get the x axis main status register. i8092_GET_RR0(1, 0x1); i8092_GET_RR4 Format: void i8092_GET_RR4(unsigned char cardNo) Function: Get the input register (RR4). Parameters: cardNo is the board number. Example: //Get the input register 4. i8092_GET_RR4(1); ICPDAS I-8092F Software User Manual...
Page 120
Format: void i8092_GET_RR5(unsigned char cardNo, WORD data) Function: Get the input register (RR5). Parameters: cardNo is the board number. Example: //Get the input register 5. i8092_GET_RR5(1); ICPDAS I-8092F Software User Manual...
CI_INT 0x4001 #define BP_INT 0x8001 #define IDLE 0x0000 Transfer data type #define BYTE unsigned char #define WORD unsigned short int #define DWORD unsigned long int Command buffer #define #define #define #define #define #define #define #define ICPDAS I-8092F Software User Manual...
Page 122
Setting the mode of the SLMTP i8092_SLMTM_MODE Setting the mode of the SLMTM Setting the COMP+/- registers value and i8092_COMPARE_LP logic position Setting the COMP+/- registers value and i8092_COMPARE_EP Encoder position i8092_RESET_CARD Resetting the motion card ICPDAS I-8092F Software User Manual...
Page 123
Note: If the maximum value of parameter for setting the drive speed (V) is 8000, and the drive speed is set 40KPPS. The user can set V=8000 and R=1600000. Because 40K is 5 times of 8000, we set the R=8000000/5=1600000. ICPDAS I-8092F Software User Manual...
Page 124
Table 2-1. nLevel is the active level, nLevel=0: Low active, nLevel =1: Hi active. Other values are invalid. Example: //Set the positive direction hardware limit as Low active for 2-axes. i8092_HLMTP(1, 0xf, 0); ICPDAS I-8092F Software User Manual...
Page 125
The function selects the logical position counter (LP) as the comparing target of COMP+/- registers. Parameters: cardNo is the board number. axis is the motion axis code, as shows in Table 2-1, Example: //Set the comparing target to LP for all axes. i8092_COMPARE_LP(1, 0x3); ICPDAS I-8092F Software User Manual...
Page 126
Command for resetting the motion card. Parameter: None. Example: //Set the reset command. i8092_RESET_CARD(); Note: When the bit (WR0/D15) is set to 1, but others are 0, the IC will be reset after command writing. ICPDAS I-8092F Software User Manual...
Setting the negative direction software limit I8092_VRING_ENABLE Setting the position counter variable ring I8092_VRING_DISABLE Disable the position counter variable ring i8092_AVTRI_ENABLE Setting Triangle prevention of fixed pulse driving i8092_AVTRI_DISABLE Disable Triangle prevention of fixed pulse driving ICPDAS I-8092F Software User Manual...
Page 128
Table 2-1, only set for single axis. dwdata: input value for logic position counter. Data range: -2 Example: //Clear the logic position counter value. i8092_SET_LP(1, 0x1, 0); i8092_SET_LP(1, 0x2, 0) ICPDAS I-8092F Software User Manual...
Page 129
Table 2-1, only set for single axis. Example: //Read the logic position counter for the X, Y axes. i8092_GET_LP(1, 0x1); i8092_GET_LP(1, 0x2); ICPDAS I-8092F Software User Manual...
Page 130
Table 2-1, only set for single axis. Example: //Read the current velocity for the X, Y axes. i8092_GET_CV(1, 0x1); i8092_GET_CV(1, 0x2); ICPDAS I-8092F Software User Manual...
Page 131
Example: //Set the positive direction software limit to be 100000 for the X, Y axes. i8092_SET_COMPP(1, 0x3, 100000); //Set the positive direction software limit to be 100000 for the X, Y axes. i8092_SET_COMPM(1, 0x3, 100000); ICPDAS I-8092F Software User Manual...
Page 132
Note: 1. The variable ring function enable/disable is set for each axis, however, a logical position counter and a real position counter cannot be enabled/disables individually. 2. If a variable ring function is enabled, a software limit function cannot be used. ICPDAS I-8092F Software User Manual...
Page 133
Table 2-1, Example: i8092_ AVTRI_DISABLE(1, AXIS_X); //enable the X axis of module 1 to generate a triangle form in its //speed profile if the pulse number for output is too low. ICPDAS I-8092F Software User Manual...
A.7.4 Basic Motion Command Functions The basic motion commands of I-8092F are listed in Table A-5. They are including the setting for range (R), multiple (M), start speed (SV), driving speed (V), acceleration (A), deceleration (D), acceleration rate (K), output pulse (P), T-Curve acceleration / deceleration, and S-Curve acceleration / deceleration.
Page 135
When the drive speed of next constant speed period is set, the acceleration / deceleration will be performed to reach the new setting drive speed, then a constant speed driving starts. ICPDAS I-8092F Software User Manual...
Page 136
Table 2-1. data is value of acceleration, it’s range is 1~8000, other values are invalid. Example: //Set the acceleration 80 (PPS/Sec) for X axis. i8092_SET_A(1, 0x1, 80); ICPDAS I-8092F Software User Manual...
Page 137
When Multiple = 500, 477 x 103 PPS/SEC2 ~ 31.25 109 PPS/SEC2 *In this manual, jerk is defined the increasing / decreasing rate of acceleration / deceleration in a time unit. However, jerk should cover the decreasing rate of acceleration and increasing rate of acceleration. ICPDAS I-8092F Software User Manual...
Page 138
Table 2-1. data is the value of the pulse, it’s range is 0~268435455, other values are invalid. Example: //Set the driving pulse number (final point) 10000 for the X axis. i8092_SET_PULSE(1, 0x1, 10000); ICPDAS I-8092F Software User Manual...
Page 139
Table 2-1. Example://Enable the automatic deceleration for 2-axes. i8092_SET_AUTODEC(1, 0xf); Note: The function is useless in circular interpolation for T-curve deceleration. ICPDAS I-8092F Software User Manual...
Page 140
Table 2-1. nDir is the direction of the motion. nDir = 0, positive; nDir = 1, negative Example: //Set the negative fixed pulse drive. i8092_DRV_FDRIVE(1, 0x3, 1); ICPDAS I-8092F Software User Manual...
Page 141
WORD axis) Function: Set asymmetry acceleration/deceleration Parameters: cardNo is the board number. axis is the motion axis code/name, as shows in Table 2-1. Example: //Set the asymmetry acc./dec. motion for 2-axes. i8092_SET_ASYMMETRY(1, 0xf); ICPDAS I-8092F Software User Manual...
Page 142
0xf); i8092_DRV_HOLD Format: void i8092_DRV_HOLD(unsigned char cardNo, WORD axis) Function: Set holding for drive starting. Parameters: cardNo is the board number. axis is the motion axis code/name, as shows in Table 2-1. Example: i8092_DRV_HOLD(1, 0xf); ICPDAS I-8092F Software User Manual...
CCW direction circle interpolation mode i8092_NEXT_WAIT Wait for next interpolation command i8092_BP_ENABLE Bit pattern interpolation enabled i8092_BP_DISABLE Bit pattern interpolation disabled i8092_BP_CLEAR Bit pattern interpolation cleared i8092_BP_STACK Bit pattern data stack i8092_BP_WAIT Wait for bit pattern data write ICPDAS I-8092F Software User Manual...
Page 146
Set the value of the finish point for motion (in Pulses). Parameter: cardNo Module number. axis or axes. Please refer to Table 2-1. axis Pulse number. Range : -2,147,483,648 ~ +2,147,483,648 data Example: //set the value of finish point. i8092_SET_FINISH(1, 1, 1000); ICPDAS I-8092F Software User Manual...
Page 147
Two axes linear interpolation. Parameter: cardNo is the board number. fp1: finish point for axis1, data range is -8388608~8388607. fp2: finish point for axis2, data range is -8388608~8388607. Example: i8092_LINE2D(1, 12000, 10000); Fig. A-33 2-axes linear interpolation ICPDAS I-8092F Software User Manual...
Page 150
Example: i8092_CIRCLE_CCW(1, 0, 10000); Note: The function is convenient to profile for a total circle, it is accounting to the i8092_ARC_CCW function. ICPDAS I-8092F Software User Manual...
Page 151
1, 3, 5, and 7, the linear interpolation will be executed; in segment 2, 4, 6, and 8, the circular interpolation will be executed, and the track is a quadrant circle with radius 1500. The interpolation driving is at a constant vector speed: 1500 PPS. Fig. A-36 Continuous interpolation ICPDAS I-8092F Software User Manual...
Page 152
// Wait next command i8092_LINE_2D(cardNo, 0, -1500); // Segment 7 i8092_NEXT_WAIT(cardNo); // Wait next command i8092_ARC_CCW(cardNo, 1500, 0, 1500, -1500); // Segment 8 i8092_STOP_WAIT(cardNo, Card[cardNo].plane); Delay(500); // Because of the servo lag, In eVC use Sleep(500) ICPDAS I-8092F Software User Manual...
Page 153
Parameters: cardNo is the board number. Example: i8092_BP_ENABLE(1); i8092_BP_DISABLE(1); i8092_BP_STACK i8092_BP_CLEAR Format: void i8092_BP_STACK(unsigned char cardNo) void i8092_BP_CLEAR(unsigned char cardNo) Function: Stack/clear the bit pattern data. Parameters: cardNo is the board number. Example: i8092_BP_STACK(1); i8092_BP_CLEAR(1); ICPDAS I-8092F Software User Manual...
Page 154
Example: i8092_BP_LINE2D_DEMO(1, 30, 40); According to the below flow chart, user can use linear interpolation DDA algorithm to produce are the pulse number of each axis. the BP data. However ICPDAS I-8092F Software User Manual...
Page 155
Note: The following bit pattern demo program is only valid in I-8000. User use the polling method to implement the bit pattern by calling the i8092_BP_LINE2_DEMO function and use interrupt method to implement by calling the i8092_BP_LINE_DEMO_INT function. ICPDAS I-8092F Software User Manual...
Page 156
Card[cardNo].plane, 50); i8092_SET_V(cardNo, Card[cardNo].plane, 500); i8092_SET_A(cardNo, Card[cardNo].plane, 80); i8092_BP_ENABLE(cardNo); // BP Interpolation Enabled i8092_BP_LINE2_DEMO(cardNo, 30, 40); // Linear DDA Data Stack i8092_BP_DISABLE(cardNo); // BP Interpolation disabled Fig. A-38 Use linear DDA method for bit pattern interpolation ICPDAS I-8092F Software User Manual...
Page 157
Note: Z1, Z2 are the output pulse on the each interval, X is the sum of Z1, Y is the sum of Z2, Hex1 is the 16 bits character made of 16 ones or zeros (Z1), and Hex2 is the 16 bits character made of 16 ones or zeros (Z2) ICPDAS I-8092F Software User Manual...
32-bit data for writing in the WR7 register. Example: //Use the function to set the home search type of negative direction, and hardware //signal: home, near home, limit-. i8092_EXTENSION_MODE(1, 0xf, 0x5f00, 0x054f); ICPDAS I-8092F Software User Manual...
Page 159
Get the data of EM7. Parameters: cardNo board number. axis or axes. Please refer to Table 2-1. axis Example: //get the EM7 value of the X-axis on card 1 WORD em7Data; em7Data = i8092_GET_EM7(1, 0x1); ICPDAS I-8092F Software User Manual...
Page 160
Table 2-1. nLevel is setting the active level of the near home signal (IN0). nLevel=0, Low active; nLevel=1, Hi active. Example: i8092_IN1_LEVEL(1, 0xf, 0); ICPDAS I-8092F Software User Manual...
Page 161
Table 2-1. data is the home search speed value. Data range:1~8000 Example: //Set home search speed 1000 (PPS) i8092_SET_HV(1, 0xf, 1000); ICPDAS I-8092F Software User Manual...
Page 162
0, non-execution; nType=1, execution. nDir is the operation direction of the step. nDir=0, positive; nDir=1, negative Example: //Set the step 2 enabled and – negative direction of the home search i8092_HOME_STEP2(1, 0xf, 1, 1); ICPDAS I-8092F Software User Manual...
Page 163
0, non-execution; nType=1, execution. nDir is the operation direction of the step. nDir=0, positive; nDir=1, negative Example: //Set the step 4 enabled and – negative direction of the home search i8092_HOME_STEP4(1, 0xf, 1, 1); ICPDAS I-8092F Software User Manual...
Page 164
Set the home search using an overrun limit signal. Parameters: cardNo is the board number. axis is the motion axis code/name, as shows in Table 2-1. nType=0, disable; nType=1, enable. Example: //Disable the LIMIT (WR7/D10) condition. i8092_HOME_LIMIT(1, 0xf, 0); ICPDAS I-8092F Software User Manual...
Page 165
WORD axis) Function: Start execution of automatic home search. Parameters: cardNo is the board number. axis is the motion axis code/name, as shows in Table 2-1. Example: //Start home search operation. i8092_HOME_START(1, 0xf); ICPDAS I-8092F Software User Manual...
Page 166
Dir-, hardware signal used: home, limit-, encoder-Z Dir+, hardware used: home, limit+, encoder-Z Example: //Set the type 0 of the home search for all axes. i8092_HOME_DEMO(1, 0xf, 0); //Start the home search motion. i8092_HOME_START(1, 0xf); ICPDAS I-8092F Software User Manual...
Page 167
, 0xf); // Starts execution of automatic home search i8092_STOP_WAIT(cardNo, 0xf); // Wait drive stop Sleep(500); // In BC use Delay(500); i8092_SET_LP(cardNo, axis, 0); // Clear LP counter i8092_SET_EP(cardNo, axis, 0); // Clear EP counter ICPDAS I-8092F Software User Manual...
Page 168
// Starts execution of automatic home search i8092_STOP_WAIT(cardNo, axis); // Wait drive stop Sleep(500); // Delay 500ms, In BC use Delay(500); i8092_SET_LP(cardNo, axis, 0); // Clear LP counter i8092_SET_EP(cardNo, axis, 0); // Clear EP counter ICPDAS I-8092F Software User Manual...
Page 169
// Starts execution of automatic home search i8092_STOP_WAIT(cardNo, axis); // Wait drive stop Delay(500); // Delay 500ms, In eVC use Sleep(500); i8092_SET_LP(cardNo, axis, 0); // Clear LP counter i8092_SET_EP(cardNo, axis, 0); // Clear EP counter ICPDAS I-8092F Software User Manual...
//axis. However the activation factor is the logic position counter value ≥ //exceeded the value of COMP+ register (P C+), and the action is the positive //fixed pulse driving. i8092_SET_SYNCMODE(1, 0x1, 0x2001 , 0x0); i8092_SET_SYNCMODE(1, 0x2, 0x0, 0x0010); ICPDAS I-8092F Software User Manual...
Page 171
Function: Get the value of SM7 register. Parameters: cardNo board number axis or axes. Please refer to Table A2-1. axis Example: //Get the value of SM7 of X-axis on board 1. WORD sm7Data ; ICPDAS I-8092F Software User Manual...
Page 172
// Disable the software limit for(i=0;i<4;i++) i8092_SET_WR2(cardNo, 1<<i, Reg[cardNo].WR2[i]&~0x0003); // Provocative factor: P>=C+ i8092_SYNC_MODE(cardNo, ProvocativeAxis, 0x2001, 0x0); i8092_COMMAND(cardNo, ProvocativeAxis, 0x20); // Action of the active axis +direction fixed-pulse drive i8092_SYNC_MODE(cardNo, ActiveAxis, 0x0, 0x0001); i8092_COMMAND(cardNo, ActiveAxis, 0x20); ICPDAS I-8092F Software User Manual...
Page 173
1<<i, Reg[cardNo].WR2[i]&~0x0003); // -Direction continuous drive for the provocative axis i8092_COMMAND(cardNo, ProvocativeAxis, 0x21); // Action of the active axis ---> Stop i8092_SYNC_MODE(cardNo, ActiveAxis, 0x0, 0x0010); // +Direction continuous drive for the active axis i8092_COMMAND(cardNo, ActiveAxis, 0x21); ICPDAS I-8092F Software User Manual...
Page 174
Fig. A-43 Synchronous action example 2 ICPDAS I-8092F Software User Manual...
8~15 are used for digital inputs 16-bit data data: Return: WORD 16-bit DI data Example: WORD IN_Data; i8092_ IN_Data = FRNET_RA(1, 8); //Read the 16-bit DI which is on module 1 and the group number is 8. ICPDAS I-8092F Software User Manual...
Page 178
Group number, range 8~15 wRA: 0~7 are used for digital outputs 16-bit data data: Return: None Example: i8092MF_FRNET_SA(1, 0,0xffff); //Write 0xffff to the 16-bit DO which is on module 1 and the group number is 0. ICPDAS I-8092F Software User Manual...
A.8.2 Data Reading Commands Data Symbol Code Command Data Range Length (Byte) Logic position counter reading Real position counter reading Current driving speed reading 1 ~ 8,000 Current Acc/Dec value reading 1 ~ 8,000 Synchronous buffer register reading ICPDAS I-8092F Software User Manual...
BP register writing disable BP data stack BP data clear 1-step interpolation Deceleration valid Deceleraiton invalid Interpolation interrupt clear A.8.5 Other commands Code Command Automatic home search execution Synchronous action activation NOP (for axis switching) ICPDAS I-8092F Software User Manual...
Page 181
Appendix B: MCX312 Registers This part gives the users some refereces about how to access the registers in the MCX312 chip. For more details, users still have to refer to this chip’s manual provided by NOVA electronics Inc.. B.1 Command Register: WR0 Command register is used for the axis assignment and command registration for each axis in MCX312.
Page 182
B.2 Mode Register1: WR1 Each axis is with mode register WR1. The axis specified by NOP command or the condition before decides which axis’ s register will be written. The register consists of the bit for setting enable / disable and enable logical levels of input signal STOP2~STOP0 (decelerating stop / sudden stop during the driving) and bit for occurring the interrupt enable / disable.
Page 183
Input pulse mode Increase / Decrease of real (EPINV) position counter A / B -phase mode Count up when A –phase is advancing Count down when B –phase is advancing Up-Down pulse Count up when PPIN pulse input mode Count down when PMIN pulse input A / B -phase mode Count up when B –phase is...
Page 184
B.3 Mode Register2: WR2 Each axis is with mode register WR2. The axis specified by NOP command or the condition before decides which axis’ s register will be written. WR2 can be used for setting: (1). external limit inputs, (2). driving pulse types, (3).
Page 185
When independent 2-pulse type is engaged, + direction pulses are output through the output signal nPP/PLS, and − direction pulses through nPM/DIR. When 1-pulse 1-direction type is engaged, + and − directions pulses are output through the output signal nPP/PLS, and nPM/DIR is for direction signals. [Note] Please refer to Chapter 13.2 and 13.3 for the output timing of pulse signal (nPLS) and direction...
Page 186
Invalid Up / down pulse input is not available. Setting active level of input signal nALARM 0: active on the Low ALM-L level, 1: active on the Hi level Setting enable / disable of servo alarm input signal nALARM 0: ALM-E disable, 1: enable When it is enabled, MCX312 will check the input signal.
Page 187
D4,3 EXOP1,0 Setting the external input signals (nEXPP, nEXPM) for driving (EXOP1) (EXOP0) external signals disabled continuous driving mode fixed driving mode manual pulsar mode When the continuous driving mode is engaged, the + direction drive pulses will be output continuously once the nEXPP signal is on the Low level;...
Page 188
D12~8 FE4~0 Set whether the input signal filter function enables or signal passes through. 0: through, 1: enable. D15~13 FL2~0 Set a time constant of the filter. Removable Input signal FL2 ~ 0 maximum noise delay time width 1.75µSEC 2µSEC 224µSEC 256µSEC 448µSEC...
Page 189
B.5 Output Register: WR4 This register is used for setting the general purpose output signals nOUT7~0. This 16-bit register locates 8 output signals of each axis. It can be also used as a 16-bit general purpose output. It is Low level output when the bit is set 0, and Hi level output when the bit is set 1.
Page 190
When it is 1, the external (MPLS) controlled single step EXPLS interpolation mode is engaged. When it is 1, the command controlled single step interpolation CMPLS mode is engaged. Interrupt enable / disable setting during interpolation 0: disable CIINT 1: enable Interrupt enable / disable setting during bit-pattern interpolation D15 BPINT 0: disable 1: enable...
Page 191
D1, 0 n-DRV Displaying driving status of each axis When the bit is 1, the axis is an outputting drive pulse. ; when the bit is 0, the driving of the axis is finished. Once the in-position input signal nINPOS for servomotor is active, nINPOS will return to 0 after the drive pulse output is finished.
Page 192
Status of Driving Finishing CMP+ Displaying the comparison result between logical / real position counter and COMP+ register 1: logical / real position counter ≥ COMP+ register 0: logical / real position counter < COMP+ register Displaying the comparison result between logical / real CMP−...
Page 193
a. when all the drive pulses are output in fixed driving, b. when deceleration stop or sudden stop command is written, c. when software limit is enabled, and is active, d. when external deceleration signal is enabled, and active, e. when external limit switch signals (nLMTP, nLMTM) become active, f.
Page 194
stop or sudden stop will be executed. Bit SLMT+ / − will not become 1 during the reverse direction driving. B.11 Status Register 3: RR3 Each axis is with status register 3. The axis specified by NOP command or the condition before decides which axis’ s register will be read. This register is for reflecting the interrupt factor.
Page 195
RR6 and RR7. The low word 16 bits (D15 ~ D0) is set in RR6 register, and the high word 16 bits (D31 ~ D16) is set in RR7 register for data reading. The data is binary formatted; 2’ s complement is for negatives. ICPDAS I-8092F Software User Manual...
Need help?
Do you have a question about the I-8092F and is the answer not in the manual?
Questions and answers