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

130 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 珞石测试部自动化工具
针对珞石工业协作六轴机器人的整机测试,该工具可以执行如下自动化操作,以减少人工处理时长,提高测试数据处理的效率和准确度:
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 工程brake任务参考 `assets/files/projects/`,需要详细阅读对应的注释
- 需要有一个配置文件,命名为 configs.xlsx
- 需要有三个结果文件,命名为 reach33/66/100_xxxxxxxx.xlsx
### 3. 电机电流测试
- 原理:使用 xCore socket 协议获取诊断数据,包括速度,力矩等信息,结合 modbus 和外部通信执行急停等动作
- 必要条件:
- RL 工程current任务参考 `assets/files/projects/`,需要详细阅读对应的注释
- 需要有一个结果文件,命名为 T_电机电流.xlsx
## 三、耐久测试数据采集
- 原理:根据设置的时间间隔,采集相应的场景周期指标数据
- 必要条件:
- RL 工程factory任务参考 `assets/files/projects/`,需要详细阅读对应的注释
## 三、注意事项
> **!!仅内网使用!!**
1. 仅适用于 xCore 2.3.0.7 及以上的版本
2. 仅适配了六轴工业/协作机型其他机型可能会存在使用上的问题具体可以找fanmingfu@rokae.com确认
3. 单轴电机电流数据处理,至少需要三个完整周期,使用本工具采集一般不会有问题,主要是针对手动采集命名的数据
4. 执行制动测试/电机电流采集/耐久测试的时候,执行过程中停止,需要重新关闭软件再次打开,才能正常使用
5. RL工程/寄存器文件/configs.xlsx文件已更新需要使用新版其他使用方法和之前工具一致
6. 基恩士采集数据时不同轮次每5次测试数据时间间隔最好大于 2 倍的周期时间,否则会出现采集的轮数不正确的情况,但数据是完整的
7. 激光数据处理只支持英文版本的数据文件
8. 耐久(场景)指标数据采集的工程运行周期需要小于 300s否则会出现异常
> **需要使用 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](https://github.com/TomSchimansky/CustomTkinter/issues/2296) 进行手动修改源码实现:
+ 运行 `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
---