USM - User Socket Message
Open-Source Repository
https://github.com/PhoenixZHC/Agilebot-USM-User-Socket-Message
Overview
USM is a Socket control plugin for Agilebot robots, developed with Agilebot.Robot.SDK.A-2.0.0.0 .
It uses TCP string commands to call the Python SDK for controlling robot registers, I/O, programs, motion, alarms, servo, and more.
Compatible SDK Version
This plugin is developed with SDK version Agilebot.Robot.SDK.A-2.0.0.0.
Please ensure your robot system environment is compatible with this version.
Packaging
After plugin development is completed, package it with the Agilebot plugin packaging tool.
For detailed packaging and installation steps, refer to:
Packaging and Installation Guide
Version
- Plugin Version:
v1.0 - SDK Version:
Agilebot.Robot.SDK.A-2.0.0.0
Notes
- Protocol: TCP, UTF-8
- Command format:
command,arg1,arg2,... - Response format: success
OK[,data], failureNG,error[,detail] - Command names are case-insensitive
- The only case-sensitive parameter is the program name in
program_start/stop/pause/resume - Unless otherwise specified, fields are comma-separated
Connection and Responses
- Default port:
7000 - Single-client mode: when already connected, new connections are rejected (returns
busy)
Common error codes:
not_connectedinvalid_argssdk_errorinternal_errorunknown_commandbusy
Command Examples
Registers
read_R- Read R floating-point register.
Example: sendread_R,5-> replyOK,8.6write_R- Write R register.
Example: sendwrite_R,5,10.5-> replyOKdelete_R- Delete R register.
Example: senddelete_R,5-> replyOKread_MR- Read MR integer register.
Example: sendread_MR,1-> replyOK,100write_MR- Write MR integer register.
Example: sendwrite_MR,1,200-> replyOKdelete_MR- Delete MR integer register.
Example: senddelete_MR,1-> replyOKread_SR- Read SR string register.
Example: sendread_SR,1-> replyOK,hellowrite_SR- Write SR string register.
Example: sendwrite_SR,1,hello-> replyOKdelete_SR- Delete SR string register.
Example: senddelete_SR,1-> replyOKread_MH- Read MH holding register.
Example: sendread_MH,1-> replyOK,100write_MH- Write MH holding register.
Example: sendwrite_MH,1,50-> replyOKread_MI- Read MI input register.
Example: sendread_MI,1-> replyOK,50write_MI- Write MI input register.
Example: sendwrite_MI,1,75-> replyOKread_PR- Read PR pose (comma-separated, format:OK,id,C/J,six_values).
Example: sendread_PR,5-> replyOK,5,C,100.000,200.000,300.000,0.000,0.000,0.000write_PR- Write PR pose:id,J/C,six_values.
Example: sendwrite_PR,5,C,100,200,300,0,0,0-> replyOKdelete_PR- Delete PR.
Example: senddelete_PR,5-> replyOK
I/O
read_DO- Read DO (ON/OFF).
Example: sendread_DO,1-> replyOK,ONwrite_DO- Write DO.
Example: sendwrite_DO,1,OFF-> replyOKread_DI- Read DI.
Example: sendread_DI,3-> replyOK,OFFread_AO- Read AO (supported on some models).
Example: sendread_AO,2-> replyOK,2048write_AO- Write AO (supported on some models).
Example: sendwrite_AO,2,1-> replyOKread_AI- Read AI (supported on some models).
Example: sendread_AI,1-> replyOK,3276
Program and Operation Rights
program_start- Start program (program name is case-sensitive).
Example: sendprogram_start,test-> replyOKprogram_stop- Stop program (program name is case-sensitive).
Example: sendprogram_stop,test-> replyOKprogram_pause- Pause program (program name is case-sensitive).
Example: sendprogram_pause,test-> replyOKprogram_resume- Resume program (program name is case-sensitive).
Example: sendprogram_resume,test-> replyOKprogram_list- List running programs (names only, comma-separated).
Example: sendprogram_list-> replyOK,test,tprogram_prepare- Pre-start status check for program launch.
Example: sendprogram_prepare-> replyOK,soft_mode=okacquire_access- Acquire PC operation rights.
Example: sendacquire_access-> replyOKrelease_access- Release PC operation rights.
Example: sendrelease_access-> replyOK
Motion
move_joint- Joint motion.
Format:move_joint,J,j1,j2,j3,j4,j5,j6,vel,acc/move_joint,C,x,y,z,a,b,c,vel,acc/move_joint,PR,id[,vel,acc]
Notes:velmust bexx%(0-100%),accmust bexx%(1-120%).
Example: sendmove_joint,J,0,0,60,60,0,0,50%,100%-> replyOK
Example: sendmove_joint,C,0,0,60,60,0,0,50%,100%-> replyOK
Example: sendmove_joint,PR,1,50%,100%-> replyOKmove_line- Linear motion.
Format:move_line,J,j1,j2,j3,j4,j5,j6,vel,acc/move_line,C,x,y,z,a,b,c,vel,acc/move_line,PR,id[,vel,acc]
Notes:velunit is mm/s,accmust bexx%(1-120%).
Example: sendmove_line,J,-63,127,-106,36,0,0,500,60%-> replyOK
Example: sendmove_line,C,0,0,60,60,0,0,500,60%-> replyOK
Example: sendmove_line,PR,1,500,60%-> replyOKget_current_pose- Current pose in J/C coordinates (comma-separated).
Example: sendget_current_pose,J-> replyOK,J,0.000,0.000,60.000,60.000,0.000,0.000
Jog / Speed / Coordinate System
jog_step- Step jog (1means+,2means-).
Example: sendjog_step,1,1,0.5-> replyOKget_ovc/set_ovc- Global speed override (percentage).
Example: sendget_ovc-> replyOK,100%; sendset_ovc,30%-> replyOKget_oac/set_oac- Global acceleration override.
Example: sendget_oac-> replyOK,100%get_tf/set_tf- Tool frame index (0-50).
Example: sendset_tf,2-> replyOKget_uf/set_uf- User frame index (0-50).
Example: sendset_uf,1-> replyOKget_tcs/set_tcs- Reference coordinate system.set_tcssupports:JOINT/BASE/WORLD/UF/TF/RTCP_UF/RTCP_TF(case-insensitive).
Example: sendset_tcs,WORLD-> replyOK
Status
robot_status- Robot runtime status.
Example: sendrobot_status-> replyOK,Robot idlectrl_status- Controller status.
Example: sendctrl_status-> replyOK,Controller enabledservo_status- Servo status.
Example: sendservo_status-> replyOK,Servo controller idleready_check- One-click pre-start check (alarm/robot/ctrl/servo/op/soft).
Example: sendready_check-> replyOK,alarm=none,robot=...,ctrl=...,servo=...,op=...,soft=...
Alarms
get_alarms- Active alarm list.
Example: sendget_alarms-> sequential replies:OK,<alarm_message_1>,OK,<alarm_message_2>get_top_alarm- Highest-priority alarm.
Example: sendget_top_alarm-> replyOK,<alarm_message>
Servo and Emergency Stop
servo_on- Servo ON.
Example: sendservo_on-> replyOKservo_off- Servo OFF.
Example: sendservo_off-> replyOKservo_reset- Servo reset.
Example: sendservo_reset-> replyOKestop- Emergency stop.
Example: sendestop-> replyOK
Payload
get_payload- Current payload, formatmass,x,y,z(comma-separated, 3 decimals).
Example: sendget_payload-> replyOK,2.500,0.000,0.000,50.000
Common On-Site Issues
- Pendant shows "No operation rights": check whether
acquire_accesshas been called; callrelease_accesswhen needed - Garbled text in NetAssist: set receive encoding to UTF-8
program_startfails with start-condition error: sendprogram_preparefirst