Skip to content

PhoenixZHC/Agilebot-BackgroundProcess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

背景程序插件 (BackgroundProcessService) 使用文档

概述

背景程序插件是一个通用服务插件,为捷勃特机器人提供背景程序I/O信号处理功能。该插件通过Web界面实现对机器人I/O信号和寄存器的监控、配置和控制,支持可视化图形化编程,持续运行在机器人控制器中而不影响机器人主程序。

本插件支持信号触发信号、信号触发寄存器操作、寄存器间数据传递等复杂逻辑场景,通过积木块式的可视化编程界面,降低了用户使用门槛,提高了开发效率。


兼容SDK版本说明

本插件使用SDK版本 PYTHON_v2.0.0.0 开发,请确保您的机器人系统环境与此版本兼容。


打包说明

插件开发完毕后,需要使用捷勃特插件打包工具进行打包。详细的打包与安装说明请参考:

打包与安装文档


功能列表

插件提供以下核心功能:

  1. I/O信号实时监控 - 实时监控数字量输入/输出信号状态
  2. 寄存器操作 - 支持R、MH、MI寄存器的读写和运算
  3. 背景程序管理 - 创建、编辑、删除、复制背景程序
  4. 程序导入导出 - 支持程序配置的导入导出(Web模式/U盘模式)
  5. 系统配置管理 - 去抖滤波、信号订阅周期等系统参数配置
  6. 实时状态监控 - 系统日志、性能监控、程序运行状态实时显示
  7. 多语言支持 - 支持中文、英文、越南语、日语四种语言界面和日志翻译
  8. 可视化编程增强积木 - 组合触发/组合条件(AND/OR,可嵌套):信号边沿、电平、寄存器、机器人模式、程序状态均为布尔值块,可用逻辑与/或组合

功能详细说明

1. I/O信号实时监控

实时监控来自传感器、按钮、限位开关、光电开关等外部设备的输入信号,以及输出信号的状态。

功能特性:

  • 自动获取机器人已配置的所有IO信号
  • 按配置的周期订阅所有信号状态
  • 实时显示信号状态(绿色=激活,灰色=非激活)
  • 支持数字量输入(DI)和数字量输出(DO)

界面位置:

  • 导航菜单:I/O 信号
  • 输入信号区域:网格布局显示所有DI信号
  • 输出信号区域:网格布局显示所有DO信号

2. 寄存器操作

支持对机器人各种寄存器的读写和运算操作,包括数值寄存器、位置寄存器、字符串寄存器等。

支持的寄存器类型:

  • R寄存器:浮点型数值寄存器(读写、运算)
  • MH寄存器:整型寄存器(读写、运算)
  • MI寄存器:整型寄存器(读写、运算)

操作类型:

  • 读取:读取寄存器当前值
  • 写入:设置寄存器为指定值
  • 运算:加法、减法、乘法、除法
  • 传递:将一个寄存器的值复制到另一个寄存器

4. 背景程序管理

创建、编辑、删除、复制背景程序,支持程序列表管理和程序状态控制。

功能特性:

  • 程序列表:显示所有已保存的背景程序
    • 显示程序名称、状态、最后修改时间
    • 支持程序搜索(按名称过滤)
    • 按最后修改时间排序(最近修改的在上)
  • 程序操作
    • 新建程序:创建新的背景程序
    • 编辑程序:修改现有程序
    • 删除程序:删除不需要的程序
    • 复制程序:复制现有程序创建副本
  • 程序状态
    • 运行中:程序正在执行
    • 已停止:程序已停止
  • 程序格子:概览页显示最多9个活跃程序
    • 显示程序名称、运行状态、周期时间
    • 支持单个程序启动/停止
    • 支持多选批量操作

界面位置:

  • 导航菜单:背景程序
  • 程序列表:显示所有已保存的程序
  • 程序格子:概览页显示活跃程序运行状态

4. 程序导入导出

