Skip to content

4.10 BasScript 脚本程序类

概述

BasScript 用于在上位机以结构化方式构建机器人中的 BAS 指令序列,涵盖运动、逻辑、程序调用、通信、视觉和 Modbus 等多种指令类型。

核心功能

  • 支持构建运动指令(MoveJoint、MoveLine、MoveCircle 等)
  • 支持构建逻辑指令(If、While、Switch、Goto 等)
  • 支持构建赋值、等待、暂停和中断指令
  • 支持构建程序调用和管理指令
  • 支持构建 Socket 通信指令
  • 支持构建 Modbus 寄存器读写指令
  • 支持构建视觉程序指令
  • 支持设置额外参数(加速度、RTCP、帧偏移等)
  • 支持快速运动指令(JUMP 系列)

使用场景

  • 自动化生成复杂的机器人程序
  • 编辑和修改机器人程序
  • 复用常用程序模块和指令序列
  • 实现上位机与机器人程序的无缝对接
  • 构建定制化的机器人运动轨迹
  • 集成视觉、通信和 Modbus 功能到机器人程序中

类构造函数

方法名BasScript(string name )
描述构建用于机器人中的 BAS 指令序列类
请求参数name : string 脚本程序名称
兼容的机器人软件版本协作 (Copper): v7.5.2.0+
工业 (Bronze): 不支持
备注本类下所有方法的兼容版本要求与本类一致

子类结构

BasScript 类包含以下子类,用于组织不同类型的指令:

  1. ExtraParam:额外参数类,用于构建复杂的机器人控制命令
  2. BasMotion:运动指令子类,包含所有机器人运动相关的方法
  3. BasLogical:逻辑指令子类,包含所有逻辑控制相关的方法
  4. BasStructure:结构指令子类,包含所有结构控制相关的方法
  5. BasSocket:Socket 通信子类,包含所有 Socket 通信相关的方法
  6. BasModbus:Modbus 通信子类,包含所有 Modbus 通信相关的方法
  7. BasVision:视觉指令子类,包含所有视觉相关的方法

4.10.1 ExtraParam 额外参数类

方法名ExtraParam()
描述额外参数类,用于构建复杂的机器人控制命令
请求参数
返回值ExtraParam 对象

4.10.1.1 设置加速度

方法名ExtraParam.Acceleration(double value )
描述设置加速度,范围为 1~120%
请求参数value : double 加速度值,单位:%(浮点数)
返回值StatusCode: 参数设置执行结果

4.10.1.2 设置 RTCP 参数

方法名ExtraParam.RTCP()
描述设置 RTCP 参数,仅支持 MoveL 和 MoveC 指令
请求参数
返回值StatusCode: 参数设置执行结果

4.10.1.3 设置帧偏移

方法名ExtraParam.Offset(int index )
描述设置帧偏移
请求参数index : int 偏移索引(整数)
返回值StatusCode: 参数设置执行结果

4.10.1.4 设置时间基准运行或赋值

方法名ExtraParam.TB(double second , string type , string name )
描述设置时间基准运行或赋值,范围为 0.01-30s,若输入小于 0.01 的数不会保存成功
请求参数second : double 秒数,单位:sec(浮点数)
type : string 执行类型(字符串)
name : string 名称(用于运行,字符串)
返回值StatusCode: 参数设置执行结果
方法名ExtraParam.TB(double second , string type , int index , int status )
描述设置时间基准运行或赋值,范围为 0.01-30s,若输入小于 0.01 的数不会保存成功
请求参数second : double 秒数,单位:sec(浮点数)
type : string IO 类型(字符串)
index : int 索引(用于赋值,整数)
status : int 状态(用于赋值,整数)
返回值StatusCode: 参数设置执行结果

4.10.1.5 设置跳转

方法名ExtraParam.SKIP(int index )
描述设置跳转,当满足 SKIP CONDITION 指令设置的跳转条件时,从含有 SKIP 指令的当前行直接跳转到目标指令行或目标程序
请求参数index : int 目标标签的索引(整数)
返回值StatusCode: 参数设置执行结果

