upgrade Adlink APS library to v2.2.1

main
Yik Teng Hie 4 months ago
parent 484996b2ae
commit f72958db81

@ -187,13 +187,7 @@ I32 FNTYPE APS_absolute_arc_move_3pe(I32 Dimension, I32 *Axis_ID_Array, I32 *Pas
I32 FNTYPE APS_relative_arc_move_3pe(I32 Dimension, I32 *Axis_ID_Array, I32 *Pass_PosOffset_Array, I32 *End_PosOffset_Array, I32 Max_Arc_Speed );
// Interrupt functions
#if defined (_MYLINUX)
I32 FNTYPE APS_int_enable( I32 Board_ID, I32 Enable, void (*event_handler)(int));
I32 FNTYPE APS_get_int_status( I32 Board_ID, I32 Item_No, I32 Factor_No, I32 *Event_int_status );
#else
I32 FNTYPE APS_int_enable( I32 Board_ID, I32 Enable );
#endif
I32 FNTYPE APS_set_int_factor( I32 Board_ID, I32 Item_No, I32 Factor_No, I32 Enable );
I32 FNTYPE APS_get_int_factor( I32 Board_ID, I32 Item_No, I32 Factor_No, I32 *Enable );
@ -347,8 +341,8 @@ I32 FNTYPE APS_get_field_bus_od_number( I32 Board_ID, I32 BUS_No, I32 MOD_No, I3
I32 FNTYPE APS_get_field_bus_od_tx( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 SubMOD_No, I32 TxODIndex, PEC_Sub_MODULE_OD_INFO Sub_MODULE_OD_INFO );
I32 FNTYPE APS_get_field_bus_od_rx( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 SubMOD_No, I32 RxODIndex, PEC_Sub_MODULE_OD_INFO Sub_MODULE_OD_INFO );
I32 FNTYPE APS_set_field_bus_ESC_register( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 RegOffset, I32 DataSize, I32 *DataValue);
I32 FNTYPE APS_get_field_bus_ESC_register( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 RegOffset, I32 DataSize, I32 *DataValue);
I32 FNTYPE APS_set_field_bus_ESC_register( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 RegOffset, I32 DataSize, U32 *DataValue);
I32 FNTYPE APS_get_field_bus_ESC_register( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 RegOffset, I32 DataSize, U32 *DataValue);
I32 FNTYPE APS_get_field_bus_master_type( I32 Board_ID, I32 BUS_No, I32 *BUS_Type );
@ -371,7 +365,9 @@ I32 FNTYPE APS_set_field_bus_slave_state( I32 Board_ID, I32 BUS_No, I32 MOD_No,
I32 FNTYPE APS_get_field_bus_slave_state( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 *State );
I32 FNTYPE APS_set_field_bus_slave_recovery ( I32 Board_ID, I32 BUS_No, I32 MOD_No );
//Field bus AIO slave functions [For HSL AIO16AO2]
I32 FNTYPE APS_set_field_bus_slave_config(I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 ParaNum, I32 ParaDat);
I32 FNTYPE APS_get_field_bus_slave_config(I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 ParaNum, I32* ParaDat);
//Field bus DIO slave functions [For PCI-8392(H)]
I32 FNTYPE APS_set_field_bus_d_output( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 DO_Value );
I32 FNTYPE APS_get_field_bus_d_output( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 *DO_Value );
@ -558,7 +554,7 @@ I32 FNTYPE APS_set_absolute_simultaneous_move ( I32 Dimension, I32 *Axis_ID_Arr
I32 FNTYPE APS_start_simultaneous_move ( I32 Axis_ID );
I32 FNTYPE APS_stop_simultaneous_move ( I32 Axis_ID );
I32 FNTYPE APS_set_velocity_simultaneous_move ( I32 Dimension, I32 *Axis_ID_Array, I32 *Max_Speed_Array );
I32 FNTYPE APS_Release_simultaneous_move ( I32 Axis_ID );
I32 FNTYPE APS_release_simultaneous_move ( I32 Axis_ID );
I32 FNTYPE APS_emg_stop_simultaneous_move ( I32 Axis_ID );
@ -621,6 +617,7 @@ I32 FNTYPE APS_pt_roll_back( I32 Board_ID, I32 PtbId, F64 Max_Speed );
I32 FNTYPE APS_pt_get_error( I32 Board_ID, I32 PtbId, I32 *ErrCode );
//Cmd buffer setting
I32 FNTYPE APS_pt_ext_set_io_map( I32 Board_ID, I32 BUS_No, I32 PtbId, I32 MOD_No, I32 Ch_No, I32 Channel, U32 Option );
I32 FNTYPE APS_pt_ext_set_do_ch( I32 Board_ID, I32 PtbId, I32 Channel, I32 OnOff );
I32 FNTYPE APS_pt_ext_set_table_no( I32 Board_ID, I32 PtbId, I32 CtrlNo, I32 TableNo );
@ -760,17 +757,18 @@ I32 FNTYPE APS_absolute_linear_move_2d_compensation( I32 *Axis_ID_Array, F64 *Po
I32 FNTYPE APS_get_2d_compensation_command_position( I32 Axis_ID, F64 *CommandX, F64 *CommandY, F64 *PositionX, F64 *PositionY );//Ray
// PVT function;
I32 FNTYPE APS_pvt_add_point( I32 Axis_ID, I32 ArraySize, F64 *PositionArray, F64 *VelocityArray, F64 *TimeArray );
I32 FNTYPE APS_pvt_add_point(I32 Axis_ID, I32 ArraySize, F64* PositionArray, F64* VelocityArray, F64* TimeArray, I32* DoChArray, I32* DoValueArray);
I32 FNTYPE APS_pvt_get_status( I32 Axis_ID, I32 *FreeSize, I32 *PointCount, I32 *State );
I32 FNTYPE APS_pvt_start( I32 Dimension, I32 *Axis_ID_Array, I32 Enable );
I32 FNTYPE APS_pvt_reset( I32 Axis_ID );
I32 FNTYPE APS_pvt_pause(I32 Dimension, I32* Axis_ID_Array, I32 Enable);
// PT function;
I32 FNTYPE APS_pt_motion_add_point( I32 Axis_ID, I32 ArraySize, F64 *PositionArray, F64 *TimeArray );
I32 FNTYPE APS_pt_motion_add_point(I32 Axis_ID, I32 ArraySize, F64* PositionArray, F64* TimeArray, I32* DoChArray, I32* DoValueArray);
I32 FNTYPE APS_pt_motion_get_status( I32 Axis_ID, I32 *FreeSize, I32 *PointCount, I32 *State );
I32 FNTYPE APS_pt_motion_start( I32 Dimension, I32 *Axis_ID_Array, I32 Enable );
I32 FNTYPE APS_pt_motion_reset( I32 Axis_ID );
I32 FNTYPE APS_pt_motion_pause(I32 Dimension, I32* Axis_ID_Array, I32 Enable);
//Get speed profile calculation
@ -801,11 +799,26 @@ I32 FNTYPE APS_set_drive_input_mapping(I32 Board_ID, I32 BUS_No, const char* pFi
I32 FNTYPE APS_set_trigger_output_mapping(I32 Board_ID, I32 BUS_No, const char* pFilePath, I32 option);
I32 FNTYPE APS_get_msg_size(I32 Board_ID, I32 ArraySize, I32* MsgQueueSizeArr);
I32 FNTYPE APS_get_msg_data(I32 Board_ID, I32 MsgNo, I32 MsgNum, I32 MsgSize, I32* ActualMsgNum, char* MsgQueueArr);
//General API for Field Bus Data Access
I32 FNTYPE APS_get_field_bus_info(U32 Board_ID, U32 IndexLen, U32* IndexArr, U32 InfoLen, U32* InfoArr);
I32 FNTYPE APS_set_field_bus_data(U32 Board_ID, U32 IndexLen, U32* IndexArr, U32 DataLen, U32* DataArr);
I32 FNTYPE APS_get_field_bus_data(U32 Board_ID, U32 IndexLen, U32* IndexArr, U32 DataLen, U32* DataArr);
// for AMP-304C and 8364RS
I32 FNTYPE APS_get_trigger_table_remain_count(I32 Board_ID, I32 TCmpCh, I32* Cnt);
I32 FNTYPE APS_get_trigger_linear_remain_count(I32 Board_ID, I32 LCmpCh, I32* Cnt);
I32 FNTYPE APS_load_config_from_file(I32 Board_ID, const char* FilePath, I32 Option);
I32 FNTYPE APS_set_axis_profidrive_table(U32 Axis_ID, U32 ParamNo, U32 DataLen, U32* DataArray);
I32 FNTYPE APS_get_axis_profidrive_table(U32 Axis_ID, U32 ParamNo, U32 DataLen, U32* DataArray);
// for cycle time param
I32 FNTYPE APS_WriteBootParamToFlash( I32 Board_ID, U32 ParamNo, U32 ParamValue );
I32 FNTYPE APS_ReadBootParamFromFlash( I32 Board_ID, U32 ParamNo, U32 *ParamValue );
// For 8364 PROFIdrive parameter R/W
I32 FNTYPE APS_read_profidrive_param(U32 Board_ID, U32 Device_No, U32 ParamNo, U32 DataType, U32 DataLen, U32* DataArray);
I32 FNTYPE APS_write_profidrive_param(U32 Board_ID, U32 Device_No, U32 ParamNo, U32 DataType, U32 DataLen, U32* DataArray);
#ifdef __cplusplus
}

@ -32,15 +32,19 @@
//for 8364RS
#define PRB_PT0_MOD_NO ( 0x1C )
#define PRB_PT1_MOD_NO ( 0x1D )
#define PRB_ECAT_SYNC_OFFSET ( 0x20 )
#define PRB_SPEED_PROFILE_OPTION ( 0x1E ) // Speed profile option
#define PRB_SAMPLING_LOOP_SELECT ( 0x1F ) // Sampling loop selection
#define PRB_ECAT_SYNC_OFFSET ( 0x20 )
#define PRB_MANUAL_SLAVE_ID_SRC_1ST_GROUP ( 0x21 ) // The first group of setting manual slave ID source by bit format.(Salve 0 to Slave 31)
#define PRB_MANUAL_SLAVE_ID_SRC_2ND_GROUP ( 0x22 ) // The second group of setting manual slave ID source by bit format.(Salve 32 to Slave 63)
#define PRB_ECAT_CONTI_FRAME_LOSS_CNT ( 0x23 ) // The number of consecutive frame loss.
#define PRB_SAMPLING_SRC_AXIS_TYPE ( 0x24 ) // Sampling source axis type.
#define PRB_AUTO_CONNECT ( 0x25 ) // Used for PCIe-833x start fieldbus speed up
#define PRB_ECAT_DCM_MODE ( 0x26 )
#define PRB_EXIT_KEEP_SERVO_ON ( 0x28 ) // Keep servo on state after closing APS library.
#define PRB_ABS_HOME_AUTO_SAVE ( 0x30 )
#define PRS_RT_LIMIT_RATIO ( 0x31 ) // RT Drive & IO time limit ratio. unit is %
#define PRB_WDT0_VALUE (0x10) // Set / Get watch dog limit.
#define PRB_WDT0_COUNTER (0x11) // Reset Wdt / Get Wdt_Count_Value
@ -310,6 +314,9 @@
#define PRA_EGEAR (0x84) // E-Gear ratio
#define PRA_ENCODER_DIR (0x85) // Encoder direction
#define PRA_POS_UNIT_FACTOR (0x86) // position unit factor setting
#define PRA_RING_LIMIT ( 0x8B )// Ring counter limitation value.
#define PRA_RING_ABS_MOVE_MODE ( 0x8C )// Absolute move mode in ring counter mode
#define PRA_ABSENC_FIXOFFSET (0x8F) // Absolute encoder fix offset setting
#define PRA_KP_GAIN (0x90) // PID controller Kp gain
@ -330,7 +337,8 @@
#define PRA_KVFF_SHIFT (0x9E) // Velocity feed-forward control result shift
#define PRA_KAFF_SHIFT (0x9F) // Acceleration feed-forward control result shift
#define PRA_PID_SHIFT (0xA0) // PID control result shift
#define PRA_PRE_CONTROL (0xA1) // Pre-control
#define PRA_DELAY_TIME (0xA2) // Delay time for balancing filter
//following only for V2...
#define PRA_VOLTAGE_MAX (0x9B) // Maximum output limit
@ -411,6 +419,8 @@
#define PRA_PSR_ACC (0x168) // reserved
#define PRA_PSR_JERK (0x169) // reserved
#define PRA_PVT_PAUSE_DO (0x16A) // (I32) Set DO value when PVT (or PT motion) pause
//Abs Home function
#define PRA_SENSOR_TYPE (0x171) // (I32) sensor type; 0: unknown, 1: incremental, 2: single turn, 3: multi-turn
#define PRA_PULSE_PER_TURN (0x172)
@ -419,6 +429,25 @@
#define PRA_ENC_2_DETERMINABLE_REVOLUTION (0x175)
#define PRA_ABS_HOME_ENABLE (0x176) // Enable absolute home
#define PRA_ABS_ENCODER_VALUE (0x177) // absolute encoder value (F64)
//EPOS
#define PRA_REF_SPEED (0x178) // reference speed (rpm) (F64)
#define PRA_GEAR_LU_PER_REV (0x179) // Mechanical gear: LU per revolution (F64)
#define PRA_GEAR_NUMERATOR (0x17A) // Mechanical gear: Numerator (F64)
#define PRA_GEAR_DENOMINATOR (0x17B) // Mechanical gear: Denominator (F64)
#define PRA_HOME_MAP_DI (0x17C) // Link axis ORG to EPOS homing procedure (I32)
#define PRA_ACC_UNIT (0x17D) // Select Acc/Dec unit is pulse/sec^2 or percentage for EPOS function (I32)
#define PRA_VIRTUAL_MULTI_TURN (0x17E) // (I32) virtual multi-turn for absolute home; 0:disable, 1:enable
#define PRA_HOME_SLWA ( 0x180 ) // (I32) Slow alignment enable
#define PRA_HOME_ACC_2ND ( 0x181 ) // (F64) Second acceleration deceleration rate
#define PRA_HOME_VS_2ND ( 0x182 ) // (F64) Second homing start velocity
#define PRA_HOME_VM_2ND ( 0x183 ) // (F64) Second homing max velocity
#define PRA_HOME_VO_2ND ( 0x184 ) // (F64) Second homing leave sensor velocity
#define PRA_HOME_GTY_CONFIG ( 0x185 ) // (I32) gantry home configuration
#define PRA_HOME_GTY_OFFSET ( 0x186 ) // (F64) gantry home offset
#define PRA_HOME_GTY_RANGE ( 0x187 ) // (F64) gantry home range
// Axis parameter define (For PCI-8154/58)
// Input/Output Mode
#define PRA_PLS_IPT_LOGIC (0x200) //Reverse pulse input counting
@ -512,6 +541,9 @@
#define PRA_TRQ_STP_TIME (0x301) // Time to reach zero torque command; Unit is 1ms. Default is 0 (Stop immediately).
#define PRA_MODE_CHANGE_STABLE_CNT (0x302) // Stable count when operation mode changing to CSP.
//Mnet-4xmo axis parameter
#define PRA_ACC_DEC_OVERRIDE_EN (0x400) // ACC/DEC override
// PCI-8144 axis parameter define
#define PRA_CMD_CNT_EN (0x10000)
#define PRA_MIO_SEN (0x10001)
@ -694,6 +726,8 @@
#define DEVICE_NAME_EM_1C00 (50)
#define DEVICE_NAME_EM_0A00 (51)
#define DEVICE_NAME_EM_1A00 (52)
#define DEVICE_NAME_PCIe_M54 (53)
#define DEVICE_NAME_PCIe_M58 (54)
///////////////////////////////////////////////
// HSL Slave module definition
///////////////////////////////////////////////
@ -744,36 +778,50 @@
#define SLAVE_NAME_PN_DI_MODULE (0x502)
#define SLAVE_NAME_PN_AO_MODULE (0x503)
#define SLAVE_NAME_PN_AI_MODULE (0x504)
#define SLAVE_NAME_PN_General_DO_MODULE (0x505)
#define SLAVE_NAME_PN_General_DI_MODULE (0x506)
#define SLAVE_NAME_PN_Drive_ST_DO_As_DO_MODULE (0x507)
#define SLAVE_NAME_PN_Drive_ST_DI_As_DI_MODULE (0x508)
#define SLAVE_NAME_PN_Drive_SST_DO_As_DO_MODULE (0x509)
#define SLAVE_NAME_PN_Drive_SST_DI_As_DI_MODULE (0x50A)
///////////////////////////////////////////////
// PCIe-833x Slave module definition
///////////////////////////////////////////////
#define SLAVE_ADLINK_ECAT_EPS_1132 (0x1132) //DI32
#define SLAVE_ADLINK_ECAT_EPS_2032 (0x2032) //DO32
#define SLAVE_ADLINK_ECAT_EPS_2132 (0x2132) //DO32
#define SLAVE_ADLINK_ECAT_EPS_3032 (0x3032) //AI32
#define SLAVE_ADLINK_ECAT_EPS_3216 (0x3216) //AI16
#define SLAVE_ADLINK_ECAT_EPS_3504 (0x3504) //AI04
#define SLAVE_ADLINK_ECAT_EPS_4008 (0x4008) //AO8
#define SLAVE_ADLINK_ECAT_EPS_2308 (0x2308) //DO8
#define SLAVE_ADLINK_ECAT_EPS_7002 (0x7002) //MO2
#define SLAVE_ADLINK_ECAT_EPS_1032 (0x1032) //DI32
#define SLAVE_ADLINK_ECAT_EPS_1132 (0x1132) // DI32
#define SLAVE_ADLINK_ECAT_EPS_2032 (0x2032) // DO32
#define SLAVE_ADLINK_ECAT_EPS_2132 (0x2132) // DO32
#define SLAVE_ADLINK_ECAT_EPS_3032 (0x3032) // AI32
#define SLAVE_ADLINK_ECAT_EPS_3216 (0x3216) // AI16
#define SLAVE_ADLINK_ECAT_EPS_3504 (0x3504) // AI04
#define SLAVE_ADLINK_ECAT_EPS_4008 (0x4008) // AO8
#define SLAVE_ADLINK_ECAT_EPS_2308 (0x2308) // DO8
#define SLAVE_ADLINK_ECAT_EPS_7002 (0x7002) // MO2
#define SLAVE_ADLINK_ECAT_EPS_1032 (0x1032) // DI32
#define SLAVE_ADLINK_ECAT_ESM_A620F (0x516204A0) // AI08
#define SLAVE_ADLINK_EU_1008 (0x6) //DI8, 8 Channels, PNP
#define SLAVE_ADLINK_EU_1108 (0x9) //DI8, 8 Channels, NPN
#define SLAVE_ADLINK_EU_1008 (0x6) // DI8, 8 Channels, PNP
#define SLAVE_ADLINK_EU_1108 (0x9) // DI8, 8 Channels, NPN
#define SLAVE_ADLINK_EU_1016 (0x10) // DI16, 16 Channels, PNP
#define SLAVE_ADLINK_EU_1116 (0xF) // DI16, 16 Channels, NPN
#define SLAVE_ADLINK_EU_2008 (0xB) //11 DO8, 8 Channels, PNP
#define SLAVE_ADLINK_EU_2108 (0xC) //12 DO8, 8 Channels, NPN
#define SLAVE_ADLINK_EU_2008 (0xB) // 11 DO8, 8 Channels, PNP
#define SLAVE_ADLINK_EU_2108 (0xC) // 12 DO8, 8 Channels, NPN
#define SLAVE_ADLINK_EU_2016 (0x11) // DO16, 16 Channels, PNP
#define SLAVE_ADLINK_EU_2116 (0x12) // DO16, 16 Channels, NPN
#define SLAVE_ADLINK_EU_3104 (0x31) //49 AI4, Voltage(0-10V), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_3304 (0x29) //41 AI4, Current(4-20mA), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_4104 (0x32) //50 AO4, Voltage(0-10V), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_4304 (0x35) //53 AO4, Current(4-20mA), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_3104 (0x31) // 49 AI4, Voltage(0-10V), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_3304 (0x29) // 41 AI4, Current(4-20mA), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_4104 (0x32) // 50 AO4, Voltage(0-10V), 4 Channels, 16 Bit
#define SLAVE_ADLINK_EU_4304 (0x35) // 53 AO4, Current(4-20mA), 4 Channels, 16 Bit
#define SLAVE_ADLINK_ES_1008 ( 0xE10F ) // Digital input, 8 channels, PNP and NPN
#define SLAVE_ADLINK_ES_1016 ( 0xE10E ) // Digital input, 16 channels, PNP and NPN
#define SLAVE_ADLINK_ES_2016 ( 0xE10A ) // Digital output, 16 channels, PNP
#define SLAVE_ADLINK_ES_2116 ( 0xE106 ) // Digital output, 16 channels, NPN
#define SLAVE_ADLINK_ES_2008 ( 0xE10B ) // Digital output, 8 channels, PNP
#define SLAVE_ADLINK_ES_2108 ( 0xE10E ) // Digital output, 8 channels, NPN
#define SLAVE_ADLINK_ES_3104 ( 0xE209 ) // AI4, Voltage(-10-10V), 4 Channels, 16 Bit
#define SLAVE_ADLINK_ES_3304 ( 0xE20A ) // AI4, Current(0-20mA), 4 Channels, 16 Bit
#define SLAVE_ADLINK_ES_4104 ( 0xE20B ) // AO4, Voltage(-10-10V), 4 Channels, 16 Bit
#define SLAVE_ADLINK_ES_4304 ( 0xE20C ) // AO4, Current(0-20mA), 4 Channels, 16 Bit
///////////////////////////////////////////////
@ -1003,19 +1051,19 @@
#define TGR_CMP_EXTENC2_SRC (0x52) // only ECAT-TRG4
#define TGR_CMP_EXTENC3_SRC (0x53) // only ECAT-TRG4
// 20210326
#define TGR_TRG0_MAP (0X54) //for AMPC-304C, 8364RS
#define TGR_TRG1_MAP (0X55) //for AMPC-304C, 8364RS
#define TGR_TRG2_MAP (0X56) // only AMP-304C
#define TGR_TRG3_MAP (0X57) // only AMP-304C
#define TGR_TRG0_MAP (0X54) // For AMPC-304C, 8364RS, SuperCAT, PCIe-833x
#define TGR_TRG1_MAP (0X55) // For AMPC-304C, 8364RS, SuperCAT, PCIe-833x
#define TGR_TRG2_MAP (0X56) // For AMP-304C, SuperCAT, PCIe-833x
#define TGR_TRG3_MAP (0X57) // For AMP-304C, SuperCAT, PCIe-833x
// For SuperCAT software compare trigger using.
// For SuperCAT and PCIe-833x software compare trigger using.
#define TGR_TRG0_SGN_MAP (0X58)
#define TGR_TRG1_SGN_MAP (0X59)
#define TGR_TRG2_SGN_MAP (0X5A)
#define TGR_TRG3_SGN_MAP (0X5B)
#define TGR_TCMP0_SETTING_TYPE (0x80) // ECAT-4XMO(-MT)/TRG4(-MT)/SuperCAT
#define TGR_TCMP1_SETTING_TYPE (0x81) // ECAT-4XMO(-MT)/TRG4(-MT)/SuperCAT
#define TGR_TCMP0_SETTING_TYPE (0x80) // ECAT-4XMO(-MT)/TRG4(-MT)/SuperCAT, PCIe-833x
#define TGR_TCMP1_SETTING_TYPE (0x81) // ECAT-4XMO(-MT)/TRG4(-MT)/SuperCAT, PCIe-833x
#define TGR_TCMP2_SETTING_TYPE (0x82) // ECAT-4XMO/TRG4
#define TGR_TCMP3_SETTING_TYPE (0x83) // ECAT-4XMO/TRG4
#define TGR_MTCMP0_SETTING_TYPE (0x88) // ECAT-4XMO-MT/TRG4-MT
@ -1373,6 +1421,15 @@
#define PRA_HOME_LATCH (0x900) // Select Home latch source [PCI-8353 only]
#define SLV_HSL_AI16AO2_AI_RANGE (0x0000)
#define SLV_HSL_AI16AO2_AI_LAST_CH (0x0001)
#define SLV_HSL_AI16AO2_ADC_EN (0x0002)
#define SLV_HSL_AI16AO2_INPUT_MODE (0x0003)
#define SLV_HSL_AI16AO2_VERSION (0x1001)
// EtherCAT Master boot parameter [PCIe-833x][SuperCAT]
#define PRBOOT_ECAT_CYCLETIME_OPT (0x00)
#define PRBOOT_ECAT_CYCLETIME_NS (0x01)
#endif

@ -16,12 +16,16 @@
#define ERR_InterruptNotEnable (-8) // Cards' interrupt events not enable or not be initialized
#define ERR_TimeOut (-9) // Function time out
#define ERR_HandshakeAckTimeout (-90001) // Handshake wait acknowledgement time out.
#define ERR_HandshakeMutexTimeout (-90002) // wait mutex return timeout
#define ERR_ParametersInvalid (-10) // Function input parameters are invalid
#define ERR_SetEEPROM (-11) // Set data to EEPROM (or nonvolatile memory) failed
#define ERR_GetEEPROM (-12) // Get data from EEPROM (or nonvolatile memory) failed
#define ERR_InitialModeParamInvalid (-100001) // APS initial input mode invalid
#define ERR_LogFileSizeOverRange (-100002) // Out of log file settings range.
#define ERR_SetEEPROM (-11) // Set data to EEPROM or nonvolatile memory failed
#define ERR_GetEEPROM (-12) // Get data from EEPROM or nonvolatile memory failed
#define ERR_FunctionNotAvailable (-13) // Function is not available in this step, The device is not support this function or Internal process failed
#define ERR_HandshakeRespNotEqualCmd (-130001) // Handshake command response not equal.
#define ERR_NotSupportReuseMode (-130002) // The setting type not support reuse mode.
#define ERR_NoCompatibleResource (-130003) //
#define ERR_FirmwareError (-14) // Firmware error, please reboot the system
#define ERR_CommandInProcess (-15) // Previous command is in process
#define ERR_PushCompareDataNotFinish (-150001) // Last comparison data not push to FIFO completely.
@ -77,11 +81,12 @@
#define ERR_AllocateMemoryFailed (-64) // Allocate memory failed
#define ERR_FileSizeIsWrong (-65) // File size is wrong
#define ERR_DUPLICATE_DI_CHANNEL (-66) // The mapping DI channel duplicate condition occurrence in motion signal and gpio selection mapping
#define ERR_InitWithoutLicense (-67) // Initial without license
#define ERR_NoCompatibleLicense (-68) // Without license
#define ERR_KernelClose (-69) // Kernel/ Soft-core encountered an unexpected error then close
#define ERR_AttachedProcessExceed (-70) // Attached process quantity is exceed
#define ERR_NotSupportRingCounter (-71) // Not support ring counter mode.
//for EMX-100
#define ERR_Emx_Offset (-899)
#define ERR_Smp_App_Existed (-900)
@ -151,19 +156,15 @@
#define EC_SET_SAFEOP_STATE_ERR (-4043)
#define EC_SET_OP_STATE_ERR (-4044)
#define EC_DE_INIT_MASTER_ERR (-4051)
#define EC_ENI_FOPEN_ERR (-4061)
#define EC_ENI_FREAD_ERR (-4062)
#define EC_GEN_EBI_BUSSCAN_ERR (-4063)
#define EC_GEN_EBI_FOPEN_ERR (-4064)
#define EC_GET_EBI_FOPEN_ERR (-4065)
#define EC_GET_EBI_FREAD_ERR (-4066)
#define EC_WRITE_DO_OUT_ERR (-4071)
#define EC_READ_DI_INP_ERR (-4072)
#define EC_CONNECT_SLAVES_ERR (-4073)
#define EC_READ_DO_OUT_ERR (-4074)
#define EC_WRONG_CHANNEL_NO (-4075)
#define EC_WRONG_PORT_NO (-4081)
#define EC_GET_SLAVE_INFO_ERR (-4091)
#define EC_COE_SDO_UPLOAD_ERR (-4101)
#define EC_COE_SDO_HOME_MODE_ERR (-4102)
#define EC_COE_SDO_HOME_ACCDEC_ERR (-4103)
#define EC_COE_SDO_HOME_VM_SWITCH_ERR (-4104)
@ -172,9 +173,6 @@
#define EC_CONTROL_WORD_HOME_ERR (-4107)
#define EC_COE_SDO_STOP_ERR (-4108)
#define EC_CONTROL_WORD_STOP_ERR (-4109)
#define EC_SET_OP_MODE_HOME_ERR (-4110)
//#define EC_SET_OP_MODE_STOP_ERR (-4111)
//#define EC_SET_OP_MODE_EMG_STOP_ERR (-4112)
#define EC_COE_SDO_DOWNLOAD_REQ_ERR (-4113)
#define EC_COE_SDO_DOWNLOAD_RES_ERR (-4114)
#define EC_COE_SDO_UPLOAD_REQ_ERR (-4115)
@ -215,6 +213,8 @@
#define EC_FOE_DOWNLOAD_PWD_NOT_VALID (-4608)
#define ERR_Win32Error (-1000) // No such INT number, or WIN32_API error, contact with ADLINK's FAE staff.
#define ERR_LinuxError (-1500) // No such INT number, or LINUX_API error, contact with ADLINK's FAE staff.
#define ERR_NotImplemntInLinux (-1501) // Not implement in Linux yet. Need to complete this function in advanced.
// DSP Error ( -2001 ~ -3000 ) //Defined in manual
#define ERR_DspStart (-2000) // The base for DSP error

@ -1,8 +1,14 @@
#ifndef TYPE_DEF
#define TYPE_DEF
#define TYPE_DEF
#if defined (_MYWIN32)
#include <windows.h>
#elif defined (_MYLINUX) || (_MYRTLINUX)
#include <stdbool.h>
#endif
typedef char I8;
typedef unsigned char U8;
typedef short I16;
@ -13,6 +19,62 @@ typedef float F32;
typedef double F64;
typedef unsigned long long U64;
#if defined (_MYLINUX) || (_MYRTLINUX)
#include <pthread.h>
typedef unsigned char UCHAR;
typedef unsigned long ULONG;
typedef const char* LPTSTR;
typedef const char* LPCWSTR;
typedef const char* LPCTSTR;
typedef char* LPSTR;
typedef char* LPWSTR;
typedef short SHORT;
typedef unsigned short USHORT;
typedef volatile unsigned long VULONG;
typedef void VOID;
typedef int INT;
typedef unsigned int UINT;
typedef __uint64_t UINT64;
typedef unsigned char BYTE;
typedef unsigned int DWORD;
typedef int LONG;
typedef unsigned long long LONGLONG;
typedef void* HMODULE;
typedef void* HANDLE;
#define WINAPI
#ifndef LARGE_INTEGER
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
};
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
#endif
#ifndef LPVOID
typedef void* LPVOID;
#endif
#define TRUE true
#define FALSE false
#define WAIT_OBJECT_0 0
#define INFINITE 0xFFFFFFFF
#endif
typedef struct
{
@ -670,4 +732,19 @@ typedef struct _AD_MEAS_DESC
}AD_MEAS_DESC, *PAD_MEAS_DESC;
typedef void (*callback_func)(void);
enum E_ECATCycletime
{
E_ECAT_CYCLE_125us = 0,
E_ECAT_CYCLE_250us = 1,
E_ECAT_CYCLE_500us = 2,
E_ECAT_CYCLE_1000us = 3,
E_ECAT_CYCLE_2000us = 4,
E_ECAT_CYCLE_4000us = 5,
E_ECAT_CYCLE_100us = 6,
E_ECAT_CYCLE_62_5us = 7,
E_ECAT_CYCLE_50us = 8,
//----------------------------
E_ECAT_CYCLE_NOTSUPPORT
};
#endif

Binary file not shown.
Loading…
Cancel
Save