CS機器人socket插件使用教程
1.簡(jiǎn)介

機器人本身的socket通訊只有腳本這一種方式,用戶(hù)編寫(xiě)腳本通訊耗時(shí) 多,且不能開(kāi)機自動(dòng)連接,此插件提供用戶(hù)界面減少用戶(hù)使用socket的時(shí)間,同時(shí)提供開(kāi)機自啟或自動(dòng)連接的客戶(hù)端和服務(wù)器,并且提供快捷指令。
2.操作流程
2.1.環(huán)境準備
版本信息:
- 機器人系統版本v2.11及以上
- 擴展socket插件exsocket-5.9.1.elico
功能實(shí)現:
- 使用調試助手模擬視覺(jué)做(客戶(hù)端/服務(wù)端)與機器人通過(guò)收發(fā)字符串來(lái)實(shí)現簡(jiǎn)單交互。
2.2.插件導入
2.2.1.將帶有插件的 u盤(pán)插入示教器上
2.2.2.點(diǎn)擊右上角菜單-設置-選擇系統目錄下“ELITECOS”-點(diǎn)擊“+”-選擇U盤(pán)文件找到U盤(pán)里的插件包-點(diǎn)擊“打開(kāi)”-選擇“未激活”確認無(wú)誤后-點(diǎn)擊”重啟3“即可




2.3.插件使用
2.3.1.機器人設置IP
該插件適用于本機器人的FB1網(wǎng)口:(在機器人設置→網(wǎng)絡(luò )→FB1網(wǎng)絡(luò )里的IP地址)


2.3.2.機器人做客戶(hù)端
2.3.2.1.客戶(hù)端連接
方法1;
在導入拓展socket插件之后,在“配置”-“socket配置”里可以設置客戶(hù)端的參數
只需要輸入對應的(服務(wù)端地址,端口號,點(diǎn)擊“連接”)界面上也會(huì )有連接狀態(tài)反饋。
在擴展socket插件的“socket配置”中我們可以一些便捷功能能使用
比如; 開(kāi)機自動(dòng)連接(只需勾選上)
連接綁定到指定輸出(DO(0)-DO(15))

此圖-表示已經(jīng)連接上對應服務(wù)器
方法2;
在任務(wù)里直接添加
選擇導航欄“任務(wù)”-指令欄選擇“插件”-點(diǎn)擊"Socket Client"-設置該指令(勾選“連接”-輸入對應的服務(wù)端地址,端口號,“運行”或點(diǎn)擊"連接"即可)

2.3.2.2.客戶(hù)端發(fā)送
選擇導航欄“任務(wù)”-指令欄選擇“插件”-點(diǎn)擊"Socket Client"-設置該指令(勾選“發(fā)送”-輸入對應的數據類(lèi)型)可以手動(dòng)點(diǎn)擊”發(fā)送“,也可以直接”運行任務(wù)“來(lái)發(fā)送



以字符串輸入“hell world”為例

2.3.2.3.客戶(hù)端接收
選擇導航欄“任務(wù)”-指令欄選擇“插件”-點(diǎn)擊"Socket Client"-設置該指令(勾選“接收”-輸入對應的數據類(lèi)型)可以手動(dòng)點(diǎn)擊”接收“,也可以直接”運行任務(wù)“來(lái)接收

可以選擇或者編輯接收數據的“變量“,設置超時(shí)時(shí)間,默認:0表示一直等待接收值,可以選擇接收到的值的類(lèi)型(注;如果如果發(fā)送的數據,無(wú)法變成對應選擇類(lèi)型會(huì )發(fā)生彈窗錯誤
比如;發(fā)送的值為[1,2,3]數組,選擇的是整數類(lèi)型就會(huì )發(fā)生彈窗錯誤)
2.3.3.機器人做服務(wù)端
2.3.3.1.服務(wù)端開(kāi)啟監聽(tīng)
方法1;
在導入拓展socket插件之后,在“配置”-“socket配置”里可以設置服務(wù)端的參數
只需要輸入對應的(服務(wù)端地址,端口號,點(diǎn)擊“啟動(dòng)監聽(tīng)”)界面上也會(huì )有監聽(tīng)狀態(tài)反饋,監聽(tīng)成功后即可叫客戶(hù)端來(lái)連接。
在擴展socket插件的“socket配置”中我們可以一些便捷功能能使用
比如; 開(kāi)機自動(dòng)監聽(tīng)(只需勾選上)