4.10.1.6 设置出发距离和接近距离

方法名ExtraParam.Approach(double departureDist , double approachingDist )
描述设置门型运动的出发距离和接近距离,仅用于 JUMP 指令
请求参数departureDist : double 出发距离,单位:mm(浮点数)
approachingDist : double 接近距离,单位:mm(浮点数)
返回值StatusCode: 参数设置执行结果

4.10.2 BasMotion 运动指令子类

BasMotion 子类包含所有机器人运动相关的方法,用于构建运动指令序列。

4.10.2.1 MoveJoint 运动到点指令

方法名BasScript.BasMotion.MoveJoint(MovePoseType poseType , int poseIndex , SpeedType speedType , double speedValue , SmoothType smoothType , double smoothDistance = 0, ExtraParam extraParam = null)
描述关节运动指令,以指定的移动速度和移动方法使机器人向作业空间内的指定位置移动,对应机器人程序编写中的 MoveJoint 指令
请求参数poseType : MovePoseType 位姿类型
poseIndex : int 位姿索引
speedType : SpeedType 速度类型
speedValue : double 速度值,单位:%
smoothType : SmoothType 平滑类型
smoothDistance : double 平滑距离,单位:mm,取值范围:0~1000
extraParam : ExtraParam 附加参数
返回值StatusCode: 运动指令执行结果

4.10.2.2 MoveLine 直线运动到点指令

方法名BasScript.BasMotion.MoveLine(MovePoseType poseType , int poseIndex , SpeedType speedType , double speedValue , SmoothType smoothType , double smoothDistance = 0, ExtraParam extraParam = null)
描述直线运动指令,以指定的移动速度和移动方法使机器人向作业空间内的指定位置直线移动,对应机器人程序编写中的 MoveLine 指令
请求参数poseType : MovePoseType 位姿类型
poseIndex : int 位姿索引
speedType : SpeedType 速度类型
speedValue : double 速度值,单位:mm/s
smoothType : SmoothType 平滑类型
smoothDistance : double 平滑距离,单位:mm,取值范围:0~1000
extraParam : ExtraParam 附加参数
返回值StatusCode: 运动指令执行结果

4.10.2.3 MoveCircle 弧线运动到点指令

方法名BasScript.BasMotion.MoveCircle(MovePoseType poseType1 , int poseIndex1 , MovePoseType poseType2 , int poseIndex2 , SpeedType speedType , double speedValue , SmoothType smoothType , double smoothDistance = 0, ExtraParam extraParam = null)
描述圆弧运动指令,以指定的移动速度和移动方法使机器人向作业空间内的指定位置圆弧移动,对应机器人程序编写中的 MoveCircle 指令
请求参数poseType1 : MovePoseType 第一个位姿类型
poseIndex1 : int 第一个位姿索引
poseType2 : MovePoseType 第二个位姿类型
poseIndex2 : int 第二个位姿索引
speedType : SpeedType 速度类型
speedValue : double 速度值,单位:mm/s
smoothType : SmoothType 平滑类型
smoothDistance : double 平滑距离,单位:mm,取值范围:0~1000
extraParam : ExtraParam 附加参数
返回值StatusCode: 运动指令执行结果

4.10.2.4 Jump 点对点移动指令

方法名BasScript.BasMotion.Jump(MovePoseType poseType , int poseIndex , double speedValue , double speedRatio , SpeedType limZType , double limZValue , SmoothType smoothType , double smoothDistance = 0, ExtraParam extraParam = null)
描述门型运动指令,指定机器人做门型运动(首先垂直上升、然后水平移动,最后垂直下降),对应机器人程序编写中的 JUMP 指令
请求参数poseType : MovePoseType 目标位姿存储类型
poseIndex : int 目标位置的索引
speedValue : double 移动速度的值,单位:mm/s
speedRatio : double 移动速度的比率,单位:%
limZType : SpeedType Z 轴限制的类型
limZValue : double Z 轴限制的值
smoothType : SmoothType 平滑类型
smoothDistance : double 平滑距离,单位:mm,取值范围:0~1000
extraParam : ExtraParam 额外参数
返回值StatusCode: 运动指令执行结果

