4.12 BasScript 脚本程序类
概述
BasScript 用于在上位机以结构化方式构建机器人中的 BAS 指令序列,涵盖运动、逻辑、程序调用、通信、视觉和 Modbus 等多种指令类型。
核心功能
- 支持构建运动指令(MoveJoint、MoveLine、MoveCircle 等)
- 支持构建逻辑指令(If、While、Switch、Goto 等)
- 支持构建赋值、等待、暂停和中断指令
- 支持构建程序调用和管理指令
- 支持构建 Socket 通信指令
- 支持构建 Modbus 寄存器读写指令
- 支持构建视觉程序指令
- 支持设置额外参数(加速度、RTCP、帧偏移等)
- 支持快速运动指令(JUMP 系列)
使用场景
- 自动化生成复杂的机器人程序
- 编辑和修改机器人程序
- 复用常用程序模块和指令序列
- 实现上位机与机器人程序的无缝对接
- 构建定制化的机器人运动轨迹
- 集成视觉、通信和 Modbus 功能到机器人程序中
类构造函数
| 方法名 | BasScript( name : str) -> BasScript |
|---|---|
| 描述 | 构建用于机器人中的 BAS 指令序列类 |
| 请求参数 | name :脚本名称 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.2.0+ 工业 (Bronze): v7.6.0.0+ |
| 备注 | 本类下所有方法的兼容版本要求与本类一致 |
子类结构
BasScript 类包含以下子类,用于组织不同类型的指令:
- ExtraParam:额外参数类,用于构建复杂的机器人控制命令
- BasMotion:运动指令子类,包含所有机器人运动相关的方法
- BasLogical:逻辑指令子类,包含所有逻辑控制相关的方法
- BasStructure:结构指令子类,包含所有结构控制相关的方法
- BasSocket:Socket 通信子类,包含所有 Socket 通信相关的方法
- BasModbus:Modbus 通信子类,包含所有 Modbus 通信相关的方法
- BasVision:视觉指令子类,包含所有视觉相关的方法
4.12.1 ExtraParam 额外参数类
| 方法名 | ExtraParam() -> ExtraParam |
|---|---|
| 描述 | 额外参数类,用于构建复杂的机器人控制命令 |
| 请求参数 | 无 |
| 返回值 | ExtraParam 对象 |
4.12.1.1 设置加速度
| 方法名 | extra_param.acceleration( value : float) -> None |
|---|---|
| 描述 | 设置加速度,范围为 1~120% |
| 请求参数 | value : float 加速度值,单位:%(浮点数) |
| 返回值 | 无 |
4.12.1.2 设置 RTCP 参数
| 方法名 | extra_param.rtcp() -> None |
|---|---|
| 描述 | 设置 RTCP 参数,仅支持 MoveL 和 MoveC 指令 |
| 请求参数 | 无 |
| 返回值 | 无 |
4.12.1.3 设置帧偏移
| 方法名 | extra_param.offset( index : int) -> None |
|---|---|
| 描述 | 设置帧偏移 |
| 请求参数 | index : int 偏移索引(整数) |
| 返回值 | 无 |
4.12.1.4 设置时间基准运行或赋值
| 方法名 | extra_param.tb( second : int, type : str, name : str = None, index : int = None, status : str = None) -> None |
|---|---|
| 描述 | 设置时间基准运行或赋值,范围为 0.01-30s,若输入小于 0.01 的数不会保存成功 |
| 请求参数 | second : int 秒数,单位:sec(整数) type : str 执行类型(字符串) name : str 名称(用于运行,字符串) index : int 索引(用于赋值,整数) status : str 状态(用于赋值,字符串) |
| 返回值 | 无 |
4.12.1.5 设置跳转
| 方法名 | extra_param.skip( index : int) -> None |
|---|---|
| 描述 | 设置跳转,当满足 SKIP CONDITION 指令设置的跳转条件时,从含有 SKIP 指令的当前行直接跳转到目标指令行或目标程序 |
| 请求参数 | index : int 目标标签的索引(整数) |
| 返回值 | 无 |
4.12.1.6 设置出发距离和接近距离
| 方法名 | extra_param.approach( departure_dist : float, approaching_dist : float) -> None |
|---|---|
| 描述 | 设置门型运动的出发距离和接近距离,仅用于 JUMP 指令 |
| 请求参数 | departure_dist : float 出发距离,单位:mm(浮点数) approaching_dist : float 接近距离,单位:mm(浮点数) |
| 返回值 | 无 |
4.12.2 BasMotion 运动指令子类
4.12.2.1 MoveJoint 运动到点指令
| 方法名 | motion.move_joint( pose_type : MovePoseType, pose_index : int, speed_type : SpeedType, speed_value : float, smooth_type : SmoothType, smooth_distance : float = 0.0, extra_param : ExtraParam = None) -> StatusCodeEnum |
|---|---|
| 描述 | 关节运动指令,以指定的移动速度和移动方法使机器人向作业空间内的指定位置移动,对应机器人程序编写中的 MoveJoint 指令 |
| 请求参数 | pose_type : MovePoseType 位姿类型 pose_index : int 位姿索引 speed_type : SpeedType 速度类型 speed_value : float 速度值,单位:% smooth_type : SmoothType 平滑类型 smooth_distance : float 平滑距离,单位:mm,取值范围:0~1000 extra_param : ExtraParam 附加参数 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.2.2 MoveLine 直线运动到点指令
| 方法名 | motion.move_line( pose_type : MovePoseType, pose_index : int, speed_type : SpeedType, speed_value : float, smooth_type : SmoothType, smooth_distance : float = 0.0, extra_param : ExtraParam = None) -> StatusCodeEnum |
|---|---|
| 描述 | 直线运动指令,以指定的移动速度和移动方法使机器人向作业空间内的指定位置直线移动,对应机器人程序编写中的 MoveLine 指令 |
| 请求参数 | pose_type : MovePoseType 位姿类型 pose_index : int 位姿索引 speed_type : SpeedType 速度类型 speed_value : float 速度值,单位:mm/s smooth_type : SmoothType 平滑类型 smooth_distance : float 平滑距离,单位:mm,取值范围:0~1000 extra_param : ExtraParam 附加参数 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.2.3 MoveCircle 弧线运动到点指令
| 方法名 | motion.move_circle( pose_type1 : MovePoseType, pose_index1 : int, pose_type2 : MovePoseType, pose_index2 : int, speed_type : SpeedType, speed_value : float, smooth_type : SmoothType, smooth_distance : float = 0.0, extra_param : ExtraParam = None) -> StatusCodeEnum |
|---|---|
| 描述 | 圆弧运动指令,以指定的移动速度和移动方法使机器人向作业空间内的指定位置圆弧移动,对应机器人程序编写中的 MoveCircle 指令 |
| 请求参数 | pose_type1 : MovePoseType 第一个位姿类型 pose_index1 : int 第一个位姿索引 pose_type2 : MovePoseType 第二个位姿类型 pose_index2 : int 第二个位姿索引 speed_type : SpeedType 速度类型 speed_value : float 速度值,单位:mm/s smooth_type : SmoothType 平滑类型 smooth_distance : float 平滑距离,单位:mm,取值范围:0~1000 extra_param : ExtraParam 附加参数 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.2.4 JUMP 快速运动指令
| 方法名 | motion.move_jump( pose_type : MovePoseType, pose_index : int, speed_value : float, speed_ratio : float, lim_Z_type : SpeedType, lim_Z_value : float, smooth_type : SmoothType, smooth_distance : float = 0.0, extra_param : ExtraParam = None) -> StatusCodeEnum |
|---|---|
| 描述 | 门型运动指令,指定机器人做门型运动(首先垂直上升、然后水平移动,最后垂直下降),对应机器人程序编写中的 JUMP 指令 |
| 请求参数 | pose_type : MovePoseType 目标位姿存储类型 pose_index : int 目标位置的索引 speed_value : float 移动速度的值,单位:mm/s speed_ratio : float 移动速度的比率,单位:% lim_Z_type : SpeedType Z 轴限制的类型 lim_Z_value : float Z 轴限制的值 smooth_type : SmoothType 平滑类型 smooth_distance : float 平滑距离,单位:mm,取值范围:0~1000 extra_param : ExtraParam 额外参数 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.2.5 JUMP3 快速运动指令
| 方法名 | motion.move_jump3( pose_type : MovePoseType, pose_index : List[int], speed_value : float, speed_ratio : float, smooth_type : SmoothType, smooth_distance : float = 0.0, extra_param : ExtraParam = None) -> StatusCodeEnum |
|---|---|
| 描述 | 门型运动指令,指定机器人做门型运动,包含出发、接近和目标三个位置,对应机器人程序编写中的 JUMP3 指令 |
| 请求参数 | pose_type : MovePoseType 目标位姿存储类型 pose_index : List [int] 3 个目标位置的索引列表(出发、接近、目标) speed_value : float 移动速度的值,单位:mm/s speed_ratio : float 移动速度的比率,单位:% smooth_type : SmoothType 平滑类型 smooth_distance : float 平滑距离,单位:mm,取值范围:0~1000 extra_param : ExtraParam 额外参数 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.2.6 JUMP3CP 快速运动指令
| 方法名 | motion.move_jump3cp( pose_type : MovePoseType, pose_index : List[int], speed_value : float, smooth_type : SmoothType, smooth_distance : float = 0.0, extra_param : ExtraParam = None) -> StatusCodeEnum |
|---|---|
| 描述 | 门型运动指令,指定机器人做门型运动,包含出发、接近和目标三个位置,对应机器人程序编写中的 JUMP3CP 指令 |
| 请求参数 | pose_type : MovePoseType 目标位姿存储类型 pose_index : List [int] 3 个目标位置的索引列表(出发、接近、目标) speed_value : float 移动速度的值,单位:mm/s smooth_type : SmoothType 平滑类型 smooth_distance : float 平滑距离,单位:mm,取值范围:0~1000 extra_param : ExtraParam 额外参数 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3 BasLogical 逻辑指令子类
4.12.3.1 LogiIf 条件指令
| 方法名 | logical.logi_if( param1 : Union[RegisterType, IOType], index : int, param2 : Union[RegisterType, IOType, OtherType], value : Union[int, float, str, IOStatus], operator : BooleanOperator = BooleanOperator.EQ) -> StatusCodeEnum |
|---|---|
| 描述 | 条件判断指令,根据指定条件执行不同的代码块,对应机器人程序编写中的 IF 逻辑语句 |
| 请求参数 | param1 : Union[RegisterType, IOType] 第一个参数(寄存器或 IO 信号) index : int 参数 1 的索引 param2 : Union[RegisterType, IOType, OtherType] 第二个参数(寄存器、IO 信号或其他类型) value : Union[int, float, str, IOStatus] 参数 2 的索引或值 operator : BooleanOperator 逻辑运算符 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.2 LogiElseIf 条件分支指令
| 方法名 | logical.logi_else_if( param1 : Union[RegisterType, IOType], index : int, param2 : Union[RegisterType, IOType, OtherType], value : Union[int, float, str, IOStatus], operator : BooleanOperator = BooleanOperator.EQ) -> StatusCodeEnum |
|---|---|
| 描述 | 条件分支指令,当 If 条件不满足时,判断 ElseIf 条件是否满足,对应机器人程序编写中的 ELIF 逻辑语句 |
| 请求参数 | param1 : Union[RegisterType, IOType] 第一个参数(寄存器或 IO 信号) index : int 参数 1 的索引 param2 : Union[ValueType, IOType, OtherType] 第二个参数(寄存器、IO 信号或其他类型) value : Union[int, float, IOStatus] 参数 2 的索引或值 operator : BooleanOperator 逻辑运算符 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.3 LogiElse 否则指令
| 方法名 | logical.logi_else() -> StatusCodeEnum |
|---|---|
| 描述 | 否则指令,当所有 If 和 ElseIf 条件都不满足时执行,对应机器人程序编写中的 ELSE 逻辑语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.4 LogiEndIf 结束条件指令
| 方法名 | logical.logi_end_if() -> StatusCodeEnum |
|---|---|
| 描述 | 结束条件指令,用于结束 If 条件语句块,对应机器人程序编写中的 ENDIF 逻辑语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.5 LogiWhile 循环指令
| 方法名 | logical.logi_while( param1 : Union[RegisterType, IOType], index : int, param2 : Union[RegisterType, IOType, OtherType], value : Union[int, float, str, IOStatus], operator : BooleanOperator = BooleanOperator.EQ) -> StatusCodeEnum |
|---|---|
| 描述 | 循环指令,当条件满足时重复执行循环体内的代码,对应机器人程序编写中的 WHILE 逻辑语句 |
| 请求参数 | param1 : Union[RegisterType, IOType] 第一个参数(寄存器或 IO 信号) index : int 参数 1 的索引 param2 : Union[RegisterType, IOType, OtherType] 第二个参数(寄存器、IO 信号或其他类型) value : Union[int, float, str, IOStatus] 参数 2 的索引或值 operator : BooleanOperator 逻辑运算符 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.6 LogiEndWhile 结束循环指令
| 方法名 | logical.logi_end_while() -> StatusCodeEnum |
|---|---|
| 描述 | 结束循环指令,用于结束 While 循环语句块,对应机器人程序编写中的 ENDWHILE 逻辑语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.7 LogiSwitch 多分支选择指令
| 方法名 | logical.logi_switch( param : Union[RegisterType, IOType], index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 多分支选择指令,根据表达式的值选择执行不同的分支,支持 BREAK 语句跳出分支,对应机器人程序编写中的 SWITCH 逻辑语句 |
| 请求参数 | param : Union[RegisterType, IOType] 寄存器或 IO 信号 index : int 索引序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.8 LogiCase 分支指令
| 方法名 | logical.logi_case( param : Union[RegisterType, IOType, OtherType], value : Union[int, float, str]) -> StatusCodeEnum |
|---|---|
| 描述 | 分支指令,用于定义 Switch 语句中的分支条件,对应机器人程序编写中的 CASE 逻辑语句 |
| 请求参数 | param : Union[RegisterType, IOType, OtherType] 寄存器、IO 信号或其他类型 value : Union [int, float, str] 索引序号或值 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.9 LogiDefault 默认分支指令
| 方法名 | logical.logi_default() -> StatusCodeEnum |
|---|---|
| 描述 | 默认分支指令,当所有 Case 条件都不满足时执行,对应机器人程序编写中的 DEFAULT 逻辑语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.10 LogiEndSwitch 结束多分支选择指令
| 方法名 | logical.logi_end_switch() -> StatusCodeEnum |
|---|---|
| 描述 | 结束多分支选择指令,用于结束 Switch 语句块,对应机器人程序编写中的 ENDSWITCH 逻辑语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.11 LogiGoto 跳转指令
| 方法名 | logical.logi_goto( index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 跳转指令,用于在同一程序内跳转程序到指定标签位置,并从指定标签位置开始继续向下执行程序;必须先插入标签指令 LABEL,再使用 GOTO 指令,对应机器人程序编写中的 GOTO 跳转语句 |
| 请求参数 | index : int 目标标签的索引 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.12 LogiLabel 标签指令
| 方法名 | logical.logi_label( index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 标签指令,用于定义程序中的跳转目标位置,GOTO 指令可跳转到该标签位置,对应机器人程序编写中的 LABEL 标签语句 |
| 请求参数 | index : int 标签的索引 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.13 LogiSkipCondition 跳过条件指令
| 方法名 | logical.logi_skip_condition( param1 : Union[RegisterType, IOType], index : int, param2 : Union[RegisterType, IOType, OtherType], value : Union[int, float, str, IOStatus], operator : BooleanOperator = BooleanOperator.EQ) -> StatusCodeEnum |
|---|---|
| 描述 | 跳过条件指令,用于设置跳转条件,当满足条件时,从含有 SKIP 指令的当前行直接跳转到目标指令行或目标程序,对应机器人程序编写中的 SKIP CONDITION 跳转语句 |
| 请求参数 | param1 : Union[RegisterType, IOType] 第一个参数(寄存器或 IO 信号) index : int 参数 1 的索引 param2 : Union[RegisterType, IOType, OtherType] 第二个参数(寄存器、IO 信号或其他类型) value : Union[int, float, str, IOStatus] 参数 2 的索引或值 operator : BooleanOperator 逻辑运算符 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.14 LogiBreak 跳出循环指令
| 方法名 | logical.logi_break() -> StatusCodeEnum |
|---|---|
| 描述 | 跳出循环指令,用于跳出当前循环或 Switch 语句,对应机器人程序编写中的 BREAK 语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.3.15 LogiContinue 跳过循环指令
| 方法名 | logical.logi_continue() -> StatusCodeEnum |
|---|---|
| 描述 | 跳过循环指令,用于跳过当前循环的剩余部分,进入下一次循环,对应机器人程序编写中的 CONTINUE 语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4 BasStructure 结构指令子类
4.12.4.1 Wait 等待条件指令
| 方法名 | structure.wait( param1 : Union[RegisterType, IOType], index : int, param2 : Union[ValueType, IOType, OtherType], value : Union[int, float, IOStatus], operator : BooleanOperator = BooleanOperator.EQ) -> StatusCodeEnum |
|---|---|
| 描述 | 等待条件指令,执行 WAIT 指令只有当条件满足时,程序才能继续向下执行,否则一直等待直到条件满足为止,对应机器人程序编写中的 WAIT COND 等待条件语句 |
| 请求参数 | param1 : Union[RegisterType, IOType] 第一个参数(寄存器或 IO 信号) index : int 参数 1 的索引 param2 : Union[ValueType, IOType, OtherType] 第二个参数(寄存器、IO 信号或其他类型) value : Union[int, float, IOStatus] 参数 2 的索引或值 operator : BooleanOperator 逻辑运算符 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.2 WaitTime 等待时间指令
| 方法名 | structure.wait_time( param : ValueType, value : Union[int, float]) -> StatusCodeEnum |
|---|---|
| 描述 | 等待时间指令,执行 WAIT TIME 指令,机器人等待指定的时间后继续执行后续指令,对应机器人程序编写中的 WAIT TIME 等待时间语句 |
| 请求参数 | param : ValueType 参数类型(R 寄存器或数值) value : Union [int, float] 时间值,单位:sec |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.3 Pause 暂停指令
| 方法名 | structure.pause() -> StatusCodeEnum |
|---|---|
| 描述 | 暂停指令,当执行到 Pause 指令后,暂停程序的执行,机器人立即规划减速轨迹并进行运动停止,程序状态进入暂停状态。如要继续执行,需要重新按启动键,对应机器人程序编写中的 PAUSE 暂停语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.4 Abort 中断指令
| 方法名 | structure.abort() -> StatusCodeEnum |
|---|---|
| 描述 | 强制结束指令:结束程序执行,机器人伺服立刻刹车,并上抱闸,伺服母线断电。执行完强制结束指令后,程序进入终止状态,且光标停止在当前行,对应机器人程序编写中的 ABORT 终止语句 |
| 请求参数 | 无 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.5 Call 同步调用程序指令
| 方法名 | structure.call( name : str) -> StatusCodeEnum |
|---|---|
| 描述 | 同步调用程序指令,调用指定的程序并等待其执行完成后,再继续执行当前程序,支持调用预设 BAS 程序,对应机器人程序编写中的 CALL 同步调用程序 |
| 请求参数 | name : str 程序名 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.6 Run 异步调用程序指令
| 方法名 | structure.run( name : str) -> StatusCodeEnum |
|---|---|
| 描述 | 异步调用程序指令,调用指定的程序并立即返回,继续执行当前程序,支持调用预设 BAS 程序,对应机器人程序编写中的 RUN 异步调用程序 |
| 请求参数 | name : str 程序名 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.7 Load 加载程序指令
| 方法名 | structure.load( name : str) -> StatusCodeEnum |
|---|---|
| 描述 | 加载程序指令,将指定的程序加载到内存中,对应机器人程序编写中的 LOAD 载入程序 |
| 请求参数 | name : str 程序名 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.8 Unload 卸载程序指令
| 方法名 | structure.unload( name : str) -> StatusCodeEnum |
|---|---|
| 描述 | 卸载程序指令,将指定的程序从内存中卸载,对应机器人程序编写中的 UNLOAD 卸载程序 |
| 请求参数 | name : str 程序名 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.4.9 Exec 执行程序指令
| 方法名 | structure.exec( name : str) -> StatusCodeEnum |
|---|---|
| 描述 | 执行程序指令,执行指定的程序,对应机器人程序编写中的 EXEC 执行程序 |
| 请求参数 | name : str 程序名 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.5 BasSocket Socket 通信子类
4.12.5.1 SocketOpen 打开 socket 连接指令
| 方法名 | socket.socket_open( index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 使用 Socket Open 指令创建一个 Server 并等待 Client 连接,对应机器人程序编写中的 SOCKET OPEN 打开 socket 连接 |
| 请求参数 | index : int SK 寄存器序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.5.2 SocketClose 关闭 socket 连接指令
| 方法名 | socket.socket_close( index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 关闭指定的 socket 连接,对应机器人程序编写中的 SOCKET CLOSE 关闭 socket 连接 |
| 请求参数 | index : int SK 寄存器序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.5.3 SocketConnect 连接 socket 指令
| 方法名 | socket.socket_connect( index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 使用 Socket Connect 指令连接到指定的 socket 服务器,对应机器人程序编写中的 SOCKET CONNECT 连接 socket |
| 请求参数 | index : int SK 寄存器序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.5.4 SocketSend 发送 socket 数据指令
| 方法名 | socket.socket_send( index : int, msg_type : StrType, value : Union[int, str]) -> StatusCodeEnum |
|---|---|
| 描述 | 使用 Socket Send 指令向指定的 socket 连接发送数据,对应机器人程序编写中的 SOCKET SEND 发送数据 |
| 请求参数 | index : int SK 寄存器序号 msg_type : StrType 消息类型 value : Union [int, str] 消息内容或序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.5.5 SocketRecv 接收 socket 数据指令
| 方法名 | socket.socket_recv( index : int, msg_lenth : int, msg_type : StrType, value : Union[int, str]) -> StatusCodeEnum |
|---|---|
| 描述 | 使用 Socket Recv 指令从指定的 socket 连接读取字符,可以指定最大长度,对应机器人程序编写中的 SOCKET RECV 接收数据 |
| 请求参数 | index : int SK 寄存器序号 msg_lenth : int 消息最大长度 msg_type : StrType 消息类型 value : Union [int, str] 消息内容或序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.6 BasModbus Modbus 通信子类
4.12.6.1 ModbusReadMH 读取 Modbus 保持寄存器指令
| 方法名 | modbus.modbus_read_MH( index : int, id : int, address : int, length : int, r_index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 读取 Modbus 保持寄存器指令,对应机器人程序编写中的 READ_MH 读取 Modbus 保持寄存器 |
| 请求参数 | index : int 通道序号 id : int Modbus ID address : int 寄存器起始地址 length : int 寄存器长度,即要读取的寄存器数量 r_index : int 写入结果的 R 寄存器起始序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.6.2 ModbusReadMI 读取 Modbus 输入寄存器指令
| 方法名 | modbus.modbus_read_MI( index : int, id : int, address : int, length : int, r_index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 读取 Modbus 输入寄存器指令,对应机器人程序编写中的 READ_MI 读取 Modbus 输入寄存器 |
| 请求参数 | index : int 通道序号 id : int Modbus ID address : int 寄存器起始地址 length : int 寄存器长度,即要读取的寄存器数量 r_index : int 写入结果的 R 寄存器起始序号 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.6.3 ModbusWriteMH 写入 Modbus 保持寄存器指令
| 方法名 | modbus.modbus_write_MH( index : int, id : int, address : int, length : int, value_type : ValueType, value : int) -> StatusCodeEnum |
|---|---|
| 描述 | 写入 Modbus 保持寄存器指令,对应机器人程序编写中的 WRITE_MH 写入 Modbus 保持寄存器 |
| 请求参数 | index : int 通道序号 id : int Modbus ID address : int 寄存器起始地址 length : int 寄存器长度,即要写入的寄存器数量 value_type : ValueType 值类型 value : int 值或 R 寄存器起始索引 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.7 BasVision 视觉指令子类
4.12.7.1 VisionFind 寻找视觉程序指令
| 方法名 | vision.vision_find( name : str) -> StatusCodeEnum |
|---|---|
| 描述 | 执行视觉寻找程序,对应机器人程序编写中的 VISION FIND 寻找视觉程序 |
| 请求参数 | name : str 视觉程序名称 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.7.2 VisionGetOffset 获取视觉程序偏移量指令
| 方法名 | vision.vision_get_offset( name : str, index : int, label_index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 获取视觉程序执行后的偏移量,对应机器人程序编写中的 VISION GET OFFSET 获取视觉程序偏移量 |
| 请求参数 | name : str 视觉程序名称 index : int 视觉寄存器索引 label_index : int 标签索引 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.7.3 VisionGetQuantity 获取视觉程序结果指令
| 方法名 | vision.vision_get_quantity( name : str, index : int) -> StatusCodeEnum |
|---|---|
| 描述 | 获取视觉程序执行后的结果数量,对应机器人程序编写中的 VISION GET QUANTITY 获取视觉程序结果 |
| 请求参数 | name : str 视觉程序名称 index : int 结果存储的 R 寄存器索引 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.8 直接方法
4.12.8.1 SetParam 设置参数指令
| 方法名 | bas_script.set_param( type : ParamType, value_type : ValueType, value : Union[int, float]) -> StatusCodeEnum |
|---|---|
| 描述 | 设置参数指令,用于设置机器人的各种参数,对应机器人程序编写中的 SET PARAM 设置参数 |
| 请求参数 | type : ParamType 参数类型 value_type : ValueType 值类型 value : Union [int, float] 值 |
| 返回值 | StatusCodeEnum: 函数执行结果 |
4.12.8.2 AssignValue 赋值指令
| 方法名 | bas_script.assign_value( param1 : AssignType, index : int, param2 : Union[AssignType, OtherType], value : Union[int, float, str, IOStatus, CurrentPose], opt_index : int = 0, opt_value = 0) -> StatusCodeEnum |
|---|---|
| 描述 | 赋值指令,用于给寄存器、IO 信号等赋值,对应机器人程序编写中的 ASSIGN 赋值语句 |
| 请求参数 | param1 : AssignType 第一个参数(寄存器或 IO 信号) index : int 参数 1 的索引 param2 : Union[AssignType, OtherType] 第二个参数(寄存器、IO 信号或其他类型) value : Union[int, float, str, IOStatus, CurrentPose] 参数 2 的索引或值 opt_index : int 参数 1 为 PR_ELEMENT 时的额外索引 opt_value : int 参数 2 为 PR_ELEMENT 时的额外索引或 value 为 IOStatus.PULSE 时的脉冲值 |
| 返回值 | StatusCodeEnum: 函数执行结果 |