eyou_ethercat_sdk  1.0
canable library
eu_ethercat.h
浏览该文件的文档.
1 #ifndef EU_ETHERCAT_H
2 #define EU_ETHERCAT_H
3 
4 #ifdef __cplusplus
5 extern "C"
6 {
7 #endif
8 
9 #ifndef EXTERNFUNC
10 #ifdef _WIN32
11 #define EXTERNFUNC __declspec(dllexport)
12 #else
13 #define EXTERNFUNC
14 #endif
15 #endif
16 
17 #define ETH_SUCCESS 0
18 #define ETH_FAILED_INIT 1
19 #define ETH_FAILED_NOSLAVE 2
20 #define ETH_FAILED_CHECKSTATE 3
21 #define ETH_FAILED_UNKNOWN 100
22 
23 #ifdef _WIN32
24  typedef char hint8;
25  typedef short hint16;
26  typedef long hint24;
27  typedef long hint32;
28  typedef long long hint40;
29  typedef long long hint48;
30  typedef long long hint56;
31  typedef long long hint64;
32  typedef unsigned char huint8;
33  typedef unsigned short huint16;
34  typedef unsigned long huint24;
35  typedef unsigned long huint32;
36  typedef unsigned long long huint40;
37  typedef unsigned long long huint48;
38  typedef unsigned long long huint56;
39  typedef unsigned long long huint64;
40  typedef float hreal32;
41  typedef double hreal64;
42 #else
43 typedef signed char hint8;
44 typedef signed short int hint16;
45 typedef signed int hint24;
46 typedef signed int hint32;
47 typedef signed long int hint40;
48 typedef signed long int hint48;
49 typedef signed long int hint56;
50 typedef signed long int hint64;
51 typedef unsigned int huint8 __attribute__((__mode__(__QI__)));
52 typedef unsigned int huint16 __attribute__((__mode__(__HI__)));
53 typedef unsigned int huint24 __attribute__((__mode__(__SI__)));
54 typedef unsigned int huint32 __attribute__((__mode__(__SI__)));
55 typedef unsigned int huint40 __attribute__((__mode__(__DI__)));
56 typedef unsigned int huint48 __attribute__((__mode__(__DI__)));
57 typedef unsigned int huint56 __attribute__((__mode__(__DI__)));
58 typedef unsigned int huint64 __attribute__((__mode__(__DI__)));
59 typedef float hreal32;
60 typedef double hreal64;
61 #endif
62 
64  {
65  // eth_DataType_boolean = 0x01, /**< 布尔类型 */
73  eth_DataType_real64 = 0x09
74  };
75 
76  enum eth_State
77  {
84  eth_State_ACK = 0x10,
85  eth_State_ERROR = 0x10
86  };
87 
89  {
104  };
105 
115  EXTERNFUNC int eth_initDLL(const char *ifName, int ms, int *slaveCnt);
116 
123 
131  EXTERNFUNC int eth_getSlaveState(huint16 slave, eth_State *state);
132 
140  EXTERNFUNC int eth_getOperateMode(huint16 slave, eth_OperateMode *mode);
141 
150 
158  EXTERNFUNC int eth_setControlWord(huint16 slave, huint16 word);
159 
167  EXTERNFUNC int eth_getStatusWord(huint16 slave, huint16 *word);
168 
175  EXTERNFUNC int eth_enable(huint16 slave);
176 
183  EXTERNFUNC int eth_disable(huint16 slave);
184 
191  EXTERNFUNC int eth_faultReset(huint16 slave);
192 
199  EXTERNFUNC int eth_quickStop(huint16 slave);
200 
208  EXTERNFUNC int eth_getActualPosition(huint16 slave, hint32 *pos);
209 
217  EXTERNFUNC int eth_getActualVelocity(huint16 slave, hint32 *vel);
218 
226  EXTERNFUNC int eth_getActualTorque(huint16 slave, hint16 *tor);
227 
235  EXTERNFUNC int eth_setTargetPosition(huint16 slave, hint32 targetPos);
236 
244  EXTERNFUNC int eth_setTargetVelocity(huint16 slave, hint32 targetVel);
245 
253  EXTERNFUNC int eth_setProfileVelocity(huint16 slave, huint32 profileVel);
254 
262  EXTERNFUNC int eth_setProfileAcceleration(huint16 slave, huint32 profileAcc);
263 
271  EXTERNFUNC int eth_setProfileDeceleration(huint16 slave, huint32 profileDec);
272 
280  EXTERNFUNC int eth_setTargetTorque(huint16 slave, hint32 targetTor);
281 
289  EXTERNFUNC int eth_setTorqueSlope(huint16 slave, huint32 torSlope);
290 
302  EXTERNFUNC int eth_readSDO(huint16 slave, huint16 index, huint8 subIndex, void *value, eth_DataType dataType, int timeout);
303 
315  EXTERNFUNC int eth_writeSDO(huint16 slave, huint16 index, huint8 subIndex, void *value, eth_DataType dataType, int timeout);
316 
317 #ifdef __cplusplus
318 }
319 #endif
320 
321 #endif
signed long int hint40
Definition: eu_ethercat.h:47
eth_State
Definition: eu_ethercat.h:77
@ eth_State_Boot
Definition: eu_ethercat.h:81
@ eth_State_Safe_OP
Definition: eu_ethercat.h:82
@ eth_State_Operational
Definition: eu_ethercat.h:83
@ eth_State_Init
Definition: eu_ethercat.h:79
@ eth_State_ERROR
Definition: eu_ethercat.h:85
@ eth_State_ACK
Definition: eu_ethercat.h:84
@ eth_State_None
Definition: eu_ethercat.h:78
@ eth_State_Pre_OP
Definition: eu_ethercat.h:80
float hreal32
Definition: eu_ethercat.h:59
EXTERNFUNC int eth_setProfileDeceleration(huint16 slave, huint32 profileDec)
设置轮廓减速度,单位脉冲
double hreal64
Definition: eu_ethercat.h:60
EXTERNFUNC int eth_setProfileVelocity(huint16 slave, huint32 profileVel)
设置轮廓速度,单位脉冲
#define EXTERNFUNC
Definition: eu_ethercat.h:13
EXTERNFUNC int eth_getSlaveState(huint16 slave, eth_State *state)
获取从站状态
EXTERNFUNC int eth_getActualTorque(huint16 slave, hint16 *tor)
获取电机当前力矩,单位千分之(额定力矩的千分之)
signed int hint32
Definition: eu_ethercat.h:46
EXTERNFUNC int eth_setProfileAcceleration(huint16 slave, huint32 profileAcc)
设置轮廓加速度,单位脉冲
unsigned int huint8 __attribute__((__mode__(__QI__)))
Definition: eu_ethercat.h:51
EXTERNFUNC int eth_enable(huint16 slave)
使能电机
eth_DataType
Definition: eu_ethercat.h:64
@ eth_DataType_real32
Definition: eu_ethercat.h:72
@ eth_DataType_int32
Definition: eu_ethercat.h:68
@ eth_DataType_uint8
Definition: eu_ethercat.h:69
@ eth_DataType_uint32
Definition: eu_ethercat.h:71
@ eth_DataType_uint16
Definition: eu_ethercat.h:70
@ eth_DataType_real64
Definition: eu_ethercat.h:73
@ eth_DataType_int8
Definition: eu_ethercat.h:66
@ eth_DataType_int16
Definition: eu_ethercat.h:67
EXTERNFUNC int eth_faultReset(huint16 slave)
错误重置
EXTERNFUNC int eth_writeSDO(huint16 slave, huint16 index, huint8 subIndex, void *value, eth_DataType dataType, int timeout)
写从站字典
signed char hint8
Definition: eu_ethercat.h:43
EXTERNFUNC int eth_getActualPosition(huint16 slave, hint32 *pos)
获取电机当前位置,单位脉冲
eth_OperateMode
Definition: eu_ethercat.h:89
@ eth_OperateMode_InterpolatedPosition
Definition: eu_ethercat.h:99
@ eth_OperateMode_CyclicSyncPosition
Definition: eu_ethercat.h:100
@ eth_OperateMode_ProfileTorque
Definition: eu_ethercat.h:97
@ eth_OperateMode_ProfilePosition
Definition: eu_ethercat.h:94
@ eth_OperateMode_AutoTuning
Definition: eu_ethercat.h:90
@ eth_OperateMode_Velocity
Definition: eu_ethercat.h:95
@ eth_OperateMode_CyclicSyncTorque
Definition: eu_ethercat.h:102
@ eth_OperateMode_CyclicSyncVelocity
Definition: eu_ethercat.h:101
@ eth_OperateMode_ProfileVelocity
Definition: eu_ethercat.h:96
@ eth_OperateMode_Reserve
Definition: eu_ethercat.h:93
@ eth_OperateMode_INLCalibration
Definition: eu_ethercat.h:91
@ eth_OperateMode_RotorAligning
Definition: eu_ethercat.h:92
@ eth_OperateMode_Homing
Definition: eu_ethercat.h:98
@ eth_OperateMode_TorquePositionFixed
Definition: eu_ethercat.h:103
EXTERNFUNC int eth_setOperateMode(huint16 slave, eth_OperateMode mode)
设置电机的操作模式
EXTERNFUNC int eth_setTorqueSlope(huint16 slave, huint32 torSlope)
设置力矩斜率,单位千分之/s²
EXTERNFUNC int eth_setTargetVelocity(huint16 slave, hint32 targetVel)
设置目标速度,单位脉冲
signed int hint24
Definition: eu_ethercat.h:45
signed long int hint56
Definition: eu_ethercat.h:49
signed short int hint16
Definition: eu_ethercat.h:44
EXTERNFUNC int eth_readSDO(huint16 slave, huint16 index, huint8 subIndex, void *value, eth_DataType dataType, int timeout)
读取从站字典
EXTERNFUNC int eth_setControlWord(huint16 slave, huint16 word)
设置电机的控制字
signed long int hint64
Definition: eu_ethercat.h:50
EXTERNFUNC int eth_getStatusWord(huint16 slave, huint16 *word)
获取电机当前状态字
signed long int hint48
Definition: eu_ethercat.h:48
EXTERNFUNC int eth_setTargetPosition(huint16 slave, hint32 targetPos)
设置目标位置,单位脉冲
EXTERNFUNC int eth_setTargetTorque(huint16 slave, hint32 targetTor)
设置目标力矩,单位千分之
EXTERNFUNC int eth_disable(huint16 slave)
失能电机
EXTERNFUNC int eth_quickStop(huint16 slave)
快速停机
EXTERNFUNC int eth_getActualVelocity(huint16 slave, hint32 *vel)
获取电机当前速度,单位脉冲
EXTERNFUNC int eth_getOperateMode(huint16 slave, eth_OperateMode *mode)
获取电机当前的操作模式
EXTERNFUNC int eth_freeDLL()
关闭设备,释放资源
EXTERNFUNC int eth_initDLL(const char *ifName, int ms, int *slaveCnt)
打开ethercat接口,初始化主站,返回扫描到的从站数量