4.10.2.5 Jump3 三点跳跃指令

方法名BasScript.BasMotion.Jump3(MovePoseType poseType , int poseIndex , double speedValue , double speedRatio , SmoothType smoothType , double smoothDistance = 0, ExtraParam extraParam = null)
描述门型运动指令,指定机器人做门型运动,包含出发、接近和目标三个位置,对应机器人程序编写中的 JUMP3 指令
请求参数poseType : MovePoseType 目标位姿存储类型
poseIndex : int 3 个目标位置的索引
speedValue : double 移动速度的值,单位:mm/s
speedRatio : double 移动速度的比率,单位:%
smoothType : SmoothType 平滑类型
smoothDistance : double 平滑距离,单位:mm,取值范围:0~1000
extraParam : ExtraParam 额外参数
返回值StatusCode: 运动指令执行结果

4.10.2.6 Jump3CP 三点跳跃 CP 指令

方法名BasScript.BasMotion.Jump3CP(MovePoseType poseType , int poseIndex , double speedValue , SmoothType smoothType , double smoothDistance = 0, ExtraParam extraParam = null)
描述门型运动指令,指定机器人做门型运动,包含出发、接近和目标三个位置,对应机器人程序编写中的 JUMP3CP 指令
请求参数poseType : MovePoseType 目标位姿存储类型
poseIndex : int 3 个目标位置的索引
speedValue : double 移动速度的值,单位:mm/s
smoothType : SmoothType 平滑类型
smoothDistance : double 平滑距离,单位:mm,取值范围:0~1000
extraParam : ExtraParam 额外参数
返回值StatusCode: 运动指令执行结果

4.10.3 BasLogical 逻辑指令子类

BasLogical 子类包含所有逻辑控制相关的方法,用于构建逻辑控制指令序列。

4.10.3.1 IF 条件指令

方法名BasScript.BasLogical.IF(param1, index, param2, value, operatorType)
描述添加一个逻辑 IF 语句到脚本中
请求参数param1 : 第一个参数,类型为 RegisterType 或 IOType
index : 索引(整数)
param2 : 第二个参数,类型为 RegisterType、IOType 或 OtherType
value : 值,类型为索引、数值、字符串或 IOStatus
operatorType : 布尔操作符,默认为等于
返回值StatusCode: 函数执行结果

4.10.3.2 ELSE_IF 条件分支指令

方法名BasScript.BasLogical.ELSE_IF(param1, index, param2, value, operatorType)
描述添加一个逻辑 ELSE IF 语句到脚本中
请求参数param1 : 第一个参数,类型为 RegisterType 或 IOType
index : 索引(整数)
param2 : 第二个参数,类型为 RegisterType、IOType 或 OtherType
value : 值,类型为索引、数值、字符串或 IOStatus
operatorType : 布尔操作符,默认为等于
返回值StatusCode: 函数执行结果

4.10.3.3 ELSE 否则指令

方法名BasScript.BasLogical.ELSE()
描述添加一个逻辑 ELSE 语句到脚本中
请求参数
返回值StatusCode: 函数执行结果

4.10.3.4 END_IF 结束条件指令

方法名BasScript.BasLogical.END_IF()
描述结束逻辑 IF 语句
请求参数
返回值StatusCode: 函数执行结果

示例代码

cs
using Agilebot.IR;
using Agilebot.IR.Types;
using Agilebot.IR.BasScript;

public class Test
{
    public static async Task Main()
    {
        string controllerIP = "10.27.1.254";
        
        // 初始化捷勃特机器人
        Arm controller = new Arm(controllerIP);
        // 连接捷勃特机器人
        StatusCode code = await controller.Connect();
        Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "Successfully connected.");

