CS机器人上位机修改全局变量方法

2025-05-28

1.  简介

本文介绍CS机器人通过上位机修改全局变量的方法。

2.  操作流程

1 建立全局变量

如图1-1所示新建一个全局变量A为例。

图1-1

2 获取全局变量值

不论机器人程序处于停止或运行(包括通过示教器启动程序或者运行,外部通过30001发来的脚本):上位机均可通过29999端口的以下指令获取该全局变量,如图2-1所示通过29999端口连接机器人向机器人发送variable -get A\n,需注意的是 dashboard shell 命令默认需以“\n”作为结束输入标识符,因此在发送命令时要以“\n”结 尾,否则将被认为未完成输入,不会被响应。

variable -get A

图2-1

3 获取机器人当前程序状态

因为当我们想修改全局变量时机器人处于非运行状态时需要用到29999端口对全局变量进行修改,机器人处于运行状态时需要用到30001端口对全局变量修改,所以建议在修改全局变量前判断机器人是否为运行状态,可以通过29999端口,发送status\n获取机器人当前程序状态,需注意的是 dashboard shell 命令默认需以“\n”作为结束输入标识符,因此在发送命令时要以“\n”结 尾,否则将被认为未完成输入,不会被响应。

RunningStatus状态来判断程序是否运行,如图3-1,图3-2所示。

10:08:19 发送数据:status

[1次]

10:08:19 收到数据:Target Speed Fraction: 89

RobotMode: RUNNING

SafetyMode: NORMAL

RunningStatus: STOP    #RUNNING为运行状态,STOP为停止状态

图3-1

图3-2

4 修改全局变量值

a 机器人程序未运行时:

当机器人程序未运时可以通过29999端口可以修改,如图4-1所示通过29999端口连接机器人向机器人发送variable -set A 1\n,需注意的是 dashboard shell 命令默认需以“\n”作为结束输入标识符,因此在发送命令时要以“\n”结 尾,否则将被认为未完成输入,不会被响应。

variable -set A 1

图4-1

b 机器人程序运行时:

当机器人程序运行时(包括通过示教器启动程序或者运行外部通过30001发来的脚本)可以通过30001发送sec修改(sec不会打断正在执行的程序,def会打断正在执行的程序),如图4-2所示。

sec s2():

   global A  #建立一个与机器人端名称一模一样的全局变量

   A = 100

end

图4-2

3.  常见问题解答

1.  程序未运行时只能通过29999端口修改全局变量,程序运行时只能通过30001端口修改全局变量。

2.  使用30001端口修改全局变量时,需要定先义一个与机器人端名称一模一样的全局变量。

3.  使用29999端口发送dashboard shell 命令时需以“\n”作为结束输入标识符,因此在发送命令时要以“\n”结 尾,否则将被认为未完成输入不会被响应。

4.  使用30001端口发送sec脚本时需以"sec script():\n" 开头,以"\nend"为结尾,其中,"script"为 脚本名称,'\n' 为转义字符,这将定义一个可执行脚本,脚本内部的内容需满足 python 的编程规则,如图4-2所示。

5.  建议上位机通过29999端口,发送status获取机器人当前程序状态:RunningStatus状态来判断程序是否运行,再根据实际选择通过30001端口或通过29999端口发送新的全局变量值。

6.  端口连接不上时,检查一下网络是不是没有连接上,可以在示教器网络设置页面查看,或者使用电脑ping一下看看能否ping通,网口是否正常连接的FB1口,机器人否是远程模式。

download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

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

我已阅读并同意艾利特《隐私政策》《法律声明》

我已知晓并同意艾利特通过电子邮件发送相关资料

提交