Skip to content

4.10 BasScript 脚本程序类

方法名BasScript(string name )
描述BasScript 脚本程序类构造函数,对应示教器程序编写中的程序指令
请求参数name : string 脚本程序名称
兼容的机器人软件版本协作 (Copper): v7.5.2.0+
工业 (Bronze): 不支持
工业机器人: 7.6.0.0
备注BasScript 脚本程序类下所有方法兼容的机器人软件版本要求同本类的兼容的机器人软件版本要求一致

4.10.1 MoveJoint 运动到点指令

方法名BasScript.BasMotion.MoveJoint(poseType, poseIndex, speedType, speedValue, smoothType, smoothDistance, extraParam)
描述移动机器人关节到指定位置,对应示教器程序编写中的 MoveJoint 指令
请求参数poseType : 位姿类型
poseIndex : 位姿索引
speedType : 速度类型
speedValue : 速度值
smoothType : 平滑类型
smoothDistance : 平滑距离
extraParam : 额外参数
返回值StatusCode: 运动指令执行结果

4.10.2 MoveLine 直线运动到点指令

方法名BasScript.BasMotion.MoveLine(poseType, poseIndex, speedType, speedValue, smoothType, smoothDistance, extraParam)
描述沿直线移动机器人到指定位置,对应示教器程序编写中的 MoveLine 指令
请求参数poseType : 位姿类型
poseIndex : 位姿索引
speedType : 速度类型
speedValue : 速度值
smoothType : 平滑类型
smoothDistance : 平滑距离
extraParam : 额外参数
返回值StatusCode: 运动指令执行结果

4.10.3 MoveCircle 弧线运动到点指令

方法名BasScript.BasMotion.MoveCircle(poseType1, poseIndex1, poseType2, poseIndex2, speedType, speedValue, smoothType, smoothDistance, extraParam)
描述沿圆弧移动机器人到指定位置,对应示教器程序编写中的 MoveCircle 指令
请求参数poseType1 : 第一个位姿类型
poseIndex1 : 第一个位姿索引
poseType2 : 第二个位姿类型
poseIndex2 : 第二个位姿索引
speedType : 速度类型
speedValue : 速度值
smoothType : 平滑类型
smoothDistance : 平滑距离
extraParam : 额外参数
返回值StatusCode: 运动指令执行结果

4.10.4 Jump 点对点移动指令

方法名BasScript.BasMotion.Jump(poseType, poseIndex, speedValue, speedRatio, limZType, limZValue, smoothType, smoothDistance, extraParam)
描述JUMP 指令,机器人点对点移动到指定位置
请求参数poseType : 目标位姿存储类型
poseIndex : 目标位置的索引
speedValue : 移动速度的值
speedRatio : 移动速度的比率
limZType : Z 轴限制的类型
limZValue : Z 轴限制的值
smoothType : 平滑类型
smoothDistance : 平滑距离
extraParam : 额外参数
返回值StatusCode: 运动指令执行结果

4.10.5 Jump3 三点跳跃指令

方法名BasScript.BasMotion.Jump3(poseType, poseIndex, speedValue, speedRatio, smoothType, smoothDistance, extraParam)
描述JUMP3 指令,机器人点对点移动到指定位置
请求参数poseType : 目标位姿存储类型
poseIndex : 3 个目标位置的索引
speedValue : 移动速度的值
speedRatio : 移动速度的比率
smoothType : 平滑类型
smoothDistance : 平滑距离
extraParam : 额外参数
返回值StatusCode: 运动指令执行结果

4.10.6 Jump3CP 三点跳跃 CP 指令

方法名BasScript.BasMotion.Jump3CP(poseType, poseIndex, speedValue, smoothType, smoothDistance, extraParam)
描述JUMP3CP 指令,机器人点对点移动到指定位置
请求参数poseType : 目标位姿存储类型
poseIndex : 3 个目标位置的索引
speedValue : 移动速度的值
smoothType : 平滑类型
smoothDistance : 平滑距离
extraParam : 额外参数
返回值StatusCode: 运动指令执行结果

4.10.7 ExtraParam 额外参数类

方法名ExtraParam.Acceleration(double value)
描述设置附加加速度参数
请求参数value : double 加速度值,范围为 1~120
返回值StatusCode: 参数设置执行结果
方法名ExtraParam.RTCP()
描述设置 RTCP(Real-Time Control Protocol)参数
请求参数无参数
返回值StatusCode: 参数设置执行结果
方法名ExtraParam.Offset(int index)
描述设置坐标偏移参数
请求参数index : int 偏移用的 PR 索引
返回值StatusCode: 参数设置执行结果
方法名ExtraParam.TB(double second, string type, string name)
描述设置在当前指令运行后执行程序指令的延时参数
请求参数second : double 延时秒数
type : string 指令类型
name : string 程序名称
返回值StatusCode: 参数设置执行结果
方法名ExtraParam.TB(double second, string type, int index, int status)
描述设置在当前指令运行后给指定 IO 赋值的延时参数
请求参数second : double 延时秒数
type : string IO 类型
index : int IO 索引
status : int 要赋予的状态
返回值StatusCode: 参数设置执行结果
方法名ExtraParam.SKIP(int index)
描述设置跳转指令参数
请求参数index : int 跳转到指定的 LABEL 序号
返回值StatusCode: 参数设置执行结果