        // 生成脚本程序
        BasScript script = new BasScript("test");
        code = script.BasLogical.IF(RegisterType.R, 1, OtherType.VALUE, 1);
        code = script.BasMotion.MoveJoint(MovePoseType.PR, 1, SpeedType.VALUE, 25, SmoothType.FINE);
        code = script.BasLogical.ELSE_IF(RegisterType.R, 1, OtherType.VALUE, 2);
        code = script.BasMotion.MoveJoint(MovePoseType.PR, 2, SpeedType.VALUE, 50, SmoothType.FINE);
        code = script.BasLogical.ELSE();
        code = script.BasMotion.MoveJoint(MovePoseType.PR, 3, SpeedType.VALUE, 50, SmoothType.FINE);
        code = script.BasLogical.END_IF();

        // 执行脚本程序
        code = controller.Execution.ExecuteBasScript(script);

        // 关闭连接
        code = controller.Disconnect();
        Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "Successfully disconnected.");
    }
}

4.10.3.5 WHILE 循环指令

方法名BasScript.BasLogical.WHILE(param1, index, param2, value, operatorType)
描述添加一个逻辑 WHILE 语句到脚本中
请求参数param1 : 第一个参数,类型为 RegisterType 或 IOType
index : 索引(整数)
param2 : 第二个参数,类型为 RegisterType、IOType 或 OtherType
value : 值,类型为索引、数值、字符串或 IOStatus
operatorType : 布尔操作符,默认为等于
返回值StatusCode: 函数执行结果

4.10.3.6 END_WHILE 结束循环指令

方法名BasScript.BasLogical.END_WHILE()
描述结束逻辑 While 语句
请求参数
返回值StatusCode: 函数执行结果

示例代码

cs
using Agilebot.IR;
using Agilebot.IR.Types;
using Agilebot.IR.BasScript;

public class Test
{
    public static async Task Main()
    {
        string controllerIP = "10.27.1.254";
        
        // 初始化捷勃特机器人
        Arm controller = new Arm(controllerIP);
        // 连接捷勃特机器人
        StatusCode code = await controller.Connect();
        Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "Successfully connected.");

        // 生成脚本程序
        BasScript script = new BasScript("test");
        code = script.BasLogical.WHILE(IOType.DO, 1, OtherType.IO_STATUS, IOStatus.ON);
        code = script.BasMotion.MoveJoint(MovePoseType.PR, 1, SpeedType.VALUE, 25, SmoothType.FINE);
        code = script.BasLogical.END_WHILE();

        // 执行脚本程序
        code = controller.Execution.ExecuteBasScript(script);

        // 关闭连接
        code = controller.Disconnect();
        Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "Successfully disconnected.");
    }
}

4.10.3.7 SWITCH 多分支选择指令

方法名BasScript.BasLogical.SWITCH(param, index)
描述添加一个逻辑 SWITCH 语句到脚本中
请求参数param : 参数,类型为 RegisterType 或 IOType
index : 参数的索引
返回值StatusCode: 函数执行结果

4.10.3.8 CASE 分支指令

方法名BasScript.BasLogical.CASE(param, value)
描述添加一个逻辑 CASE 语句到脚本中
请求参数param : 参数,类型为 RegisterType、IOType 或 OtherType
value : 值,类型为索引、数值、字符串
返回值StatusCode: 函数执行结果

4.10.3.9 DEFAULT 默认分支指令

方法名BasScript.BasLogical.DEFAULT()
描述添加一个逻辑 DEFAULT 语句到脚本中
请求参数
返回值StatusCode: 函数执行结果

4.10.3.10 END_SWITCH 结束多分支选择指令

方法名BasScript.BasLogical.END_SWITCH()
描述结束逻辑 SWITCH 语句
请求参数
返回值StatusCode: 函数执行结果

4.10.3.11 SKIP_CONDITION 跳过条件指令

方法名BasScript.BasLogical.SKIP_CONDITION(param1, index, param2, value, operatorType)
描述添加一个逻辑 SKIP CONDITION 语句到脚本中
请求参数param1 : 第一个参数,类型为 RegisterType 或 IOType
index : 参数一的索引
param2 : 第二个参数,类型为 RegisterType、IOType 或 OtherType
value : 值,类型为索引、数值、字符串或 IOStatus
operatorType : 布尔操作符,默认为等于
返回值StatusCode: 函数执行结果

