|
'/////////////////////////////////////////////////////////////
'*/项目:XYO-手动版 涂油 /*
'*/项目工程师: zhou Tel:136****7606 /*
'*/项目启动时间:2025/1/1 /*
'/////////////////////////////////////////////////////////////
'*/机械手系统IP:192.168.0.2.23(系统指令&编程) /*
'/////////////////////////////////////////////////////////////
'
'***************************SO输出信号说明****************************
'SO2(0):取料完成1 SO3(0):初始化正常结束
'SO2(1):取料完成2 SO3(1):初始化异常结束
'SO2(2):取料完成3 SO3(2):
'SO2(3):取料完成4 SO3(3):
'SO2(4):放料完成1 SO3(4):
'SO2(5):放料完成2 SO3(5):
'SO2(6):放料完成3 SO3(6): 抖料盘触发
'SO2(7):放料完成4 SO3(7):
'
'SO4(0):快换盘阀去基本位 SO5(0):取料3阀去基本位
'SO4(1):快换盘阀去工作位 SO5(1):取料3阀去工作位
'SO4(2):旋转气缸去基本位 SO5(2):取料4阀去基本位
'SO4(3):旋转气缸去工作位 SO5(3):取料4阀去工作位
'SO4(4):取料1阀去基本位 SO5(4):吸真空1去基本位
'SO4(5):取料1阀去工作位 SO5(5):吸真空1去工作位
'SO4(6):毛刷吹气阀去基本位 SO5(6):吸真空2去基本位
'SO4(7):毛刷吹气阀去工作位 SO5(7):吸真空2去工作位
'
'SO6(0):油脂1阀输出 SO7(0):快换盘异常报警
'SO6(1):油脂2阀输出 SO7(1):连续取料失败提示(上升沿接收黄灯提示不停机)
'SO6(2):油脂3阀输出 SO7(2):连续NG报警输出(上升沿接收红灯报警提示需复位)
'SO6(3):旋转气缸去工作位 SO7(3):
'SO6(4):毛刷转动输出 SO7(4):
'SO6(5):扫码请求 SO7(5):
'SO6(6): SO7(6):
'SO6(7): SO7(7):
'
'SO10():发料号(编号)
'SO11():快换盘放完(编号)
'SO12():快换盘取完(编号)
'SO13():预留数字输出
'***************************SI输入信号说明****************************
'SI2(0):允许取料1 SI3(0):物料感应1(抓手1)
'SI2(1):允许取料2 SI3(1):物料感应2(抓手2)
'SI2(2):允许取料3 SI3(2):物料感应3(抓手3)
'SI2(3):允许取料4 SI3(3): 中转感应器1
'SI2(4):流线允许放1 SI3(4): 中转感应器2
'SI2(5):流线允许放2 SI3(5): 中转感应器3
'SI2(6):流线允许放3 SI3(6): 抖料盘已就绪
'SI2(7):流线允许放4 SI3(7):
'
'SI4(0):快换盘阀在基本位 SI5(0):取料3阀在基本位
'SI4(1):快换盘阀在工作位 SI5(1):取料3阀在工作位
'SI4(2):旋转气缸在基本位 SI5(2):取料4阀在基本位
'SI4(3):旋转气缸在工作位 SI5(3):取料4阀在工作位
'SI4(4):取料1阀在基本位 SI5(4):吸真空1在基本位
'SI4(5):取料1阀在工作位 SI5(5):吸真空1在工作位
'SI4(6):取料2阀在基本位 SI5(6):吸真空2在基本位
'SI4(7):取料2阀在工作位 SI5(7):吸真空2在工作位
'
'SI6(0): SI7(0):
'SI6(1): SI7(1):
'SI6(2): SI7(2):连续NG接收复位
'SI6(3): SI7(3):
'SI6(4): SI7(4):
'SI6(5): SI7(5):
'SI6(6): SI7(6):
'SI6(7): SI7(7):
'
'SI10():收料号(编号)
'SI11():收换盘放完(编号)
'SI12():收换盘取完(编号)
'SI13():预留数字输入
'########################## 点位说明 #############################
'P0:HOME
'P1: 预留
'P2: 取料侧过渡点(正常手系)
'P3: 放料侧过渡点(正常手系)
'P4: 取料侧过渡点(相反手系)
'P5: 放料侧过渡点(相反手系)
'P6: 预留
'P7: 计算占用1
'P8: 计算占用2
'P9: 计算占用3
'P10~P14: 快换盘放1~5位
'P15~P19: 快换盘取1~5位
'P20~P24: 快换盘外侧1~5位(取快换盘后向外偏移)
'P25: 快换盘放总过渡(去放快换盘时外侧总过渡点)
'P26: 快换盘取总过渡(去取快换盘时外侧总过渡点)
'P30~P34: NG排料位置1~5位
'
'料号1----取放点位
'P100--P103:取码垛A1(4点码垛占用_-物料1)
'P104--P105:取抖料盘1&2(两个抖料盘点)
'P106--P107:取中转1&2(中转启用时中转取料点)
'P110--P111:放中转1&2(中转启用时中转放料点)
'P112--P114:放流线1&2&3(放入流线时点位)
'P115--P116:放流线1&2&3辅助(放入流线时点位辅助)
'P120--P139:涂油点位(涂油轨迹占用)
'P140--P145:刮油点位(清理毛刷)
'P150--P153:取码垛B1(4点码垛占用_-物料2)
'
*GOHOME:
'*********************初始化参数****************************
ASPEED 10 '初始化速度(自动速度在MAIN第一步设置)
ACCEL 80 '加速率
DECEL 80 '减速度
DO2()=0 '复位所有输出信号
DO3()=0 '复位所有输出信号
SO2()=0
SO3()=0
SO4()=0
SO5()=0
SO6()=0
SO6()=0 '料号发送=0
SO7()=0 '快换盘放完=0
SO10()=0 '快换盘取完=0
SO11()=0 '通讯占位
SO5(2)=1 '涂油阀关
HIGH%=100 '高速率
LOW%=80 '低速率
MIN%=40 '最低速率
SGI1=0 '刮油次数归零
Z!=0.00 '门型移动时Z安全高度
Z1!=80.00 '抬升高度
Plt0%=1 '托盘初始料位,根据需要,执行后从第1个开始。
SO4(7,6)=&B01 '毛刷吹气阀回基本位
WAIT SI4(6)=1 '等待毛刷吹气阀在原点
MOTOR ON
'
'*********************初始化判断****************************
*PANDUAN:
''获取机器人当前位置
P5000=WHRXY '开机运行,将当前点坐标强制写入P5000
X!=LOC1(P5000) 'X!等于P5000内X轴坐标值
Y!=LOC2(P5000) 'Y!等于P5000内Y轴坐标值
R!=LOC4(P5000) 'U!等于P5000内U轴坐标值
''左右手系判断
A%=ARMCND 'ARMCND为1=右手系统,2=左手系统,
IF A%=1 THEN
GOTO *R1 '去右手系统状态的位置判断
ELSE
GOTO *L1 '去左手系统状态的位置判断
ENDIF
'
''''根据机器人当前位置区不同的过渡点
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
*L1:
LEFTY '左手臂姿态
'R1!=LOC4(P0) 'U!等于P0内U轴坐标值
'DRIVE(4,R1!),S=MIN% '第四轴移动到R!
IF X!<197.00 THEN '机械手在取料侧
DRIVE(3,Z!),CONT,S=HIGH% '第三轴移动到Z!
MOVE L,P0 '到HOME点
ELSEIF X!>=197.00 THEN '判断机器人区域
DRIVE(3,Z!),CONT,S=HIGH%
MOVE P,P1 '到回原点左手系过度点1
MOVE L,P0 '到HOME点
ENDIF
GOSUB *GUAYOU '调用刮油程序
SO3(0) =1 '任务完成开(初始化完成)
DELAY 1000 '等待PLC 1秒
SO3(0) =0 '任务完成关(初始化完成)
SO3(1) =1 '机械手在安全位
GOTO *MAIN
''''根据机器人当前位置区不同的过渡点
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
*R1:
RIGHTY '右手臂姿态
'R2!=LOC4(P0) 'U!等于P0内U轴坐标值
'DRIVE(4,R2!),S=MIN% '第四轴移动到R!
IF X!<197.00 THEN '机械手在取料侧
DRIVE(3,Z!),CONT,S=HIGH% '第三轴移动到Z!
MOVE P,P6 '到放料过渡点
MOVE P,P0 '到HOME点
ELSEIF X!>=197.00 THEN '判断机器人区域
DRIVE(3,Z!),CONT,S=HIGH%
MOVE P,P7 '到取料过渡点
MOVE P,P6 '到放料过渡点
MOVE P,P0 '到HOME点
ENDIF
SO3(0) =1 '任务完成开(初始化完成)
DELAY 1000 '等待PLC0.5秒
SO3(0) =0 '任务完成关(初始化完成)
SO3(1) =1 '机械手在安全位
GOTO *MAIN
'
'****************************主程序***************************
'****************************主程序***************************
'****************************主程序***************************
*MAIN:
ASPEED 10 '自动速度
IF SI10()=1 THEN '待增加获取PLC料号
SO10()=1 '回复PLC料号(国内高配)
GOTO *PICK_1 '去料号1程序
ELSEIF SI10()=2 THEN '待增加获取PLC料号
SO10()=1 '回复PLC料号(国外高配)
GOTO *PICK_1 '去料号2程序
ELSEIF SI10()=3 THEN '待增加获取PLC料号
ASPEED 10 '自动速度
SO10()=3 '回复PLC料号(国内低配)
'GOTO *PICK_3 '去料号3程序
ELSEIF SI10()=4 THEN '待增加获取PLC料号
SO10()=4 '回复PLC料号(右舵IP-LH)
'GOTO *PICK_4 '去料号4程序
ELSEIF SI10()=5 THEN '待增加获取PLC料号
SO10()=5 '回复PLC料号(右舵IP-RH)
'GOTO *PICK_5 '去料号5程序
ELSEIF SI10()=6 THEN '待增加获取PLC料号
SO10()=6 '回复PLC料号
'GOTO *PICK_6 '去料号6程序
ELSEIF SI10()=7 THEN '待增加获取PLC料号
SO10()=7 '回复PLC料号
'GOTO *PICK_7 '去料号7程序
ELSEIF SI10()=0 THEN '待增加获取PLC料号
SO10()=0 '回复PLC料号
ENDIF
WAIT 100
GOTO *MAIN
'
'************************涂油1程序***********************************
'************************涂油1程序***********************************
'************************涂油1程序***********************************
*PICK_1:
WAIT SI2(4)=1 '允许任务开始
ASPEED SI14() '自动速度
IF SI6(1)=0 THEN
GOSUB *TUYOU1 '调用涂油程序
ELSE
GOSUB *TUYOU11 '调用涂油程序(只涂连杆轴头)
ENDIF
GOSUB *RENWUGUAN '调用任务关
SGI1=SGI1+1 '刮油次数
IF SGI1>=1 THEN '可设定刮油间隔次数
GOSUB *GUAYOU '调用刮油程序
SGI1=0
ENDIF
GOSUB *HUANYOUTONG '调用换油桶程序
GOTO *PICK_1
'
'************************任务关(所有料号通用)
*RENWUGUAN:
SO2(4)=1 '任务完成1开
WAIT 1
MOVE P,P0,Z=Z!,S=40 '到HOME
WAIT SI2(4)=0 '等待流线允许放1关
SO2(4)=0 '任务完成1关
RETURN
'
'************************换油桶(所有料号通用)
*HUANYOUTONG:
IF SI3(3) =1 THEN '等待油桶液位低报警
MOVE P,P140,Z=Z!,CONT,S=60 '到毛刷检测位
SO3(3) =1
WAIT SI3(3) =0 '等待没有油桶液位低报警
SO3(3) =0
ENDIF
MOVE P,P0,Z=Z!,CONT,S=60 '到HOME
SO3(1) =1 '机械手在安全位
RETURN
'
'************************刮油子程序(所有料号通用)
*GUAYOU:
'吹油(从下往上吹)
SO3(1) =1 '机械手在安全位
MOVE P,P141,Z=Z!,CONT,S=60 '到吹油下方位
SO4(7,6)=&B10 '毛刷吹气去工作位
WAIT SI4(7)=1 '等待毛刷吹气在动点
MOVE L,P142,S=20 '到吹油上方位
MOVE L,P141,S=10 '到吹油下方位
SO4(7,6)=&B01 '毛刷吹气回基本位
WAIT SI4(6)=1 '等待毛刷吹气在静点
'毛刷检测
MOVE L,P140,S=30 '到毛刷检测位
WAIT ARM
SO3(2)=1 '毛刷检测
DELAY 500 '延时0.5秒
SO3(2)=0 '毛刷检测
MOVE P,P0,Z=Z!,CONT,S=60 '到HOME
SO3(1) =1 '机械手在安全位
RETURN
'************************涂油1(多次直接添加调用次数即可)
*TUYOU1:
SO6(0)=1 '噴油1去工作位
SO3(1) =0 '机械手在安全位
MOVE P,P120,Z=40,CONT,S=HIGH% '涂油1开始点
WAIT ARM
MOVE L,P121,S=MIN% '到涂油1_1(叶片左杆)
MOVE L,P120,S=MIN% '到涂油1_0
MOVE L,P121,S=MIN% '到涂油1_1
MOVE L,P120,S=MIN% '到涂油1_0
MOVE P,P122,Z=Z1!,CONT,S=HIGH% '涂油2开始点
WAIT ARM
MOVE L,P123,S=MIN% '到涂油2_1(连杆轴头)
MOVE L,P122,S=MIN% '到涂油2_0
MOVE L,P123,S=MIN% '到涂油2_1
MOVE L,P122,S=MIN% '到涂油2_0
MOVE P,P124,Z=Z1!,CONT,S=HIGH% '涂油3开始点
WAIT ARM
MOVE L,P125,S=MIN% '到涂油3_1(叶片右杆)
MOVE L,P124,S=MIN% '到涂油3_0
MOVE L,P125,S=MIN% '到涂油3_1
MOVE L,P124,S=MIN% '到涂油3_0
SO6(0)=0 '噴油1去基本位
DRIVE(3,80.00),S=HIGH% '第三轴移动到90
MOVE L,P129,CONT,S=HIGH% '涂油离开点
DRIVE(3,Z!),S=HIGH% '第三轴移动到Z!
MOVE P,P0,Z=Z!,CONT,S=60 '到HOME
SO3(1) =1 '机械手在安全位
RETURN
'
'************************涂油11(只涂连杆轴头)
*TUYOU11:
SO6(0)=1 '噴油1去工作位
SO3(1) =0 '机械手在安全位
MOVE P,P120,Z=40,CONT,S=HIGH% '涂油1开始点
WAIT ARM
MOVE L,P123,S=MIN% '到涂油2_1
MOVE L,P122,S=MIN% '到涂油2_0
MOVE L,P123,S=MIN% '到涂油2_1
MOVE L,P122,S=MIN% '到涂油2_0
SO6(0)=0 '噴油1去基本位
DRIVE(3,Z!),S=HIGH% '第三轴移动到Z!
MOVE P,P0,Z=Z!,CONT,S=60 '到HOME
SO3(1) =1 '机械手在安全位
RETURN
'
'
'
|
|