EC機(jī)器人8055端口使用
1. 簡(jiǎn)介
Elite 8055 端口是通過 socket 通訊向控制器發(fā)送指定格式的 json 字符串來實(shí)現(xiàn)的,其中機(jī)器人側(cè)為服務(wù)器,上位機(jī)為客戶端。通過 8055 端口,幾乎示教器上的所有功能都可以實(shí)現(xiàn),同時(shí)在表現(xiàn)形式和控制方式上也有了更多的可能性。
2. 操作流程
用戶可通過 socket 通訊向控制器控制端口發(fā)送指定格式的 json 字符串來實(shí)現(xiàn)相關(guān)功能,只要支持收發(fā)json 字符串功能的語言都可實(shí)現(xiàn)功能,下文采用第三方調(diào)試助手 SOCKET TOOL測(cè)試。如下所示。(機(jī)器人需要在遠(yuǎn)程模式)


2.1連接機(jī)器人
以 socket 助手為例,只需要知道機(jī)器人的 ip,端口填寫 8055。連接步驟和連接成功后顯示如下:



2.2端口指令
目前最新系統(tǒng)版本3.18.3支持:
伺服服務(wù)、參數(shù)服務(wù)、運(yùn)動(dòng)服務(wù)、運(yùn)動(dòng)學(xué)服務(wù)、io服務(wù)、變量服務(wù)、透?jìng)鞣?wù)、系統(tǒng)服務(wù)、
時(shí)間戳服務(wù)、profinet服務(wù)、反向驅(qū)動(dòng)服務(wù)、Etherent/ip服務(wù)、外部力傳感器服務(wù)、
硬件通訊服務(wù)、TCI通訊控制服務(wù)、力控服務(wù)、等......
(詳細(xì)說明請(qǐng)查閱EC_SDK_SOCKET手冊(cè)_Ver3.18.3)
2.3示例
①使用8055清除報(bào)警
查閱手冊(cè):

則使用socket tool發(fā)送:{"jsonrpc":"2.0","method":"clearAlarm","id":1},注意字符串最后需要換行

點(diǎn)擊發(fā)送數(shù)據(jù),實(shí)現(xiàn)效果并返回:

即達(dá)到清除報(bào)警的效果
②獲取機(jī)器人模式
查閱手冊(cè):

發(fā)送:{"jsonrpc":"2.0","method":"getRobotMode","id":1}


返回?cái)?shù)據(jù):
{"jsonrpc":"2.0","result":"2","id":1}
可知返回?cái)?shù)據(jù)為2,機(jī)器人在遠(yuǎn)程模式,與實(shí)際一致,即滿足需求
3.注意事項(xiàng)
1. 網(wǎng)絡(luò)連接穩(wěn)定性:
a. 確保網(wǎng)絡(luò)連接穩(wěn)定,避免由于網(wǎng)絡(luò)波動(dòng)導(dǎo)致的連接中斷或數(shù)據(jù)丟失。確保機(jī)器人和使用設(shè)備在同一網(wǎng)段。
2. 超時(shí)處理:
a. 設(shè)置合理的超時(shí)時(shí)間,防止程序長(zhǎng)時(shí)間等待而掛起。
3. 錯(cuò)誤處理:
a. 在連接、發(fā)送和接收數(shù)據(jù)時(shí),做好異常處理,并記錄錯(cuò)誤日志。
b. 目前 json 協(xié)議常見返回異常有兩種:
JRPC_METHOD_NOT_FOUND -32601,JRPC_INTERNAL_ERROR -32693。
32601 為未找到對(duì)應(yīng)接口,需要檢查接口名稱是否正確或確認(rèn)當(dāng)前版本是否支持該接口。
32693 為接口內(nèi)部定義的異常,未找到相應(yīng)參數(shù),參數(shù)超出范圍,不滿足執(zhí)行條件等均報(bào)
此類異常。此類錯(cuò)誤只需根據(jù)錯(cuò)誤信息檢查參數(shù)及其范圍還有執(zhí)行條件是否滿足即可。
4. 數(shù)據(jù)完整性:
a. 在發(fā)送和接收數(shù)據(jù)時(shí),確保數(shù)據(jù)的完整性和正確性。必要時(shí)進(jìn)行數(shù)據(jù)校驗(yàn)。
5. 資源管理:
a. 在程序結(jié)束或出現(xiàn)異常時(shí),確保關(guān)閉所有打開的連接和文件,以釋放系統(tǒng)資源。
6. 安全性:
a. 避免發(fā)送敏感信息,或使用加密方法保護(hù)數(shù)據(jù)傳輸?shù)陌踩浴?/p>
7. 其它:
發(fā)送的 json 字符串中間不能有空格,直接從手冊(cè)復(fù)制粘貼發(fā)送并不能使用,需要手動(dòng)刪除空格
id ,可用來區(qū)分發(fā)送指令返回的指令的對(duì)應(yīng)順序
8. 示例:
使用第三方調(diào)試助手“SOCKET TOOL”發(fā)送josn格式字符串測(cè)試EC機(jī)器人
啟動(dòng)流程:
需要用到的指令:
獲取機(jī)器人狀態(tài):
{"jsonrpc":"2.0","method":"getRobotState","id":1}
清除報(bào)警:
{"jsonrpc":"2.0","method":"clearAlarm","id":1}
獲取同步狀態(tài):
{"jsonrpc":"2.0","method":"getMotorStatus","id":1}
同步伺服編碼器數(shù)據(jù):
{"jsonrpc":"2.0","method":"syncMotorStatus","id":1}
獲取機(jī)械臂伺服狀態(tài):
{"jsonrpc":"2.0","result":"true","id":1}
設(shè)置機(jī)械臂伺服狀態(tài):{"jsonrpc":"2.0","method":"set_servo_status","params":{"status": 1 },"id":1}
編碼器零位校準(zhǔn):{"jsonrpc":"2.0","method":"calibrate_encoder_zero_position","id":1}
獲取機(jī)器人伺服編碼器精確狀態(tài):{"jsonrpc":"2.0","method":"get_servo_precise_position_status","id":1}
運(yùn)行 jbi 文件:
{"jsonrpc":"2.0","method":"runJbi","params":{"filename":“aabc“},"id":1}
SOCKET TOOL測(cè)試:
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"getRobotState","id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"0","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"clearAlarm","id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"true","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"getMotorStatus","id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"false","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"syncMotorStatus","id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"true","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","result":"true","id":1}
收到數(shù)據(jù):no {"jsonrpc":"2.0","result":"true","id":1} command!
收到數(shù)據(jù):mcserver>
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"set_servo_status","params":{"status": 1 },"id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"true","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"calibrate_encoder_zero_position","id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"true","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"get_servo_precise_position_status","id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"1","id":1}
發(fā)送數(shù)據(jù):{"jsonrpc":"2.0","method":"runJbi","params":{"filename":"aabc"},"id":1}
收到數(shù)據(jù):{"jsonrpc":"2.0","result":"true","id":1}