4.10.3.12 GOTO 跳转指令

方法名BasScript.BasLogical.GOTO(index)
描述GOTO 跳转语句
请求参数index : 目标标签的索引
返回值StatusCode: 函数执行结果

4.10.3.13 LABEL 标签指令

方法名BasScript.BasLogical.LABEL(index)
描述LABEL 语句
请求参数index : 标签的索引
返回值StatusCode: 函数执行结果

4.10.3.14 BREAK 跳出循环指令

方法名BasScript.BasLogical.BREAK()
描述BREAK 语句
请求参数
返回值StatusCode: 函数执行结果

4.10.3.15 CONTINUE 跳过循环指令

方法名BasScript.BasLogical.CONTINUE()
描述CONTINUE 语句
请求参数
返回值StatusCode: 函数执行结果

4.10.4 BasStructure 结构指令子类

BasStructure 子类包含所有结构控制相关的方法,用于构建结构控制指令序列。

4.10.4.1 WAIT 等待条件指令

方法名BasScript.BasStructure.WAIT(RegisterType param1 , int index , ValueType param2 , object value , BooleanOperator operatorType = BooleanOperator.EQ)
描述等待条件指令,执行 WAIT 指令只有当条件满足时,程序才能继续向下执行,否则一直等待直到条件满足为止,对应机器人程序编写中的 WAIT COND 等待条件语句
请求参数param1 : RegisterType 第一个参数(寄存器或 IO 信号)
index : int 参数 1 的索引
param2 : ValueType 第二个参数(寄存器、IO 信号或其他类型)
value : object 参数 2 的索引或值
operatorType : BooleanOperator 逻辑运算符,默认为等于
返回值StatusCode: 函数执行结果

4.10.4.2 WAIT_TIME 等待时间指令

方法名BasScript.BasStructure.WAIT_TIME(ValueType param , double value )
描述等待时间指令,执行 WAIT TIME 指令,机器人等待指定的时间后继续执行后续指令,对应机器人程序编写中的 WAIT TIME 等待时间语句
请求参数param : ValueType 参数类型(R 寄存器或数值)
value : double 时间值,单位:sec
返回值StatusCode: 函数执行结果

4.10.4.3 PAUSE 暂停指令

方法名BasScript.BasStructure.PAUSE()
描述PAUSE 语句
请求参数
返回值StatusCode: 函数执行结果

4.10.4.4 ABORT 中断指令

方法名BasScript.BasStructure.ABORT()
描述ABORT 语句
请求参数
返回值StatusCode: 函数执行结果

4.10.4.5 CALL 同步调用程序指令

方法名BasScript.BasStructure.CALL(name)
描述CALL 同步调用程序
请求参数name : 程序名
返回值StatusCode: 函数执行结果

4.10.4.6 RUN 异步调用程序指令

方法名BasScript.BasStructure.RUN(name)
描述RUN 异步调用程序
请求参数name : 程序名
返回值StatusCode: 函数执行结果

4.10.4.7 LOAD 加载程序指令

方法名BasScript.BasStructure.LOAD(param, value)
描述LOAD 载入程序
请求参数param : 参数,R 寄存器、SR 寄存器、数值或字符串
value : 参数的值,数值或字符串
返回值StatusCode: 函数执行结果

4.10.4.8 UNLOAD 卸载程序指令

方法名BasScript.BasStructure.UNLOAD(param, value)
描述UNLOAD 卸载程序
请求参数param : 参数,R 寄存器、SR 寄存器、数值或字符串
value : 参数的值,数值或字符串
返回值StatusCode: 函数执行结果

4.10.4.9 EXEC 执行程序指令

方法名BasScript.BasStructure.EXEC(param, value)
描述EXEC 执行程序
请求参数param : 参数,R 寄存器、SR 寄存器、数值或字符串
value : 参数的值,数值或字符串
返回值StatusCode: 函数执行结果

