CS机器人 40011端口使用
1. 简介
本文将介绍如何使用CS系列的Socket通讯的40011端口
40011是在应用版本2.11才有
40011(明文状态请求)端口,可用于获取机器人的各种 状态及数据或者设置机器人相应 的参数(运动指令和耗时指令除外),与其他获取数据端口相比,属于一问一答式数据回
复类型,上位机发送对应的请求,机器人返回对应的数据
2. 操作流程
2.1. 下发请求命令格式
1.下发请求命令,请求命令最后需要以\n换行符结束,命令格式如下: req [id] [statement]\n
2. 参数介绍:
1. req为标准的请求头,必须使用该头作为请求语句的开头。
2. id为请求的唯一id(需要为正整数),该id会作为返回值的一部分,用于用户在并 发的情况下,能够匹配返回值与用户请求的命令。
3. statement为标准的python脚本命令,目前仅支持单行命令,如 set_tcp([0,0,0,0,0,0])。 脚本命令详情参考 CS_脚本手册 ,可在艾利特官网下载
3. 命令样例:
req [1] set_tcp([0,0,0,0,0,0])\n
2.2. 返还值格式
1. 返回值格式说明:
[id] [state] : [return value]\n
2. 参数介绍:
id为返回的结果对应的请求id,如果下发的请求由于格式错误等原因,无法正确解析id,此处会返回-1。
2. state为请求命令执行状态包括succeed failure,分别表示执行成功与执行失败。
3. return value表示请求返回值,如果执行成功,则该处返回执行结果。如果失败,则 表示失败原因。
4. 失败原因目前包括两种,分别为解析失败parse failed,表示下发的请求命令格式存 在错误,无法正常解析,execute failed表示执行失败,表示执行时抛出了异常。
2.3.机器人连接网线
将网线连接至控制柜的FB1网口
2.4.设置机器人网口IP
1. 点击右上角艾利特logo
2. 点击设置
3. 选择静态地址,设置FB1网口的IP
2.5. 电脑端的操作
更改网络适配器,将IP设置成与机器人同网段。
关闭Windows防火墙,防止出现通讯失败的情况。
使用socket tool等工具,连接机器人40011端口,进行测试。
2.6. 示例
使用通讯助手创建客户端,连接机器人40011端口,设置TCP参数
2. 发送req 1 set_tcp([0,0,0.01,0,0,0])\n(使用通讯助手发送命令时,不需要发送\n,
在命令结尾处回车即可),设置tcp为[0,0,0.01,0,0,0]。
3. 获取机器人当前关节角度,发送req 1 get_actual_joint_positions()\n
3. 常见问题解答
3.1. 下发的id尽量每次不同,这样便于管理,同时在一些同时请求的情况,可以区分返回值与请求之间的匹配关系
3.2. 不可以执行运动指令(如movej命令)、不可以执行耗时指令(如sleep等),不可以执行无法退出的命令(如死循环等)
3.3. 与SEC命令类似,请求命令并不会打断正在执行的主函数(即def函数 ,def函数详情请参考30001端口)