|
|
/*******************************************************************
|
|
|
*文件说明: control头文件,所有运动接口和IO接口
|
|
|
*作者: logos
|
|
|
*日期: 2013/11/11
|
|
|
*修改日志: 2013/11/11 TOD2214 创建
|
|
|
2015/12/25 CW0793 重构
|
|
|
|
|
|
***注意事项***
|
|
|
1. 配置接口,如add_card/add_vision等等,传入参数是一个可修改的结构体,
|
|
|
接口调用后,结构体中的参数可能发生改变,如ID是由control模块生成的。
|
|
|
2. 单轴运动相关接口,必须创建工站后才有效,没有创建工站无法调用
|
|
|
3. 删除机器人插件,若有机器人插件,以卡方式加入,使用万能消息接口通讯
|
|
|
4. 增加整体暂停/复位接口,自动向所有插件发送暂停/复位消息
|
|
|
复位消息主要用于急停取消后,暂停消息主要用户机器人、控制器等.
|
|
|
5. axis增加状态机,基础状态机增加暂停中、停止中两种状态
|
|
|
6. 工站增加命令行功能,支持go move arc speed pallet here等指令
|
|
|
|
|
|
v2.0.13 修改全局速度时,立即生效
|
|
|
|
|
|
***********************************************************************/
|
|
|
#pragma once
|
|
|
#ifndef _INCLUDE_SDK_CONTROL_H
|
|
|
#define _INCLUDE_SDK_CONTROL_H
|
|
|
#include "dtype.h"
|
|
|
|
|
|
#pragma region config
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 设置control配置项
|
|
|
*Intput: pcfg 配置数据
|
|
|
*Output: pcfg 配置数据
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 运动中不能设置
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI control_set_cfg(const TControlCfg* pcfg);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 获取control配置项
|
|
|
*Intput: pcfg 配置数据
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI control_get_cfg(TControlCfg* pcfg);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有已支持设备信息
|
|
|
*Intput: pDevInfo 卡类型数据结构
|
|
|
*Output: pDevInfo 卡类型数据结构
|
|
|
*Return: 返回卡类型数量
|
|
|
*PS 入参为空时,获取类型数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_support_card(TDevInfo* pDevInfo = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据硬件ID获取支持设备信息
|
|
|
*Intput: dev 硬件ID
|
|
|
*Output: pDevInfo 卡类型数据结构
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS pDevInfo 为空时,判断硬件ID是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_support_card(const char* dev, TDevInfo* pDevInfo);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取所有已支持视觉信息
|
|
|
*Intput: pDevInfo 视觉类型数据结构
|
|
|
*Output: pDevInfo 视觉类型数据结构
|
|
|
*Return: 返回视觉类型数量
|
|
|
*PS 入参为空时,获取类型数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_support_vision(TVisionDevInfo* pDevInfo = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 根据视觉插件ID获取视觉信息
|
|
|
*Intput: dev 插件ID
|
|
|
*Output: pDevInfo 插件类型数据结构
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS pDevInfo 为空时,判断硬件ID是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_support_vision(const char* dev, TVisionDevInfo* pDevInfo);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 增加一张卡
|
|
|
*Intput: pCard 卡信息结
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI add_card(TCard* pCard);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 修改一张卡
|
|
|
*Intput: pCard 卡信息结构体
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI update_card(TCard* pCard);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 增加一个视觉对象
|
|
|
*Intput: pVision 视觉信息结构体
|
|
|
*Output: 无
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI add_vision(TVision* pVision);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 修改一个视觉对象
|
|
|
*Intput: pVision 视觉信息结构体
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI update_vision(TVision* pVision);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 增加一个工站(轴组)
|
|
|
*Intput: pStation 结构体参数
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI add_station(TStation* pStation);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 修改一个工站(轴组)
|
|
|
*Intput: pStation 结构体参数
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI update_station(TStation* pStation);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 删除一个对象 -- 卡/视觉/工站
|
|
|
*Intput: pid 卡ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅control_is_run接口返回0时可以调用
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI delete_dev(int pid);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 增加一条安全规则
|
|
|
*Intput: psafe 安全规则信息
|
|
|
*Output: 无
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: ID不用填充,自动生成.启动安全服务后无法调用此接口
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI add_safe_cfg(TSafeCfg* psafe);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 修改一条安全规则
|
|
|
*Intput: psafe 安全规则信息
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 根据ID匹配.启动安全服务后无法调用此接口
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI update_safe_cfg(TSafeCfg* psafe);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 删除一条安全规则
|
|
|
*Intput: safeid 安全规则ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 根据ID匹配.启动安全服务后无法调用此接口
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI del_safe_cfg(int safeid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有安全规则
|
|
|
*Intput: plist 安全规则缓冲区
|
|
|
*Output: plist 安全规则缓冲区
|
|
|
*Return: 返回数量
|
|
|
*PS: 可以传NULL获取数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_safe_cfg(TSafeCfg* plist = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有卡信息
|
|
|
*Intput: pCard 卡数据结构
|
|
|
*Output: pCard 卡数据结构
|
|
|
*Return: 返回卡数量
|
|
|
*PS 入参为空时,获取数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_card(TCard* pCard = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取所有视觉对象信息
|
|
|
*Intput: pVision 视觉信息结构体数组
|
|
|
*Output: pVision 视觉信息结构体数组
|
|
|
*Return: 返回视觉对象数量
|
|
|
*PS 入参为空时,获取数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_vision(TVision* pVision = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有工站信息
|
|
|
*Intput: pStation 工站数据结构
|
|
|
*Output: pStation 工站数据结构
|
|
|
*Return: 返回工站数量
|
|
|
*PS 入参为空时,获取数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_station(TStation* pStation = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取卡信息
|
|
|
*Intput: pid 卡ID
|
|
|
*Output: pCard 卡信息结构体
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pCard 为空判断卡是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_card(int pid, TCard* pCard = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取视觉信息
|
|
|
*Intput: pid 视觉ID
|
|
|
*Output: pVision 视觉信息结构体
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pVision 为空判断视觉是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_vision(int pid, TVision* pVision = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取工站信息
|
|
|
*Intput: pid 工站ID
|
|
|
*Output: pStation,工站信息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pStation 为空判断工站是否存在
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_station(int pid, TStation* pStation = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 通过轴ID获取工站信息
|
|
|
*Intput: axis 轴ID
|
|
|
*Output: pStation,工站信息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pStation 为空判断轴是否存在且已经创建工站
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_station_by_axis(int axis, TStation* pStation = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取一张卡的所有ad参数
|
|
|
*Intput: pid 卡ID
|
|
|
*Output: pAdParam ad数组
|
|
|
*Return: 返回ad数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_ad_list(int pid, TAdParam* pAdParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取一张卡的所有指定类型Io项
|
|
|
*Intput: pid 卡ID
|
|
|
dio_type io类型
|
|
|
*Output: pIoParam IO信息数组
|
|
|
*Return: 返回IO数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_io_list(int pid, EIOType dio_type, TIoParam* pIoParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取一张卡的所有轴参数
|
|
|
*Intput: pid 卡ID
|
|
|
*Output: pAxisParam 轴信息数组
|
|
|
*Return: 返回轴数量,失败返回错误码<0
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_axis_list(int pid, TAxisParam* pAxisParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取未被工站占用的轴列表
|
|
|
*Intput: pAxisParam 轴信息数组
|
|
|
*Output: pAxisParam 轴信息数组
|
|
|
*Return: 返回轴数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_valid_axis(TAxisParam* pAxisParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有IO项
|
|
|
*Intput: bsetname 是否获取已设置名称的项 0表示获取所有项
|
|
|
*Output: pIoConfig IO信息数组
|
|
|
*Return: 返回IO数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_io(int bsetname = 1, IOConfig* pIoConfig = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有AD项
|
|
|
*Intput: bsetname 是否获取已设置名称的项 0表示获取所有项
|
|
|
*Output: pAdConfig AD信息数组
|
|
|
*Return: 返回AD数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_ad(int bsetname = 1, TAdParam* pAdConfig = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取所有Axis项
|
|
|
*Intput: bsetname 是否获取已设置名称的项 0表示获取所有项
|
|
|
*Output: pAxisConfig Axis信息数组
|
|
|
*Return: 返回Axis数量
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_all_axis(int bsetname = 1, TAxisParam* pAxisConfig = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取轴信息
|
|
|
*Intput: axis 轴ID
|
|
|
*Output: pAxisParam 轴信息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pAxisParam 为空判断轴是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_axis_info(int axis, TAxisParam* pAxisParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取ad信息
|
|
|
*Intput: aid ID
|
|
|
*Output: pAdParam ad信息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pAdParam 为空判断ad是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_ad_info(int aid, TAdParam* pAdParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取Io信息
|
|
|
*Intput: iid ID
|
|
|
*Output: pIoParam io信息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pIoParam 为空判断io是否存在
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_io_info(int iid, TIoParam* pIoParam = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置轴信息,以结构体中的ID为准
|
|
|
*Intput: pAxisParam,轴参数结构体
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅支持修改部分项
|
|
|
*PS:
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI set_axis_info(const TAxisParam* pAxisParam);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置ad信息,以结构体中的ID为准
|
|
|
*Intput: pAdParam,ad参数结构体
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅支持修改部分项
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI set_ad_info(const TAdParam* pAdParam);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置Io信息,以结构体中的ID为准
|
|
|
*Intput: pIoParam,Io参数结构体
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 仅支持修改部分项
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI set_io_info(const TIoParam* pIoParam);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置mapping信息-- 设置后contro会自动刷新变量
|
|
|
*Intput: pid 轴、工站、卡、视觉、IO、AD
|
|
|
pvar 变量名称
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: pvar = 0 时标识删除mapping
|
|
|
当pid为轴ID时,刷新当前位置,pid为IO和AD时,刷新当前值
|
|
|
*PS: 当PID为工站、卡、视觉时,刷新当前的状态
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI set_mapping_info(int pid, const char* pvar = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取mapping已设置队列
|
|
|
*Intput: pMaplst 队列缓冲区
|
|
|
*Output: NULL
|
|
|
*Return: 返回队列数组大小0,失败返回错误码<=0
|
|
|
*PS: 先传NULL获取大小,再new缓冲区获取内容
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_mapping_list(TDevMap* pMaplst = 0);
|
|
|
|
|
|
#pragma endregion
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 初始化control模块
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 初始化以后才能调用该模块其它接口
|
|
|
*PS: 本接口会初始化所有基础模块 var/cfg/log...
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI control_init();
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 卸载control模块
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 卸载后该模块其它接口都会返回错误
|
|
|
*PS: 本接口会卸载所有基础模块 var/cfg/log...
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI control_deinit();
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 启动control, 并初始化
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
*PS: 会启动线程执行扫描
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI control_startup();
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 关闭control服务
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI control_shutdown();
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: control服务是否在运行
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 正在运行返回1,否则返回0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI control_is_run();
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取control控制引擎版本号 - 4位整数
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 返回control版本号1401->1.4.01
|
|
|
*PS: 当版本号为5位时,为beta测试版,个位数为测试版本号
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI control_version();
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 整体复位、重置 -- 仅发送指令
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 向所有插件发送"reset"指令
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI control_reset();
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 整体暂停 -- 仅发送指令
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 向所有插件发送"pause,1/0"指令
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI control_pause(int bpause = 1);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 加载配置 -- 默认data
|
|
|
*Intput: path 配置目录 <256字节
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
*PS: 加载成功后,下次会默认从此目录读取
|
|
|
*PS: 重新加载目录后,必须重新回原
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI control_load(const char* path);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 加载点位、料盘配置 -- 默认data
|
|
|
*Intput: path 配置目录 <256字节
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
*PS: 加载成功后,下次会默认从此目录读取
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI load_points(const char* path);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 初始化一个对象(卡/视觉/工站)
|
|
|
*Intput: pid 对象ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI init_dev(int pid);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 反初始化一个对象(卡/视觉/工站)
|
|
|
*Intput: pid 对象ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI uninit_dev(int pid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取该对象支持的自定义指令列表
|
|
|
*Intput: pid 对象ID
|
|
|
*Output: pszcmddesc 指令描述列表缓冲区
|
|
|
*Return: 返回字符串长度,返回0表示没有自定义指令
|
|
|
*PS: 可以传入NULL获取字符串长度,申请内存后重新获取内容
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_command_desc(int pid, char* pszcmddesc = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 向指定对象发送消息(万能接口)
|
|
|
*Intput: pid 对象ID
|
|
|
msg 要发送的消息
|
|
|
res 返回消息,可以不传
|
|
|
*Output: res 返回消息,可以不传
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI send_custom_msg(int pid, const char* msg, char* res = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 接收指定对象消息(万能接口)
|
|
|
*Intput: pid 对象ID
|
|
|
msg 过滤字段及参数,可以为空字符串
|
|
|
res 返回消息
|
|
|
timeout 超时机制 默认不等待 [0,500] 单位ms
|
|
|
*Output: res 返回消息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 超时返回ERR_TIMEOUT
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI recv_custom_msg(int pid, const char* msg, char* res, int timeout = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取一个对象状态
|
|
|
*Intput: pid 对象ID
|
|
|
*Output: NULL
|
|
|
*Return: 返回对象状态,参考EDevStatus/EMoveStatus
|
|
|
*PS: 卡/工站/视觉/轴,全部使用此接口
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI get_dev_status(int pid);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 设置一个对象是否使用模拟状态
|
|
|
*Intput: pid 对象ID
|
|
|
bsim 1模拟 0不模拟
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 卡/工站/视觉,统一使用此接口
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI set_dev_simulator(int pid, int bsim = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取一个对象是否使用模拟状态
|
|
|
*Intput: pid 对象ID
|
|
|
*Output: NULL
|
|
|
*Return: 返回1模拟 0不模拟
|
|
|
*PS: 卡/工站/视觉,统一使用此接口
|
|
|
************************************************/
|
|
|
EXPORT_C int WINAPI dev_is_simulator(int pid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 通过名称获取一个对象的ID > 0
|
|
|
*Intput: pszname 对象名称
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回对象ID,失败返回错误码<0
|
|
|
*PS: 可以获取control模块所有对象ID
|
|
|
包括卡/视觉/工站/轴/IO/AD
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_id_by_name(const char* pszname);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 清除指定轴限位状态/停止标识 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 停止状态下才可调用此接口
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_reset(int axis);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴停止运动 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
stoptype 0平滑停止 1紧急停止
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_stop(int axis, int stoptype = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴回原 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 调用 axis_status 判断回原是否结束
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_home(int axis);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 读取轴对应的特殊IO状态 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
dio_type io类型
|
|
|
*Output: NULL
|
|
|
*Return: 有信号1 无信号0, 其它为异常
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_read(int axis, EIOType dio_type);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置轴对应的特殊IO输出状态 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
dio_type io类型 仅限 使能、清除报警两种类型
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_write(int axis, EIOType dio_type, int val);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取指定轴当前位置 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
posType 0编码器位置 1规划器位置
|
|
|
*Output: pval 返回当前位置 mm
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_get_pos(int axis, double* pval, int posType = EMPos_Default);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴jog运动 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
dir 0负方向 1正方向
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_move_jog(int axis, int dir);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴强制点位运动 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
pos 目标位置
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 在运动中调用此接口,可以改变目标位置
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_set_pos(int axis, double pos);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴点位运动 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
pos 目标位置
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_move_pos(int axis, double pos);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴偏移量运动 -- 此接口创建工站后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
offset 偏移量
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_move_offset(int axis, double offset);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定轴查找限位并设置到轴参数中 -- 此接口创建工站并回原后才有效
|
|
|
*Intput: axis 轴ID
|
|
|
blimitN 1/0 为0时表示无效,此时负限位使用原点位置
|
|
|
blimitP 1/0 为0时表示无效,此时正限位使用原点位置
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 通过轴是否在运动中判断此接口是否结束 blimitN blimitP不能同时为0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI axis_find_limit(int axis, int blimitN, int blimitP = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置指定工站接下来的运动速度
|
|
|
*Intput: tid 工站ID
|
|
|
vel 运动速度 按百分比算 [0.01,100]
|
|
|
acc 加速度 按百分比算 [0.01,100]
|
|
|
dec 减速度 按百分比算 [0.01,100]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 点位运动中也可设置,仅更改速度,加减速下次运动才生效
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI set_speed(int tid, double vel, double acc, double dec);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取指定工站的速度
|
|
|
*Intput: tid 工站ID
|
|
|
*Output: vel 运动速度 按百分比算 [0.01,100] 不获取可传NULL
|
|
|
acc 加速度 按百分比算 [0.01,100] 不获取可传NULL
|
|
|
dec 减速度 按百分比算 [0.01,100] 不获取可传NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_speed(int tid, double* pvel = 0, double* pacc = 0, double* pdec = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置指定工站的全局速度
|
|
|
*Intput: tid 工站ID
|
|
|
setval 最大值的百分比 [0.01,100]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS:工站最终运动速度会*全局速度的百分比,默认100%
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI set_global_speed(int tid, double vel);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取指定工站的全局速度
|
|
|
*Intput: tid 工站ID
|
|
|
pvel 最大值的百分比 [0.01,100]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_global_speed(int tid, double* pvel);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置指定工站料盘数据
|
|
|
*Intput: tid 工站ID
|
|
|
plt 料盘数据 料盘索引[1,50]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI set_pallet_info(int tid, const TPallet* plt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据索引获取料盘
|
|
|
*Intput: tid 工站ID/名称
|
|
|
index 料盘索引[1,50]
|
|
|
plt 料盘数据
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_pallet_info(int tid, int index, TPallet* plt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 判断当前位置是否在指定点附近
|
|
|
*Intput: tid 工站ID
|
|
|
index 点索引[1,200]
|
|
|
ptOffset 是否增加偏移
|
|
|
offset 最大偏移值
|
|
|
*Output: NULL
|
|
|
*Return: 1在 0不在,其它返回错误码
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI is_near_point(int tid, int index, const TPoint* ptOffset = 0, double offset = 0.01);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获指定工站轴数量
|
|
|
*Intput: tid 工站ID
|
|
|
*Output: NULL
|
|
|
*Return: 返回工站轴数量
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI station_axis_count(int tid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function:清除指定工站所有轴限位状态/停止标识
|
|
|
*Intput: tid 工站ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 停止状态下才可调用
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI station_reset(int tid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定工站开始回原
|
|
|
*Intput: tid 工站ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 调用get_dev_status 判断回原是否结束
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI station_home(int tid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定工站暂停/恢复运动
|
|
|
*Intput: tid 工站ID
|
|
|
ipause 1暂停 0恢复
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI station_pause(int tid, int ipause = 1);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 让指定工站停止运动
|
|
|
*Intput: tid 工站ID
|
|
|
stoptype 0平滑停止 1紧急停止
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI station_stop(int tid, int stoptype = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定工站点位运动到指定位置
|
|
|
*Intput: tid 工站ID
|
|
|
ptPos,点位置,包含每个轴目标位置
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 此接口支持强制点位运动,即点位运动中时,可以强制改变目标位置
|
|
|
*PS: 未回原也可以调用此接口运动
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI go_to_pos(int tid, const TPoint* ptPos);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定工站点位运动到指定点
|
|
|
*Intput: tid 工站ID
|
|
|
index,点索引[0,200] 为0时基于当前位置
|
|
|
ptOffset 是否增加偏移
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: index=0时,必须带偏移量,否则不运动
|
|
|
*PS: 此接口支持强制点位运动,即点位运动中时,可以强制改变目标位置
|
|
|
当index=0时,未回原也可以运动
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI go_to_point(int tid, int index, const TPoint* ptOffset = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 指定工站直线插补运动到指定点
|
|
|
*Intput: tid 工站ID
|
|
|
index 点索引[0,200] 为0时基于当前位置
|
|
|
ptOffset 是否增加偏移
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI move_to_point(int tid, int index, const TPoint* ptOffset = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 以当前位置为起始点, 圆弧插补运动
|
|
|
*Intput: tid 工站ID
|
|
|
iPointMiddle, 圆弧上的中间点;
|
|
|
iPointEnd, 圆弧上的终点;
|
|
|
ptOffset 是否增加偏移
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI move_arc(int tid, int iPointMiddle, int iPointEnd, const TPoint* ptOffset = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 添加直线插补运动点位到连续运动合集
|
|
|
*Intput: tid 工站ID
|
|
|
index 点索引
|
|
|
ptOffset 是否增加偏移
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI add_cp_line_point(int tid, int index, const TPoint* ptOffset = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 添加一段圆弧插补运动到连续运动合集
|
|
|
*Intput: tid 工站ID
|
|
|
iPointMiddle, 圆弧上的中间点;
|
|
|
iPointEnd, 圆弧上的终点;
|
|
|
ptOffset 是否增加偏移
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI add_cp_arc_point(int tid, int iPointMiddle, int iPointEnd, const TPoint* ptOffset = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 启动cp运动
|
|
|
*Intput: tid 工站ID
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI start_cp_move(int tid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取指定工站的点位置(点列表的数据)
|
|
|
*Intput: tid 工站ID
|
|
|
index,点位索引[0,200]
|
|
|
*Output: pt 返回的点结构体
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: index=0时,返回工站当前位置
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_point_by_index(int tid, int index, TPoint* pt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取指定工站的点位置(点列表的数据)
|
|
|
*Intput: tid 工站ID
|
|
|
name 点位名称
|
|
|
*Output: pt 返回的点结构体
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_point_by_name(int tid, const char* name, TPoint* pt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取料盘数据点位
|
|
|
*Intput: tid 工站ID
|
|
|
index,料盘索引 [1,50]
|
|
|
col 第几列 > 0
|
|
|
row 第几行 > 0
|
|
|
*Output: pt 返回的点结构体
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_point_by_pallet(int tid, int index, int col, int row, TPoint* pt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置点位置数据,不会改变名字
|
|
|
*Intput: tid 工站ID
|
|
|
pt,要保存的点数据 点位索引[1,200]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI set_point(int tid, const TPoint* pt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 设置点位置数据 -- 名称、点位一块修改
|
|
|
*Intput: tid 工站ID
|
|
|
pt 要保存的点数据 点位索引[1,200]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI save_point(int tid, const TPoint* pt);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 示教当前点位
|
|
|
*Intput: tid 工站ID
|
|
|
index 点位索引[1,200]
|
|
|
name 点位名称 长度[1,31]
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI teach_point(int tid, int index, const char *name);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 注册安全检测接口,注册后所有运动+IO操作
|
|
|
都会回调到接口检查安全性
|
|
|
*Intput: fun... 回调接口
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 传入fun=0即为反注册,注册后必须打开配置中的bSafeChk开关才生效
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI regist_safe_chk(FunSafeCallBack fun = 0);
|
|
|
|
|
|
|
|
|
//////////////////IO///////////////////////
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 读取指定卡指定类型指定页IO状态
|
|
|
*Intput: pid 卡ID
|
|
|
di_type 输入信号类型 EMIOControlType
|
|
|
page 按页读取,默认为0,axis 每页8位,io每页16位
|
|
|
*Output: NULL
|
|
|
*Return: 返回读取到的状态,按位表示
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI read_by_page(int pid, EIOType dio_type, int page = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据IO ID读取输入/输出状态
|
|
|
*Intput: iid io/ID
|
|
|
*Output: NULL
|
|
|
*Return: 有信号1 无信号0, 其它为异常
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI read_io(int iid);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据IO ID设置一个IO输出状态
|
|
|
*Intput: iid io/ID
|
|
|
val 操作值 必须为1/0
|
|
|
*Output: 无
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI write_out(int iid, ushort val);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 按页读取输入电压值
|
|
|
*Intput: pid 卡ID
|
|
|
pVal 读取缓冲区数组地址
|
|
|
page 按页读取,默认为0,每页最大8个double
|
|
|
*Output: pval 返回读取到的电压数组 最大为8个
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI read_ad_by_page(int pid, double* pVal, int page = 0);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 读取输入电压值
|
|
|
*Intput: aid ad id
|
|
|
*Output: pval 读取到的电压值
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI read_ad(int aid, double* pVal);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据ID写入指定ad的输出值
|
|
|
*Intput: aid ad id
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI write_ad(int aid, double val);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据IO名称读取输入/输出状态
|
|
|
*Intput: name io名称
|
|
|
*Output: NULL
|
|
|
*Return: 有信号1 无信号0, 其它为异常
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI read_by_name(const char* name);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据IO名称设置一个IO输出状态
|
|
|
*Intput: name io名称
|
|
|
val 操作值 必须为1/0
|
|
|
*Output: 无
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI write_by_name(const char* name, ushort val);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据名称读取输入电压值
|
|
|
*Intput: name ad别名
|
|
|
*Output: pval 读取到的电压值
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI read_ad_by_name(const char* name, double* pVal);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 根据名称写入指定ad的输出值
|
|
|
*Intput: name ad别名
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI write_ad_by_name(const char* name, double val);
|
|
|
|
|
|
/**************************************************
|
|
|
*Function: 获取系统IO状态
|
|
|
*Intput: type 系统IO类型 start <= type <= stop
|
|
|
*Output: NULL
|
|
|
*Return: 返回组合状态1/0,start都为1则返回1,其它都为0则0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI get_sysio_value(EMIOSYSType type);
|
|
|
|
|
|
/**************************************************
|
|
|
*Function: 打开/关闭所有刹车
|
|
|
*Intput: val 1刹车有效 0刹车无效
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI set_break(int val = ION);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 视觉处理指令,拍照完成返回
|
|
|
*Intput: pid 视觉ID
|
|
|
secne 场景ID,需根据视觉通讯协议传递
|
|
|
timeout 超时设置
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI vision_process(int pid, int secne);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 获取视觉处理图像数据流 -- 2选1
|
|
|
*Intput: pid 视觉ID
|
|
|
secne 场景ID,需根据视觉通讯协议传递
|
|
|
*Output: pimg 图像数据
|
|
|
*Return: 成功返回数据流大小,失败返回错误码<0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI get_process_image(int pid, int secne, TVisionImage* pimg);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 获取视觉处理图像路径/文件名 -- 2选1
|
|
|
*Intput: pid 视觉ID
|
|
|
secne 场景ID,需根据视觉通讯协议传递
|
|
|
*Output: path 图像路径/文件名 MAX_PATH
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI get_process_image_path(int pid, int secne, char* path);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 等待/获取视觉处理结果 -- 处理完成返回
|
|
|
*Intput: pid 视觉ID
|
|
|
secne 场景ID,需根据视觉通讯协议传递
|
|
|
timeout 超时设置 -1无限等待
|
|
|
*Output: pres 返回结果
|
|
|
*Return: 成功返回0,失败返回错误码<0 超时返回ERR_TIMEOUT
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI recv_process_result(int pid, int secne, TVisionResult* pres, int timeout = -1);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 本机注册licence
|
|
|
*Intput: pszregsn 注册码 or 6位验证码
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
*PS: 若3次输入错误,则会产生超时机制,短时间内无法注册
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI license_regist(const char* pszregsn);
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 获取许可证是否有效
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 有效返回1,无效返回0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI license_is_valid();
|
|
|
|
|
|
/****************************************************
|
|
|
*Function: 获取本机注册信息
|
|
|
*Intput: NULL
|
|
|
*Output: pInfo 注册信息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
******************************************************/
|
|
|
EXPORT_C int WINAPI license_get_info(TLicenseInfo* pInfo);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 注册一个插件增加一个插件
|
|
|
*Intput: pszdev 硬件ID,不能重复
|
|
|
pszdesc 硬件描述符 <32字节
|
|
|
pszhome 回原描述符 多种回原方式以","隔开 总长度<256字节
|
|
|
ctx 初始化参数描述符 多个参数以","隔开 总长度<256字节 参数描述与默认值以|分割
|
|
|
axiscnt 插件支持轴数量
|
|
|
iocnt 插件支持IO数量
|
|
|
adcnt 插件支持AD数量
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
*PS:如果需要在应用层注册插件,必须在control_init之前注册,否则会失败
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI regist_card_dev(const char* pszdev, const char* pszdesc,
|
|
|
const char* pszhome, const char* ctx, ushort axiscnt,
|
|
|
ushort iocnt, ushort adcnt, DevCallBack fun);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 注册一个插件增加一个插件
|
|
|
*Intput: pszdev 硬件ID,不能重复
|
|
|
pszdesc 硬件描述符 <32字节
|
|
|
pszhome 回原描述符 多种回原方式以;分割<256字节
|
|
|
ctx 初始化参数描述符 多个参数以;分割<256字节 参数描述与默认值以|分割
|
|
|
axiscnt 插件支持轴数量
|
|
|
iocnt 插件支持IO数量
|
|
|
adcnt 插件支持AD数量
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
*PS:如果需要在应用层注册插件,必须在control_init之前注册,否则会失败
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI regist_card_devs(const char* pszdev, const char* pszdesc,
|
|
|
const char* pszhome, const char* ctx, ushort axiscnt,
|
|
|
ushort iocnt, ushort adcnt, MotorFun* pfunList);
|
|
|
|
|
|
#endif //防止重复包含
|