大家好,
本论坛已提供示例后处理器一段时间,用于将VC机器人程序导出为原生机器人语言。现推出一款实现反向操作的插件,支持将原生机器人程序上传至VC仿真模型。当前首发版本为库卡翻译器,未来有望增加更多品牌支持。
安装方法:将zip文件解压至"My Commands"文件夹,重启应用程序后,"上传"按钮将显示在程序功能区选项卡中。
压缩包内含ReadMe.txt文件,提供各翻译器的快速使用指南。
version_history_xxxx_xx_xx.txt文件记录插件更新日志。
当前包含的上传器:
-
库卡 (.src/.dat)
-
ABB (.mod)
-
发那科 (.ls)
-
安川电机 (.JBI)
---
库卡翻译器支持上传单个.src文件。若同文件夹内含.dat文件及$config.dat文件,插件将自动识别。$config.dat文件用于读取基座坐标系、工具坐标系数据及可能的原点位置信息。
翻译器的功能范围有限。它可以处理PTP/LIN/SPTP/SLIN运动、子程序调用、二进制输入输出、IF和WHILE语句,以及简单的数据声明和赋值。翻译器在解析时使用正则表达式,因此如果您想修改解析器,需要一定的学习过程。
-k
RobotUploader_2021_12_08.zip(35.3 KB)
version_history_2021_12_08.txt(578 字节)
2 个赞
我已经将ABB上传器添加到原帖附件中。
该上传器的功能范围与Kuka上传器非常相似。您可以一次加载一个.mod文件,但也可以逐个加载其他模块,并将它们合并到现有程序中。加载多个模块时,请最后加载您的主模块,以便子程序存在以供调用引用。
对于DO/DI信号映射,您可以使用robotWrapper.SignalOutMapping和robotWrapper.SignalInMapping字典。因此,将real_signal:sim_signal对(例如"doArcOn":101)添加到这些字典中,以自定义映射以适应您的单元。如果没有字典,上传器会尝试从名称中查找信号索引(例如do12 => 12)。
上传器从模块加载基座和工具数据,并覆盖当前数据。如果不需要此操作,只需删除 upload() 函数中的 readBaseToolData() 调用。翻译中最常见的问题是基座/工具坐标系的位置。上传器会尝试寻找合适的节点来附加坐标系,但这要求仿真模型中的运动学结构与实际设备完全匹配。机构名称必须一致(例如,定位器的组件名称应为“STN1”)。另外,请注意轨道,因为在使用轨道时,机器人的世界坐标系可能与实际工作单元中的位置不同。在出现问题的情况下,请手动设置坐标系并阻止 readBaseToolData()。
外部轴值映射可以在 robotWrapper.ExAxisMapping 中更改。例如,如果实际工作单元中轨道为轴 7(~E1),定位器为轴 10(~E4)和 11(~E5),而在仿真模型中轨道为 E1,定位器为 E2 和 E3,则 ExAxMapping 应为 { 0:0, 3:1, 4:2, 1:3, 2:4, 5:5 }(使用从零开始的索引)。
MoveC 已加载,但仅作为两个直线运动。相关注释会说明原始运动实际上是圆弧运动。
-k
发那科上传器已添加到原帖附件中。
发那科上传器加载单个 .LS 文件,但您也可以将 POSREG.VA 放在同一文件夹中,上传器会识别它及其中的位置寄存器。您可以通过选择不重置现有程序,将其他 .LS 文件加载到同一仿真中。
该上传器存在一些限制。UFrame和UTool数据不会自动加载,需要手动设置。上传器不会转换所有跳转指令,仅转换构成循环的跳转,并将其转换为while循环。部分程序流程指令(如SELECT)不支持。在运动指令中,不支持OFFSET和TOOL_OFFSET。该上传器不支持Karel语言,仅支持.LS文件。
功能与同软件包中的其他转换器基本一致,并与论坛上的发那科下载器匹配(https://forum.visualcomponents.com/forums/topic/post-processor-with-sample-translators/)。
我未能在真实机器人上进行测试,欢迎提供相关反馈。
-k
我已在原帖中添加了安川上传器。
安川可读取PULSE和RECTAN格式的程序,但转换某些系统的程序时可能存在一些问题。如遇问题,请在本帖回复说明,我们将尝试更新转换器。详情请参阅软件包中的ReadMe.txt文件。
-k
你好 Keke!
我在发那科后处理器中发现了一些小问题。
在我的.ls文件中,0.xxx(浮点数)值被输出为.xxx或-.xxx。
后处理器也无法处理配置和位置名称。
P[1:"HOME"]{
GP1:
UF : 0, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 621.034 mm, Y = .549 mm, Z = 172.662 mm,
W = -174.542 deg, P = -.934 deg, R = 107.944 deg
};
IF 语句也存在问题。
它看起来像这样:
1: LBL[1] ;
2: !home ;
3: PAYLOAD[1] ;
4:J P[1:HOME] 100% FINE ;
5: ;
6: DO[102:LEF.HOME]=ON ;
7: DO[101:LEF.FENT]=ON ;
8: ;
9: DO[103:LEF.UZEMKESZ]=ON ;
10: !------------------------ ;
11: ;
12: IF DI[101:CIKLUS START/lef indulht]=ON AND DI[106:LEFUJO AUTOMATABAN]=ON,JMP LBL[2] ;
13: ;
14: JMP LBL[1] ;
15: !gep fole all ;
16: ;
17: LBL[2] ;
18: ;
19:J P[2] 100% CNT100 ;
20:…
希望这对你有用。
你好@Petr,
感谢反馈。我会把这些加入待办事项,并争取在近期提出解决方案。
此致,Keijo
你好 keke,
你们有计划添加三菱的上传器吗?
还有电装的上传/下载器。
你好 Bunta,
目前我们没有计划开发三菱或电装的上传器。电装的下载器未来或许可以加入我们的翻译器。
一般来说,下载器更容易制作,因此我们拥有的下载器更多。上传过程可能复杂得多,因为可能需要从多个来源读取数据,比如存储在作业文件之外的其他位置的全局变量。此外,本地语言有许多VC不支持的指令,例如JUMP-LABEL(或GOTO-LABEL)。将这些指令转换为VC程序非常困难。下载则相对容易,因为VC语句通常可以轻松映射到本地机器人指令。
-k
agaul 2021年11月23日 上午6:5311
嗨 Keke,
是否有可能在预处理器中添加 Adept 机器人?尤其是 Scara 机器人会很有趣。
祝好,
A
你好
非常棒的插件!我想问一下,以下在 KUKA 中创建的代码结构是否支持上传?这是一个 Base_Frame,我正在根据输入变量(例如调整堆叠高度)修改其数据。
&ACCESS RV
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\ExpertVorgabe
DEF Pickup_subject( )
ENDECL GLOBAL FRAME Base_data[13]
;*********************************************************
;Fixed offset program base by values or variables
;*********************************************************
Base_data[13]=$NULLFRAME
Base_data[13].x=Base_data[13].x+0 ;Shift base in x-direction
Base_data[13].y=Base_data[13].y+0 ;Shift base in y-direction
Base_data[13].z=Base_data[13].z+giLayerToPlace*rCurrentCellHeight+0 ;Shift base in z-direction
Base_data[13].a=Base_data[13].a+0 ;Shift base in z-rotation
Base_data[13].b=Base_data[13].b+0 ;Shift base in y-rotation
Base_data[13].c=Base_data[13].c+0 ;Shift base in x-rotation
;*********************************************************
;Set program base definition to table 1 and table 2
;*********************************************************
Base_data[16]=Base_data[2]
Base_data[16]=Base_data[16]:Base_data[13]
不,我认为这不会被翻译。这类数学运算很少能很好地转换为 VC 程序。虽然我们有 SetBase 语句,但问题是你不能在该语句中使用变量来移动基准。因此,将这种逻辑进行翻译几乎是不可能的,因为 VC 语言的词汇量比 KRL 少得多。
-k
1 个赞
有机会在近期获得斗山(Doosan)的预处理器/上传器吗?
keke 2023年5月26日 下午12:1615
目前没有计划开发新的预处理器。预处理器通常很难制作,因为VC语言比原生机器人语言简单得多,因此在将代码翻译到VC时存在很大的限制。最近的趋势更倾向于在虚拟控制器上运行原生代码,并将虚拟控制器连接到VC仿真。这样我们就不必担心VC控制器/执行器缺少某些功能。关于这种连接方式,针对斗山(Doosan)可能很快会有一些新消息。
-k
2 个赞
你好,近期有没有可能提供三菱(Mitsubishi)的预处理器?
我们没有计划为这个论坛插件开发新的转换器。如今,我们在机器人离线编程(OLP)领域有专门的产品(Robotics OLP - Visual Components)。该产品包含针对许多品牌(包括 UR)的转换器。可以说,这些 OLP 转换器总体上更好,因为它们是在生产环境中开发和测试的,而这些论坛插件更像是样本,通常仅针对虚拟控制器进行了有限的测试。当然,OLP 转换器不适用于基础的 Essentials 用户,但如果你需要一个好的离线编程软件,我建议你了解一下我们的 OLP 产品。
-k