robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)

机器人工作站外部设备的运行通常由设备独立的控制系统进行控制,而在Robotstudio软件中外围设备并不能像真实工作站那样,有独立的控制器。这里我们采用机器人后台运行程序来模拟外围设备的控制器,通过后台运行程序控制外围设备,同时与机器人进行I/O信号交互,以达到协同工作的目的。

一、机器人系统选项修改

由于我们在创建机器人控制系统时并没有添加机器人多任务运行选项,所以当前的机器人并不能进行后台程序的运行,因此我们需要修改机器人控制的选项参数,将多任务运行选项添加进来。

1.Robotstudio软件中“控制器”菜单下,左侧浏览树中右击创建的机器人控制,在弹出的快捷菜单中点选“更改选项”。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(1)

2.在弹出的“更改选项”对话框中,可以对机器人的控制系统选项参数进行修改、添加或删除。这里我们勾选“623-1 Multitasking”选项,即机器人多任务运行,点击确定按钮。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(2)

3.在弹出的重启机器人控制器提示框中点击是,重启完成后,机器人多任务运行选项已被添加成功。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(3)

二、机器人I/O信号配置

1.需要配置的机器人I/O信号包含物理I/O信号与虚拟I/O信号,完整的I/O信号配置如下表所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(4)

2.机器人物理I/O信号的配置方法小木在以前发布的文章中已经多次提及,这里不再赘述。机器人虚拟I/O信号在真实的机器人工作站中经常被用到,通常情况下虚拟I/O信号与Cross Connection一起使用,用于在机器人中模拟PLC,实现I/O信号的逻辑“与”、“或”、“非”等运算,然后再把运算后的输出结果与物理I/O信号关联起来。机器人虚拟I/O信号的配置方法与物理I/O信号配置方法类似,只是在配置时不需要选择I/O信号板与I/O地址,只设置一个信号名称与信号类型即可。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(5)

3.Cross Connection配置也在I/O System对话框中完成,右击对话框左侧浏览树中的“Cross Connection”,在弹出的快捷菜单中点击“新建Cross Connection…”,然后在弹出的实例编辑器中进行功能配置。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(6)

上述配置的含义是,当数控机床进给机构反馈信号VM_FD_R被复位,且数控机床防护门反馈信号VM_D_R被置位时,数控机床加工反馈信号RM_R被置位;反之,数控机床加工反馈信号RM_R被复位。

4.参考步骤3为机器人配置其他Cross Connection操作,配置内容如下图所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(7)

上述配置的含义是,(1)当给料机构A进给反馈信号VM_FYA_R与给料机构A工件生成反馈信号VM_FWA_R同时被置位时,给料机构A工件生成反馈信号RWA_R被置位;反之,给料机构A工件生成反馈信号RWA_R被复位。(2)当给料机构B进给反馈信号VM_FYB_R与给料机构B工件生成反馈信号VM_FWB_R同时被置位时,给料机构B工件生成反馈信号RWB_R被置位;反之,给料机构B工件生成反馈信号RWB_R被复位。

5.系统输入I/O信号可指定具体的系统输入操作,比如机器人程序运行启动操作Start或机器人伺服电机上电操作Motors on。该输入操作会在不使用FlexPendant示教器或其它硬件装置的情况下触发一项交由系统处理的系统行动。此功能通常与外部PLC信号连接,用来对机器人进行外部启停运行操作。系统I/O信号配置也在I/O System对话框中完成,右击对话框左侧浏览树中的“System Input”,在弹出的快捷菜单中点击“新建System Input…”,然后在弹出的实例编辑器中进行功能配置。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(8)

上述配置的含义是,当机器人启动运行信号R_Start被触发时,机器人由主程序启动运行,运行模式为连续运行方式。

6.参数上述步骤5为机器人配置其他系统输入I/O信号,配置内容如下图所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(9)

上述配置的含义是,(1)当机器人停止运行信号R_Stop被触发时,机器人运行完整段RAPID程序(即主例程中的最后一条指令结束)时停止运行;(2)当机器人运行暂停信号R_P被触发时,机器人停止执行相关的RAPID程序,即机器人暂停运行;(3)当机器人运行继续信号R_C被触发时,机器人会用当前指令来启动一段RAPID程序,即机器人继续运行被暂停的程序,运行模式为连续方式。