方法2;
在任務(wù)里直接添加
選擇導航欄“任務(wù)”-指令欄選擇“插件”-點(diǎn)擊"Socket Server"-設置該指令(勾選“監聽(tīng)”-輸入對應的服務(wù)端地址,端口號,“運行任務(wù)”或點(diǎn)擊"監聽(tīng)"即可)

注:每次任務(wù)運行監聽(tīng)指令會(huì )讓客戶(hù)端連接斷開(kāi),所以無(wú)特殊需求方法2不建議使用。
2.3.3.2.服務(wù)端發(fā)送
選擇導航欄“任務(wù)”-指令欄選擇“插件”-點(diǎn)擊"Socket Server"-設置該指令(勾選“發(fā)送”-輸入對應的數據類(lèi)型)可以手動(dòng)點(diǎn)擊”發(fā)送“,也可以直接”運行任務(wù)“來(lái)發(fā)送


注:服務(wù)端不管是發(fā)送還是接收都一定要客戶(hù)端選擇地址


2.3.3.3.服務(wù)端接收
選擇導航欄“任務(wù)”-指令欄選擇“插件”-點(diǎn)擊"Socket Server"-設置該指令(勾選“接收”-輸入對應的數據類(lèi)型)可以手動(dòng)點(diǎn)擊”接收“,也可以直接”運行任務(wù)“來(lái)接收


注:服務(wù)端不管是發(fā)送還是接收都一定要客戶(hù)端選擇地址
可以選擇或者編輯接收數據的“變量“,設置超時(shí)時(shí)間,默認:0表示一直等待接收值,可以選擇接收到的值的類(lèi)型(注;如果如果發(fā)送的數據,無(wú)法變成對應選擇類(lèi)型會(huì )發(fā)生彈窗錯誤
比如;發(fā)送的值為[1,2,3]數組,選擇的是整數類(lèi)型就會(huì )發(fā)生彈窗錯誤)

2.3.4.socket插件便捷指令
2.3.4.1.字符串拆分
該指令可以把接收的字符串型數據用符號進(jìn)行分割(數字可以自動(dòng)轉換成整型或者浮點(diǎn)型直接用于計算等操作)


2.3.4.2.數組賦值
該指令可以直接把數組里的數據拆分賦值到變量里,下標代表需要獲取的數組里的第幾位數據(從0開(kāi)始)


2.3.4.3.清除客戶(hù)端緩存

某些情況下由于服務(wù)器發(fā)送的數據沒(méi)有被接收,數據會(huì )緩存緩沖區里。下一次接 收可能接收到意想不到的數據,造成程序運行錯誤??梢栽诔绦蜷_(kāi)始前或適當的 時(shí)機插入清除客戶(hù)端緩存節點(diǎn)。
2.3.4.4.清除服務(wù)器緩存

某些情況下由于客戶(hù)端發(fā)送的數據沒(méi)有被接收,數據會(huì )緩存緩沖區里。下一次接 收可能接收到意想不到的數據,造成程序運行錯誤??梢栽诔绦蜷_(kāi)始前或適當的 時(shí)機插入清除服務(wù)器緩存節點(diǎn)
3.常見(jiàn)問(wèn)題解答
3.1.1.客戶(hù)端/服務(wù)端連接不上?
- 機器人為客戶(hù)端時(shí)查看對應的IP地址是否填錯,是否是同一網(wǎng)段,是否可以ping通,是否網(wǎng)線(xiàn)插在在FB1網(wǎng)口。
3.1.2.可能發(fā)生的報錯


原因:客戶(hù)端未選擇地址


原因:接收數據超時(shí)
4.示例
屏幕錄制 2024-09-02 152937.mp4