CS机器人30020端口使用

2025-07-07

1.  简介

● def脚本【jiǎo běn】☕为主程序脚本【xù jiǎo běn】☕,一次仅支持一【zhī chí yī】个⛽def脚本【jiǎo běn】运🧙行😮,如果在第一个🤩def脚本【jiǎo běn】运🧙行过程🔏中【zhōng】🍨,下【xià】 发第二个⛽def脚本【jiǎo běn】☕,则会强🧑制停止第一个🤩运行【yùn háng】😮中【zhōng】🍨的【de】def脚本【jiǎo běn】☕,去执行👪新收到的【de】def脚本【jiǎo běn】☕。

● sec脚本可以与【yǐ yǔ】💌def脚本同时运行,不会导🤢致【zhì】🧥def脚本停止,但🏯sec脚本不支持运📣动指令⌚,并且不【bìng qiě bú】 允许运【yǔn xǔ yùn】行耗时【háng hào shí】指令💅(如sleep、串口【chuàn kǒu】、socket的超时操作等),有一定【yǒu yī dìng】的限制。

● 由于def脚本与sec脚本的定义,导致目👄前的python运行过【yùn háng guò】程中【chéng zhōng】👠,无法实现一些动态的脚本插队📜 运行,比如用【bǐ rú yòng】🖍户在自【hù zài zì】己的上【jǐ de shàng】🎠位机程【wèi jī chéng】序,实时计🐕算出一【suàn chū yī】些运行👰点位脚【diǎn wèi jiǎo】💍本,用户无【yòng hù wú】法在程序运行🆎 的过程中【chéng zhōng】👠,将一些实时计🐕算的脚本插队📜到当前运行的【yùn háng de】任务当中【zhōng】👠。存在一🏙定的使用限制【yòng xiàn zhì】。

● 针对上述需求【shù xū qiú】,CS控制软件开发了【le】Interpreter Mode(解释器🎬模式🥜)功能【gōng néng】,也就是30020接口【jiē kǒu】,用于在🎪一定的条件下,实现用【shí xiàn yòng】🦃户脚本🍷的插队【de chā duì】🛏运行。

● 解释器【jiě shì qì】模式的【mó shì de】🔝使用👎,需要更新至【xīn zhì】📌2.11及以上的版本。

2.  操作流程

● 解释器模式脚本命令

1.  解释器功能

系统进🔬入解释【rù jiě shì】🉐器模式🐙后,允许编程人员在任务【zài rèn wù】运行时🔩发送并🧖插队运行脚本【háng jiǎo běn】语【yǔ】👶句【jù】,只需要脚本语【jiǎo běn yǔ】👶 句【jù】为有效的python语【yǔ】句【jù】即🐥可,用户可【yòng hù kě】以将脚【yǐ jiāng jiǎo】本语【yǔ】👶句【jù】通过🐓30020端口【duān kǒu】,发送到【fā sòng dào】控制器🍒,控制器🍒解【jiě】🎃 收之后【shōu zhī hòu】,会根据当前的🈹状态,对语【yǔ】句【jù】进行编译运行。发送到【fā sòng dào】30020端口【duān kǒu】的脚本语【jiǎo běn yǔ】👶句【jù】,会已队列 的方式【de fāng shì】存储在【cún chǔ zài】控制软件内部🐷,并按顺序执行🛡,脚本语【jiǎo běn yǔ】👶句【jù】必须🧔为单行语【yǔ】句【jù】,并以【bìng yǐ】\n作为结🤚束符, 如🆑 set_tcp([0,0,0,0,0,0])\n

脚本语句参考CS脚本手册

2.  interpreter_mode(clearQueueOnEnter = True, clearOnEnd = True)

clearQueueOnEnter:为🕷 True 时【shí】,会在进入解释器模式【qì mó shì】🗽时【shí】,清除所有进入之前收📗到的脚 本【běn】🏕 队列【duì liè】。

clearOnEnd:为 True 时【shí】🛑,会在退🕡出解释器模式时【shí】🛑,清除所有还未【yǒu hái wèi】执行的【zhí háng de】🔅脚本队【jiǎo běn duì】列中的脚 本内容🦒。

该函数用于是🚗任务进🛒入解释器模式【qì mó shì】,其为阻【qí wéi zǔ】塞函数【sāi hán shù】🍠

30020端口的💇解释器模式🦔,是通过【shì tōng guò】30001端口发😕送解释器脚本【qì jiǎo běn】命令触【mìng lìng chù】发😕。

30001端口详情【qíng】,请参考CS用户手【yòng hù shǒu】🖤册🥫。

例【lì】:30001 端口调用【yòng】,需使用【yòng】 def 脚本,采用【cǎi yòng】💤 python 格式🏰,要注意格式🏰(缩进📁,大小写【dà xiǎo xiě】 等)

def a():

