HELLO 各位小伙伴,大家好,今天带来一套程序,这也不是我写的程序,不过思路还是很不错的,分享出来大家可以在自己写程序时借鉴一下。
整套程序可归类为搬运应用,是从A1位置抓取,搬运到B位置,从A2位置抓取搬运到B位置,不合格产品搬运到C区域。
下面是区域分布图:
程序的逻辑并不复杂,主程序并没有采用cell,而是用自己写的main程序,机器人和PLC之间采用profinet通讯。由plc采集产品是否到达,并且判断是否为合格产品。发送给机器人,程序号进行抓取。
下面我画了个简单的流程图(有点小建议放大了看):
接下来我们来看看机器人的主程序:
代码语言:javascript复制DEF main( )
;-------------------------------------------
;
; Program: Main2
; Application: Outotec, Tongling 1 outfeed
;
; Comments: Unloading of stripstation 1&2
init()
CONTINUE
LOOP
CONTINUE
IF mission==0 THEN
WAIT FOR mission > 0
ENDIF
continue
PULSE (mission_acc,TRUE,0.2)
CONTINUE
SWITCH mission
CASE 1; Strip 1 to outfeed
Pickup(1)
Outfeed(1)
CASE 2 ; Strip 2 to outfeed
Pickup(2)
Outfeed(2)
CASE 3 ; Strip 1 to reject
Pickup(1)
Reject(1)
CASE 4 ; Strip 2 to reject
Pickup(2)
Reject(2)
CASE 5 ; Strip 2 to reject
Reject(3)
CASE 6 ; To service position
;to_service()
ENDSWITCH
ENDLOOP
END
程序解释:
9 行 初始化程序
12 行 主循环开始
14 行 检测misssim结果是否为0
15 行 如果misssim结果为0则等待结果大于0
19 行 mission_acc脉冲输出0.2秒,表示已经收到misssim
22 行 根据misssim进入分支,包含5个有效分支
分支1:A1区域抓取,放置B区域
分支2:A2区域抓取,放置B区域
分支3:A1区域抓取,放置C区域
分支4:A2区域抓取,放置C区域
分支5:放置C区域
抓取程序Pickup、放置程序Outfeed、不合格放置程序Reject,根据传入的不同数字决定了执行不同路径(括号中的1、2、3),并且程序只有4个示教点,所以这套程序的子程序一定很精彩,敬请期待下回分解