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: 函数执行结果 |