7.系统输出I/O信号可为一项具体的系统状态指定输出I/O信号,当出现相应的系统状态时,系统便会在无用户输入的情况下自动设置对应的输出I/O信号。此功能通常与外部PLC信号连接,用来远程监视机器人系统的运行状态。右击对话框左侧浏览树中的“System Output”,在弹出的快捷菜单中点击“新建System Output…”,然后在弹出的实例编辑器中进行功能配置。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(10)

上述配置的含义是,当机器人前台程序处于运行状态时,机器人已经运行信号R_RUN被触发。

8.以上所有机器人I/O信号相关配置完成后,重启机器人系统,只有重启机器人系统后配置的I/O信号才能生效。

三、工作站逻辑设置

工作站逻辑设置是将创建的Smart组件的监控信号与机器人控制器中的监控信号连接起来,以模拟真实的机器人工作站中机器人与外部设备的信号连接,实现机器人与外部设备的信号交互。

“仿真”菜单栏下,点击“工作站逻辑”命令按钮,在弹出的工作站逻辑对话框中,点选下方的“设计”标签,然后将机器人系统中创建的虚拟I/O信号与对应的Smart组件监控信号进行连接,如VM_FD_C→SM_FD_C、SM_FD_R→VM_FD_R,完整连接信号表为上述步骤中的I/O信号配置表,全部连接完成后如下图所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(11)

四、自动给料装置Smart组件修改

由于小木在自动给料装置Smart组件创建时想得不够周全,因此这里需要在添加一个LogicGate子对象组件,并将其设置为逻辑取反操作,然后将LogicGate_3输入信号与面传感器PlanSensor的输出信号连接;将LogicGate_3输出信号与LogicSRLatch_3的输入信号连接,LogicSRLatch_3的输出操作设置为Reset。这样在将自动给料装置给出的工件拿走后,自动给料装置的工件生成反馈信号就会被复位,以便进入下一个循环。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(12)

上图为自动给料装置A的Smart组件信号修改配置,参考上述配置为自动给料装置B添加相应的子对象组件,并配置同样的I/O连接。

五、后台运行程序编写

ABB机器人不仅可以运行前台程序,还可以运行后台程序,只是需要在机器人控制系统中添加“623-1 Multitasking”选项,即多任务运行。前台运行程序也就是我们通常在示教器上示教的机器人运动的例行程序,后台运行程序一般情况下是自动运行的,而且是与前台程序一起并行实时运行的,后台程序运行的时候,我们通常是看不到的,但是我们可以对后台运行程序进行创建、编写、修改或删除等操作。后台运行程序一般情况下都是用来执行一些需要及时响应的I/O信号交互程序,I/O信号与外部PLC连接,实现PLC对机器人的实时监控。

1.“控制器”菜单栏下,点击“配置”命令按钮下的小三角,在弹出的下拉菜单中选择“Controller”,然后在弹出的对话框中右击左侧类型列表中的“Task”,点击“新建Task…”。在弹出的实例编辑器中Task后输入任务名称,如M_TASK,作为数控机床后台运行程序;Type后点选“Normal”,只有选择Normal类型时才能对后台运行程序进行编辑操作。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(13)

2.参考步骤1为自动给料装置创建后台运行任务,任务名称为F_TASK,编辑完成后的程序列表如下图所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(14)

3.打开“虚拟示教器”,将机器人系统切换到手动运行状态,点击“ABB”菜单,选择“程序编辑器”,然后点击创建的数控机床后台运行任务名称“M_TASK”,此时弹出无程序提示框,点击“新建”,为数控机床后台运行任务创建例行程序。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(15)

4.参考步骤3为自动给料装置后台运行任务F_TASK添加例行程序。

5.例行程序创建完成后,在仿真软件的“RAPID”菜单栏下,左侧控制器浏览树中RAPID下数控机床后台运行任务M_TASK的模块下添加了主程序main。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(16)

6.双击数控机床后台运行例行程序main,在打开的程序编辑对话框中编写如下程序,用以模拟数控机床控制器,运行机床控制程序,控制机床加工运行。例行程序含义如程序注释所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(17)

完整程序代码如下所示:

