亚洲无码三级大黄_两个男生开车哭声声音_美女裸体无遮挡扒开尿囗_欧美毛多水多肥妇

CS機器人30020端口使用

2024-11-06

1.  簡介

● def腳本為主程序腳本,一次僅支持一個def腳本運行,如果在第一個def腳本運行過程中,下 發(fā)第二個def腳本,則會強制停止第一個運行中的def腳本,去執(zhí)行新收到的def腳本。

● sec腳本可以與def腳本同時運行,不會導致def腳本停止,但sec腳本不支持運動指令,并且不 允許運行耗時指令(如sleep、串口、socket的超時操作等),有一定的限制。

● 由于def腳本與sec腳本的定義,導致目前的python運行過程中,無法實現(xiàn)一些動態(tài)的腳本插隊 運行,比如用戶在自己的上位機程序,實時計算出一些運行點位腳本,用戶無法在程序運行 的過程中,將一些實時計算的腳本插隊到當前運行的任務(wù)當中。存在一定的使用限制。

● 針對上述需求,CS控制軟件開發(fā)了Interpreter Mode(解釋器模式)功能,也就是30020接口,用于在一定的條件下,實現(xiàn)用戶腳本的插隊運行。

● 解釋器模式的使用,需要更新至2.11及以上的版本。

2.  操作流程

● 解釋器模式腳本命令

1.  解釋器功能

系統(tǒng)進入解釋器模式后,允許編程人員在任務(wù)運行時發(fā)送并插隊運行腳本語句,只需要腳本語 句為有效的python語句即可,用戶可以將腳本語句通過30020端口,發(fā)送到控制器,控制器解 收之后,會根據(jù)當前的狀態(tài),對語句進行編譯運行。發(fā)送到30020端口的腳本語句,會已隊列 的方式存儲在控制軟件內(nèi)部,并按順序執(zhí)行,腳本語句必須為單行語句,并以\n作為結(jié)束符, 如 set_tcp([0,0,0,0,0,0])\n

腳本語句參考CS腳本手冊

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

clearQueueOnEnter:為 True 時,會在進入解釋器模式時,清除所有進入之前收到的腳 本 隊列。

clearOnEnd:為 True 時,會在退出解釋器模式時,清除所有還未執(zhí)行的腳本隊列中的腳 本內(nèi)容。

該函數(shù)用于是任務(wù)進入解釋器模式,其為阻塞函數(shù)

30020端口的解釋器模式,是通過30001端口發(fā)送解釋器腳本命令觸發(fā)。

30001端口詳情,請參考CS用戶手冊。

例:30001 端口調(diào)用,需使用 def 腳本,采用 python 格式,要注意格式(縮進,大小寫 等)

def a():

interpreter_mode(clearQueueOnEnter = True, clearOnEnd = True)

end

3.  end_interpreter()

該函數(shù)用于關(guān)閉任務(wù)的解釋器模式,此時阻塞的 interpreter_mode 函數(shù)會退出,該函數(shù)可 以在 30001 端口調(diào)用(sec 和 def 腳本效果相同),程序立即停止并退出解釋器模式。

也可以在 30020 中使用,發(fā)送到解釋器模式中,在腳本隊列中等待調(diào)用,隊列運行到該命 令后退出解釋器模式。

4.  clear_interpreter()

該函數(shù)用于清除解釋器腳本隊列,可以在 30001 端口使用(sec 腳本),不建議用 def 腳 本,def 腳本執(zhí)行程序會立即停止并退出解釋器模式。

也可以在 30020 中使用,發(fā)送到解釋器模式中, 在腳本隊列中等待調(diào)用,調(diào)用后,會將 該函數(shù)執(zhí)行前接收到的腳本隊列清除,在其之后接收到的腳本則不受影響。

● 解釋器模式回復

1.  解釋器模式接收到可執(zhí)行的腳本語句后,將會通過返回以下格式信息,告知客戶端。

ack::

id為接受的語句被分配的唯一id,后續(xù)的一些狀態(tài)命令字返回值,會以該id信息返回。

2.  如果任務(wù)未處于運行狀態(tài),或腳本語句發(fā)生編譯錯誤或腳本隊列達到上限等等各種異常原因?qū)е陆邮艿哪_本沒有被正常的壓入解釋器隊列,解釋器會返回命令拋棄信息以及拋棄原因,格式如下。

discard::

3.  編譯錯誤:

觸發(fā)原因:一般為腳本格式錯誤,需要檢查確保下發(fā)的腳本格式是否正常的python格式的 代碼段

