背景程序插件是一个通用服务插件,为捷勃特机器人提供背景程序I/O信号处理功能。该插件通过Web界面实现对机器人I/O信号和寄存器的监控、配置和控制,支持可视化图形化编程,持续运行在机器人控制器中而不影响机器人主程序。
本插件支持信号触发信号、信号触发寄存器操作、寄存器间数据传递等复杂逻辑场景,通过积木块式的可视化编程界面,降低了用户使用门槛,提高了开发效率。
本插件使用SDK版本 PYTHON_v2.0.0.0 开发,请确保您的机器人系统环境与此版本兼容。
插件开发完毕后,需要使用捷勃特插件打包工具进行打包。详细的打包与安装说明请参考:
插件提供以下核心功能:
- I/O信号实时监控 - 实时监控数字量输入/输出信号状态
- 寄存器操作 - 支持R、MH、MI寄存器的读写和运算
- 背景程序管理 - 创建、编辑、删除、复制背景程序
- 程序导入导出 - 支持程序配置的导入导出(Web模式/U盘模式)
- 系统配置管理 - 去抖滤波、信号订阅周期等系统参数配置
- 实时状态监控 - 系统日志、性能监控、程序运行状态实时显示
- 多语言支持 - 支持中文、英文、越南语、日语四种语言界面和日志翻译
- 可视化编程增强积木 - 组合触发/组合条件(AND/OR,可嵌套):信号边沿、电平、寄存器、机器人模式、程序状态均为布尔值块,可用逻辑与/或组合
实时监控来自传感器、按钮、限位开关、光电开关等外部设备的输入信号,以及输出信号的状态。
功能特性:
- 自动获取机器人已配置的所有IO信号
- 按配置的周期订阅所有信号状态
- 实时显示信号状态(绿色=激活,灰色=非激活)
- 支持数字量输入(DI)和数字量输出(DO)
界面位置:
- 导航菜单:I/O 信号
- 输入信号区域:网格布局显示所有DI信号
- 输出信号区域:网格布局显示所有DO信号
支持对机器人各种寄存器的读写和运算操作,包括数值寄存器、位置寄存器、字符串寄存器等。
支持的寄存器类型:
- R寄存器:浮点型数值寄存器(读写、运算)
- MH寄存器:整型寄存器(读写、运算)
- MI寄存器:整型寄存器(读写、运算)
操作类型:
- 读取:读取寄存器当前值
- 写入:设置寄存器为指定值
- 运算:加法、减法、乘法、除法
- 传递:将一个寄存器的值复制到另一个寄存器
创建、编辑、删除、复制背景程序,支持程序列表管理和程序状态控制。
功能特性:
- 程序列表:显示所有已保存的背景程序
- 显示程序名称、状态、最后修改时间
- 支持程序搜索(按名称过滤)
- 按最后修改时间排序(最近修改的在上)
- 程序操作:
- 新建程序:创建新的背景程序
- 编辑程序:修改现有程序
- 删除程序:删除不需要的程序
- 复制程序:复制现有程序创建副本
- 程序状态:
- 运行中:程序正在执行
- 已停止:程序已停止
- 程序格子:概览页显示最多9个活跃程序
- 显示程序名称、运行状态、周期时间
- 支持单个程序启动/停止
- 支持多选批量操作
界面位置:
- 导航菜单:背景程序
- 程序列表:显示所有已保存的程序
- 程序格子:概览页显示活跃程序运行状态
支持程序配置的导入导出功能,方便程序备份、迁移和共享。
导出功能:
- Web模式(PC/协作机器人):
- 选择要导出的程序(勾选复选框)
- 点击"导出"按钮
- 浏览器自动下载zip压缩文件
- USB模式(工业机器人示教器):
- 选择要导出的程序(勾选复选框)
- 点击"导出"按钮
- 程序自动保存到U盘
/mnt/udisk/background_programs/目录
导入功能:
- Web模式(PC/协作机器人):
- 点击"导入"按钮
- 选择zip文件上传
- 系统自动检测冲突并提示选择处理方式
- USB模式(工业机器人示教器):
- 点击"导入"按钮
- 从U盘文件列表中选择zip文件
- 系统自动检测冲突并提示选择处理方式
冲突处理: 导入时如果检测到重名程序,系统会显示冲突对话框,为每个冲突提供三种处理方式:
- 跳过:不导入该程序,保留现有程序
- 覆盖:用导入的程序覆盖现有程序
- 重命名:自动重命名为
原程序名_1、原程序名_2等(自动查找可用编号)
管理系统参数配置,包括去抖滤波、信号订阅周期等设置。
系统参数:
- 去抖滤波:信号去抖延时时间(0-1000ms)
- 默认值:50ms
- 最小值:0ms(不去抖)
- 最大值:1000ms
- 信号订阅周期:信号状态订阅周期(30-1000ms)
- 默认值:50ms
- 最小值:30ms
- 最大值:1000ms
配置方法:
- 进入"系统设置"页面
- 调整参数滑块或输入框
- 点击"保存参数"按钮保存配置
- 配置会自动保存到
data/config/system.json文件
实时显示系统运行状态、日志信息、性能监控数据和程序运行状态。
系统日志:
- 实时显示系统启动日志、规则执行日志、错误和警告信息
- 终端风格显示(深色背景,绿色文字)
- 自动保存到本地日志文件(
data/logs/目录) - 支持日志轮转(单个文件最大10MB,文件夹最大100MB)
性能监控:
- CPU占用率(后端进程)
- 内存占用(后端进程)
- 实时更新显示
程序运行状态:
- 显示最多9个活跃程序的运行状态
- 每个程序显示:程序名称、运行状态、周期时间
- 支持单个程序启动/停止操作
- 支持多选批量操作
界面位置:
- 导航菜单:概览
- 系统日志区域:实时日志显示
- 性能监控区域:CPU和内存占用
- 活跃程序运行状态区域:9个格子布局
插件支持多语言界面和日志翻译功能,提供更好的国际化体验。
支持的语言:
- 中文(简体) - 默认语言
- English - 英文
- Tiếng Việt - 越南语
- 日本語 - 日语
功能特性:
- 界面多语言:
- 所有UI元素(按钮、标签、菜单等)支持多语言切换
- Blockly可视化编程积木块支持多语言
- 事件日志、程序列表等动态内容支持多语言
- 日志翻译:
- 系统日志支持后端翻译,根据用户选择的语言显示翻译后的日志
- 本地日志文件保持中文不变,便于技术人员查看
- 实时日志推送时根据用户语言偏好自动翻译
- 历史日志查询时支持语言参数
使用方法:
- 点击界面右上角的语言切换按钮(地球图标)
- 从下拉菜单中选择目标语言
- 界面和日志会自动切换到所选语言
当收到一个或多个输入信号时,立即输出一个或多个信号。
示例:
- 安全门打开时(DI_1=ON),立即关闭输出(DO_1=OFF)
- 启动按钮按下(DI_2上升沿),启动指示灯(DO_2=ON)
实现方法:
- 创建背景程序
- 设置触发条件:DI_1=ON 或 DI_2上升沿
- 设置动作:DO_1=OFF 或 DO_2=ON
- 保存并启动程序
当收到信号时,对寄存器进行数值运算。
示例:
- 收到计数信号(DI_2上升沿)时,将计数器寄存器(MR_1)加1
- 收到复位信号(DI_3=ON)时,将位置寄存器(PR_1)设置为初始值
实现方法:
- 创建背景程序
- 设置触发条件:DI_2上升沿 或 DI_3=ON
- 设置动作:MR_1 = MR_1 + 1 或 PR_1 = 初始值
- 保存并启动程序
信号触发时,读取一个寄存器的值并写入另一个寄存器。
示例:
- 收到同步信号(DI_4上升沿)时,将R[1]的值复制到R[2]
实现方法:
- 创建背景程序
- 设置触发条件:DI_4上升沿
- 设置动作:R[2] = R[1]
- 保存并启动程序
多个信号组合判断后执行动作。
示例:
- 当DI_1=ON且DI_2=OFF时,执行寄存器运算和信号输出
实现方法:
- 创建背景程序
- 设置触发条件:DI_1=ON 且 DI_2=OFF
- 设置动作序列:寄存器运算 + 信号输出
- 保存并启动程序
-
SDK连接:
- 确保机器人控制器已启动并可以连接
- SDK连接断开时会自动重连
- 连接失败时系统会记录错误日志
-
程序数量限制:
- 最多同时运行9个背景程序
- 程序总数无限制
-
文件存储:
- 程序配置文件保存在
data/rules/目录 - 系统配置文件保存在
data/config/目录 - 日志文件保存在
data/logs/目录(自动轮转) - 事件日志保存在
data/events/目录
- 程序配置文件保存在
-
性能优化:
- 信号订阅周期建议设置为50-100ms
- 去抖滤波根据实际信号特性设置
- 避免创建过于复杂的程序逻辑
-
导入导出:
- 导出文件为zip格式
- 导入时会检测冲突,请仔细选择处理方式
- USB模式需要确保U盘已正确挂载,且仅支持FAT32磁盘格式
-
日志管理:
- 日志文件自动轮转(单个文件最大10MB)
- 日志文件夹自动清理(最大100MB)
- 日志文件按时间戳命名
- 新增多语言支持:
- 支持中文、英文、越南语、日语四种语言界面
- 所有UI元素、Blockly积木块、事件日志等支持多语言切换
- 系统日志支持后端翻译,根据用户语言偏好显示翻译后的日志
- 本地日志文件保持中文不变
- 实时日志推送时根据连接的语言偏好自动翻译
- 界面优化:
- 添加语言切换按钮(地球图标)
- 优化语言切换交互体验
- 语言偏好自动保存和恢复
- 初始版本发布
- 支持SDK 2.0.0.0
- 实现I/O信号实时监控(SubPub订阅机制)
- 实现信号去抖滤波和订阅周期配置
- 实现寄存器操作(R、MR、PR、SR、MH、MI)
- 实现背景程序管理(创建、编辑、删除、复制)
- 实现程序导入导出功能(Web模式/USB模式)
- 实现系统配置管理
- 实现实时状态监控(系统日志、性能监控、程序运行状态)
- 支持程序搜索和排序
- 支持日志轮转和自动清理