4.10.5 BasSocket Socket 通信子类

BasSocket 子类包含所有 Socket 通信相关的方法,用于构建 Socket 通信指令序列。

4.10.5.1 OPEN 打开 socket 连接指令

方法名BasScript.BasSocket.OPEN(int index )
描述使用 Socket Open 指令创建一个 Server 并等待 Client 连接,对应机器人程序编写中的 SOCKET OPEN 打开 socket 连接
请求参数index : int SK 寄存器序号
返回值StatusCode: 函数执行结果

4.10.5.2 CLOSE 关闭 socket 连接指令

方法名BasScript.BasSocket.CLOSE(int index )
描述关闭指定的 socket 连接,对应机器人程序编写中的 SOCKET CLOSE 关闭 socket 连接
请求参数index : int SK 寄存器序号
返回值StatusCode: 函数执行结果

4.10.5.3 CONNECT 连接 socket 指令

方法名BasScript.BasSocket.CONNECT(int index )
描述使用 Socket Connect 指令连接到指定的 socket 服务器,对应机器人程序编写中的 SOCKET CONNECT 连接 socket
请求参数index : int SK 寄存器序号
返回值StatusCode: 函数执行结果

4.10.5.4 SEND 发送 socket 数据指令

方法名BasScript.BasSocket.SEND(int index , StrType msgType , object value )
描述使用 Socket Send 指令向指定的 socket 连接发送数据,对应机器人程序编写中的 SOCKET SEND 发送数据
请求参数index : int SK 寄存器序号
msgType : StrType 消息类型
value : object 消息内容或序号
返回值StatusCode: 函数执行结果

4.10.5.5 RECV 接收 socket 数据指令

方法名BasScript.BasSocket.RECV(int index , int msgLength , StrType msgType , object value )
描述使用 Socket Recv 指令从指定的 socket 连接读取字符,可以指定最大长度,对应机器人程序编写中的 SOCKET RECV 接收数据
请求参数index : int SK 寄存器序号
msgLength : int 消息最大长度
msgType : StrType 消息类型
value : object 消息内容或序号
返回值StatusCode: 函数执行结果

4.10.6 BasModbus Modbus 通信子类

BasModbus 子类包含所有 Modbus 通信相关的方法,用于构建 Modbus 寄存器读写指令序列。

4.10.6.1 READ_MH 读取 Modbus 保持寄存器指令

方法名BasScript.BasModbus.READ_MH(int index , int id , int address , int length , int rIndex )
描述读取 Modbus 保持寄存器指令,对应机器人程序编写中的 READ_MH 读取 Modbus 保持寄存器
请求参数index : int 通道序号
id : int Modbus ID
address : int 寄存器起始地址
length : int 寄存器长度,即要读取的寄存器数量
rIndex : int 写入结果的 R 寄存器起始序号
返回值StatusCode: 函数执行结果

4.10.6.2 READ_MI 读取 Modbus 输入寄存器指令

方法名BasScript.BasModbus.READ_MI(int index , int id , int address , int length , int rIndex )
描述读取 Modbus 输入寄存器指令,对应机器人程序编写中的 READ_MI 读取 Modbus 输入寄存器
请求参数index : int 通道序号
id : int Modbus ID
address : int 寄存器起始地址
length : int 寄存器长度,即要读取的寄存器数量
rIndex : int 写入结果的 R 寄存器起始序号
返回值StatusCode: 函数执行结果

4.10.6.3 WRITE_MH 写入 Modbus 保持寄存器指令

方法名BasScript.BasModbus.WRITE_MH(int index , int id , int address , int length , ValueType valueType , int value )
描述写入 Modbus 保持寄存器指令,对应机器人程序编写中的 WRITE_MH 写入 Modbus 保持寄存器
请求参数index : int 通道序号
id : int Modbus ID
address : int 寄存器起始地址
length : int 寄存器长度,即要写入的寄存器数量
valueType : ValueType 值类型
value : int 值或 R 寄存器起始索引
返回值StatusCode: 函数执行结果