返回報文信息:discard: Compile error::

4.  任務(wù)狀態(tài)錯誤:

觸發(fā)原因:當前任務(wù)未處于運行狀態(tài)

返回報文信息:discard: Task is in an invalid state:

5.  腳本隊列的長度超限:

觸發(fā)原因:當前腳本隊列長度超過最大值(目前最大值為2000)

返回報文信息:discard: Too many interpreted messages:

6.  執(zhí)行解釋器前隊列清除:

觸發(fā)原因:由于clearQueueOnEnter參數(shù)設(shè)置為True,再打開解釋器模式之前發(fā)送到解釋器隊列的腳本,會在打開時(即調(diào)用interpreter_mode腳本)進行discard。

返回報文信息:discard: Cleaned up before interpretation:

7.  執(zhí)行解釋器后隊列清除:

觸發(fā)原因:由于clearOnEnd參數(shù)設(shè)置為True,再結(jié)束解釋器模式后,解釋器隊列中已有的腳本會在結(jié)束時(即調(diào)用end_interpreter腳本)進行discard。

返回報文信息:discard: Cleaned up after end:

8.  執(zhí)行隊列清除操作:

觸發(fā)原因:由于執(zhí)行clear_interpreter腳本discard掉的腳本隊列中的腳本。

返回報文信息:discard: Cleaned up:

● 解釋器模式關(guān)鍵字命令

解釋器模式的關(guān)鍵字命令,為非python腳本函數(shù),此類命令會在接收到后,馬上被執(zhí)行,不會進入腳本隊列等待執(zhí)行。

skipbuffer該命令可以讓腳本隊列跳過已經(jīng)接收到,但還未執(zhí)行的所有腳本命令(正在執(zhí)行的命令不會結(jié)束,會繼續(xù)正常運行到命令結(jié)束)。

● 解釋器模式狀態(tài)命令

1.  statelastexecuted 命令

該命令會返回最后執(zhí)行過(或正在執(zhí)行)的命令id,返回格式如下:

state:: statelastexecuted

2.  statelastinterpreted 命令

該命令會返回最新解收的已經(jīng)解析完成的腳本命令id,返回格式如下:

state:: statelastinterpreted

3.  statelastcleared 命令

該命令會返回最后的被清除(調(diào)用clear_interpreter或解釋器模式退出)的命令id,返回格式如下:

state:: statelastcleared

4.  stateunexecuted 命令

該命令會返回當前隊列中還未執(zhí)行的腳本命令(已skipbuffer的命令不會計數(shù)在內(nèi)),返回格式如下:

state: <#unexecuted>: stateunexecuted

5.  state 命令

該命令會返回當前是否處于解釋器模式,返回格式如下:

state: 0: running: state

state: 0: stopped: state

● 示例

1.將機器人打到遠程模式


2.  用通訊助手創(chuàng)建一個 30001端口的客戶端,連接機器人并發(fā)送腳本使機器人進入解釋器模式 


3.機器人進入解釋器模式,示教器顯示運行中,如下圖


4.  用通訊助手創(chuàng)建一個30020端口的客戶端

5.通過 30020 端口發(fā)送腳本使得機器人按先后順序依次執(zhí)行發(fā)送的腳本


6.  發(fā)送成功后,收到來自機器人的反饋

7.參考CS腳本手冊,依次發(fā)送指令給機器人,機器人將按順序依次執(zhí)行


3.  常見問題解答

1.  解釋器模式中創(chuàng)建的線程,不會再解釋器模式推出后,自動關(guān)閉,使用時,請自主管理好線程狀態(tài)。

2.  運行耗時腳本(如移動指令),會完整的運動結(jié)束后,才可以自動退出,中途即使調(diào)用了end_interpreter()命令,也不會強制停止耗時腳本運行,除非使用30001以def函數(shù)的形式發(fā)送。

3.  解釋器腳本隊列數(shù)量上限目前為2000條,腳本隊列數(shù)量超過該數(shù)量時,再次添加新的解釋器腳本,會返回discard信息,并拋棄新添加的腳本


download-669.svg comicon14.svg

電話咨詢

download-397.svg comicon15.svg

免費試用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

準備好突破增長瓶頸,開啟智能制造了嗎?
了解我們的機器人如何幫助您的業(yè)務(wù)增長
歡迎下載艾利特機器人資料

我已閱讀并同意艾利特《隱私政策》《法律聲明》

我已知曉并同意艾利特通過電子郵件發(fā)送相關(guān)資料

提交