MODULE MainModule PROC main() WHILE TRUE DO IF RM_C=1 THEN!循环扫描数控机床加工控制信号是否为1,若为1,则向下执行;若不为1,则继续扫描 Set VM_D_C;!置位数控机床防护门控制信号为1 WaitUntil VM_D_R=1;!等待数控机床防护门反馈信号为1 Set VM_F_C;!置位数控机床法兰旋转控制信号为1 Set VM_FD_C;!置位数控机床进给机构控制信号为1 WaitTime 5;!等待5s,用以模拟数控机床加工时间 Reset VM_FD_C;!复位数控机床进给机构控制信号为0 WaitUntil VM_FD_R=1;!等待数控机床进给机构反馈信号为1 Reset VM_F_C;!复位数控机床法兰旋转控制信号为0 Reset VM_D_C;!复位数控机床防护门控制信号为0 WaitUntil VM_D_R=0;!等待数控机床防护门反馈信号为0 Reset RM_C;!复位数控机床加工控制信号为0 ENDIF ENDWHILE ENDPROC ENDMODULE

程序代码编写完成后点击上方的“应用”命令按钮,对程序代码进行编译上传,编译之前最好将中文注释删除或翻译为英语,否则可能出现不兼容的情况。

7.参考步骤6为自动给料装置编写后台运行程序,程序代码如下图所示。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(18)

完整程序代码如下所示:

MODULE MainModule VAR bool flag4:=FALSE;!声明布尔变量flag4,初始状态为FALSE VAR bool flag5:=FALSE;!声明布尔变量flag5,初始状态为FALSE PROC main() WHILE TRUE DO flag4:=RWA_C=1 AND RWB_C=0;!对自动给料装置A工件生成控制信号、自动给料装置B工件生成控制信号做逻辑“与”运算,若RWA_C为1且RWB_C为0,则flag4为1;否则为0 flag5:=RWA_C=0 AND RWB_C=1;!对自动给料装置A工件生成控制信号、自动给料装置B工件生成控制信号做逻辑“与”运算,若RWA_C为0且RWB_C为1,则flag4为1;否则为0 IF flag4=TRUE THEN!循环扫描flag4,若为TRUE则向下执行;若不为TRUE则继续扫描 Reset VM_FYB_C;!复位给料机构B进给控制信号为0 WaitUntil VM_FYB_R=0;!等待给料机构B进给反馈信号为0 WaitUntil RWA_R=0;!等待自动给料装置A工件生成反馈信号为0 Set VM_FYA_C;!置位给料机构A进给控制信号为1 WaitUntil VM_FYA_R=1;!等待给料机构A进给反馈信号为1 Set VM_FAW_C;!置位自动给料装置A工件生成控制信号为1 WaitUntil VM_FWA_R=1;!等待自动给料装置A工件生成反馈信号为1 Reset VM_FAW_C;!复位自动给料装置A工件生成控制信号为0 Reset RWA_C;!复位自动给料装置A工件生成控制信号为0 ELSEIF flag5=TRUE THEN!循环扫描flag5,若为TRUE则向下执行;若不为TRUE则继续扫描 Reset VM_FYA_C;!复位给料机构A进给控制信号为1 WaitUntil VM_FYA_R=0;!等待给料机构A进给反馈信号为0 WaitUntil RWB_R=0;!等待自动给料装置B工件生成反馈信号为0 Set VM_FYB_C;!置位给料机构B进给控制信号为1 WaitUntil VM_FYB_R=1;!等待给料机构B进给反馈信号为1 Set VM_FBW_C;!置位自动给料装置B工件生成控制信号为1 WaitUntil VM_FWB_R=1;!等待自动给料装置B工件生成反馈信号为1 Reset VM_FBW_C;!复位自动给料装置B工件生成控制信号为0 Reset RWB_C;!复位自动给料装置B工件生成控制信号为0 ENDIF ENDWHILE ENDPROC ENDMODULE

注:后台运行程序编写完成后需要进行测试运行,待测试运行成功后,将后台运行任务的Type改为“Semistatic”,以便于机器人启动后后台任务自动运行。当然,这里是用来做仿真,这个参数不修改也可以。若是真实的机器人则需对此参数进行修改。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(19)

六、程序测试运行

1.在机器人的前台运行任务T_ROB1的主程序main中编写数控机床与自动给料装置的运行测试程序,如下图所示,程序含义请参考注释。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(20)