4.10.8 AssignValue 赋值指令

方法名BasScript.AssignValue(param1, index, param2, value, optIndex, optValue)
描述执行赋值指令
请求参数param1 : 参数 1 类型
index : 参数 1 索引
param2 : 参数 2 类型
value : 参数 2 值
optIndex : 参数 1 附加索引
optValue : 参数 2 附加值
返回值StatusCode: 赋值指令执行结果

4.10.9 AssignValue 赋值指令

方法名BasScript.AssignValue(param, index, value)
描述为指定变量赋值
请求参数param : 参数类型(AssignType)
index : int 索引(整数)
value : 值(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 IF 条件指令

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

4.10.11 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.12 ELSE 否则指令

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

4.10.13 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.14 WHILE 循环指令

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

4.10.15 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.16 SWITCH 多分支选择指令

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

4.10.17 CASE 分支指令

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

4.10.18 DEFAULT 默认分支指令

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

4.10.19 END_SWITCH 结束多分支选择指令

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

4.10.20 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.21 WAIT 等待条件指令

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

4.10.22 WAIT_TIME 等待时间指令

方法名BasScript.BasStructure.WAIT_TIME(param, value)
描述WAIT TIME 等待一定时间
请求参数param : 参数类型
value : 等待的时间值
返回值StatusCode: 函数执行结果

4.10.23 GOTO 跳转指令

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

4.10.24 LABEL 标签指令

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

4.10.25 BREAK 跳出循环指令

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

4.10.26 CONTINUE 跳过循环指令

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

4.10.27 PAUSE 暂停指令

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

4.10.28 ABORT 中断指令

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

4.10.29 CALL 同步调用程序指令

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

4.10.30 RUN 异步调用程序指令

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

4.10.31 LOAD 加载程序指令

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

4.10.32 UNLOAD 卸载程序指令

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

4.10.33 EXEC 执行程序指令

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

4.10.34 OPEN 打开 socket 连接指令

方法名BasScript.BasSocket.OPEN(index)
描述SOCKET OPEN 打开 socket 连接
请求参数index : SK 寄存器序号
返回值StatusCode: 函数执行结果

4.10.35 CLOSE 关闭 socket 连接指令

方法名BasScript.BasSocket.CLOSE(index)
描述SOCKET CLOSE 关闭 socket 连接
请求参数index : SK 寄存器序号
返回值StatusCode: 函数执行结果

4.10.36 CONNECT 连接 socket 指令

方法名BasScript.BasSocket.CONNECT(index)
描述SOCKET CONNECT 连接 socket
请求参数index : SK 寄存器序号
返回值StatusCode: 函数执行结果

4.10.37 SEND 发送 socket 数据指令

方法名BasScript.BasSocket.SEND(index, msgType, value)
描述SOCKET SEND 通过 socket 发送数据
请求参数index : SK 寄存器序号
msgType : 消息类型
value : 消息内容或序号
返回值StatusCode: 函数执行结果

4.10.38 RECV 接收 socket 数据指令

方法名BasScript.BasSocket.RECV(index, msgLength, msgType, value)
描述SOCKET RECV 接收 socket 数据
请求参数index : SK 寄存器序号
msgLength : 消息长度
msgType : 消息类型
value : 消息内容或序号
返回值StatusCode: 函数执行结果

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

方法名BasScript.BasModbus.READ_MH(index, id, address, length, rIndex)
描述READ MH 读取 Modbus 保持寄存器
请求参数index : 通道序号
id : Modbus ID
address : 寄存器地址
length : 寄存器长度
rIndex : 写入的 R 寄存器序号
返回值StatusCode: 函数执行结果

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

方法名BasScript.BasModbus.READ_MI(index, id, address, length, rIndex)
描述READ MI 读取 Modbus 输入寄存器
请求参数index : 通道序号
id : Modbus ID
address : 寄存器地址
length : 寄存器长度
rIndex : 写入的 R 寄存器序号
返回值StatusCode: 函数执行结果

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

方法名BasScript.BasModbus.WRITE_MH(index, id, address, length, valueType, value)
描述WRITE MH 用于写入 Modbus 保持寄存器
请求参数index : 通道序号
id : Modbus ID
address : 寄存器地址
length : 寄存器长度
valueType : 值类型
value : 值或索引
返回值StatusCode: 函数执行结果

4.10.42 FIND 寻找视觉程序指令

方法名BasScript.BasVision.FIND(name)
描述VISION FIND 寻找视觉程序
请求参数name : 视觉程序名称
返回值StatusCode: 函数执行结果

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

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

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

方法名BasScript.BasVision.GET_QUANTITY(name, index)
描述VISION GET QUANTITY 获取视觉程序结果
请求参数name : 视觉程序名称
index : R 寄存器索引
返回值StatusCode: 函数执行结果

4.10.45 SetParam 设置参数指令

方法名BasScript.SetParam(type, valueType, value)
描述SET PARAM 设置参数
请求参数type : 参数类型
valueType : 值类型
value : 值
返回值StatusCode: 函数执行结果