支持程序配置的导入导出功能,方便程序备份、迁移和共享。

导出功能:

  • Web模式(PC/协作机器人):
    • 选择要导出的程序(勾选复选框)
    • 点击"导出"按钮
    • 浏览器自动下载zip压缩文件
  • USB模式(工业机器人示教器):
    • 选择要导出的程序(勾选复选框)
    • 点击"导出"按钮
    • 程序自动保存到U盘 /mnt/udisk/background_programs/ 目录

导入功能:

  • Web模式(PC/协作机器人):
    • 点击"导入"按钮
    • 选择zip文件上传
    • 系统自动检测冲突并提示选择处理方式
  • USB模式(工业机器人示教器):
    • 点击"导入"按钮
    • 从U盘文件列表中选择zip文件
    • 系统自动检测冲突并提示选择处理方式

冲突处理: 导入时如果检测到重名程序,系统会显示冲突对话框,为每个冲突提供三种处理方式:

  • 跳过:不导入该程序,保留现有程序
  • 覆盖:用导入的程序覆盖现有程序
  • 重命名:自动重命名为 原程序名_1原程序名_2 等(自动查找可用编号)

5. 系统配置管理

管理系统参数配置,包括去抖滤波、信号订阅周期等设置。

系统参数:

  • 去抖滤波:信号去抖延时时间(0-1000ms)
    • 默认值:50ms
    • 最小值:0ms(不去抖)
    • 最大值:1000ms
  • 信号订阅周期:信号状态订阅周期(30-1000ms)
    • 默认值:50ms
    • 最小值:30ms
    • 最大值:1000ms

配置方法:

  1. 进入"系统设置"页面
  2. 调整参数滑块或输入框
  3. 点击"保存参数"按钮保存配置
  4. 配置会自动保存到 data/config/system.json 文件

6. 实时状态监控

实时显示系统运行状态、日志信息、性能监控数据和程序运行状态。

系统日志:

  • 实时显示系统启动日志、规则执行日志、错误和警告信息
  • 终端风格显示(深色背景,绿色文字)
  • 自动保存到本地日志文件(data/logs/ 目录)
  • 支持日志轮转(单个文件最大10MB,文件夹最大100MB)

性能监控:

  • CPU占用率(后端进程)
  • 内存占用(后端进程)
  • 实时更新显示

程序运行状态:

  • 显示最多9个活跃程序的运行状态
  • 每个程序显示:程序名称、运行状态、周期时间
  • 支持单个程序启动/停止操作
  • 支持多选批量操作

界面位置:

  • 导航菜单:概览
  • 系统日志区域:实时日志显示
  • 性能监控区域:CPU和内存占用
  • 活跃程序运行状态区域:9个格子布局

7. 多语言支持

插件支持多语言界面和日志翻译功能,提供更好的国际化体验。

支持的语言:

  • 中文(简体) - 默认语言
  • English - 英文
  • Tiếng Việt - 越南语
  • 日本語 - 日语

功能特性:

  • 界面多语言
    • 所有UI元素(按钮、标签、菜单等)支持多语言切换
    • Blockly可视化编程积木块支持多语言
    • 事件日志、程序列表等动态内容支持多语言
  • 日志翻译
    • 系统日志支持后端翻译,根据用户选择的语言显示翻译后的日志
    • 本地日志文件保持中文不变,便于技术人员查看
    • 实时日志推送时根据用户语言偏好自动翻译
    • 历史日志查询时支持语言参数

使用方法:

  1. 点击界面右上角的语言切换按钮(地球图标)
  2. 从下拉菜单中选择目标语言
  3. 界面和日志会自动切换到所选语言

典型使用场景

场景1:信号触发信号

当收到一个或多个输入信号时,立即输出一个或多个信号。

示例:

  • 安全门打开时(DI_1=ON),立即关闭输出(DO_1=OFF)
  • 启动按钮按下(DI_2上升沿),启动指示灯(DO_2=ON)