interpreter_mode(clearQueueOnEnter = True, clearOnEnd = True)

end

3.  end_interpreter()

该函数🥦用于关【yòng yú guān】闭任务的解释📄器模式,此时阻🆔塞的【sāi de】 interpreter_mode 函数会🏨退出🌃,该函数🥦可【kě】 以在 30001 端口调🍓用【yòng】(sec 和 def 脚本效【jiǎo běn xiào】果相同),程序立即停止【jí tíng zhǐ】并退出【bìng tuì chū】🌃解释器🍌模式。

也可以【yě kě yǐ】在 30020 中【zhōng】使用【yòng】😣,发送到👫解释器模式🙋中【zhōng】,在脚本队列中【zhōng】📆等待调用【yòng】🌋,队列运【duì liè yùn】行到该命【mìng】 令后退【lìng hòu tuì】出解释器模式🙋。

4.  clear_interpreter()

该函数💈用【yòng】♉于清除【yú qīng chú】解释器【jiě shì qì】脚本🤖队列,可以在 30001 端口使【duān kǒu shǐ】用【yòng】♉(sec 脚本),不建议用【yòng】♉ def 脚 本,def 脚本执行程序🐟会立即【huì lì jí】停止并🦄退出解释器【jiě shì qì】模🈶式。

也可以💓在【zài】 30020 中使用,发送到👳解释器模式中【mó shì zhōng】🎙, 在【zài】脚本队列中【duì liè zhōng】等待调用,调用后【diào yòng hòu】,会将 该函数执行前🍹接收到【jiē shōu dào】👞的脚本队列清除【chú】,在【zài】其之后接收🤢到的脚📔本则不【běn zé bú】受影响。

● 解释器模式回复

1.  解释器🈶模式接收到可【shōu dào kě】🤤执行的【zhí háng de】脚本语【jiǎo běn yǔ】句后【jù hòu】,将会通过返回以下格🗾式信息,告知客💻户端。

ack::

id为接受【wéi jiē shòu】的语句🌭被分配的唯一id,后续的一些状【yī xiē zhuàng】态命令字返回【zì fǎn huí】👫值🏣,会以该【huì yǐ gāi】🤟id信息返回👫。

2.  如果任务未处于运行【yú yùn háng】状态🦐,或脚本语句发【yǔ jù fā】🎻生编译错误或脚本队【jiǎo běn duì】列达到【liè dá dào】上限等等各种异常原因导致💾接受的脚本没🚧有被正🍣常的压入解释🌔器队列【qì duì liè】,解释器♈会返回命令抛【mìng lìng pāo】弃信息以及抛【yǐ jí pāo】📲弃原因🥫,格式如【gé shì rú】下【xià】。

discard::

3.  编译错误:

触发原【chù fā yuán】😷因:一般为脚本格【jiǎo běn gé】式错误✡,需要检查确保👧下发的脚本格【jiǎo běn gé】式是否【shì shì fǒu】🥡正常的python格式的【gé shì de】 代码段

返回报文信息【wén xìn xī】🦃:discard: Compile error::

4.  任务状态错误:

触发原因:当前任务未处于运行状态

返回报【fǎn huí bào】🚃文信息:discard: Task is in an invalid state:

5.  脚本队列的长度超限:

触发原【chù fā yuán】因🧐:当前脚本队列长度超过最大【guò zuì dà】🌶值【zhí】(目前最🗡大值【zhí】为2000)

返回报🍨文信息【wén xìn xī】:discard: Too many interpreted messages:

6.  执行解【zhí háng jiě】释器前队列清【duì liè qīng】📆除🧗:

触发原因:由于【yóu yú】🥄clearQueueOnEnter参数设【cān shù shè】置为True,再打开👓解释器【jiě shì qì】模式之【mó shì zhī】前发送【qián fā sòng】💸到解释器【jiě shì qì】队列的脚本【jiǎo běn】🔚,会在打开时🎲(即调用interpreter_mode脚本【jiǎo běn】🔚)进行♌discard。

返回报【fǎn huí bào】🥕文信息:discard: Cleaned up before interpretation:

7.  执行解【zhí háng jiě】🦒释器后【shì qì hòu】队列清🛴除:

触发原⚫因🥓:由于clearOnEnd参数设➰置为【zhì wéi】😏True,再结束解释器【jiě shì qì】🍸模式后,解释器【jiě shì qì】🍸队列中【duì liè zhōng】🎖已有的脚本会在结束【zài jié shù】时【shí】(即调用【jí diào yòng】end_interpreter脚本)进行discard。

返回报【fǎn huí bào】🥝文信息:discard: Cleaned up after end:

8.  执行队列清除操作:

触发原【chù fā yuán】因【yīn】🚘:由于执🛹行【háng】clear_interpreter脚本💴discard掉的脚本💴队列中的脚本💴。

返回报🏊文信息【wén xìn xī】:discard: Cleaned up:

● 解释器模式关键字命令

解释器模式的✡关键字命令🔕,为非【wéi fēi】python脚本函【jiǎo běn hán】数,此类命【cǐ lèi mìng】令🔕会在接【huì zài jiē】收到✊后,马上被❌执行【zhí háng】,不会进🔡入脚本🍸队列等待执行【dài zhí háng】。

skipbuffer该命令可以让【kě yǐ ràng】脚本队列跳过【liè tiào guò】已经接🎄收到【shōu dào】🕚,但还未【dàn hái wèi】执行的【zhí háng de】所有脚🐭本命令(正在执行的【zhí háng de】命🧟令不会🌗结束,会继续正常运【zhèng cháng yùn】行到命令结束🔜)。

● 解释器模式状态命令

1.  statelastexecuted 命令【mìng lìng】😨

该命令【gāi mìng lìng】会返回【huì fǎn huí】最后执🌒行过(或正在执行【zhí háng】)的命令🍅id,返回格🕑式如下:

state:: statelastexecuted

2.  statelastinterpreted 命令【mìng lìng】🎆

该命令【gāi mìng lìng】🏢会返回最新解收的已【shōu de yǐ】经解析完成的脚本命令🏢id,返回格🐣式如下【shì rú xià】👑:

state:: statelastinterpreted

3.  statelastcleared 命令【mìng lìng】🕕

该命令会返回最后的🚥被清除【bèi qīng chú】(调用clear_interpreter或解释器模式【qì mó shì】😊退出🌉)的命令id,返回格【fǎn huí gé】😭式如下【shì rú xià】:

state:: statelastcleared

4.  stateunexecuted 命令【mìng lìng】🐧

该命令【gāi mìng lìng】会返回【huì fǎn huí】😅当前队【dāng qián duì】💝列中还未执行的脚本命令(已【yǐ】skipbuffer的命令不会计🗞数在内🕑),返回格式如下:

state: <#unexecuted>: stateunexecuted

5.  state 命令

该命令【gāi mìng lìng】🏩会返回当前是否处于【fǒu chù yú】🥠解释器模式,返回格【fǎn huí gé】式如下🛷:

state: 0: running: state

state: 0: stopped: state

● 示例

1.将机器人打到远程模式


2.  用通讯【yòng tōng xùn】助手创🌁建一个 30001端口的客户端【kè hù duān】,连接机🏞器人并发送脚本使机🐧器人进【qì rén jìn】🥕入解释器模式【qì mó shì】 


3.机器人【jī qì rén】进入解释器模【shì qì mó】✅式,示教器😦显示运【xiǎn shì yùn】🚷行中,如下图


4.  用通讯🤵助手创建一个30020端口的【duān kǒu de】客户端【kè hù duān】🛅

5.通过 30020 端口发【duān kǒu fā】送脚本【sòng jiǎo běn】🎤使得机器人按先后顺序依次执行发🏅送的脚【sòng de jiǎo】📳本


6.  发送成【fā sòng chéng】功后,收到来❇自机器【zì jī qì】人的反馈🍸

7.参考CS脚本手😕册,依次发🖐送指令【sòng zhǐ lìng】给机器人【jī qì rén】😗,机器人【jī qì rén】😗将按顺📞序依次执行【zhí háng】


3.  常见问题解答

1.  解释器【jiě shì qì】模式中🏻创建的线程,不会再解释器【jiě shì qì】模式推【mó shì tuī】出后【chū hòu】🤼,自动关闭【bì】🗨,使用时,请自主管理好【guǎn lǐ hǎo】线程状🌟态🍩。

2.  运行耗【yùn háng hào】时脚本【jiǎo běn】🈺(如移动指令【zhǐ lìng】),会完整【huì wán zhěng】的运动🐵结束后,才可以自动退【zì dòng tuì】🐠出【chū】,中途即使调用了【le】end_interpreter()命令【mìng lìng】🚸,也不会强制停🥊止耗时脚本【jiǎo běn】🈺运行,除非使🎆用30001以def函数的⛓形式发送。

3.  解释器【jiě shì qì】脚本队🏌列数量【liè shù liàng】😺上限目前为2000条,脚本队🏌列数量【liè shù liàng】😺超过该🥤数量时,再次添🎐加新的🌀解释器【jiě shì qì】脚本,会返回【huì fǎn huí】discard信息,并抛弃【bìng pāo qì】新添加🦇的脚本【de jiǎo běn】


download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

准备好突破增长瓶颈,开启智能制造了吗?
了解我们的机器人如何帮助您的业务增长
欢迎下载漫蛙机器人资料

我已阅读并同意漫蛙《隐私政策》《法律声明》

我已知晓并同意漫蛙【yì màn wā】🐺通过电【tōng guò diàn】子邮件发送相🔲关资料【guān zī liào】🏆

提交