PLC工程师:ABB机器人编程实用技巧,多项案例!( 三 )


4
PART
双工位预约程序
1)有如下双工位生产
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
2)工艺过程如下:
人工完成1#工位上料后按按钮di_1(按钮不带保持 , 即人手松开信号为0))机器人焊接1#工位 。
此过程中人工对2#工位上下料 , 完成后按di_2完成预约(即不需要等机器人完成1#工作) 。
机器人完成1#工作后 , 由于收到过di_2预约信号 , 机器人自动去完成2#工位
3)我们通过中断来实现 。
【PLC工程师:ABB机器人编程实用技巧,多项案例!】4)中断的意义为 , 机器人后台在不断扫描(类似PLC) , 和机器人前台运动不冲突 。后台实时扫描到信号就会去执行设定的中断程序 , 中断程序里没有运动指令 , 前台机器人不停 , 不影响运动
5)新建一个例行程序 , 取名tr_1,注意:类型选中断(trap)
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
6)进入中断程序 , 插入指令如下 , 即当机器人执行中断程序时 , 给bool量置true
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
同理设置第二个中断程序
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
7)进入主程序 , 设置中断及对应的io信号
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
37行的意思是 , 任何时候di_1信号0变1 , 就会触发执行tr_1中断程序 , 即置flag1为true
35-40行程序只要运行过一遍即可 , 类似于设置开关 , 不需要反复运行
8)主要程序如下 。即如果没有人给di信号 , 机器人就在home位等待 。
9)
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
5
PART
与相机通讯的Socket收发数据处理与提取
1)相机通常发送字符串给机器人 , 比如”1.23,4.56,7.89D”,即x为1.23 , y为4.56 , z的角度为7.89 , 用D作为结束符 , 数据之间用“ , ”隔开 。
2)如果机器人收到上述字符串 , 如何把字符串提取出来并付给变量deltaX , deltaY , 和thetaZ?
3)建立若干num变量 , 用以存储过程数据 , 比如StartBit1 , 表示x的数据从第几位开始 , Endbit1表示x的数据结束是第几位 , Lenbit1表示x数据的长度 , s1表示提取的x的值的字符串
4)
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
5)先假设x的第一位是1 , 给Startbit1赋值为1
6)插入函数strfind,查找第一个“ , ”在第几位 , 得到EndBit1值
7)
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
8)EndBit1减去StartBit1就是x的数据长度
9)同理得到y和theta的信息
PLC工程师:ABB机器人编程实用技巧,多项案例!
文章图片

文章图片
10)通过StrPart函数 , 提取从StartBit1开始到LenBit1结束的字符串 , 即x的值的字符串
11)
PLC工程师:ABB机器人编程实用技巧,多项案例!