diff --git a/aio/README.md b/aio/README.md index 8dbfe66..9c35038 100644 --- a/aio/README.md +++ b/aio/README.md @@ -130,6 +130,15 @@ pyinstaller --noconfirm --onedir --windowed --add-data "C:/Users/Administrator/A 2. excel 制动结果处理文件 3. excel configs.xlsx 配置文件 +> **需要注意的点** + +1. 使用之前需要手动修改点位信息,确保所有点位不会发生撞击之后,再进行自动化测试 +2. 工程文件不能手动重命名,需要重命名存档,可以导入HMI,然后另存为 +3. 务必正确填写configs.xlsx中的Target页面,A1单元格可以选择正负方向急停,但不完全保证100%,大概有95%左右的准确度 +4. 由于xCore系统问题,运行过程中可能会出现机器人宕机问题,如果遇到,可以手动重启控制柜,重新运行 +5. 运行过程中,如果是因为机器问题无法达到额定百分比速度,会在日志输出框提示,注意观察 +6. 运行自动化程序之前,确保机器处于正常状态,无故障,未触发急停 + #### 6) 电机电流自动化测试 只需要提前将如下文件放在指定路径下即可: @@ -137,6 +146,9 @@ pyinstaller --noconfirm --onedir --windowed --add-data "C:/Users/Administrator/A 2. excel 电机电流结果处理文件,一份模板即可 3. excel configs.xlsx 配置文件 +> **需要注意的点** + +基本同第五点 #### 其他 customtkinter的tabview组件不支持修改字体大小,可以参考 [Changing Font of a Tabview](https://github.com/TomSchimansky/CustomTkinter/issues/2296) 进行手动修改源码实现: @@ -432,4 +444,9 @@ v0.1.8.1(2024/07/05) v0.1.8.2(2024/07/08) 1. [APIs: do_brake.py]: 完成了制动性能测试逻辑,只不过制动信号传递生效延迟不可控,暂时pending 2. [APIs: do_current.py]: 修改曲线数据时序,主要是value data取反即可,解决了波形锯齿明细的问题 -3. [APIs: openapi.py]: modbus新增了触发急停信号的寄存器 stop0_signal,并重写了解除急停,socket新增了register.set_value协议 \ No newline at end of file +3. [APIs: openapi.py]: modbus新增了触发急停信号的寄存器 stop0_signal,并重写了解除急停,socket新增了register.set_value协议 + +v0.1.9.0(2024/07/10) +1. 完成了制动性能的自动化采集 +2. 完善了modbus浮点数读写相关的功能 +3. 修改了target.zip工程,该工程目前适配电机电流和制动性能 \ No newline at end of file diff --git a/aio/assets/configs.xlsx b/aio/assets/configs.xlsx index c8ae10d..5b781c6 100644 Binary files a/aio/assets/configs.xlsx and b/aio/assets/configs.xlsx differ diff --git a/aio/assets/file_version_info.txt b/aio/assets/file_version_info.txt index 02f3e89..c21b6b5 100644 --- a/aio/assets/file_version_info.txt +++ b/aio/assets/file_version_info.txt @@ -6,8 +6,8 @@ VSVersionInfo( ffi=FixedFileInfo( # filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4) # Set not needed items to zero 0. - filevers=(0, 1, 8, 0), - prodvers=(0, 1, 8, 0), + filevers=(0, 1, 9, 0), + prodvers=(0, 1, 9, 0), # Contains a bitmask that specifies the valid bits 'flags'r mask=0x3f, # Contains a bitmask that specifies the Boolean attributes of the file. @@ -31,12 +31,12 @@ VSVersionInfo( '040904b0', [StringStruct('CompanyName', 'Rokae - https://www.rokae.com/'), StringStruct('FileDescription', 'All in one automatic toolbox'), - StringStruct('FileVersion', '0.1.8.0 (2024-07-04)'), + StringStruct('FileVersion', '0.1.9.0 (2024-07-10)'), StringStruct('InternalName', 'AIO.exe'), StringStruct('LegalCopyright', '© 2024-2024 Manford Fan'), StringStruct('OriginalFilename', 'AIO.exe'), StringStruct('ProductName', 'AIO'), - StringStruct('ProductVersion', '0.1.8.0 (2024-07-04)')]) + StringStruct('ProductVersion', '0.1.9.0 (2024-07-10)')]) ]), VarFileInfo([VarStruct('Translation', [1033, 1200])]) ] diff --git a/aio/assets/target.zip b/aio/assets/target.zip index d7aea5a..651d577 100644 Binary files a/aio/assets/target.zip and b/aio/assets/target.zip differ diff --git a/aio/assets/vers b/aio/assets/vers index e3c9505..47cff81 100644 --- a/aio/assets/vers +++ b/aio/assets/vers @@ -1 +1 @@ -0.1.8.0 @ 07/04/2024 \ No newline at end of file +0.1.9.0 @ 07/10/2024 \ No newline at end of file diff --git a/aio/code/automatic_test/do_brake.py b/aio/code/automatic_test/do_brake.py index 926df32..6b94f6b 100644 --- a/aio/code/automatic_test/do_brake.py +++ b/aio/code/automatic_test/do_brake.py @@ -166,6 +166,8 @@ def run_rl(path, loadsel, hr, md, config_file, prj_file, result_dirs, w2t): {"name": "device_servo_trq_feedback", "channel": 5}, {"name": "device_safety_estop", "channel": 0}, ] + wb = load_workbook(config_file, read_only=True) + ws = wb['Target'] for condition in result_dirs: _reach = condition.split('_')[0].removeprefix('reach') _load = condition.split('_')[1].removeprefix('load') @@ -193,7 +195,12 @@ def run_rl(path, loadsel, hr, md, config_file, prj_file, result_dirs, w2t): ssh = SSHClient() ssh.set_missing_host_key_policy(AutoAddPolicy()) ssh.connect('192.168.0.160', 22, username='luoshi', password='luoshi2019') - _rl_cmd = f"brake_E(j{axis}_{_reach}_p, j{axis}_{_reach}_n, p_speed, p_tool)" + if ws.cell(row=1, column=1).value == 'positive': + _rl_cmd = f"brake_E(j{axis}_{_reach}_n, j{axis}_{_reach}_p, p_speed, p_tool)" + elif ws.cell(row=1, column=1).value == 'negative': + _rl_cmd = f"brake_E(j{axis}_{_reach}_p, j{axis}_{_reach}_n, p_speed, p_tool)" + else: + w2t("configs.xlsx中Target页面A1单元格填写不正确,检查后重新运行...", 0, 111, 'red', 'Automatic Test') _rl_speed = f"VelSet {_speed}" cmd = 'cd /home/luoshi/bin/controller/; ' cmd += 'sudo sed -i "/brake_E/d" projects/target/_build/brake/main.mod; ' @@ -238,8 +245,6 @@ def run_rl(path, loadsel, hr, md, config_file, prj_file, result_dirs, w2t): if item.get('channel', None) == axis-1 and item.get('name', None) == 'hw_joint_vel_feedback': _ = abs(RADIAN*sum(item['value'])/len(item['value'])) speed_max = max(_, speed_max) - wb = load_workbook(config_file, read_only=True) - ws = wb['Target'] speed_target = float(ws.cell(row=3, column=axis+1).value) * float(_speed) / 100 if speed_max < speed_target*0.95 or speed_max > speed_target*1.05: w2t(f"Axis: {axis}-{count} | Speed: {speed_max} | Shouldbe: {speed_target}", 0, 0, 'indigo', 'Automatic Test')