完整程序代码如下所示:

MODULE Module1 VAR bool flag1:=FALSE;!声明布尔变量flag1,初始状态为FALSE VAR bool flag2:=FALSE;!声明布尔变量flag2,初始状态为FALSE VAR bool flag3:=FALSE;!声明布尔变量flag3,初始状态为FALSE PROC Main() reg1:=0;!设置reg1初始值为1 Reset RWA_C;!复位自动给料装置A工件生成控制信号为0 Reset RWB_C;!复位自动给料装置B工件生成控制信号为0 WHILE TRUE DO !数控机床运行测试程序 WaitUntil RM_R=1;!等待数控机床加工反馈信号为1 WaitTime 2;!等待2s,用以模拟机床停止加工时间 Set RM_C;!置位数控机床加工控制信号为1 !自动给料装置运行测试程序 flag1:=reg1>=0 AND reg1<=2;!若0≤reg1≤2,则flag1为TRUE;否则为FALSE flag2:=reg1>=3 AND reg1<=5;!若3≤reg1≤5,则flag2为TRUE;否则为FALSE flag3:=reg1>=6;!若reg1≥6,则flag3为TRUE;否则为FALSE IF flag1=TRUE THEN!循环扫描flag1是否为TRUE,若为TRUE,则向下执行;若不为TRUE,则继续扫描 WaitUntil RWB_R=0;!等待自动给料装置B工件生成反馈信号为0 WaitUntil RWA_R=0;!等待自动给料装置A工件生成反馈信号为0 Reset RWB_C;!复位自动给料装置B工件生成控制信号为0 Set RWA_C;!置位自动给料装置A工件生成控制信号为1 WaitUntil VM_FWA_R=1;!等待自动给料装置A工件生成反馈信号为1 reg1:=reg1 1;!reg1递增1运算 ELSEIF flag2=TRUE THEN!循环扫描flag2是否为TRUE,若为TRUE,则向下执行;若不为TRUE,则继续扫描 WaitUntil RWA_R=0;!等待自动给料装置A工件生成反馈信号为0 WaitUntil RWB_R=0;!等待自动给料装置B工件生成反馈信号为0 Reset RWA_C;!复位自动给料装置A工件生成控制信号为0 Set RWB_C;!置位自动给料装置B工件生成控制信号为1 WaitUntil VM_FWB_R=1;!等待自动给料装置B工件生成反馈信号为1 reg1:=reg1 1;!reg1递增1运算 ELSEIF flag3=TRUE THEN!循环扫描flag3是否为TRUE,若为TRUE,则向下执行;若不为TRUE,则继续扫描 reg1:=0;!将reg1赋值为0 ENDIF ENDWHILE ENDPROC ENDMODULE

2.注释掉自动给料装置运行测试程序,只留下数控机床运行测试程序,然后然后点击“程序指针”命令按钮下的小三角,在弹出的下拉菜单中点击“将程序指针设为所有任务中的主例行程序”。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(21)

3.在仿真设定对话框中设置与数控机床仿真相关的机器人任务、Smart组件等。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(22)

4.点击“播放”命令按钮,对数控机床进行运行测试。测试完成后点击“停止”按钮停止仿真运行,然后点击“重置”按钮,恢复机器人、数控机床原始位置,以便重新仿真运行。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(23)

点击可查看仿真运行视频

5.参考上述步骤,对自动给料装置后台运行程序进行运行测试。在测试之前,首先要把自动给料装置的Smart组件中的Source子对象组件中的“Transient”选项取消勾选,测试运行时能够生成真实的工件,以便于对工件进行手动移动操作。

robotstudio编写程序在哪编(机器人后台运行程序创建与运行测试)(24)

6.测试运行过程中,可以使用“基本”菜单栏中的“移动”命令按钮,然后再左侧布局浏览树中点选生成的工件,对工件进行移动。移动时一定要等到反馈信号“RWA_R”或“RWB_R”信号被置位后再进行移动,否则会出现错误。

注:运行测试过程中若出现信号交互错误的情况,可尝试重启机器人系统,然后重复上述操作。

The End


上一篇:Robotstudio软件:机器人给料装置自动给料Smart组件添加与配置

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页