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.
珞石测试部自动化工具
针对珞石工业协作六轴机器人的整机测试,该工具可以执行如下自动化操作,以减少人工处理时长,提高测试数据处理的效率和准确度:
- 制动数据,单轴数据处理 5min 以内
- 电机电流数据,全部轴数据处理 3min 以内
- ISO 激光数据整理,1min 以内
- wavelogger 波形处理,几乎不花费时间
- 制动自动化测试,40min 左右
- 电机电流自动化测试,15min 左右
- 耐久工程相关指标采集记录,可定制曲线并绘图
一、处理逻辑以及原理
该部分简要介绍了工具实现的核心逻辑原理,以及执行的必要条件。
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
- RL 工程,参考
3. 电机电流测试
- 原理:使用 xCore socket 协议获取诊断数据,包括速度,力矩等信息,结合 modbus 和外部通信执行急停等动作
- 必要条件:
- RL 工程,参考
assets/files/projects/
,需要详细阅读对应的注释 - 需要有一个结果文件,命名为 T_电机电流.xlsx
- RL 工程,参考
三、注意事项
- 仅适用于 xCore 2.3.0.7 及以上的版本
- 仅适配了六轴工业/协作机型,其他机型可能会存在使用上的问题,具体可以找fanmingfu@rokae.com确认
- 单轴电机电流数据处理,至少需要三个完整周期,使用本工具采集一般不会有问题,主要是针对手动采集命名的数据
- 执行制动测试/电机电流采集/耐久测试的时候,执行过程中停止,再次运行需要等待一分钟左右,输出框会有提示
- RL工程/寄存器文件/configs.xlsx文件已更新,需要使用新版,其他使用方法和之前工具一致
- 基恩士采集数据时,不同轮次(每5次测试)数据时间间隔最好大于 2 倍的周期时间,否则会出现采集的轮数不正确的情况,但数据是完整的
- 激光数据处理只支持英文版本的数据文件
需要使用 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
Description
Languages
Python
100%