编辑: Cerise银子 | 2019-09-20 |
0 发布日期:2018-03-23 Dobot M1 API 接口说明 文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司 i 版权所有 ? 越疆科技有限公司2017. 保留一切权利. 非经本公司书面许可, 任何单位和个人不得擅自摘抄、 复制本文档内容的部分或全 部,并不得以任何形式传播. 免责申明 在法律允许的最大范围内, 本手册所描述的产品 (含其硬件、 软件、 固件等) 均 按 照现状 提供,可能存在瑕疵、错误或故障,越疆不提供任何形式的明示或默示保证, 包括但不限于适销性、质量满意度、适合特定目的、不侵犯第三方权利等保证;
亦不对 使用本手册或使用本公司产品导致的任何特殊、附带、偶然或间接的损害进行赔偿. 在使用本产品前详细阅读本使用手册及网上发布的相关技术文档并了解相关信息, 确保在充分了解机器人及其相关知识的前提下使用机械臂. 越疆建议您在专业人员的指 导下使用本手册.该手册所包含的所有安全方面的信息都不得视为Dobot的保证,即便 遵循本手册及相关说明,使用过程中造成的危害或损失依然有可能发生. 本产品的使用者有责任确保遵循相关国家的切实可行的法律法规, 确保在越疆机械 臂的使用中不存在任何重大危险. 越疆科技有限公司 地址:深圳市南山区桃源街道塘朗工业区A区8栋4楼
网址:http://cn.dobot.cc/ Dobot M1 API 接口说明 前言文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司 ii 前言目的 本文档旨在对 Dobot API 接口进行详细说明,并给出基于 Dobot API 接口开发应用程序 的一般流程. 读者对象 本手册适用于: ? 客户工程师 ? 安装调测工程师 ? 技术支持工程师 修订记录 时间 修订记录 2018/03/23 第一次发布 符号约定 在本手册中可能出现下列标志,它们所代表的含义如下. 符号 说明 危险 表示有高度潜在危险, 如果不能避免, 会导致 人员死亡或严重伤害 警告 表示有中度或低度潜在危害,如果不能避免, 可能导致人员轻微伤害、机械臂毁坏等情况 注意 表示有潜在风险, 如果忽视这些文本, 可能导 致机械臂损坏、数据丢失或不可预知的结果 ?说明 表示是正文的附加信息, 是对正文的强调和补 充Dobot M1 API 接口说明 目录文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司 iii 目录API 接口说明.1 Dobot 指令简介
1 指令超时
1 设置指令超时时间.1 连接/断开
1 搜索 Dobot.1 连接 Dobot.1 断开 Dobot.2 示例:连接示例.2 指令队列控制
3 执行队列中的指令.4 停止执行队列中的指令.4 强制停止执行队列中的指令
4 示例:同步处理 PTP 指令下发和队列控制
4 示例:异步处理 PTP 指令下发和队列控制
5 清空指令队列.6 获取指令索引.6 示例:获取指令索引实现运动同步
7 设备信息
8 设置设备序列号.8 获取设备序列号.8 设置设备名称.8 获取设备名称.8 获取设备版本信息.9 实时位姿
9 获取机械臂实时位姿.9 报警功能
10 获取系统报警状态.10 清除系统所有报警.10 回零功能
10 设置回零位置.11 获取回零位置.11 执行回零功能.12 ARM 方向
12 设置机械臂方向.12 获取机械臂方向.13 JOG 功能.13 设置点动速度百分比和加速度百分比
13 获取点动速度百分比和加速度百分比
14 执行点动指令.14 PTP 功能.15 设置 JUMP 模式下抬升高度和最大抬升高度.18 Dobot M1 API 接口说明 目录文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司 iv 获取 JUMP 模式下抬升高度和最大抬升高度.18 设置 PTP 运动的速度百分比和加速度百分比
19 获取 PTP 运动的速度百分比和加速度百分比
19 执行 PTP 指令.20 CP 功能.21 执行 CP 指令.21 执行带激光雕刻的 CP 指令
22 ARC 功能
23 执行 ARC 指令.23 执行 CIRCLE 指令.24 WAIT 功能
25 执行时间等待指令.25 触发功能
25 执行触发指令.25 EIO 功能.26 设置 I/O 输出电平.26 读取 I/O 输出电平.27 读取 I/O 输入电平.27 读取 A/D 输入
28 网络功能
28 配置 LAN.28 获取 LAN 配置.29 其他功能
29 事件循环功能.29 Dobot M1 API 接口说明 1API 接口说明 文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司
1 API 接口说明 Dobot 指令简介 控制器支持两种类型的指令:立即指令与队列指令. ? 立即指令:Dobot控制器在收到指令后立即处理该指令,而不管当前控制器是否在 还在处理其他指令. ? 队列指令:Dobot控制器在收到指令后会将该指令放入控制器内部的指令队列中, Dobot控制器将顺序执行指令. 关于Dobot指令更具体的内容,请参见《Dobot通信协议》 . 指令超时 设置指令超时时间 如1.1 Dobot指令简介中介绍,发送给Dobot控制器的所有指令都带有返回.当通信链路 干扰等问题造成指令错误时,控制器将无法识别该条指令且无法返回.因此,每条下发给控 制器的指令都可设置一个超时时间.该指令超时时间可以通过以下的API进行设置. 表1.1 设置指令超时时间 连接/断开 搜索 Dobot 表1.2 搜索 Dobot 连接 Dobot 表1.3 连接 Dobot 控制器接口说明 原型 int SetCmdTimeout(uint32_t cmdTimeout) 功能 设置指令超时时间.当下发一条指令后如果需在规定时间内返回,则可调用 此接口设置超时时间,判断该指令是否超时 功能 cmdTimeout:指令超时时间.单位:ms 返回 DobotCommunicate_NoError:无错误 原型 int SearchDobot(char *dobotList, uint32_t maxLen) 功能 搜索Dobot,动态库将搜索到的Dobot信息存储,并使用ConnectDobot连接 Dobot 功能 dobotList:字符串数组,Dobot动态库会将搜索到的串口或UDP信息写入到 dobotList.一个典型的dobotList的格式为 COM1 COM3 COM6 192.168.0.5 , 不同的串口或IP地址以空格分开 maxLen:字符串最大长度,以避免内存溢出 返回 Dobot 数量 Dobot M1 API 接口说明 1API 接口说明 文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司
2 注意 请提前安装所需的驱动以便使API接口能识别Dobot控制器接口, 详情请查询Dobot 用户手册. 断开 Dobot 表1.4 断开 Dobot 接口说明 示例:连接示例 程序 1.1 连接示例 #include DobotDll.h int split(char **dst, char* str, const char* spl) { int n = 0;
char *result = NULL;
原型 int ConnectDobot(const char *portName, uint32_t baudrate, char *fwType, char *version) 功能 连接 Dobot.其中,portName 可以从 int SearchDobot(char *dobotList, uint32_t maxLen)的char *dobotList 中得到 若portName 为空,并直接调用 ConnectDobot,则动态库将自动连接随机搜 索到的 Dobot 参数 portName:Dobot 端口名.对于串口,其值为 COM3 .对于 UDP,可能 是 192.168.0.5 baudrate:波特率 fwType:固件类型,包括:Dobot 和Marlin version:版本号 返回 DobotConnect_NoError:连接 Dobot 成功 DobotConnect_NotFound:未找到 Dobot 端口 DobotConnect_Occupied:Dobot 端口被占用 原型 int DisconnectDobot(void) 功能 断开 Dobot 参数 无 返回 DobotConnect_NoError:无错误 Dobot M1 API 接口说明 1API 接口说明 文档版本 V1.0(2018-03-23) 接口说明 版权所有 ? 越疆科技有限公司
3 result = strtok(str, spl);
while( result != NULL ) { strcpy(dst[n++], result);
result = strtok(NULL, spl);
} return n;
} int main(void) { int maxDevCount = 100;
int maxDevLen = 20;
char *devsChr = new char[maxDevCount * maxDevLen]();
char **devsList = new char*[maxDevCount]();
for(int i=0;
i........