找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 602|回复: 2

B7涂油工站

[复制链接]

351

主题

341

回帖

2433

积分

管理员

积分
2433
发表于 2025-3-11 10:00:45 来自手机 | 显示全部楼层 |阅读模式
B7涂油工站
回复

使用道具 举报

351

主题

341

回帖

2433

积分

管理员

积分
2433
 楼主| 发表于 2025-5-22 03:29:02 | 显示全部楼层
B7.xlsx (30.18 KB, 下载次数: 0)

MAIN.txt (21.75 KB, 下载次数: 0)

回复

使用道具 举报

351

主题

341

回帖

2433

积分

管理员

积分
2433
 楼主| 发表于 2025-5-22 03:29:16 | 显示全部楼层
'/////////////////////////////////////////////////////////////
'*/项目:XYO-B07 齿轮涂油站                                  /*
'*/项目工程师: zhou               Tel:136****7606         /*
'*/项目启动时间:2024/3/10                                  /*
'/////////////////////////////////////////////////////////////
'*/机械手系统IP:192.168.61.121.1121(系统指令&编程)         /*
'*/机械手通讯IP:192.168.61.121.2121(PLC通讯)               /*
'*/机械手通讯IP:192.168.61.121.3121(相机通讯)              /*
'/////////////////////////////////////////////////////////////
'
'***************************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):取料2阀去基本位             SO5(6):吸真空2去基本位
'SO4(7):取料2阀去工作位             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)
'
'料号2----取放点位
'P200--P203:取码垛A2(4点码垛占用_-物料1)
'P204--P205:取抖料盘1&2(两个抖料盘点)
'P206--P207:取中转1&2(中转启用时中转取料点)
'P210--P211:放中转1&2(中转启用时中转放料点)
'P212--P214:放流线1&2&3(放入流线时点位)
'P215--P216:放流线1&2&3辅助(放入流线时点位辅助)
'P220--P239:涂油点位(涂油轨迹占用)
'P240--P245:刮油点位(清理毛刷)
'P250--P253:取码垛B2(4点码垛占用_-物料2)
'
'料号3----取放点位
'P300--P303:取码垛A3(4点码垛占用_-物料1)
'P304--P305:取抖料盘1&2(两个抖料盘点)
'P306--P307:取中转1&2(中转启用时中转取料点)
'P310--P311:放中转1&2(中转启用时中转放料点)
'P312--P314:放流线1&2&3(放入流线时点位)
'P315--P316:放流线1&2&3辅助(放入流线时点位辅助)
'P320--P339:涂油点位(涂油轨迹占用)
'P340--P345:刮油点位(清理毛刷)
'P350--P353:取码垛B3(4点码垛占用_-物料2)
'
'###########################  建立通讯  #############################
*GOHOME:
'*********************初始化参数****************************
ASPEED 5                                     '初始化速度(自动速度在MAIN第一步设置)
ACCEL 90                                     '加速率
DECEL 90                                     '减速度
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%=100                                     '低速率
MIN%=70                                      '最低速率
SGI1=0                                       '刮油记次数归零
Z!=0.00                                      '门型移动时Z安全高度
Z1!=80.00                                    '抬升高度
Plt0%=1                                      '托盘初始料位,根据需要,执行后从第1个开始。
MOTOR ON
'
'*********************初始化判断****************************
*PANDUAN:
SO4(2)=1                                      '毛刷夹爪气缸基本位
SO4(3)=0                                      '毛刷夹爪气缸工作位
WAIT SI4(2)=1                                 '等待毛刷夹爪气缸在原点
''获取机器人当前位置
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                                         '左手臂姿态
IF X!<-250.00 THEN                            '机械手在取料侧
DRIVE(3,Z!),S=HIGH%                           '第三轴移动到Z!
MOVE P,P3,CONT                                '到放料过渡点正手
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ELSEIF X!>=250.00 AND X!<=530.00 THEN         '判断机器人区域
DRIVE(3,Z!),S=HIGH%
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ELSEIF X!>530.00 THEN                         '判断机器人区域(刚好在装配位置)
DRIVE(3,Z!),S=HIGH%
P8=P5000                                      '当前位置赋给P8
LOC1(P8)=530                                  '第三轴的值改为Z!
MOVE L,P8                                     '到取料过渡点左手
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ELSEIF X!>=-250.00 AND X!<=250.00 THEN        '判断机器人区域
DRIVE(3,Z!),S=HIGH%
P8=P5000                                      '当前位置赋给P8
LOC2(P8)=600                                  '第三轴的值改为Z!
MOVE L,P8                                     'Y轴到安全距离
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ENDIF
SO3(0) =1                                     '任务完成开(初始化完成)
DELAY 1000                                     '等待PLC0.5秒
SO3(0) =0                                     '任务完成关(初始化完成)
GOTO *MAIN
''''根据机器人当前位置区不同的过渡点
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
*R1:
RIGHTY                                        '右手臂姿态
IF X!<-250.00 THEN                            '机械手在放料侧
DRIVE(3,Z!),S=HIGH%                           '第三轴移动到Z!
MOVE P,P5,CONT                                '到放料过渡点反手
MOVE P,P3,CONT                                '到放料过渡点正手
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ELSEIF X!>=250.00 AND X!<=530.00 THEN         '判断机器人区域
DRIVE(3,Z!),S=HIGH%
MOVE P,P4,CONT                                '到取料过渡点反手
MOVE L,P5,CONT                                '到放料过渡点反手
MOVE P,P3,CONT                                '到放料过渡点正手
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ELSEIF X!>530.00 THEN                         '判断机器人区域(刚好在装配位置)
DRIVE(3,Z!),S=HIGH%
P8=P5000                                      '当前位置赋给P8
LOC1(P8)=530                                  '第三轴的值改为Z!
MOVE L,P8                                     '到取料过渡点反手
MOVE P,P4,CONT                                '到取料过渡点反手
MOVE L,P5,CONT                                '到放料过渡点反手
MOVE P,P3,CONT                                '到放料过渡点正手
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ELSEIF X!>=-250.00 AND X!<=250.00 THEN        '判断机器人区域
DRIVE(3,Z!),S=HIGH%
P8=P5000                                      '当前位置赋给P8
LOC2(P8)=600                                  '第三轴的值改为Z!
MOVE L,P8                                     'Y轴到安全距离
MOVE P,P4,CONT                                '到取料过渡点反手
MOVE L,P5,CONT                                '到放料过渡点反手
MOVE P,P3,CONT                                '到放料过渡点正手
MOVE L,P2,CONT                                '到取料过渡点正手
MOVE L,P0                                     '到HOME点
ENDIF
'初始化完成
ASPEED 10                                     '刮油速度(自动速度在MAIN第一步设置)
GOSUB *GUAYOU                                 '调用刮油程序
SGI1=0
SO3(0) =1                                     '任务完成开(初始化完成)
DELAY 1000                                    '等待PLC0.5秒
SO3(0) =0                                     '任务完成关(初始化完成)
GOTO *MAIN
'
'****************************主程序***************************
'****************************主程序***************************
'****************************主程序***************************
*MAIN:
'ASPEED 70                                      '自动速度
IF SI10()=1  THEN                              '待增加获取PLC料号
  SO10()=1                                      '回复PLC料号(左舵IP-LH)
  GOTO *PICK_1                                 '去料号1程序
ELSEIF  SI10()=2  THEN                         '待增加获取PLC料号
  SO10()=2                                      '回复PLC料号(左舵IP-RH)
    'GOTO *PICK_2                              '去料号2程序
ELSEIF  SI10()=3  THEN                         '待增加获取PLC料号
  SO10()=3                                      '回复PLC料号(TC)
    '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:
ASPEED SI14()                                 '自动速度(已改为在触摸屏设置)建议70
WAIT SI2(4)=1                                 '流线允许任务开始
GOSUB *TUYOU1                                 '调用涂油程序
GOSUB *RENWUGUAN                              '调用任务关
SGI1=SGI1+1                                   '刮油次数
IF SGI1>=1 THEN                               '可设定刮油间隔次数
GOSUB *GUAYOU                                '调用刮油程序
SGI1=0
ENDIF
WAIT 10
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  
'
'************************刮油子程序(所有料号通用)  
*GUAYOU:
'第一次刮油(夹住向上提起)
MOVE P,P40,Z=Z!,CONT,S=40               '门型到毛刷刮油位
WAIT ARM
SO4(5,4)=&B10                           '毛刷夹爪气缸去工作位
WAIT SI4(5)=1                           '等待毛刷夹爪气缸在动点
MOVE L,P41,S=30                         '刮油提起5mm,让开金属部分
WAIT ARM
SO4(5,4)=&B01                           '毛刷夹爪气缸去基本位
'WAIT SI4(4)=1                           '等待毛刷夹爪气缸在原点
'第二次刮油(夹住侧面提起)
'MOVE P,P42,Z=Z!,S=30                    '门型到毛刷刮油位2
'SO4(5,4)=&B10                           '毛刷夹爪气缸去工作位
'WAIT SI4(5)=1                           '等待毛刷夹爪气缸在动点
'MOVE L,P43,S=30                         '侧面提起5mm,侧壁刮油
'WAIT ARM
'
'吹油(从下往上吹)
MOVE L,P46,S=50                          '到吹油结束位
SO4(7,6)=&B10                            '毛刷吹气去工作位
WAIT SI4(7)=1                            '等待毛刷吹气在动点
MOVE L,P47,S=10                          '门型到吹油开始位
MOVE L,P46,S=2                           '到吹油结束位
SO4(7,6)=&B01                            '毛刷吹气去基本位
WAIT SI4(6)=1                            '等待毛刷吹气在静点
'毛刷检测
MOVE L,P44,S=30                         '到毛刷检测位
WAIT ARM
SO3(2)=1                                '毛刷检测
DELAY 500
SO3(2)=0                                '毛刷检测
SO4(5,4)=&B01                           '毛刷夹爪气缸去基本位
WAIT SI4(4)=1                           '等待毛刷夹爪气缸在原点
MOVE P,P0,Z=Z!,CONT,S=60                '到HOME  
RETURN
'************************涂油1(多次直接添加调用次数即可)
*TUYOU1:
SO6(0)=1                                    '噴油1开
WAIT SI6(0)=1                               '等待噴油1在工作位
MOVE P,P140,Z=Z1!,S=HIGH%                   '(壳体圆圈L1点)
MOVE P,P141,CONT,S=MIN%                     '(壳体圆圈L2点)
MOVE P,P142,CONT,S=MIN%                     '(壳体圆圈L3点)
MOVE P,P143,CONT,S=MIN%                     '(壳体圆圈L4点)  
MOVE P,P144,CONT,S=MIN%                     '(壳体圆圈L5点)
MOVE P,P145,CONT,S=MIN%                     '(壳体圆圈L6点)
MOVE P,P146,CONT,S=MIN%                     '(壳体圆圈L7点)
MOVE P,P147,CONT,S=MIN%                     '(壳体圆圈L8点)
MOVE P,P148,CONT,S=MIN%                     '(壳体圆圈L9点)
MOVE P,P149,CONT,S=MIN%                     '(壳体圆圈L10点)
MOVE P,P150,CONT,S=MIN%                     '(壳体柱子L1点)  
MOVE P,P151,CONT,S=MIN%                     '(壳体柱子L2点)  
MOVE P,P152,CONT,S=MIN%                     '(壳体柱子L3点)
MOVE P,P153,CONT,S=MIN%                     '(壳体柱子L4点)
MOVE P,P154,CONT,S=MIN%                     '(壳体柱子L5点)
MOVE P,P155,CONT,S=MIN%                     '(壳体柱子L6点)
'
MOVE P,P120,Z=Z1!,S=HIGH%                   '(齿轮L1点外侧)
MOVE L,P121,S=MIN%                          '(齿轮L1点内侧)
WAIT ARM
MOVE P,P122,Z=Z1!,S=HIGH%                   '(齿轮L2点外侧)
MOVE L,P123,S=MIN%                          '(齿轮L2点内侧)
WAIT ARM
MOVE P,P124,Z=Z1!,S=HIGH%                   '(齿轮L3点外侧)
MOVE L,P125,S=MIN%                          '(齿轮L3点内侧)
WAIT ARM  
MOVE P,P126,Z=Z1!,S=HIGH%                   '(齿轮L4点外侧)
MOVE L,P127,S=MIN%                          '(齿轮L4点内侧)
WAIT ARM
'  
'以下右侧
'以下右侧
MOVE P,P160,Z=Z1!,S=HIGH%                   '(壳体圆圈R1点)
MOVE P,P161,CONT,S=MIN%                     '(壳体圆圈R2点)
MOVE P,P162,CONT,S=MIN%                     '(壳体圆圈R3点)
MOVE P,P163,CONT,S=MIN%                     '(壳体圆圈R4点)  
MOVE P,P164,CONT,S=MIN%                     '(壳体圆圈R5点)
MOVE P,P165,CONT,S=MIN%                     '(壳体圆圈R6点)
MOVE P,P166,CONT,S=MIN%                     '(壳体圆圈R7点)
MOVE P,P167,CONT,S=MIN%                     '(壳体圆圈R8点)
MOVE P,P168,CONT,S=MIN%                     '(壳体圆圈R9点)
MOVE P,P169,CONT,S=MIN%                     '(壳体圆圈R10点)
MOVE P,P170,CONT,S=MIN%                     '(壳体柱子R1点)  
MOVE P,P171,CONT,S=MIN%                     '(壳体柱子R2点)  
MOVE P,P172,CONT,S=MIN%                     '(壳体柱子R3点)
MOVE P,P173,CONT,S=MIN%                     '(壳体柱子R4点)
MOVE P,P174,CONT,S=MIN%                     '(壳体柱子R5点)
MOVE P,P175,CONT,S=MIN%                     '(壳体柱子R6点)
'
MOVE P,P130,Z=Z1!,S=HIGH%                   '(齿轮R1点外侧)
MOVE L,P131,S=MIN%                          '(齿轮R1点内侧)
WAIT ARM
MOVE P,P132,Z=Z1!,S=HIGH%                   '(齿轮R2点外侧)
MOVE L,P133,S=MIN%                          '(齿轮R2点内侧)
WAIT ARM
MOVE P,P134,Z=Z1!,S=HIGH%                   '(齿轮R3点外侧)
MOVE L,P135,S=MIN%                          '(齿轮R3点内侧)
WAIT ARM  
MOVE P,P136,Z=Z1!,S=HIGH%                   '(齿轮R4点外侧)
MOVE L,P137,S=MIN%                          '(齿轮R4点内侧)
WAIT ARM
'  
SO6(0)=0                                    '噴油1关
DRIVE(3,Z!),CONT,S=HIGH%                    '第三轴移动到Z!
WAIT SI6(0)=0                               '等待噴油1在基本位
RETURN
'
'
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|笔记

GMT+8, 2025-7-7 04:50 , Processed in 0.048230 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表