实现方法:

  1. 创建背景程序
  2. 设置触发条件:DI_1=ON 或 DI_2上升沿
  3. 设置动作:DO_1=OFF 或 DO_2=ON
  4. 保存并启动程序

场景2:信号触发寄存器运算

当收到信号时,对寄存器进行数值运算。

示例:

  • 收到计数信号(DI_2上升沿)时,将计数器寄存器(MR_1)加1
  • 收到复位信号(DI_3=ON)时,将位置寄存器(PR_1)设置为初始值

实现方法:

  1. 创建背景程序
  2. 设置触发条件:DI_2上升沿 或 DI_3=ON
  3. 设置动作:MR_1 = MR_1 + 1 或 PR_1 = 初始值
  4. 保存并启动程序

场景3:寄存器数据传递

信号触发时,读取一个寄存器的值并写入另一个寄存器。

示例:

  • 收到同步信号(DI_4上升沿)时,将R[1]的值复制到R[2]

实现方法:

  1. 创建背景程序
  2. 设置触发条件:DI_4上升沿
  3. 设置动作:R[2] = R[1]
  4. 保存并启动程序

场景4:复合逻辑判断

多个信号组合判断后执行动作。

示例:

  • 当DI_1=ON且DI_2=OFF时,执行寄存器运算和信号输出

实现方法:

  1. 创建背景程序
  2. 设置触发条件:DI_1=ON 且 DI_2=OFF
  3. 设置动作序列:寄存器运算 + 信号输出
  4. 保存并启动程序

注意事项

  1. SDK连接

    • 确保机器人控制器已启动并可以连接
    • SDK连接断开时会自动重连
    • 连接失败时系统会记录错误日志
  2. 程序数量限制

    • 最多同时运行9个背景程序
    • 程序总数无限制
  3. 文件存储

    • 程序配置文件保存在 data/rules/ 目录
    • 系统配置文件保存在 data/config/ 目录
    • 日志文件保存在 data/logs/ 目录(自动轮转)
    • 事件日志保存在 data/events/ 目录
  4. 性能优化

    • 信号订阅周期建议设置为50-100ms
    • 去抖滤波根据实际信号特性设置
    • 避免创建过于复杂的程序逻辑
  5. 导入导出

    • 导出文件为zip格式
    • 导入时会检测冲突,请仔细选择处理方式
    • USB模式需要确保U盘已正确挂载,且仅支持FAT32磁盘格式
  6. 日志管理

    • 日志文件自动轮转(单个文件最大10MB)
    • 日志文件夹自动清理(最大100MB)
    • 日志文件按时间戳命名

更新日志

V1.4.0 (2026-01-16)

  • 新增多语言支持
    • 支持中文、英文、越南语、日语四种语言界面
    • 所有UI元素、Blockly积木块、事件日志等支持多语言切换
    • 系统日志支持后端翻译,根据用户语言偏好显示翻译后的日志
    • 本地日志文件保持中文不变
    • 实时日志推送时根据连接的语言偏好自动翻译
  • 界面优化
    • 添加语言切换按钮(地球图标)
    • 优化语言切换交互体验
    • 语言偏好自动保存和恢复

V1.0.0 (2025-12-29)

  • 初始版本发布
  • 支持SDK 2.0.0.0
  • 实现I/O信号实时监控(SubPub订阅机制)
  • 实现信号去抖滤波和订阅周期配置
  • 实现寄存器操作(R、MR、PR、SR、MH、MI)
  • 实现背景程序管理(创建、编辑、删除、复制)
  • 实现程序导入导出功能(Web模式/USB模式)
  • 实现系统配置管理
  • 实现实时状态监控(系统日志、性能监控、程序运行状态)
  • 支持程序搜索和排序
  • 支持日志轮转和自动清理

About

捷勃特机器人背景程序插件

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors