CS机器人 40011端口使用
1. 简介
本文将介绍如何使用CS系列的【xì liè de】🗳Socket通讯的40011端口【duān kǒu】😏
40011是在应用版本2.11才有
40011(明文状态请求)端口【duān kǒu】,可用于获取机【huò qǔ jī】📹器人的【qì rén de】🌊各种🌭 状态及数据或者设置【zhě shè zhì】🕺机器人相应Ⓜ 的参数【de cān shù】(运动指令和耗时指令除外【chú wài】),与其他获取数🐃据端口【duān kǒu】相比【xiàng bǐ】🌟,属于一问一答【wèn yī dá】🗓式数据回
复类型,上位机发送对【fā sòng duì】应的请【yīng de qǐng】求😼,机器人【jī qì rén】✒返回对应的数据🛥
2. 操作流程
2.1. 下发请求命令格式
1.下发请求命【qiú mìng】♟令【lìng】,请求命【qiú mìng】♟令最后【lìng zuì hòu】需要以\n换行符结束⬜,命令【lìng】格式如下: req [id] [statement]\n
2. 参数介绍:
1. req为标准【wéi biāo zhǔn】🍳的请求头【tóu】,必须使【bì xū shǐ】🧕用该头【tóu】作为请求语句🕥的开头【tóu】。
2. id为请求的唯一id(需要为【xū yào wéi】正整数【zhèng zhěng shù】),该☝id会作为返回值🤑的一部💺分【fèn】,用于用户在并 发的情【fā de qíng】况下,能够匹【néng gòu pǐ】配返回👏值与用【zhí yǔ yòng】🎚户请求😠的命令。
3. statement为标准的【de】python脚本命【jiǎo běn mìng】令【lìng】⛱,目前仅支持单🎂行命令【háng mìng lìng】⏹,如 set_tcp([0,0,0,0,0,0])。 脚本命【jiǎo běn mìng】令【lìng】⛱详情参考📓 CS_脚本手册🔞 ,可在漫蛙官网【wā guān wǎng】下载
3. 命令样例:
req [1] set_tcp([0,0,0,0,0,0])\n
2.2. 返还值格式
1. 返回值格式说明:
[id] [state] : [return value]\n
2. 参数介绍:
id为返回的结果对应的【duì yīng de】请求【qǐng qiú】❕id,如果下【rú guǒ xià】发的请【fā de qǐng】求❕由于格式错误等原🦋因🏀,无法正确解析【què jiě xī】🐝id,此处会返回-1。
2. state为请求⛽命令执行状态🛳包括【bāo kuò】succeed failure,分别表示执行【shì zhí háng】成功与执行失败【bài】🔆。
3. return value表示请求返回值➖,如果执⏭行成功,则该处【zé gāi chù】返回执【fǎn huí zhí】🐱行结果。如果失败,则【zé】 表示失【biǎo shì shī】败原因⛏。
4. 失败原🗡因目前🎆包括两【bāo kuò liǎng】🖕种🚋,分别为【fèn bié wéi】解析失败parse failed,表示下发的请求命令【qiú mìng lìng】⏰格式存【gé shì cún】 在错误【zài cuò wù】,无法正常解析,execute failed表示执🈚行失败,表示执🈚行时抛出了异【chū le yì】常。
2.3.机器人连接网线
将网线连接至控制柜的FB1网口

2.4.设置机器人网口IP
1. 点击右上角漫蛙logo

2. 点击设置

3. 选择静【xuǎn zé jìng】态地址,设置🎷FB1网口的【wǎng kǒu de】🕑IP

2.5. 电脑端的操作
更改网【gèng gǎi wǎng】络适配【luò shì pèi】器【qì】🦁,将IP设置成🕗与机器【qì】🦁人同网🛄段。
关闭Windows防火墙🎦,防止出【fáng zhǐ chū】👘现通讯失败的情况【qíng kuàng】。
使用socket tool等工具,连接机🍠器人【qì rén】40011端口,进行测【jìn háng cè】📀试【shì】😹。
2.6. 示例
使用通讯助手创建客【chuàng jiàn kè】户端【hù duān】💴,连接机器人🙄40011端口,设置【shè zhì】⛱TCP参数
2. 发送【fā sòng】req 1 set_tcp([0,0,0.01,0,0,0])\n(使用通【shǐ yòng tōng】💜讯助手【xùn zhù shǒu】🕘发送【fā sòng】命令时⛷,不需要发送【fā sòng】\n,

在命令【zài mìng lìng】结尾处🥍回车即可),设置【shè zhì】🗜tcp为[0,0,0.01,0,0,0]。
3. 获取机【huò qǔ jī】器人当🏒前关节角度【jiǎo dù】📼,发送req 1 get_actual_joint_positions()\n
3. 常见问题解答
3.1. 下发的id尽量每次不同,这样便【zhè yàng biàn】于管理,同时在一些同【yī xiē tóng】时请求的情况📈,可以区分返回【fèn fǎn huí】值与请【zhí yǔ qǐng】🚹求之间🍩的匹配🚹关系【guān xì】👦
3.2. 不可以🦐执行运动指令【dòng zhǐ lìng】(如【rú】🚺movej命令【mìng lìng】🦒)、不可以🦐执行耗【zhí háng hào】时指令(如【rú】🚺sleep等),不可以🦐执行无法退出的命令【mìng lìng】🦒(如死循【rú sǐ xún】👶环等)
3.3. 与SEC命令类🦗似【sì】,请求命🏨令并不🌠会打断正在执行的主【háng de zhǔ】函数📁(即【jí】def函数📁 ,def函数📁详情请参考【cān kǎo】🉐30001端口【duān kǒu】)