CS机器人 40011端口使用
1. 简介
本文将介绍如何使用🎵CS系列的Socket通讯的【tōng xùn de】🔋40011端口【duān kǒu】
40011是在应用版本2.11才有
40011(明文状态请求)端口,可用于【kě yòng yú】🏨获取机🏝器人的【qì rén de】各种【gè zhǒng】 状态及【zhuàng tài jí】🚠数据或者设置【zhě shè zhì】机器人相应📉 的参数(运动指🔄令和耗时指令【shí zhǐ lìng】除外),与其他【yǔ qí tā】🌖获取数【huò qǔ shù】🥒据端口相比,属于一💍问一答式数据回
复类型,上位机【shàng wèi jī】🔽发送对应的请求【qiú】🤢,机器人🌧返回对应的数据【jù】
2. 操作流程
2.1. 下发请求命令格式
1.下发请求命【qǐng qiú mìng】令,请求命【qǐng qiú mìng】令最后需要以【xū yào yǐ】🎑\n换行符【huàn háng fú】结束🈴,命令格式如下🚥: req [id] [statement]\n
2. 参数介绍:
1. req为标准的请求🛶头☔,必须使【bì xū shǐ】用该头【yòng gāi tóu】☔作为请【zuò wéi qǐng】求语句的开头🎾。
2. id为请求🚿的唯一🔗id(需要为【xū yào wéi】📯正整数🔻),该🎄id会作为返回值【fǎn huí zhí】的一部分,用于用户在并 发的情况下【kuàng xià】,能够匹配返回【pèi fǎn huí】值与用【zhí yǔ yòng】🐴户请求的命令【de mìng lìng】。
3. statement为标准💃的【de】python脚本命【jiǎo běn mìng】🌾令,目前仅🛺支持单行命令,如【rú】 set_tcp([0,0,0,0,0,0])。 脚本命【jiǎo běn mìng】🌾令详情参考【cān kǎo】 CS_脚本手册【cè】🏔 ,可在漫🍊蛙官网下载
3. 命令样例:
req [1] set_tcp([0,0,0,0,0,0])\n
2.2. 返还值格式
1. 返回值格式说明:
[id] [state] : [return value]\n
2. 参数介绍:
id为返回【wéi fǎn huí】🚚的结果【de jié guǒ】对应的🛺请求🖐id,如果下发的请😪求由于格式错误等原因【yīn】🌼,无法正确解析【què jiě xī】id,此处会【cǐ chù huì】返回🚚-1。
2. state为请求【wéi qǐng qiú】命令执行状态包括🚎succeed failure,分别表示执行🕓成功与【chéng gōng yǔ】执行失败【bài】📷。
3. return value表示请求返回值【zhí】,如果执【rú guǒ zhí】🏳行成功,则🛰该处返回执行结果。如果失【rú guǒ shī】📪败,则🛰 表示失【biǎo shì shī】🏤败原因【bài yuán yīn】。
4. 失败🦇原因目前💦包括两种【zhǒng】,分别为解析失【jiě xī shī】败🦇parse failed,表示下发的请🙇求命令格式存 在错误【zài cuò wù】,无法正😌常【cháng】🕷解析,execute failed表示执行失败【háng shī bài】🦇,表示执行时抛【háng shí pāo】✝出了异常【cháng】🕷。
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】🏭器,将IP设置成与机器😋人同网段【duàn】。
关闭【guān bì】Windows防火墙,防止出🔥现通讯失败的情况【qíng kuàng】⚪。
使用【shǐ yòng】🖖socket tool等工具👻,连接机♉器人40011端口,进行测【jìn háng cè】试【shì】。
2.6. 示例
使用通讯助手【xùn zhù shǒu】💥创建客户端,连接机【lián jiē jī】❎器人40011端口,设置【shè zhì】🐒TCP参数
2. 发送req 1 set_tcp([0,0,0.01,0,0,0])\n(使用通【shǐ yòng tōng】讯助手发送命【fā sòng mìng】🕹令时🗣,不需要【bú xū yào】🛶发送\n,

在命令🏂结尾处【jié wěi chù】回车即【huí chē jí】⏭可),设置tcp为[0,0,0.01,0,0,0]。
3. 获取机🥊器人当【qì rén dāng】前关节角度,发送【fā sòng】🚘req 1 get_actual_joint_positions()\n
3. 常见问题解答
3.1. 下发的id尽量每次不同,这样便【zhè yàng biàn】于管理【yú guǎn lǐ】,同时在👫一些同【yī xiē tóng】🌫时请求【shí qǐng qiú】🍬的情况【de qíng kuàng】,可以区🏆分返回值与请求之间的匹配关系😑
3.2. 不可以【bú kě yǐ】🍓执行运动指令【dòng zhǐ lìng】(如【rú】🌰movej命令)、不可以【bú kě yǐ】🍓执行耗【zhí háng hào】时指令(如【rú】🌰sleep等),不可以【bú kě yǐ】🍓执行无【zhí háng wú】法退出的命令(如【rú】死循🖼环等⬛)
3.3. 与📽SEC命令类似【sì】,请求命令并不会打断【huì dǎ duàn】🏍正在执行的主【háng de zhǔ】函数【hán shù】🌊(即def函数【hán shù】🌊 ,def函数【hán shù】🌊详情请参【cān】🍬考30001端口)