4.10.7 BasVision 视觉指令子类

BasVision 子类包含所有视觉相关的方法,用于构建视觉程序指令序列。

4.10.7.1 FIND 寻找视觉程序指令

方法名BasScript.BasVision.FIND(string name )
描述执行视觉寻找程序,对应机器人程序编写中的 VISION FIND 寻找视觉程序
请求参数name : string 视觉程序名称
返回值StatusCode: 函数执行结果

4.10.7.2 GET_OFFSET 获取视觉程序偏移量指令

方法名BasScript.BasVision.GET_OFFSET(string name , int index , int labelIndex )
描述获取视觉程序执行后的偏移量,对应机器人程序编写中的 VISION GET OFFSET 获取视觉程序偏移量
请求参数name : string 视觉程序名称
index : int 视觉寄存器索引
labelIndex : int 标签索引
返回值StatusCode: 函数执行结果

4.10.7.3 GET_QUANTITY 获取视觉程序结果指令

方法名BasScript.BasVision.GET_QUANTITY(string name , int index )
描述获取视觉程序执行后的结果数量,对应机器人程序编写中的 VISION GET QUANTITY 获取视觉程序结果
请求参数name : string 视觉程序名称
index : int 结果存储的 R 寄存器索引
返回值StatusCode: 函数执行结果

4.10.8 AssignValue 赋值指令(完整参数)

方法名BasScript.AssignValue(AssignType param1 , int index , AssignType param2 , object value , int optIndex = 0, int optValue = 0)
描述赋值指令,用于给寄存器、IO 信号等赋值,对应机器人程序编写中的 ASSIGN 赋值语句
请求参数param1 : AssignType 第一个参数(寄存器或 IO 信号)
index : int 参数 1 的索引
param2 : AssignType 第二个参数(寄存器、IO 信号或其他类型)
value : object 参数 2 的索引或值
optIndex : int 参数 1 为 PR_ELEMENT 时的额外索引,默认 0
optValue : int 参数 2 为 PR_ELEMENT 时的额外索引或 value 为 IOStatus.PULSE 时的脉冲值,默认 0
返回值StatusCode: 赋值指令执行结果

4.10.9 AssignValue 赋值指令(简化参数)

方法名BasScript.AssignValue(AssignType param , int index , object value )
描述赋值指令(简化参数),用于给寄存器、IO 信号等赋值,对应机器人程序编写中的 ASSIGN 赋值语句
请求参数param : AssignType 参数类型(寄存器或 IO 信号)
index : int 参数索引
value : object 值(IOStatus、double 或 string)
返回值StatusCode: 赋值操作执行结果

示例代码

cs
using Agilebot.IR;
using Agilebot.IR.Types;
using Agilebot.IR.BasScript;

public class Test
{
    public static async Task Main()
    {
        string controllerIP = "10.27.1.254";
        
        // 初始化捷勃特机器人
        Arm controller = new Arm(controllerIP);
        // 连接捷勃特机器人
        StatusCode code = await controller.Connect();
        Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "Successfully connected.");

        // 生成脚本程序
        BasScript script = new BasScript("test");
        code = script.BasMotion.MoveJoint(MovePoseType.PR, 1, SpeedType.VALUE, 25, SmoothType.FINE);
        BasScript.ExtraParam param = new();
        param.Acceleration(80);
        code = script.BasMotion.MoveJoint(MovePoseType.PR, 2, SpeedType.VALUE, 50, SmoothType.FINE, extraParam: param);

        // 执行脚本程序
        code = controller.Execution.ExecuteBasScript(script);

        // 关闭连接
        code = controller.Disconnect();
        Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "Successfully disconnected.");
    }
}

4.10.10 SetParam 设置参数指令

方法名BasScript.SetParam(ParamType type , ValueType valueType , object value )
描述设置参数指令,用于设置机器人的各种参数,对应机器人程序编写中的 SET PARAM 设置参数
请求参数type : ParamType 参数类型
valueType : ValueType 值类型
value : object 值
返回值StatusCode: 函数执行结果