This repository has been archived on 2025-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
aio_second_edition/readme.md
2025-02-12 08:39:20 +08:00

5.7 KiB
Raw Blame History

珞石测试部自动化工具

针对珞石工业协作六轴机器人的整机测试,该工具可以执行如下自动化操作,以减少人工处理时长,提高测试数据处理的效率和准确度:

  1. 制动数据,单轴数据处理 5min 以内
  2. 电机电流数据,全部轴数据处理 3min 以内
  3. ISO 激光数据整理1min 以内
  4. wavelogger 波形处理,几乎不花费时间
  5. 制动自动化测试40min 左右
  6. 电机电流自动化测试15min 左右
  7. 耐久工程相关指标采集记录,可定制曲线并绘图

一、处理逻辑以及原理

该部分简要介绍了工具实现的核心逻辑原理,以及执行的必要条件。

1. 数据处理

A. 制动数据

  • 原理:找到 device_safety_estop 曲线值由 1 -> 0 的位置,并预留 20 个数据余量截取 1000 个点
  • 必要条件:
    • 根目录命名为 j1/2/3
    • 数据文件夹命名参照执行制动数据采集
    • 需要有三个结果文件,命名为 reach33/66/100_xxxxxxxx.xlsx
    • 需要有一个机型文件,比如 NB4h-R580-3G.cfg此文件会在执行制动测试的时候自动生成注意保存

B. 电机电流

  • 单轴原理:找到一个周期的起点和终点
  • 堵转原理:求平均均值
  • 场景原理:获取场景的执行周期时间,并做数据截取
  • 必要条件:
    • 数据文件命名参照电机电流测试生成的格式
    • 需要有一个结果文件,命名为 T_电机电流.xlsx
    • 需要有一个机型文件,比如 NB4h-R580-3G.cfg此文件会在执行制动测试的时候自动生成注意保存

C. 激光

  • 原理:根据要获取的数据所在位置的特征,过滤提取
  • 必要条件:
    • 数据文件命名必须参照如下:
      • ISO-.pdf
      • ISO-V100.pdf
      • ISO-V1000.pdf
    • 需要有一个结果文件iso-results.xlsx

D. 基恩士数据

  • 原理:根据数据大小以及出现的周期规律,进行相应的处理,处理完成之后结果文件会自动生成
  • 必要条件:需要提前将 .xdt 波形数据转换成 .csv 文件,数据文件命名必须以 .csv 结尾

二、自动测试

1. 协议封包解包

详见 assets/files/protocols/

2. 制动测试

  • 原理:使用 xCore socket 协议获取诊断数据,包括速度,力矩等信息,结合 modbus 和外部通信执行急停等动作
  • 必要条件:
    • RL 工程,参考 assets/files/projects/,需要详细阅读对应的注释
    • 需要有一个配置文件,命名为 configs.xlsx
    • 需要有三个结果文件,命名为 reach33/66/100_xxxxxxxx.xlsx

3. 电机电流测试

  • 原理:使用 xCore socket 协议获取诊断数据,包括速度,力矩等信息,结合 modbus 和外部通信执行急停等动作
  • 必要条件:
    • RL 工程,参考 assets/files/projects/,需要详细阅读对应的注释
    • 需要有一个结果文件,命名为 T_电机电流.xlsx

三、注意事项

!!仅内网使用!!

  1. 仅适用于 xCore 2.3.0.7 及以上的版本
  2. 仅适配了六轴工业/协作机型其他机型可能会存在使用上的问题具体可以找fanmingfu@rokae.com确认
  3. 单轴电机电流数据处理,至少需要三个完整周期,使用本工具采集一般不会有问题,主要是针对手动采集命名的数据
  4. 执行制动测试/电机电流采集/耐久测试的时候,执行过程中停止,再次运行需要等待一分钟左右,输出框会有提示
  5. RL工程/寄存器文件/configs.xlsx文件已更新需要使用新版其他使用方法和之前工具一致
  6. 基恩士采集数据时不同轮次每5次测试数据时间间隔最好大于 2 倍的周期时间,否则会出现采集的轮数不正确的情况,但数据是完整的
  7. 激光数据处理只支持英文版本的数据文件

需要使用 assets/files/projects/ 下的工程,寄存器文件以及配置文件等!!!

四、发版记录

详见 assets/files/version/release_change.txt 文件

五、其他

1. 打包命令

打包时,只需要修改 clibs.py 中的 PREFIX 即可,调试时再修改回来,第三方库依赖详见 assets/files/version/requirements.txt 文件

pyinstaller --noconfirm --onedir --windowed --optimize 2 --contents-directory . --upx-dir "D:/Syncthing/common/A_Program/upx-4.2.4-win64/" --add-data "../.venv/Lib/site-packages/customtkinter;customtkinter/" --add-data "../assets:assets" --version-file ../assets/files/version/file_version_info.txt -i ../assets/media/icon.ico ../code/aio.py -p ../code/common/clibs.py -p ../code/commom/openapi.py -p ../code/data_process/brake.py -p ../code/data_process/iso.py -p ../code/data_process/current.py -p ../code/data_process/wavelogger.py -p ../code/automatic_test/do_current.py -p ../code/automatic_test/do_brake.py -p ../code/durable_docs/factory_test.py -p ../code/durable_docs/create_plot.py --exclude-module=scipy

2. tabview 组件字体修改

customtkinter的tabview组件不支持修改字体大小解决方法可参考如下

  • Method 1可以参考 Changing Font of a Tabview 进行手动修改源码实现:

    • 运行 pip show customtkinter,获取到库的路径
    • 修改.../windows/widgets/ctk_tabview.py
    • 增加 from .font.ctk_font import CTkFont
    • 在大概 78 行的位置,增加 font=CTkFont(family="Consolas", size=18, weight='bold')
  • Method 2

    直接在源码中修改:self.tabview_bottom._segmented_button.configure(font=ctk.CTkFont(family="Consolas", size=18, weight="bold"))

3. scroll frame 不支持修改高度和宽度

https://github.com/TomSchimansky/CustomTkinter/pull/1765/files