//=============================================================================
|
//
|
// MMCE Motion SDK
|
// RSAutomation.co.,LTD.
|
// 2014-03-14
|
// Revision History
|
//
|
//=============================================================================
|
|
#ifndef __NMCMOTIONSDK_H__
|
#define __NMCMOTIONSDK_H__
|
|
#include <windef.h>
|
|
#ifdef FLAMENCOMOTIONAPI_EXPORTS
|
#define NMCMOTIONAPI __declspec(dllexport)
|
#else
|
#define NMCMOTIONAPI __declspec(dllimport)
|
#endif
|
|
//Data Type Definition
|
#ifndef INT8
|
typedef signed char INT8;
|
#endif
|
|
#ifndef UINT8
|
typedef unsigned char UINT8;
|
#endif
|
|
#ifndef INT16
|
typedef signed short INT16;
|
#endif
|
|
#ifndef UINT16
|
typedef unsigned short UINT16;
|
#endif
|
|
#ifndef INT32
|
typedef signed int INT32;
|
#endif
|
|
#ifndef UINT32
|
typedef unsigned int UINT32;
|
#endif
|
|
#ifndef DOUBLE
|
typedef double DOUBLE;
|
#endif
|
|
#ifndef REAL
|
typedef double REAL;
|
#endif
|
|
#ifndef BYTE
|
typedef unsigned char BYTE;
|
#endif
|
|
#ifndef WORD
|
typedef unsigned short WORD;
|
#endif
|
|
#ifndef DWORD
|
typedef unsigned long DWORD;
|
#endif
|
|
#ifndef true
|
#define true 1
|
#endif
|
|
#ifndef false
|
#define false 0
|
#endif
|
|
//MC_XXXX Function Return Values.
|
typedef enum MC_STATUS_tag
|
{
|
MC_OK = 0x00000000,
|
|
//Device Driver Error Defines
|
MC_ERROR_HW_NOT_INSTALLED = 0x000000DC,
|
MC_ERROR_DD_SEND_ERROR = 0x000000DD,
|
MC_ERROR_DD_READ_ERROR = 0x000000DE,
|
MC_DD_ERROR_SEND = 0x000000DF,
|
MC_DD_ERROR_RECV = 0x000000E0,
|
MC_DD_OPEN_FAIL = 0x000000E6,
|
MC_DD_NOT_OPENED = 0x000000E7,
|
MC_DD_CONN_FAIL = 0x000000E8,
|
MC_DD_CLIENT_START_FAIL = 0x000000E9,
|
MC_DD_OK = 0x00000000,
|
MC_CN_NOT_CONNECTED = 0x000000F0,
|
MC_CN_CONNECTED = 0x000000F1,
|
MC_CN_CONNERROR = 0x000000F2,
|
|
//PLCOpen Motion Command Response Error Defines (F/W)
|
MC_INVALID_SYSTEM_STATE = 0x00010000,
|
MC_UNSUPPORT_CMD = 0x00020000,
|
MC_INVALID_AXIS_STATE_NOT_HOMING_MODE = 0x00020047, //v12.1.0.42 Add
|
MC_INVALID_PARAM = 0x00030000,
|
MC_INVALID_PARAM_1 = 0x00030001,
|
MC_INVALID_PARAM_2 = 0x00030002,
|
MC_INVALID_PARAM_3 = 0x00030003,
|
MC_INVALID_PARAM_4 = 0x00030004,
|
MC_INVALID_PARAM_5 = 0x00030005,
|
MC_INVALID_PARAM_6 = 0x00030006,
|
MC_INVALID_PARAM_7 = 0x00030007,
|
MC_INVALID_PARAM_8 = 0x00030008,
|
MC_INVALID_PARAM_9 = 0x00030009,
|
MC_INVALID_PARAM_10 = 0x0003000A,
|
MC_INVALID_SIZE = 0x00040000,
|
MC_INVALID_AXIS_NUM = 0x00050000,
|
MC_NOT_ENOUGH_RESOURCE = 0x00060000,
|
MC_LIMIT_ERROR_PARAM = 0x00070000,
|
MC_LIMIT_ERROR_PARAM_1 = 0x00070001,
|
MC_LIMIT_ERROR_PARAM_2 = 0x00070002,
|
MC_LIMIT_ERROR_PARAM_3 = 0x00070003,
|
MC_LIMIT_ERROR_PARAM_4 = 0x00070004,
|
MC_LIMIT_ERROR_PARAM_5 = 0x00070005,
|
MC_LIMIT_ERROR_PARAM_6 = 0x00070006,
|
MC_LIMIT_ERROR_PARAM_7 = 0x00070007,
|
MC_LIMIT_ERROR_PARAM_8 = 0x00070008,
|
MC_LIMIT_ERROR_PARAM_9 = 0x00070009,
|
MC_LIMIT_ERROR_PARAM_10 = 0x0007000A,
|
MC_INVALID_DEVICE_STATE = 0x00080000,
|
MC_INVALID_DEVICE_STATE_ERROR = 0x00080001,
|
MC_INVALID_AXIS_STATE_DISABLED = 0x00090000,
|
MC_INVALID_AXIS_STATE_STANDSTILL = 0x00090001, //v12.1.0.42 Add
|
MC_INVALID_AXIS_STATE_DISCRETE_MOTION = 0x00090002, //v12.1.0.42 Add
|
MC_INVALID_AXIS_STATE_CONTINUOUS_MOTION = 0x00090003, //v12.1.0.42 Add
|
MC_INVALID_AXIS_STATE_SYNC_MOTION = 0x00090004,
|
MC_INVALID_AXIS_STATE_HOMING = 0x00090005, //v12.1.0.42 Add
|
MC_INVALID_AXIS_STATE_STOPPING = 0x00090006,
|
MC_INVALID_AXIS_STATE_ERRORSTOP = 0x00090007,
|
MC_INVALID_AXIS_STATE_MODE_CHANGE = 0x00090008, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG = 0x000A0000,
|
MC_INVALID_AXIS_CONFIG_POS_LIMIT_SWITCH = 0x000A0006, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG_NEG_LIMIT_SWITCH = 0x000A0009, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG_HOME_SWITCH = 0x000A000B, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG_Z_PHASE_INPUT = 0x000A000D, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG_HOME_SENSOR = 0x000A0010,
|
MC_INVALID_AXIS_CONFIG_MARK_PULSE = 0x000A0012,
|
MC_INVALID_AXIS_CONFIG_HOME_TYPE = 0x000A0032, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG_HOME_FLAG_HANDLE = 0x000A003A, //v12.1.0.42 Add
|
MC_INVALID_AXIS_CONFIG_HOMING_MODE = 0x000A0064,
|
MC_GEARING_RULE_VIOLATION = 0x000B0000,
|
MC_LIMIT_POSITION_OVER = 0x000C0000,
|
MC_POS_HW_LIMIT_POSITION_OVER = 0x000C0001, //v12.1.0.42 Add
|
MC_NEG_HW_LIMIT_POSITION_OVER = 0x000C0002, //v12.1.0.42 Add
|
MC_POS_SW_LIMIT_POSITION_OVER = 0x000C0004, //v12.1.0.42 Add
|
MC_NEG_SW_LIMIT_POSITION_OVER = 0x000C0008, //v12.1.0.42 Add
|
MC_INVALID_AXES_GROUP_NUM = 0x000D0000,
|
MC_AXIS_ALREADY_ASSIGNED = 0x000E0002, //v12.1.0.42 Add
|
MC_IDENT_ALREADY_ASSIGNED = 0x000E0004, //v12.1.0.42 Add
|
MC_AXES_GROUP_INVALID_STATE = 0x000F0000,
|
MC_GROUP_INVALID_STATE_MOVING = 0x000F0002, //v12.1.0.42 Add
|
MC_GROUP_INVALID_STATE_HOMING = 0x000F0003, //v12.1.0.42 Add
|
MC_GROUP_INVALID_STATE_STOPPING = 0x000F0004, //v12.1.0.42 Add
|
MC_GROUP_INVALID_STATE_ERRORSTOP = 0x000F0005, //v12.1.0.42 Add
|
MC_AXIS_IN_SINGLE_MOTION_STATE = 0x00100000,
|
MC_1ST_AXIS_IN_MOTION_STATE = 0x00100001, //v12.1.0.42 Add
|
MC_2ND_AXIS_IN_MOTION_STATE = 0x00100002, //v12.1.0.42 Add
|
MC_3RD_AXIS_IN_MOTION_STATE = 0x00100003, //v12.1.0.42 Add
|
MC_4TH_AXIS_IN_MOTION_STATE = 0x00100004, //v12.1.0.42 Add
|
MC_5TH_AXIS_IN_MOTION_STATE = 0x00100005, //v12.1.0.42 Add
|
MC_6TH_AXIS_IN_MOTION_STATE = 0x00100006, //v12.1.0.42 Add
|
MC_7TH_AXIS_IN_MOTION_STATE = 0x00100007, //v12.1.0.42 Add
|
MC_8TH_AXIS_IN_MOTION_STATE = 0x00100008, //v12.1.0.42 Add
|
MC_GROUP_MEMBER_EMPTY = 0x00110000,
|
MC_1ST_AXIS_IN_GROUP_LIMIT_OVER = 0x00120000, //v12.1.0.42 Add
|
MC_2ND_AXIS_IN_GROUP_LIMIT_OVER = 0x00120001, //v12.1.0.42 Add
|
MC_3RD_AXIS_IN_GROUP_LIMIT_OVER = 0x00120002, //v12.1.0.42 Add
|
MC_4TH_AXIS_IN_GROUP_LIMIT_OVER = 0x00120003, //v12.1.0.42 Add
|
MC_5TH_AXIS_IN_GROUP_LIMIT_OVER = 0x00120004, //v12.1.0.42 Add
|
MC_6TH_AXIS_IN_GROUP_LIMIT_OVER = 0x00120005, //v12.1.0.42 Add
|
MC_7TH_AXIS_IN_GROUP_LIMIT_OVER = 0x00120006, //v12.1.0.42 Add
|
MC_8TH_AXIS_IN_GROUP_LIMIT_OVER = 0x00120007, //v12.1.0.42 Add
|
MC_GROUP_CMD_SIZE_ERROR = 0x00130000,
|
MC_GROUP_CMD_PARAMETER_SIZE_ERROR = 0x00130003, //v12.1.0.42 Add
|
MC_GROUP_MEMBER_NOT_ALLOCATED_X = 0x00140000, //v12.1.0.42 Add
|
MC_GROUP_MEMBER_NOT_ALLOCATED_Y = 0x00140001, //v12.1.0.42 Add
|
MC_AXIS_IN_GROUP_MOTION = 0x00150000,
|
|
//Motion Library Error Defines
|
MC_FAIL = 0xE00C0001,
|
MC_ERROR = 0xE00C0002,
|
MC_IOMAPING_ERR = 0xE00C0003,
|
MC_COMMINIT_ERR = 0xE00C0004,
|
MC_COMM_EVENT_INIT_ERR = 0xE00C0005,
|
MC_READ_ENI_NODE_ERR = 0xE00C0006,
|
MC_INVALID_AXIS_ERR = 0xE00C0007,
|
MC_INVALID_BOARD_ERR = 0xE00C0008,
|
MC_XML_PARSING_ERR = 0xE00C0009,
|
MC_XML_ITEM_COUNT_MISMATCH = 0xE00C000A,
|
MC_NO_BOARD_INSTALLED = 0xE00C000B,
|
MC_INVALID_DOWNLOAD_FILE_TYPE = 0xE00C000C,
|
MC_OPEN_ENI_ERR = 0xE00C000D,
|
MC_FILE_OPEN_FAIL = 0xE00C000E,
|
MC_NO_MATCHING_DOWNLOADINFORMATION = 0xE00C000F,
|
MC_NONE_OP = 0xE00C0010,
|
MC_FAIL_GEN_DOWNLOAD_FILE = 0xE00C0011,
|
MC_REG_KEY_READ_FAIL = 0xE00C0012,
|
MC_NOT_ALLOWED_IN_THIS_MASTER_MODE = 0xE00C0014,
|
MC_MASTERID_OUT_OF_RANGE = 0xE00C0015,
|
MC_BOARDNO_OUT_OF_RANGE = 0xE00C0016,
|
MC_AXISNO_OUT_OF_RANGE = 0xE00C0017,
|
MC_BOARDCNT_OUT_OF_RANGE = 0xE00C0018,
|
MC_RETURN_SIZE_NOT_EQUAL = 0xE00C001A,
|
MC_MASTERID_DUPLICATION_ERR = 0xE00C001B,
|
MC_PARAM_ERROR_FILE_IS_NULL = 0xE00C001C,
|
MC_NO_MATCHING_BOARDID_FOUND = 0xE00C001D,
|
MC_NOT_READY_NETWORK_CONFIGURATION = 0xE00C001E,
|
MC_INVALID_MASTERID_ERR = 0xE00C001F,
|
MC_MASTER_MODE_CHANGE_NOT_ALLOWED = 0xE00C0020,
|
MC_MASTER_REQUEST_PARAM_ERROR = 0xE00C0021,
|
MC_MASTER_INVALID_STATE = 0xE00C0022,
|
MC_NOT_MOTION_LIBRAY_INITIALIZED = 0xE00C0023, //2014.08.22 Ver_0c01000D_2
|
MC_IOMANAGER_NOT_RUNNING = 0xE00C0024, //2014.08.22 Ver_0c01000D_2
|
MC_ANOTHER_PROGRAM_IS_USING_NMC_LIBRARY = 0xE00C0025, //2014.10.02 Ver_0c010010_2
|
MC_SLAVE_ITEM_MISMATCH = 0xE00C0026,
|
MC_SLAVE_ITEM_COUNT_MISMATCH = 0xE00C0027,
|
MC_AXIS_COUNT_OUT_OF_RANGE = 0xE00C0028, //v12.1.0.46
|
MC_SLAVE_DEVICEID_OUT_OF_RANGE = 0xE00C0029, //v12.1.0.64
|
MC_FM_TRIG_COUNT_OUT_OF_RANGE = 0xE00C002A, //v12.1.0.64
|
MC_FM_IDXNO_OUT_OF_RANGE = 0xE00C002B, //v12.1.0.64
|
MC_MODULE_INFO_FILE_OPEN_FAIL = 0xE00C002C, //v12.1.0.64
|
|
//Comm Library Error Defines
|
MC_PCICIP_GEN_10 = 0xCC100000,
|
COMM_CONNECTION_ESTABLISHED = 0xED000001,
|
COMM_CONN_CONFIG_FAILED_INVALID_NETWORK_PATH = 0xED000002,
|
COMM_CONN_CONFIG_FAILED_NO_RESPONSE = 0xED000003,
|
COMM_CONN_CONFIG_FAILED_ERROR_RESPONSE = 0xED000004,
|
COMM_CONNECTION_TIMED_OUT = 0xED000005,
|
COMM_CONNECTION_CLOSED = 0xED000006,
|
COMM_INCOMING_CONNECTION_RUN_IDLE_FLAG_CHANGED = 0xED000007,
|
COMM_ASSEMBLY_NEW_INSTANCE_DATA = 0xED000008,
|
COMM_ASSEMBLY_NEW_MEMBER_DATA = 0xED000009,
|
COMM_CONNECTION_NEW_INPUT_SCANNER_DATA = 0xED00000A,
|
COMM_CONNECTION_VERIFICATION = 0xED00000B,
|
COMM_CONNECTION_RECONFIGURED = 0xED00000C,
|
COMM_REQUEST_RESPONSE_RECEIVED = 0xED000064,
|
COMM_REQUEST_FAILED_INVALID_NETWORK_PATH = 0xED000065,
|
COMM_REQUEST_TIMED_OUT = 0xED000066,
|
COMM_CLIENT_OBJECT_REQUEST_RECEIVED = 0xED000067,
|
COMM_NEW_CLASS3_RESPONSE = 0xED000068,
|
COMM_CLIENT_PCCC_REQUEST_RECEIVED = 0xED000069,
|
COMM_NEW_LIST_IDENTITY_RESPONSE = 0xED00006A,
|
COMM_ID_RESET = 0xED00006B,
|
COMM_BACKPLANE_REQUEST_RECEIVED = 0xED00006C,
|
COMM_OUT_OF_MEMORY = 0xED0000C8,
|
COMM_UNABLE_INTIALIZE_WINSOCK = 0xED0000C9,
|
COMM_UNABLE_START_THREAD = 0xED0000CA,
|
COMM_ERROR_USING_WINSOCK = 0xED0000CB,
|
COMM_ERROR_SETTING_SOCKET_TO_NONBLOCKING = 0xED0000CC,
|
COMM_ERROR_SETTING_TIMER = 0xED0000CD,
|
COMM_SESSION_COUNT_LIMIT_REACHED = 0xED0000CE,
|
COMM_CONNECTION_COUNT_LIMIT_REACHED = 0xED0000CF,
|
COMM_PENDING_REQUESTS_LIMIT_REACHED = 0xED0000D0,
|
COMM_PENDING_REQUEST_GROUPS_LIMIT_REACHED = 0xED0000D1,
|
COMM_ERROR_UNABLE_START_MODBUS = 0xED0000D2,
|
COMM_ERROR_HW_NOT_INSTALLED = 0xED0000DC,
|
COMM_ERROR_DD_SEND_ERROR = 0xED0000DD,
|
COMM_ERROR_DD_READ_ERROR = 0xED0000DE,
|
COMM_DD_ERROR_SEND = 0xED0000DF,
|
COMM_DD_ERROR_RECV = 0xED0000E0,
|
COMM_DD_OPEN_FAIL = 0xED0000E6,
|
COMM_DD_NOT_OPENED = 0xED0000E7,
|
COMM_DD_CONN_FAIL = 0xED0000E8,
|
COMM_DD_CLIENT_START_FAIL = 0xED0000E9,
|
COMM_DD_OK = 0xED000000,
|
COMM_CN_NOT_CONNECTED = 0xED0000F0,
|
COMM_CN_CONNECTED = 0xED0000F1,
|
COMM_CN_CONNERROR = 0xED0000F2,
|
//
|
COMM_ERROR_SUCCESS = 0xEE000000,
|
COMM_ERROR_FAILURE = 0xEE010000,
|
COMM_EXT_ERR_DUPLICATE_FWD_OPEN = 0xEE010100,
|
COMM_EXT_ERR_CLASS_TRIGGER_INVALID = 0xEE010103,
|
COMM_EXT_ERR_OWNERSHIP_CONFLICT = 0xEE010106,
|
COMM_EXT_ERR_CONNECTION_NOT_FOUND = 0xEE010107,
|
COMM_EXT_ERR_INVALID_CONN_TYPE = 0xEE010108,
|
COMM_EXT_ERR_INVALID_CONN_SIZE = 0xEE010109,
|
COMM_EXT_ERR_DEVICE_NOT_CONFIGURED = 0xEE010110,
|
COMM_EXT_ERR_RPI_NOT_SUPPORTED = 0xEE010111,
|
COMM_EXT_ERR_CONNECTION_LIMIT_REACHED = 0xEE010113,
|
COMM_EXT_ERR_VENDOR_PRODUCT_CODE_MISMATCH = 0xEE010114,
|
COMM_EXT_ERR_PRODUCT_TYPE_MISMATCH = 0xEE010115,
|
COMM_EXT_ERR_REVISION_MISMATCH = 0xEE010116,
|
COMM_EXT_ERR_INVALID_CONN_POINT = 0xEE010117,
|
COMM_EXT_ERR_INVALID_CONFIG_FORMAT = 0xEE010118,
|
COMM_EXT_ERR_NO_CONTROLLING_CONNECTION = 0xEE010119,
|
COMM_EXT_ERR_TARGET_CONN_LIMIT_REACHED = 0xEE01011A,
|
COMM_EXT_ERR_RPI_SMALLER_THAN_INHIBIT = 0xEE01011B,
|
COMM_EXT_ERR_CONNECTION_TIMED_OUT = 0xEE010203,
|
COMM_EXT_ERR_UNCONNECTED_SEND_TIMED_OUT = 0xEE010204,
|
COMM_EXT_ERR_PARAMETER_ERROR = 0xEE010205,
|
COMM_EXT_ERR_MESSAGE_TOO_LARGE = 0xEE010206,
|
COMM_EXT_ERR_UNCONN_ACK_WITHOUT_REPLY = 0xEE010207,
|
COMM_EXT_ERR_NO_BUFFER_MEMORY_AVAILABLE = 0xEE010301,
|
COMM_EXT_ERR_BANDWIDTH_NOT_AVAILABLE = 0xEE010302,
|
COMM_EXT_ERR_TAG_FILTERS_NOT_AVAILABLE = 0xEE010303,
|
COMM_EXT_ERR_REAL_TIME_DATA_NOT_CONFIG = 0xEE010304,
|
COMM_EXT_ERR_PORT_NOT_AVAILABLE = 0xEE010311,
|
COMM_EXT_ERR_LINK_ADDR_NOT_AVAILABLE = 0xEE010312,
|
COMM_EXT_ERR_INVALID_SEGMENT_TYPE_VALUE = 0xEE010315,
|
COMM_EXT_ERR_PATH_CONNECTION_MISMATCH = 0xEE010316,
|
COMM_EXT_ERR_INVALID_NETWORK_SEGMENT = 0xEE010317,
|
COMM_EXT_ERR_INVALID_LINK_ADDRESS = 0xEE010318,
|
COMM_EXT_ERR_SECOND_RESOURCES_NOT_AVAILABLE = 0xEE010319,
|
COMM_EXT_ERR_CONNECTION_ALREADY_ESTABLISHED = 0xEE01031A,
|
COMM_EXT_ERR_DIRECT_CONN_ALREADY_ESTABLISHED = 0xEE01031B,
|
COMM_EXT_ERR_MISC = 0xEE01031C,
|
COMM_EXT_ERR_REDUNDANT_CONNECTION_MISMATCH = 0xEE01031D,
|
COMM_EXT_ERR_NO_MORE_CONSUMER_RESOURCES = 0xEE01031E,
|
COMM_EXT_ERR_NO_TARGET_PATH_RESOURCES = 0xEE01031F,
|
COMM_EXT_ERR_VENDOR_SPECIFIC = 0xEE010320,
|
COMM_ERROR_NO_RESOURCE = 0xEE020000,
|
COMM_ERROR_INVALID_PARAMETER_VALUE = 0xEE030000,
|
COMM_ERROR_INVALID_SEG_TYPE = 0xEE040000,
|
COMM_ERROR_INVALID_DESTINATION = 0xEE050000,
|
COMM_ERROR_PARTIAL_DATA = 0xEE060000,
|
COMM_ERROR_CONN_LOST = 0xEE070000,
|
COMM_ERROR_BAD_SERVICE = 0xEE080000,
|
COMM_ERROR_BAD_ATTR_DATA = 0xEE090000,
|
COMM_ERROR_ATTR_LIST_ERROR = 0xEE0A0000,
|
COMM_ERROR_ALREADY_IN_REQUESTED_MODE = 0xEE0B0000,
|
COMM_ERROR_OBJECT_STATE_CONFLICT = 0xEE0C0000,
|
COMM_ERROR_OBJ_ALREADY_EXISTS = 0xEE0D0000,
|
COMM_ERROR_ATTR_NOT_SETTABLE = 0xEE0E0000,
|
COMM_ERROR_PERMISSION_DENIED = 0xEE0F0000,
|
COMM_ERROR_DEV_IN_WRONG_STATE = 0xEE100000,
|
COMM_ERROR_REPLY_DATA_TOO_LARGE = 0xEE110000,
|
COMM_ERROR_FRAGMENT_PRIMITIVE = 0xEE120000,
|
COMM_ERROR_NOT_ENOUGH_DATA = 0xEE130000,
|
COMM_ERROR_ATTR_NOT_SUPPORTED = 0xEE140000,
|
COMM_ERROR_TOO_MUCH_DATA = 0xEE150000,
|
COMM_ERROR_OBJ_DOES_NOT_EXIST = 0xEE160000,
|
COMM_ERROR_NO_FRAGMENTATION = 0xEE170000,
|
COMM_ERROR_DATA_NOT_SAVED = 0xEE180000,
|
COMM_ERROR_DATA_WRITE_FAILURE = 0xEE190000,
|
COMM_ERROR_REQUEST_TOO_LARGE = 0xEE1A0000,
|
COMM_ERROR_RESPONSE_TOO_LARGE = 0xEE1B0000,
|
COMM_ERROR_MISSING_LIST_DATA = 0xEE1C0000,
|
COMM_ERROR_INVALID_LIST_STATUS = 0xEE1D0000,
|
COMM_ERROR_SERVICE_ERROR = 0xEE1E0000,
|
COMM_ERROR_VENDOR_SPECIFIC = 0xEE1F0000,
|
COMM_ERROR_INVALID_PARAMETER = 0xEE200000,
|
COMM_ERROR_WRITE_ONCE_FAILURE = 0xEE210000,
|
COMM_ERROR_INVALID_REPLY = 0xEE220000,
|
COMM_ERROR_BAD_KEY_IN_PATH = 0xEE250000,
|
COMM_ERROR_BAD_PATH_SIZE = 0xEE260000,
|
COMM_ERROR_UNEXPECTED_ATTR = 0xEE270000,
|
COMM_ERROR_INVALID_MEMBER = 0xEE280000,
|
COMM_ERROR_MEMBER_NOT_SETTABLE = 0xEE290000,
|
COMM_ERROR_UNKNOWN_MODBUS_ERROR = 0xEE2B0000,
|
COMM_ERROR_HW_NOT_INSTALLED1 = 0xEE2C0000,
|
COMM_ERROR_ENCAP_PROTOCOL = 0xEE6A0000,
|
COMM_ERROR_STILL_PROCESSING = 0xEEFF0000,
|
MC_DOWNLOAD_FAIL_DUE_TO_ANOTHER_PROGRAM_IS_RUNNING = 0xEE800000, //Ver_0c010012_1
|
}MC_STATUS;
|
|
#define MAX_EEPROM_SIZE 0xFFFF //16bit max (64k)
|
#define ECAT_MAX_NAME 0xFF //255
|
#define MAX_BOARD_CNT 4
|
#define MAX_AXIS_CNT 64
|
#define MAX_AXIS_ID 65535 //Ver_0c010012_6
|
#define MAX_NODE_CNT 256
|
#define MAX_PHYSICAL_ADDR 65535 //Ver_0c010012_3
|
#define MAX_MASTER_ID 10
|
#define MAX_ERR_LEN 128
|
#define MAX_PROFILE_ITEM_COUNT 6
|
#define MAX_AXES_IN_GROUP 8 //3->8 //v12.1.0.45
|
#define MAX_AXES_GROUP_CNT 32
|
#define MAX_AXES_STATUS_SIZE 8
|
#define MAX_ALL_STATUS_SIZE 1536 //Ver_0c010019_1 : °è»ê½Ä = (MAX_AXIS_CNT + MAX_AXES_GROUP_CNT)
|
|
#define MAX_LOGICAL_AXIS_COUNT 64 //v12.1.0.41
|
#define MAX_LOGICAL_DEVICE_COUNT 1024 //v12.1.0.41
|
#define MAX_DEVICE_NAME_SIZE 256 //v12.1.0.64
|
|
#define INVALID_BOARD 0xFFFF
|
#define INVALID_AXIS 0xFFFF
|
#define INVALID_MASTERID 0xFFFF
|
#define INVALID_FLASH 0xFFFFFFFF
|
|
//Axis Parameter Definition
|
#define COMMANDED_POSITION 1
|
#define SW_LIMIT_POS 2
|
#define SW_LIMIT_NEG 3
|
#define ENABLE_LIMIT_POS 4
|
#define ENABLE_LIMIT_NEG 5
|
#define ENABLE_POS_LAG_MONITORING 6
|
#define MAX_POSITION_LAG 7
|
#define MAX_VELOCITY_SYSTEM 8
|
#define MAX_VELOCITY_APPL 9
|
#define ACTUAL_VELOCITY 10
|
#define COMMANDED_VELOCITY 11
|
#define MAX_ACCELERATION_SYSTEM 12
|
#define MAX_ACCELERATION_APPL 13
|
#define MAX_DECELERATION_SYSTEM 14
|
#define MAX_DECELERATION_APPL 15
|
#define MAX_JERK 16
|
#define ACTUAL_POSITION 1001
|
#define PROFILE_DACCEL 1100
|
|
//#define IOMAP_HEADER_SIZE 16
|
#define IOMAP_HEADER_SIZE 28 //DSP 0.13 À̻󿡼 º¯°æµÊ 2014.08.26 (32 - 4)
|
#define IOPAGE_SIZE 4096
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Enum Types
|
//
|
//
|
//-----------------------------------------------------------------------------
|
// EtherCat Master
|
typedef enum EcatState_tag
|
{
|
eST_UNKNOWN = 0,
|
eST_INIT = 0x01, //Ver_0c010016_2
|
eST_PREOP = 0x02, //Ver_0c010016_2
|
eST_BOOTSTRAP = 0x03, //v12.1.0.48
|
eST_SAFEOP = 0x04, //Ver_0c010016_2
|
eST_OP = 0x08, //Ver_0c010016_2
|
eST_ACKERR = 0x10 //Ver_0c010016_2
|
}EcState;
|
|
typedef enum EcatMasterMode_tag
|
{
|
eMM_IDLE = 0,
|
eMM_SCAN,
|
eMM_RUN,
|
eMM_INTRANSITION,
|
eMM_ERR,
|
eMM_LINKBROKEN,
|
eMM_FREE_RUN, //v12.1.0.54
|
}EcMstMode;
|
|
typedef enum EcatScanMode_tag
|
{
|
SCAN_ALL = 0,
|
SCAN_SINGLE ,
|
}EcScanMode;
|
|
typedef enum EcatScanStatus_tag
|
{
|
SCAN_NONE = 0,
|
SCAN_BUSY ,
|
SCAN_DONE
|
}EcScanSts;
|
|
//IO
|
typedef enum IOBufferMode_Tag
|
{
|
BUF_OUT= 0,
|
BUF_IN = 1,
|
}IOBufMode;
|
|
/*
|
Bit0 ErrorStop Error Stop State
|
Bit1 Disabled Disabled State
|
Bit2 Stopping Stopping State
|
Bit3 StandStill Stand Still State
|
Bit4 DiscreteMotion Discrete Motion State
|
Bit5 ContinuousMotion Continuous Motion State
|
Bit6 SynchronizedMotion Synchronized Motion State
|
Bit7 Homing Homing State
|
Bit8-9 Reserved Reserved for Future Use
|
Bit10 ConstantVelocity Constant Velocity Moving
|
Bit11 Accelerating Accelerating Moving
|
Bit12 Decelerating Decelerating Moving
|
Bit13 DirectionPositive Position is increasing
|
Bit14 DirectionNegative Position is decreasing
|
Bit15-16 Reserved Reserved for Future Use.
|
Bit17 HomeAbsSwitch Home Abs. Switch Input Status
|
Bit18 LimitSwitchPos Positive Limit Switch Input Status
|
Bit19 LimitSwitchNeg Negative Limit Switch Input Status
|
Bit20 Reserved Reserved for Future Use
|
Bit21 Reserved Reserved for Future Use
|
Bit22 ReadyForPowerOn Ready for Power on State
|
Bit23 PowerOn Power on State
|
Bit24 IsHomed Homing Complete State
|
Bit25 AxisWarning Axis Warning State
|
Bit26 MotionComplete Motion Complete State
|
Bit27 Gearing Gearing State
|
Bit28 GroupMotion Group Motion State
|
Bit29 BufferFull Motion Buffer Full State
|
Bit30-Bit31 Reserved Reserved for Future Use
|
*/
|
|
//Motion
|
//MC_ReadAxisInfo
|
typedef enum AxisStatus
|
{
|
mcErrorStop = 0x00000001,
|
mcDisabled = 0x00000002,
|
mcStopping = 0x00000004,
|
mcStandStill = 0x00000008,
|
mcDiscreteMotion = 0x00000010,
|
mcContinuousMotion = 0x00000020,
|
mcSynchroMotion = 0x00000040,
|
mcHoming = 0x00000080,
|
mcReserved_as_8 = 0x00000100,
|
mcReserved_as_9 = 0x00000200,
|
mcConstantVelocity = 0x00000400,
|
mcAccelerating = 0x00000800,
|
mcDecelerating = 0x00001000,
|
mcDirectionPositive = 0x00002000,
|
mcDirectionNegative = 0x00004000,
|
mcLimitSwitchNeg = 0x00008000,
|
mcLimitSwitchPos = 0x00010000,
|
mcHomeAbsSwitch = 0x00020000,
|
mcLimitSwitchPosEvent = 0x00040000,
|
mcLimitSwitchNegEvent = 0x00080000,
|
mcDriveFault = 0x00100000,
|
mcSensorStop = 0x00200000,
|
mcReadyForPowerOn = 0x00400000,
|
mcPowerOn = 0x00800000,
|
mcIsHomed = 0x01000000,
|
mcAxisWarning = 0x02000000,
|
mcMotionComplete = 0x04000000,
|
mcGearing = 0x08000000,
|
mcGroupMotion = 0x10000000,
|
mcBufferFull = 0x20000000,
|
mcReserved_as_30 = 0x40000000,
|
mcReserved_as_31 = 0x80000000,
|
}MC_AXISSTATUS;
|
|
//MC_ReadStatus
|
typedef enum StatusTag
|
{
|
mcASErrorStop = 0x00000001,
|
mcASDisabled = 0x00000002,
|
mcASStopping = 0x00000004,
|
mcASStandStill = 0x00000008,
|
mcASDiscreteMotion = 0x00000010,
|
mcASContinuousMotion = 0x00000020,
|
mcASSynchroMotion = 0x00000040,
|
mcASHoming = 0x00000080,
|
}MC_Status;
|
|
//MC_ReadMotionState
|
typedef enum MotionStateTag
|
{
|
mcMSConstantVelocity = 0x00000001,
|
mcMSAccelerating = 0x00000002,
|
mcMSDecelerating = 0x00000004,
|
mcMSDirectionPositive = 0x00000008,
|
mcMSDirectionNegative = 0x00000010,
|
}MC_MOTIONSTATE;
|
|
typedef enum AxisInfoTag
|
{
|
mcAIHomeAbsSwitch = 0x00000001,
|
mcAILimitSwitchPos = 0x00000002,
|
mcAILimitSwitchNeg = 0x00000004,
|
mcAIReserved3 = 0x00000008,
|
mcAIReserved4 = 0x00000010,
|
mcAIReadyForPowerOn = 0x00000020,
|
mcAIPowerOn = 0x00000040,
|
mcAIIsHomed = 0x00000080,
|
mcAIAxisWarining = 0x00000100,
|
mcAIMotionComplete = 0x00000200,
|
mcAIGearing = 0x00000400,
|
mcAIGroupMotion = 0x00000800,
|
mcAIBufferFull = 0x00001000,
|
mcAIReseved13 = 0x00002000,
|
}MC_AXISINFO;
|
|
typedef enum AxisError
|
{
|
mcAxis_NO_ERROR = 0x0000,
|
mcAxis_DEVICE_ERROR = 0x0001,
|
mcAxis_INVALID_AXIS_STATE = 0x0002,
|
mcAxis_PARAMETER_INVALID = 0x0003,
|
mcAxis_UNSUPPORT_CMD_REQUEST = 0x0004,
|
mcAxis_CMD_REQUEST_FORMAT_WRONG = 0x0005,
|
mcAxis_RESOURCE_ERROR = 0x0006,
|
mcAxis_CONFIG_INVALID = 0x0007,
|
mcAxis_POSITION_FOLLOWING_ERROR = 0x0008,
|
mcAxis_VELOCITY_FOLLOWING_ERROR = 0x0009,
|
mcAxis_SYSTEM_MAX_VELOCITY_OVER_ERROR = 0x000A,
|
mcAxis_SYSTEM_MAX_ACCEL_OVER_ERROR = 0x000B,
|
mcAxis_SYSTEM_MAX_DECEL_OVER_ERROR = 0x000C,
|
mcAxis_SYSYEM_MAX_JERK_OVER_ERROR = 0x000D,
|
mcAxis_MALFUNCTION_ERROR = 0x000E,
|
mcAxis_GEARING_RULE_VIOLATION = 0x000F,
|
mcAxis_HW_LIMIT_REACHED_WARNING = 0x8001,
|
mcAxis_SW_LIMIT_REACHED_WARNING = 0x8002,
|
}MC_AXISERROR;
|
|
typedef struct AxisErrorInfoTag
|
{
|
UINT16 ErrorId;
|
UINT16 ErrorInfo0;
|
UINT16 ErrorInfo1;
|
}MC_AxisErrorInfo;
|
|
typedef struct AxesGroupRawDataStatusTag
|
{
|
UINT8 Mode; // Raw Data Mode
|
UINT8 Enabled; // Enabled Flag
|
UINT32 EmptyBufferCount; // Empty Buffer Count
|
UINT16 InBufferIndex; // In Buffer Index
|
UINT16 OutBufferIndex; // Out Buffer Index
|
UINT32 CurrentRawDataID; // Current Out RawDataSet ID
|
UINT8 CoordSystem; // Reserved
|
}MC_AxesGroupRawDataStatus;
|
|
typedef enum MC_SOURCE_tag
|
{
|
mcSetValue = 0, //Synchronization on master set value
|
mcActualValue, //Synchronization on master actual value
|
mcSetValueFixedGear = 0x10,
|
mcActualValueFixedGear = 0x11,
|
}MC_SOURCE;
|
|
typedef enum MC_EXECUTION_MODE_tag
|
{
|
mcImmediately = 0,
|
mcQueued,
|
}MC_EXECUTION_MODE;
|
|
//Parameter Number
|
typedef enum mcParamID_tag
|
{
|
mcpCommandedPosition = 1,
|
mcpSWLimitPos_ = 2,
|
mcpSWLimitNeg_ = 3,
|
mcpEnableLimitPos_ = 4,
|
mcpEnableLimitNeg_ = 5,
|
mcpEnablePosLagMonitoring = 6,
|
mcpMaxPositionLag_ = 7,
|
mcpMaxVelocitySystem_ = 8,
|
mcpMaxVelocityAppl_ = 9,
|
mcpActualVelocity = 10,
|
mcpCommandedVelocity = 11,
|
mcpMaxAccelerationSystem_ = 12,
|
mcpMaxAccelerationAppl = 13,
|
mcpMaxDecelerationSystem_ = 14,
|
mcpMaxDecelerationAppl = 15,
|
mcpMaxJerkSystem = 16,
|
mcpMaxJerkAppl_ = 17,
|
mcpActualPosition = 1000,
|
mcpCommandedAccel = 1001,
|
mcpActualAccel = 1002,
|
mcpCommandedJerk = 1003,
|
mcpActualJerk = 1004,
|
mcpTotalBufferCount = 1010,
|
mcpAvailableBufferCount = 1011,
|
mcpAxisType = 2002,
|
mcpModuloAxis = 2003,
|
mcpModuloValue = 2004,
|
mcpEnableHWLimitPos = 2010,
|
mcpHWLimitPosInputNum = 2011,
|
mcpHWLimitPosActLevel = 2012,
|
mcpEnableHWLimitNeg = 2013,
|
mcpHWLimitNegInputNum = 2014,
|
mcpHWLimitNegActLevel = 2015,
|
mcpHomeInputNum = 2016,
|
mcpHomeActLevel = 2017,
|
mcpMarkerInputNum = 2018,
|
mcpMarkerActLevel = 2019,
|
mcpInputActLevel = 2020,
|
mcpEnableLimitPos = 2030,
|
mcpSWLimitPos = 2031,
|
mcpEnableLimitNeg = 2032,
|
mcpSWLimitNeg = 2033,
|
mcpMaxVelocityAppl = 2034,
|
mcpMaxAccelAppl = 2035,
|
mcpMaxDecelAppl = 2036,
|
mcpMaxJerkAppl = 2037,
|
mcpMaxVelocitySystem = 2038,
|
mcpMaxAccelerationSystem = 2039,
|
mcpMaxDecelerationSystem = 2040,
|
mcpmcpMaxJerkSystem = 2041,
|
mcpmcpEStopType = 2060,
|
mcpEStopDecel = 2061,
|
mcpEStopJerk = 2062,
|
mcpInvertCmdDir = 2070,
|
mcpCmdScaleFactor = 2071,
|
mcpFeedbackMode = 2072,
|
mcpInvertFeedbackDir = 2073,
|
mcpFeedbackScaleFactor = 2074,
|
mcpPositionFeedbackFilter = 2075,
|
mcpVelocityFeedbackFilter = 2076,
|
mcpAccelerationFeedbackFilter = 2077,
|
mcpStartVelocityOffset = 2078,
|
mcpStopVelocityOffset = 2079,
|
mcpInPositionCheckType = 2080,
|
mcpInPositionWindowSize = 2081,
|
mcpInVelocityWindowSize = 2082,
|
mcpEnablePositionLagMonit = 2083,
|
mcpMaxPositionLag = 2084,
|
mcpPositionLagCalMethod = 2085,
|
mcpEnableVelocityLagMonit = 2086,
|
mcpMaxVelocityLag = 2087,
|
mcpVelocityLagCalMethod = 2088,
|
mcpHomingType = 2100,
|
mcpHomingDir = 2101,
|
mcpHomingVelocity = 2102,
|
mcpHomingAcceleration = 2103,
|
mcpHomingDeceleration = 2104,
|
mcpHomingJerk = 2105,
|
mcpHomingCreepVelocity = 2106,
|
mcpHomePositionOffset = 2107,
|
mcpHomeCompleteFlagHandle = 2108,
|
//v12.1.0.33
|
mcpSensor0StopEnable = 2109,
|
mcpSensor0StopMode = 2110,
|
mcpSensor0StopIOOffset = 2111,
|
mcpSensor0StopIOSize = 2112,
|
mcpSensor0StopIOBit = 2113,
|
mcpSensor0StopPosOffset = 2114,
|
mcpSensor1StopEnable = 2115,
|
mcpSensor1StopMode = 2116,
|
mcpSensor1StopIOOffset = 2117,
|
mcpSensor1StopIOSize = 2118,
|
mcpSensor1StopIOBit = 2119,
|
mcpSensor1StopPosOffset = 2120,
|
mcpSensor2StopEnable = 2121,
|
mcpSensor2StopMode = 2122,
|
mcpSensor2StopIOOffset = 2123,
|
mcpSensor2StopIOSize = 2124,
|
mcpSensor2StopIOBit = 2125,
|
mcpSensor2StopPosOffset = 2126,
|
mcpSensor3StopEnable = 2127,
|
mcpSensor3StopMode = 2128,
|
mcpSensor3StopIOOffset = 2129,
|
mcpSensor3StopIOSize = 2130,
|
mcpSensor3StopIOBit = 2131,
|
mcpSensor3StopPosOffset = 2132,
|
mcpSensor4StopEnable = 2133,
|
mcpSensor4StopMode = 2134,
|
mcpSensor4StopIOOffset = 2135,
|
mcpSensor4StopIOSize = 2136,
|
mcpSensor4StopIOBit = 2137,
|
mcpSensor4StopPosOffset = 2138,
|
//v12.1.0.40
|
mcpPositiveLimitErrorStop = 2139,
|
mcpNegativeLimitErrorStop = 2140,
|
//
|
mcpSensor0MovingVelocity = 2141,
|
mcpSensor1MovingVelocity = 2142,
|
mcpSensor2MovingVelocity = 2143,
|
mcpSensor3MovingVelocity = 2144,
|
mcpSensor4MovingVelocity = 2145,
|
//v12.1.0.48
|
mcpPositionOffset = 2146,
|
}mcParamID;
|
|
typedef enum BufferMode_tag
|
{
|
//0:Aborting, 1:Buffered, 2:BlendingLow, 3:BlendingPrevious, 4:BlendingNext, 5:BlendingHigh
|
//6:BufferedBlendingLow, 7:BufferedBlendingPrevious, 8:BufferedBlendingNext, 9:BufferedBlendingHigh
|
mcAborting = 0,
|
mcBuffered,
|
mcBlendingLow,
|
mcBlendingPrevious,
|
mcBlendingNext,
|
mcBlendingHigh,
|
mcBufferedBlendingLow,
|
mcBufferedBlendingPrevious,
|
mcBufferedBlendingNext,
|
mcBufferedBlendingHigh,
|
}MC_BUFFER_MODE;
|
|
typedef enum MCDirection_tag
|
{
|
//0:Positive Direction, 1:Shortest_way, 2:Negative_Direction, 3:Current_Direction
|
mcPositiveDirection = 0,
|
mcShortestWay,
|
mcNegativeDirection,
|
mcCurrentDirection,
|
}MC_DIRECTION;
|
|
typedef enum MC_GEAR_MONITOR_tag
|
{
|
mcGearActive = 0x0001,
|
mcGearIn = 0x0002,
|
mcGearReserved2 = 0x0004,
|
mcGearReserved3 = 0x0008,
|
mcGearReserved4 = 0x0010,
|
mcGearReserved5 = 0x0020,
|
mcGearReserved6 = 0x0040,
|
mcGearReserved7 = 0x0080,
|
mcGearReserved8 = 0x0100,
|
mcGearReserved9 = 0x0200,
|
mcGearReserved10 = 0x0400,
|
mcGearReserved11 = 0x0800,
|
mcGearReserved12 = 0x1000,
|
mcGearReserved13 = 0x2000,
|
mcGearReserved14 = 0x4000,
|
mcGearReserved15 = 0x8000,
|
}MC_GearStatus;
|
|
//MC_AXIS_OBJ_INST_ATTR_ERROR_LIMIT_STOP_TYPE 21
|
typedef enum ErrorLimitstopType_tag
|
{
|
IMMEDIATE = 0,
|
DECEL
|
}AxisStopType;
|
|
//MC_AXIS_OBJ_INST_ATTR_HOMING_DIRECTION 22
|
//Do not use!!! (Old Version)
|
typedef enum Direction_tag
|
{
|
CW = 0,
|
CCW
|
}MC_AXIS_DIRECTION;
|
|
//MC_AXIS_OBJ_INST_ATTR_HOMING_DIRECTION 22
|
//New Version
|
typedef enum Home_Direction_tag
|
{
|
HOMING_DIR_CCW = 0,
|
HOMING_DIR_CW
|
}MC_HOME_AXIS_DIRECTION;
|
|
//MC_AXIS_OBJ_INST_ATTR_CONTROL_TYPE 23
|
typedef enum ControlType_tag
|
{
|
OL_PULSE_DIRECTION= 0,
|
OL_TWO_PULSE,
|
OL_QUDARATURE_PULSE,
|
CL_VELOCITY_LEVEL_ANALOG,
|
CL_TORQUE_LEVEL_ANALOG,
|
}MC_AXIS_CONTROL;
|
|
//MC_AXIS_OBJ_INST_ATTR_POSITION_I_MODE 34
|
typedef enum IMode_tag
|
{
|
IN_STANDING= 0,
|
ALWAYS,
|
}MC_AXIS_I_MODE;
|
|
// Flash Download Binary File Type
|
typedef enum BinFileType
|
{
|
BIN_BOOT = 1,
|
BIN_A8OS = 2,
|
BIN_TM = 3,
|
BIN_DSPOS = 5,
|
BIN_ENI = 6
|
};
|
|
typedef enum SWVerType
|
{
|
SW_VER_MOTION = 0,
|
SW_VER_PCICIP,
|
SW_VER_DDSDK,
|
SW_VER_DD,
|
};
|
|
typedef enum MC_CoordSystem_tag
|
{
|
mcACS = 1,
|
mcMCS,
|
mcPCS,
|
}MC_COORDSYSTEM;
|
|
typedef enum MC_Transition_mode_tag
|
{
|
mcTMNone = 0, //Insert no transition curve (default mode)
|
mcTMStartVelocity, //Transition with given start velocity
|
mcTMConstantVelocity, //Transition with given constant velocity
|
mcTMCornerDistance, //Transition with given corner distance
|
mcTMMaxCornerDeviation, //Transition with given maximum corner deviation
|
//5 - 9 Reserved by PLCopen
|
//10 -¡¦ Supplier specific modes
|
}MC_TRANSITION_MODE;
|
|
typedef enum CircMode_tag
|
{
|
mcBORDER = 0,
|
mcCENTER,
|
mcRADIUS,
|
mcCENTER_ANGLE = 10,
|
mcBORDER_ANGLE = 11,
|
}MC_CIRC_MODE;
|
|
typedef enum CircPathChoice_tag
|
{
|
mcClockWise = 0,
|
mcCounterClockWise,
|
}MC_CIRC_PATHCHOICE;
|
|
typedef enum RawDataMode_tag
|
{
|
mcPositionCmdMode = 0,
|
mcVelocityCmdMode,
|
mcTorqueCmdMode,
|
}MC_RAW_DATA_MODE;
|
|
typedef enum SaveMode_tag
|
{
|
mcSMAuto = 0,
|
mcSMIndex,
|
}MC_SAVE_MODE;
|
|
typedef enum GroupStatus_tag
|
{
|
GroupMoving = 0x00000001,
|
GroupHoming = 0x00000002,
|
GroupErrorStop = 0x00000004,
|
GroupStandby = 0x00000008,
|
GroupStopping = 0x00000010,
|
GroupDisabled = 0x00000020,
|
ConstantVelocity = 0x00000040,
|
Accelerating = 0x00000080,
|
Decelerating = 0x00000100,
|
InPosition = 0x00000200,
|
}MC_GroupStatus;
|
|
//Callback
|
#ifndef MAX_PATH
|
#define MAX_PATH 260
|
#endif
|
|
//File download callback function prototype.
|
typedef struct flashStatus_tag
|
{
|
UINT32 Status;
|
UINT32 Step;
|
UINT32 Progress;
|
char Message[MAX_PATH];
|
}FlashStatus;
|
typedef void (*fnCallbackDownload) (FlashStatus *);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// System APIs - Initialization, General & Utility Functions
|
//
|
//
|
//-----------------------------------------------------------------------------
|
|
//=============================================================================
|
// MC_STATUS MC_STATUS MC_Init(void)
|
// Desc :: ¼³Ä¡µÈ ¸ðµç º¸µå¸¦ ÃʱâÈ ÇÑ´Ù.
|
// Param ::
|
// IN :
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_Init(void);
|
//=============================================================================
|
// MC_STATUS MC_MasterInit(UINT16 MasterID)
|
// Desc :: BoardID ¸¦ ÀԷ¹޾Ƽ Master ¸¦ ÃʱâÈ ÇÑ´Ù.
|
// Param ::
|
// IN : UINT16 MasterID : ÃʱâÈ ÇϰíÀÚ ÇÏ´Â Master ÀÇ ID
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MasterInit(UINT16 MasterID);
|
//=============================================================================
|
// MC_STATUS MC_MasterRUN(UINT16 MasterID)
|
// Desc :: BoardID ¸¦ ÀԷ¹޾Ƽ MasterÀÇ EtherCAT µ¿ÀÛ »óŸ¦ RUN »óÅ·Π¸¸µç´Ù.
|
// Param ::
|
// IN : UINT16 MasterID : Master ÀÇ ID
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_NOT_READY_NETWORK_CONFIGURATION
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MasterRUN(UINT16 MasterID);
|
//=============================================================================
|
// MC_STATUS MC_MasterSTOP(UINT16 MasterID)
|
// Desc :: BoardID ¸¦ ÀԷ¹޾Ƽ MasterÀÇ EtherCAT µ¿ÀÛ »óŸ¦ STOP »óÅ·Π¸¸µç´Ù.
|
// Param ::
|
// IN : UINT16 MasterID : Master ÀÇ ID
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MasterSTOP(UINT16 MasterID);
|
//=============================================================================
|
// MC_STATUS MC_GetSWVersion(UINT16 Type, UINT16 * Major, UINT16 *Minor)
|
// Desc :: Version Á¤º¸¸¦ ¾ò´Â´Ù.
|
// Param ::
|
// OUT : UINT16 * MasterCount : ¼³Ä¡µÈ º¸µå °¹¼ö
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetSWVersion(UINT16 Type, UINT16 * Major, UINT16 *Minor);
|
//=============================================================================
|
// MC_STATUS MC_GetErrorMessage(UINT32 ErrorCode, UINT32 Size, char * ErrorMessage)
|
// Desc :: ErrorCode ¿¡ ´ëÇÑ ¹®ÀÚ¿À» ¾ò´Â´Ù.
|
// Param ::
|
// IN : UINT32 ErrorCode; : Error Code
|
// IN : UINT32 Size ; Size should be MAX_ERR_LEN;
|
// OUT : char * ErrorMessage; : »óÀÀÇÏ´Â ¹®ÀÚ¿
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetErrorMessage(UINT32 ErrorCode, UINT32 Size, char * ErrorMessage);
|
|
//=============================================================================
|
// MC_STATUS MC_GetMismatchErrorInfo(UINT16 BoardID, UINT16 *MisMatchSlaveCount, UINT16 MismatchSlaveID[MAX_AXIS_CNT])
|
// Desc :: MC_SLAVE_ITEM_MISMATCH Error SlaveCount¿Í SlaveID ArrayÀ» ¾ò´Â´Ù.
|
// Param ::
|
// IN : UINT16 BoardID
|
// OUT : UINT16 MisMatchSlaveCount
|
// OUT : UINT16 MismatchSlaveID[MAX_AXIS_CNT] : Mismatch SlaveID Array
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_INVALID_BOARD_ERR or MC_BOARDNO_OUT_OF_RANGE
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetMismatchErrorInfo(UINT16 BoardID,
|
UINT16 * MismatchSlaveCount,
|
UINT16 MismatchSlaveID[MAX_AXIS_CNT]);
|
|
//-----------------------------------------------------------------------------
|
// BoardID : BoardSwitchID
|
// nFileType : Binary File Type :
|
// sNvsFileName : FullPath File Name : c:\\test\\NMC.nvs
|
// sBinFileName : FullPath File Name : c:\\test\\xxx.bin or c:\\test\\xxx.xml ...
|
//
|
//-----------------------------------------------------------------------------
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS FileDownloadCB(
|
UINT16 BoardID,
|
LPVOID lpCallbackFunc, // Callback Function
|
int nFileType,
|
char *sNvsFileName,
|
char *sBinFileName
|
);
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS FileMasterFWDownloadCB(
|
UINT16 BoardID,
|
LPVOID lpCallbackFunc,
|
int nFileType,
|
char *sNvsFileName,
|
char * sBinFileName
|
);
|
|
//-----------------------------------------------------------------------------
|
// BoardID : BoardSwitchID
|
// nFileType : Binary File Type :
|
// sNvsFileName : FullPath File Name : c:\\test\\NMC.nvs
|
// sBinFileName : FullPath File Name : c:\\test\\xxx.bin or c:\\test\\xxx.xml ...
|
//
|
//-----------------------------------------------------------------------------
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS FileDownload(
|
UINT16 BoardID,
|
int nFileType,
|
char * sNvsFileName,
|
char * sBinFileName,
|
int nMsgSize,
|
char * szMsg
|
);
|
|
//=============================================================================
|
// MC_STATUS MC_GetMasterMap(UINT16 MasterMap[MAX_BOARD_CNT], UINT16 * MasterCount)
|
// Desc :: ÇöÀç ¼³Ä¡µÈ ¸ðµç º¸µåÀÇ ID List ¸¦ µ¹·ÁÁØ´Ù.
|
// Param ::
|
// OUT : UINT16 MasterMap[MAX_BOARD_CNT] : ¼³Ä¡µÈ º¸µå ID List
|
// OUT : UINT16 * MasterCount : ¼³Ä¡µÈ º¸µå °¹¼ö
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_NO_BOARD_INSTALLED
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetMasterMap(
|
UINT16 MasterMap[MAX_BOARD_CNT],
|
UINT16 * MasterCount
|
);
|
//=============================================================================
|
// MC_STATUS MC_GetMasterCount(UINT16 * MasterCount)
|
// Desc :: ÇöÀç ¼³Ä¡µÈ º¸µåÀÇ °¹¼ö¸¦ ¸®ÅÏÇÑ´Ù.
|
// Param ::
|
// OUT : UINT16 * MasterCount : ¼³Ä¡µÈ º¸µå °¹¼ö
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_NO_BOARD_INSTALLED
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetMasterCount(
|
UINT16 * MasterCount
|
);
|
//=============================================================================
|
// MC_STATUS MC_GetBoardScanNo(UINT16 BoardID, UINT16 * BoardScanNo)
|
// Desc :: BoardID ¿¡ ÇØ´çÇÏ´Â Master ÀÇ Scan Number ¸¦ µ¹·ÁÁØ´Ù.
|
// Param ::
|
// IN : UINT16 BoardID
|
// OUT : UINT16 * BoardScanNo
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_MASTERID_OUT_OF_RANGE
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetBoardScanNo(
|
UINT16 BoardID,
|
UINT16 * BoardScanNo
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_SetSystemPerformance(
|
UINT16 Level
|
);
|
|
//v12.1.0.55
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetNodeFailureID(
|
UINT16 BoardID, //_in Board ID
|
UINT16 * NodeFailureID //_out Node FailureID
|
);
|
|
//v12.1.0.58
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_RestoreSWEmergency(
|
UINT16 BoardID, //_in BoardID
|
UINT8 * RestoreStatus); //_out Restore Status
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Master APIs
|
//
|
//
|
//-----------------------------------------------------------------------------
|
|
//=============================================================================
|
// MC_STATUS MasterGetSDOData( UINT16 BoardID,
|
// UINT16 SlaveNo,
|
// UINT16 SDOIndex,
|
// UINT8 SubIndex,
|
// UINT32 DataSize,
|
// UINT32 *respDataSize,
|
// UINT8 *bDataArray
|
// );
|
// Desc :: Get SDO Data from Slave.
|
// Param ::
|
// IN : UINT16 BoardID
|
// IN : UINT16 SlaveNo : Scan No
|
// IN : UINT16 SDOIndex
|
// IN : UINT16 SubIndex
|
// IN : UINT16 DataSize
|
// OUT : UINT16 * respDataSize
|
// OUT : UINT16 * bDataArray
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetSDOData(
|
UINT16 BoardID,
|
UINT16 SlaveNo,
|
UINT16 SDOIndex,
|
UINT8 SubIndex,
|
UINT32 DataSize,
|
UINT32 *respDataSize,
|
UINT8 *bDataArray
|
);
|
|
//40h-1 - MasterGetSDODataEcatAddr
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetSDODataEcatAddr(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 SDOIndex,
|
UINT8 SubIndex,
|
UINT32 DataSize,
|
UINT32 *respDataSize,
|
UINT8 *bDataArray
|
);
|
|
//=============================================================================
|
// MC_STATUS MasterSetSDOData( UINT16 BoardID,
|
// UINT16 SlaveNo,
|
// UINT16 SDOIndex,
|
// UINT8 SubIndex,
|
// UINT32 DataSize,
|
// UINT32 *respDataSize,
|
// UINT8 *bDataArray
|
// );
|
// Desc :: Set SDO Data to Slave.
|
// Param ::
|
// IN : UINT16 BoardID
|
// IN : UINT16 SlaveNo : Scan No
|
// IN : UINT16 SDOIndex
|
// IN : UINT16 SubIndex
|
// IN : UINT16 DataSize
|
// OUT : UINT16 * respDataSize
|
// IN : UINT16 * bDataArray : Data Arrays to Set
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
//
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterSetSDOData(
|
UINT16 BoardID,
|
UINT16 SlaveNo,
|
UINT16 SDOIndex,
|
UINT8 SubIndex,
|
UINT32 DataSize,
|
UINT32 *respDataSize,
|
UINT8 *bDataArray
|
);
|
|
// 41h-1 - DnloadSDOData
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterSetSDODataEcatAddr(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 SDOIndex,
|
UINT8 SubIndex,
|
UINT32 DataSize,
|
UINT32 *respDataSize,
|
UINT8 *bDataArray
|
);
|
|
//=============================================================================
|
// MC_STATUS MasterGetCurMode(UINT16 BoardID, UINT8 * MasterMode);
|
// Desc :: Board ÀÇ Master »óŸ¦ µ¹·Á ÁØ´Ù.
|
// Param ::
|
// IN : UINT16 BoardID
|
// OUT : UINT8 * MasterMode : EcMstMode ÀÇ »óÅÂ °ª
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_MASTERID_OUT_OF_RANGE
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetCurMode(UINT16 BoardID, UINT8 * MasterMode);
|
//=============================================================================
|
// MC_STATUS MasterGetBoardID(UINT16 MasterScanNo, UINT16 * MasterID);
|
// Desc :: Master ÀÇ ID ¸¦ ¾ò´Â´Ù. (º¸µå°¡ OS ¿¡¼ ÀÎ½ÄµÈ ¼ø¼ ¹øÈ£¸¦ ÀÔ·ÂÇϸé, ÇØ´ç º¸µåÀÇ ID ¸¦ µ¹·Á ÁØ´Ù.)
|
// Param ::
|
// IN : UINT16 MasterScanNo : º¸µå ÀÎ½Ä ¹øÈ£
|
// OUT : UINT16 * MasterID : º¸µåÀÇ ID °ª
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_MASTERID_OUT_OF_RANGE
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetBoardID(UINT16 MasterScanNo, UINT16 * MasterID);
|
//=============================================================================
|
// MC_STATUS MasterGetOSRevision(UINT16 BoardID, UINT8 * Major, UINT8 * Minor);
|
// Desc :: Retrive Arm OS Version Information of Master
|
// Param ::
|
// IN : UINT16 BoardID
|
// OUT : UINT8 * Major : Majer Version
|
// OUT : UINT8 * Minor : Minor Version
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_MASTERID_OUT_OF_RANGE
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetOSRevision(UINT16 BoardID, UINT8 * Major, UINT8 * Minor);
|
//=============================================================================
|
// MC_STATUS MasterGetMCRevision(UINT16 BoardID, UINT8 * Major, UINT8 * Minor);
|
// Desc :: Retrive Motion Control Version Information of Master
|
// Param ::
|
// IN : UINT16 BoardID
|
// OUT : UINT8 * Major : Majer Version
|
// OUT : UINT8 * Minor : Minor Version
|
// return ::
|
// No Error :
|
// MC_OK
|
// Error :
|
// MC_MASTERID_OUT_OF_RANGE
|
//=============================================================================
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetMCRevision(UINT16 BoardID, UINT8 * Major, UINT8 * Minor);
|
|
// MasterGetErrorState //Ver_0c010010_3
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetLastError(
|
UINT16 BoardID,
|
UINT32* pSequenceNo,
|
UINT32* pErrorCode,
|
UINT8 ExtErrorInfo[6]
|
);
|
|
// MasterResetErrorState //Ver_0c010010_4
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterClearError(
|
UINT16 BoardID
|
);
|
|
// Read Error Info //Ver_0c01000D_4
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS NMCReadErrorInfo(
|
UINT16 BoardID,
|
UINT32* pSequenceNo,
|
UINT32* pErrorCode,
|
UINT8 ExtErrorInfo[6],
|
UINT32* RemainErrorCount
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Master APIs - Device Info.
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//Master Get Axes Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetAxesCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * TotalAxisCount //_out Total Axis Count
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetAxesID(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * AxisIDArray //_out AxisID Array
|
);
|
|
//Master Get Device Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetDeviceCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * TotalDeviceCount //_out Total Device Count
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGetDeviceID(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceIDArray //_out DeviceID Array (EcatAddr)
|
);
|
|
//Master Get Digital Input Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DI_DeviceCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceCount //_out DI Device Count
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DI_DeviceID(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceIDArray //_out DI DeviceID Array (EcatAddr)
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DI_DeviceTotalChSize(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in DI DeviceID (EcatAddr)
|
UINT16 * DeviceTotalChSize //_out DI Device Total Channel Size
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DI_DeviceName(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in DI DeviceID (EcatAddr)
|
char DeviceNameArray[MAX_DEVICE_NAME_SIZE] //_out DI Device Name Array [256]
|
);
|
|
//Master Get Digital Output Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DO_DeviceCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceCount //_out DO Device Count
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DO_DeviceID(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceIDArray //_out DO DeviceID Array (EcatAddr)
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DO_DeviceTotalChSize(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in DO DeviceID (EcatAddr)
|
UINT16 * DeviceTotalChSize //_out DO Device Total Channel Size
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_DO_DeviceName(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in DO DeviceID (EcatAddr)
|
char DeviceNameArray[MAX_DEVICE_NAME_SIZE] //_out DO Device Name Array [256]
|
);
|
|
//Master Get Analog Input Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AI_DeviceCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceCount //_out AI DeviceCount
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AI_DeviceID(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceIDArray //_out AI DeviceID Array (EcatAddr)
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AI_DeviceTotalChSize(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in AI DeviceID (EcatAddr)
|
UINT16 * DeviceTotalChSize //_out AI Device Total Channel Size
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AI_DeviceName(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in AI DeviceID (EcatAddr)
|
char DeviceNameArray[MAX_DEVICE_NAME_SIZE] //_out AI Device Name Array [256]
|
);
|
|
//Master Get Analog Output Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AO_DeviceCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceCount //_out AO DeviceCount
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AO_DeviceID(
|
UINT16 BoardID, //_in BoardID
|
UINT16 * DeviceIDArray //_out AO DeviceID Array (EcatAddr)
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AO_DeviceTotalChSize(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in AO DeviceID (EcatAddr)
|
UINT16 * DeviceTotalChSize //_out AO Device Total Channel Size
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_AO_DeviceName(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in AO DeviceID (EcatAddr)
|
char DeviceNameArray[MAX_DEVICE_NAME_SIZE] //_out AO Device Name Array [256]
|
);
|
|
//I/O Device (DI/DO/AI/AO) - Pdo Info.
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_IO_DevicePdoCount(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in I/O DeviceID (EcatAddr)
|
UINT16 * InPdoCount, //_out Input Pdo Count
|
UINT16 * OutPdoCount //_out Output Pdo Count
|
);
|
//Input
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_IO_DeviceInPdoData(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in I/O DeviceID (EcatAddr)
|
UINT16 * InPdoSizeArray, //_out Input Pdo Size Array
|
UINT16 * InPdoIOOffsetArray, //_out Input Pdo IOOffset Array
|
UINT16 * InPdoRawIOOffsetArray //_out Input Pdo Raw IOOffset Array
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_IO_DeviceInPdoName(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in I/O DeviceID (EcatAddr)
|
char InPdoNameArray[][MAX_DEVICE_NAME_SIZE] //_out Input Pdo Name Array [][256]
|
);
|
//Output
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_IO_DeviceOutPdoData(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in I/O DeviceID (EcatAddr)
|
UINT16 * OutPdoSizeArray, //_out Output Pdo Size Array
|
UINT16 * OutPdoIOOffsetArray, //_out Output Pdo IOOffset Array
|
UINT16 * OutPdoRawIOOffsetArray //_out Output Pdo Raw IOOffset Array
|
);
|
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterGet_IO_DeviceOutPdoName(
|
UINT16 BoardID, //_in BoardID
|
UINT16 DeviceID, //_in I/O DeviceID (EcatAddr)
|
char OutPdoNameArray[][MAX_DEVICE_NAME_SIZE] //_out Output Pdo Array [][256]
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Slave APIs
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//ObjEcatSlave.h ¿¡¼ ¿Å°Ü ¿È. //Ver_0c01000E_4
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS SlaveGetAliasNo(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 * AliasID
|
);
|
//Ver_0c010012_8
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS SlaveSetAliasNo(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 AliasID
|
);
|
//21
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS SlaveGetCurState(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT8 * data
|
);
|
//42h - Ethercat Direct Access
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MasterECatDirectAccess(
|
UINT16 BoardID,
|
UINT8 EcatCmd,
|
UINT16 Adp,
|
UINT16 Ado,
|
UINT16 ReqDataSize,
|
UINT8 *bReqDataArray,
|
UINT16 *RespDataSize,
|
UINT8 *bRespDataArray,
|
UINT16 *WC
|
);
|
//2015_01_30 Open EEPROM Read
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS ReadET1100EEPROMWORD(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Addr,
|
UINT16 * wData,
|
UINT32 TIMEOUT
|
);
|
//2015_01_30 Open EEPROM Write
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS WriteET1100EEPROMWORD(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Addr,
|
UINT16 wData,
|
UINT32 TIMEOUT
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Slave APIs - Slave Home
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//v12.1.0.34
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_SetHomeFlag(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT16 EcatAddr //Ethercat Address
|
);
|
|
//v12.1.0.34
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetHomeFlag(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT32 *pHomeFlag //Home Flag
|
);
|
|
//v12.1.0.35
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ModeChange(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT8 Mode, //Mode(6:hm,8:csp)
|
UINT8 ReservedZero //MC_BUFFER_MODE BufferMode (Reserved)
|
);
|
|
//v12.1.0.35
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_SlaveHomeSet(
|
UINT16 BoardID, //BoardID
|
UINT16 EcatAddr, //Ethercat Address
|
INT32 Offset, //Home Offset
|
INT8 Method, //Method
|
UINT32 SpeedSwitch, //Speed during search for switch
|
UINT32 SpeedZero, //Speed during search for zero
|
UINT32 Acceleration, //Acceleration
|
UINT8 ReservedZero //MC_BUFFER_MODE BufferMode (Reserved)
|
);
|
|
//v12.1.0.35
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_SlaveHome(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT8 Start, //0:Stop,1:Start
|
UINT8 ReservedZero //MC_BUFFER_MODE BufferMode (Reserved)
|
);
|
|
//v12.1.0.35
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_SlaveHomeHalt(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT8 ReservedZero //MC_BUFFER_MODE BufferMode (Reserved)
|
);
|
|
//v12.1.0.35
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadSlaveHomeStatus(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT32 *HomeStatus //Response Data(Bit0:Homing Complete, Bit1:Homing Error)
|
);
|
|
//v12.1.0.35
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadSlaveModeStatus(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
UINT8 *ModeStatus //Response Data(6:hm,8:csp)
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// IO APIs
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//MC_GetIOState
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GetIOState(
|
UINT16 BoardID,
|
UINT32 type,
|
UINT32 * State
|
);
|
|
//MC_IO_WRITE
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_RAW_WRITE(
|
UINT16 BoardID,
|
UINT32 Offset,
|
UINT32 Size,
|
UINT8 * DataArray
|
);
|
//MC_IO_WRITE
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_WRITE(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Offset,
|
UINT32 Size,
|
UINT8 * DataArray
|
);
|
//MC_IO_WRITE_BIT
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_WRITE_BIT(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Offset,
|
UINT8 bitOffset,
|
bool data
|
);
|
//MC_IO_WRITE_BIT
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_RAW_WRITE_BIT(
|
UINT16 BoardID,
|
UINT32 Offset,
|
UINT8 bitOffset,
|
bool data
|
);
|
//MC_IO_WRITE_BYTE
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_WRITE_BYTE(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Offset,
|
BYTE data
|
);
|
//MC_IO_WRITE_WORD
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_WRITE_WORD(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Offset,
|
WORD data
|
);
|
//MC_IO_WRITE_DWORD
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_WRITE_DWORD(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT32 Offset,
|
DWORD data
|
);
|
|
//MC_IO_READ
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_READ(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
UINT32 Size,
|
UINT8 * DataArray
|
);
|
//MC_IO_READ
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_RAW_READ(
|
UINT16 BoardID,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
UINT32 Size,
|
UINT8 * DataArray
|
);
|
//MC_IO_READ_BIT
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_READ_BIT(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
UINT8 BitOffset,
|
bool * data
|
);
|
//MC_IO_READ_BIT
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_RAW_READ_BIT(
|
UINT16 BoardID,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
UINT8 BitOffset,
|
bool * data
|
);
|
//MC_IO_READ_BYTE
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_READ_BYTE(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
BYTE * data
|
);
|
//MC_IO_READ_WORD
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_READ_WORD(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
WORD * data
|
);
|
//MC_IO_READ_DWORD
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_IO_READ_DWORD(
|
UINT16 BoardID,
|
UINT16 EcatAddr,
|
UINT16 BufferInOut,
|
UINT32 Offset,
|
DWORD * data
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Motion APIs - Single Axis Motion
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//5.1.1.1
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_Power(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
bool Enable // Axis enable : 0:Disable, 1:Enable
|
);
|
//5.1.1.2
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveAbsolute(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE Position, //Target Position
|
DOUBLE Velocity, // Max Velocity
|
DOUBLE Accel, // Max Acceleration
|
DOUBLE Decel, // Max Deceleration
|
DOUBLE Jerk, //Max Jerk
|
MC_DIRECTION Dir, // 0:Positive Direction, 1:Shortest_way, 2:Negative_Direction, 3:Current_Direction
|
MC_BUFFER_MODE BufferMode //Buffer Mode : 0:Aborting, 1:Buffered, 2:BlendingLow, 3:BlendingPrevious, 4:BlendingNext, 5:BlendingHigh
|
);
|
//5.1.1.3
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveRelative(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE Distance, //Distance
|
DOUBLE Velocity, // Max Velocity
|
DOUBLE Accel, // Max Acceleration
|
DOUBLE Decel, // Max Deceleration
|
DOUBLE Jerk, //Max Jerk
|
MC_BUFFER_MODE BufferMode //Buffer Mode : 0:Aborting, 1:Buffered, 2:BlendingLow, 3:BlendingPrevious, 4:BlendingNext, 5:BlendingHigh
|
);
|
//5.1.1.6
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveVelocity(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE Velocity, // Max Velocity
|
DOUBLE Accel, // Max Acceleration
|
DOUBLE Decel, // Max Deceleration
|
DOUBLE Jerk, //Max Jerk
|
MC_DIRECTION Dir, // 1: Positive_Direction, 3:Negative_Direction, 4:Current_Direction
|
MC_BUFFER_MODE BufferMode //Buffer Mode : 0:Aborting, 1:Buffered
|
);
|
//5.1.1.7
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_Home(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, // Axis number
|
DOUBLE Position,//
|
MC_BUFFER_MODE BufferMode
|
);
|
//5.1.1.8
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_Stop(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
bool Execute,
|
DOUBLE Decel, // Max Deceleration
|
DOUBLE Jerk //Max Jerk
|
);
|
//5.1.1.9 MCReadStatus
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadStatus(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
UINT32 * pStatus //MC_Status
|
);
|
//5.1.1.10
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadAxisError(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
UINT16 * pErrorID,
|
UINT16 * pErrorInfo,
|
UINT16 * pErrorInfoExt
|
);
|
//5.1.1.11
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_Reset(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID //Axis number
|
);
|
|
//5.1.1.12 MCReadParameter
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadParameter(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number,
|
UINT32 ParameterNum, //PN
|
DOUBLE * pValue
|
);
|
//5.1.1.12 MCReadBoolParameter
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadBoolParameter(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number,
|
UINT32 ParameterNum, //PN
|
bool * pValue
|
);
|
//5.1.1.12 MCReadIntParameter
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadIntParameter(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number,
|
UINT32 ParameterNum, //PN
|
UINT32 * pValue
|
);
|
//5.1.1.13
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_WriteParameter(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 ParameterNum,
|
DOUBLE dValue
|
);
|
|
//5.1.1.13
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_WriteBoolParameter(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 ParameterNum,
|
bool Value
|
);
|
|
//5.1.1.13
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_WriteIntParameter(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 ParameterNum,
|
UINT32 dwValue
|
);
|
|
//5.1.1.14 MCReadActualPosition
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadActualPosition(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE * pPosition // Position Acutal Value
|
);
|
//5.1.1.21 MC_GearIn
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GearIn (
|
UINT16 BoardID,
|
UINT16 MasterAxisID,
|
UINT16 SlaveAxisID,
|
UINT32 RatioNumerator,
|
UINT32 RatioDenominator,
|
MC_SOURCE MasterValueSource,
|
DOUBLE Acceleration,
|
DOUBLE Deceleration,
|
DOUBLE Jerk,
|
MC_BUFFER_MODE BufferMode
|
);
|
//5.1.1.22 MC_GearOut
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GearOut (
|
UINT16 BoardID,
|
UINT16 SlaveAxisID
|
);
|
|
//5.1.1.24
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_TouchProbe(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 TriggerInput,
|
bool WindowOnly,
|
DOUBLE FirstPosition,
|
DOUBLE LastPosition
|
);
|
//5.1.1.25
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_AbortTrigger(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 TriggerInput
|
);
|
//5.1.1.26
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadDigitalInput(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 InputNumber,
|
bool *pValue
|
);
|
//5.1.1.27
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadDigitalOutput(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 OutputNumber,
|
bool *pValue
|
);
|
//5.1.1.28
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_WriteDigitalOutput(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 OutputNumber,
|
bool Value
|
);
|
|
//5.1.1.29
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_SetPosition(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE Position,
|
bool Relative,
|
MC_EXECUTION_MODE Mode
|
);
|
//5.1.1.31
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadActualVelocity(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE * pVelocity // Velocity Acutal Value
|
);
|
|
//5.1.1.37
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_Halt(
|
UINT16 BoardID,
|
UINT16 AxisID,
|
DOUBLE Deceleration,
|
DOUBLE Jerk,
|
MC_BUFFER_MODE BufferMode
|
);
|
//5.1.1.38
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_TriggerMonitor (
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 TriggerInput,
|
bool *pDone,
|
DOUBLE *pRecordedPosition,
|
bool *pProbeActive
|
);
|
//5.1.1.39
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadMotionState(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
UINT32 * pMotionState // MC_MOTIONSTATE
|
);
|
//5.1.1.40
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadAxisInfo(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
UINT32 * pAxisInfo //MC_AXISINFO
|
);
|
//5.1.1.41
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadAxisStatus(
|
UINT16 BoardID, // BoardID
|
UINT16 AxisID, //Axis number
|
UINT32 * pAxisStatus //MC_AXISSTATUS
|
);
|
//5.1.1.42 MC_GearMonitor
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GearMonitor (
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT16 * pStatus
|
);
|
//5.1.1.43 MC_ReadProfileData
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadProfileData (
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT32 * TickCount,
|
DOUBLE * Position,
|
DOUBLE * Velocity,
|
DOUBLE * Accel,
|
DOUBLE * Jerk,
|
DOUBLE * ActPos,
|
DOUBLE * ActVel
|
);
|
|
//v12.1.0.45
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadCommandedPosition(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE *pPosition //Commmanded Position Value
|
);
|
|
//v12.1.0.46
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadCommandedVelocity(
|
UINT16 BoardID, //BoardID
|
UINT16 AxisID, //Axis number
|
DOUBLE *pVelocity //Commmanded Velocity Value
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Motion APIs - Coordinated Motion
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//5.1.1.44 MC_AddAxisToGroup [32]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_AddAxisToGroup (
|
UINT16 BoardID,
|
UINT16 AxisID,
|
UINT16 AxesGroupNo,
|
UINT16 IDInGroup
|
);
|
|
//5.1.1.45 MC_RemoveAxisFromGroup [33]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_RemoveAxisFromGroup (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 IDInGroup
|
);
|
|
//5.1.1.46 MC_UngroupAllAxes [34]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_UngroupAllAxes (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo
|
);
|
|
//5.1.1.47 MC_GroupReadConfiguration [35]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadConfiguration (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 IDInGroup,
|
MC_COORDSYSTEM CoordSystem,
|
UINT16 * AxisNo
|
);
|
|
//5.1.1.48 MC_GroupEnable [36]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupEnable (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo
|
);
|
|
//5.1.1.49 MC_GroupDisable [37]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupDisable (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo
|
);
|
|
//5.1.1.50 MC_MoveLinearAbsolute [43]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveLinearAbsolute (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 PositionCount,
|
DOUBLE * PositionData,
|
DOUBLE Velocity,
|
DOUBLE Acceleration,
|
DOUBLE Deceleration,
|
DOUBLE Jerk,
|
MC_COORDSYSTEM CoordSystem, //Coordination System À» ÁöÁ¤ÇÑ´Ù. //ACS, MCS, PCS
|
MC_BUFFER_MODE BufferMode, //Buffer Mode ¸¦ ÁöÁ¤ÇÑ´Ù.
|
MC_TRANSITION_MODE TransitionMode, //Transition Mode ¸¦ ÁöÁ¤ÇÑ´Ù.
|
UINT16 TransitionParameterCount, //TransitionParameter ÀÇ Count ¸¦ ¸í½ÃÇÑ´Ù.
|
DOUBLE * TransitionParameter //TransitionParameterCount ¿¡ ¸í½ÃµÈ Å©±â ¸¸ÅÀÇ Data ¸¦ ÀÔ·ÂÇÑ´Ù.
|
);
|
|
//5.1.1.51 MC_GroupHalt [42]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupHalt (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
DOUBLE Deceleration,
|
DOUBLE Jerk,
|
MC_BUFFER_MODE BufferMode //Buffer Mode ¸¦ ÁöÁ¤ÇÑ´Ù.
|
);
|
|
//5.1.1.52 MC_GroupStop [41]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupStop (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
bool Execute,
|
DOUBLE Deceleration,
|
DOUBLE Jerk
|
);
|
|
//5.1.1.53 MC_MoveCircularAbsolute2D [44]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveCircularAbsolute2D (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
MC_CIRC_MODE CircMode,
|
MC_CIRC_PATHCHOICE PathChoice,
|
DOUBLE AuxPoint[2],
|
DOUBLE EndPoint[2],
|
DOUBLE Angle,
|
DOUBLE Velocity,
|
DOUBLE Acceleration,
|
DOUBLE Deceleration,
|
DOUBLE Jerk,
|
MC_COORDSYSTEM CordSystem,
|
MC_BUFFER_MODE BufferMode,
|
MC_TRANSITION_MODE TransitionMode,
|
UINT16 TransitionParamCount,
|
DOUBLE * TransitionParameter
|
);
|
|
//5.1.1.54 MC_GroupStop [38]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadStatus (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT32 * pGroupStatus
|
);
|
|
//5.1.1.55 MC_GroupReadError [39]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadError (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 * pErrorID,
|
UINT16 * pErrorInfo0,
|
UINT16 * pErrorInfo1
|
);
|
|
//5.1.1.56 MC_GroupReset [40]
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReset (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo
|
);
|
|
//5.1.1.57 MC_GroupReset []
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadProfileData (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 * AxisCount,
|
UINT32 * TimeTick, //msec
|
DOUBLE ProfileDataArray[MAX_AXES_IN_GROUP][MAX_PROFILE_ITEM_COUNT] //[0]Pos,Vel,Acc,Jerk,ActPos,ActVel,[1]Pos,Vel,Acc,Jerk,ActPos,ActVel ...
|
);
|
|
//5.1.1.58 MC_GroupReadInfo []
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadInfo (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 * LastIdentNum,
|
UINT16 IdentAxisNumList[MAX_AXES_IN_GROUP]
|
);
|
|
//5.1.1.59 MC_ReadAllStatus []
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadAllStatus (
|
UINT16 BoardID,
|
UINT32 StatusData[MAX_ALL_STATUS_SIZE]
|
);
|
|
//5.1.1.60 MC_GroupSetRawDataMode [] :
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupSetRawDataMode (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
MC_RAW_DATA_MODE Mode,
|
bool Enable, // Raw data mode enable : 0:Disable, 1:Enable
|
UINT8 ReservedZero1, // MC_COORDSYSTEM CoordSystem,
|
UINT8 ReservedZero2 // MC_BUFFER_MODE BufferMode
|
);
|
|
//5.1.1.61 MC_GroupReadRawDataStatus [] :
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadRawDataStatus (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
MC_AxesGroupRawDataStatus *AxesGroupRawDataStatus
|
);
|
|
//5.1.1.62 MC_GroupClearRawData [] :
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupClearRawData (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT16 ReservedZero1,
|
UINT16 ReservedZero2
|
);
|
|
//5.1.1.63 MC_GroupSetRawData [] :
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupSetRawData (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
MC_SAVE_MODE SaveMode,
|
UINT16 IndexNum,
|
UINT16 RawDataSize,
|
UINT16 RawDataCount,
|
UINT8 * RawDataArray,
|
UINT16 * StoredNum
|
);
|
|
//5.1.1.64 MC_ReadRemainBuffer [] :
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadRemainBuffer (
|
UINT16 BoardID,
|
UINT16 AxesNo,
|
UINT32 *BufferSize
|
);
|
|
//5.1.1.65 MC_GroupReadRemainBuffer [] :
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadRemainBuffer (
|
UINT16 BoardID,
|
UINT16 AxesGroupNo,
|
UINT32 *BufferSize
|
);
|
|
//v12.1.0.47
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupWriteParameter(
|
UINT16 BoardID, //_in BoardID
|
UINT16 GroupNum, //_in GroupNum
|
UINT32 ParameterNum, //_in ParameterNum
|
DOUBLE Value //_in Value
|
);
|
|
//v12.1.0.47
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_GroupReadParameter(
|
UINT16 BoardID, //_in BoardID
|
UINT16 GroupNum, //_in GroupNum
|
UINT32 ParameterNum, //_in ParameterNum
|
DOUBLE *pValue //_out Value
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Motion APIs - Multi Motion
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//v12.1.0.40
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveAbsoluteMultiAxis(
|
UINT16 BoardID, //Board ID
|
UINT16 AxisCount, //Number of Axis
|
UINT16 *AxisArray, //Array of Axis ID
|
DOUBLE *PositionArray, //Target Position Array
|
DOUBLE Velocity, //Max Velocity
|
DOUBLE Acceleration, //Max Acceleration
|
DOUBLE Deceleration, //Max Deceleration
|
DOUBLE Jerk, //Max Jerk
|
MC_DIRECTION *DirectionArray, //Array of Moving Direction for each Axis(0,1,2,3)
|
UINT8 ErrorStopMode //Mode of multi-axes Motion Stop when Error occurred in one(or more) of multi-axes.
|
); //0:Remainder axes do not Stop (Continue their Motion), 1:Remainder axes also Stop with E-Stop Parameters.
|
|
//v12.1.0.40
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_MoveRelativeMultiAxis(
|
UINT16 BoardID, //Board ID
|
UINT16 AxisCount, //Number of Axis
|
UINT16 *AxisArray, //Array of Axis ID
|
DOUBLE *PositionArray, //Target Position Array
|
DOUBLE Velocity, //Max Velocity
|
DOUBLE Acceleration, //Max Acceleration
|
DOUBLE Deceleration, //Max Deceleration
|
DOUBLE Jerk, //Max Jerk
|
UINT8 ErrorStopMode //Mode of multi-axes Motion Stop when Error occurred in one(or more) of multi-axes.
|
); //0:Remainder axes do not Stop (Continue their Motion), 1:Remainder axes also Stop with E-Stop Parameters.
|
|
//v12.1.0.42
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_HaltMultiAxis(
|
UINT16 BoardID, //Board ID
|
UINT16 AxisCount, //Number of Axis
|
UINT16 *AxisArray, //Array of Axis ID
|
UINT8 ErrorStopMode //Mode of multi-axes Motion Stop when Error occurred in one(or more) of multi-axes.
|
); //0:Remainder axes do not Stop (Continue their Motion), 1:Remainder axes also Stop with E-Stop Parameters.
|
|
//v12.1.0.43
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_ReadMultiAxisStatus(
|
UINT16 BoardID, //Board ID
|
UINT16 AxisCount, //Number of Axis
|
UINT16 *AxisArray, //Array of Axis ID
|
UINT32 *Status //Axis Status
|
);
|
|
//=============================================================================
|
//-----------------------------------------------------------------------------
|
//
|
//
|
// Function Module APIs - Special
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//v12.1.0.48
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_WriteIntervalTrigParameterFM(
|
UINT16 BoardID, //_in BoardID
|
UINT16 EcatAddr, //_in Ethercat Address
|
UINT16 AxisID, //_in AxisID
|
DOUBLE StartPosition, //_in Start Position
|
DOUBLE EndPosition, //_in End Position
|
UINT16 IntervalPeriod, //_in Interval Period
|
UINT16 PulseWidth //_in Pulse Width
|
);
|
|
//v12.1.0.48
|
#ifdef __cplusplus
|
extern "C"
|
#endif
|
NMCMOTIONAPI MC_STATUS MC_WriteIntervalTrigEnableFM(
|
UINT16 BoardID, //_in BoardID
|
UINT16 EcatAddr, //_in Ethercat Address
|
UINT16 AxisID, //_in AxisID
|
bool Enable //_in Configuration Enable True/False
|
);
|
|
#endif
|