v0.1.9.0(2024/07/10)
1. 完成了制动性能的自动化采集 2. 完善了modbus浮点数读写相关的功能 3. 修改了target.zip工程,该工程目前适配电机电流和制动性能
This commit is contained in:
		@@ -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协议
 | 
			
		||||
3. [APIs: openapi.py]: modbus新增了触发急停信号的寄存器 stop0_signal,并重写了解除急停,socket新增了register.set_value协议
 | 
			
		||||
 | 
			
		||||
v0.1.9.0(2024/07/10)
 | 
			
		||||
1. 完成了制动性能的自动化采集
 | 
			
		||||
2. 完善了modbus浮点数读写相关的功能
 | 
			
		||||
3. 修改了target.zip工程,该工程目前适配电机电流和制动性能
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -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])])
 | 
			
		||||
  ]
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
0.1.8.0 @ 07/04/2024
 | 
			
		||||
0.1.9.0 @ 07/10/2024
 | 
			
		||||
@@ -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')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user