多图预警!多点搬运控制案例详解(内含源程序)
一、案例描述
有一批物料均匀的呈阵列排布在一个托盘上面,现在需要把物流均匀的搬运到一个位置,通过一个3轴的龙门台控制,需要搭配一个威纶通触摸屏,要求写出控制程序。
要求:
1.手动模式下,可手动控制平台左右前后上下移动。
2.按下回原点按钮,能够自动回原点,回完原点才可进行自动
3.自动模式下,按下启动按钮,会将物流一个一个从个坐标系一一搬运到第二个坐标系。
4.给定个坐标系个坐标点和给定第二个坐标系个坐标点,其他点两两之间间隔是10mm,PLC需要自动计算出来。
5.按下急停按钮按钮,步进电机立即停止运行。需重新执行一次原点回归指令。
6.按下暂停按钮时,设备停止,重新按下启动时设备继续动作。
序号 | 元件 | 数量 |
1 | 空气开关 | 6个 |
2 | FX3U-16MT plc | 1台 |
3 | 威纶通触摸屏 TK8071IP | 1个 |
4 | 3轴步进电机滑台 | 1套 |
5 | 24V开关电源(100W) | 1台 |
输入点 | 标签 | 输出点 | 标签 |
X0 | Y负极限 | Y0 | Z脉冲 |
X1 | Y原点 | Y1 | X脉冲 |
X2 | Y正极限 | Y2 | Y脉冲 |
X3 | X正极限 | Y3 | Y方向 |
X4 | X原点 | Y4 | X方向 |
X5 | X负极限 | Y5 | Z方向 |
X6 | Z正极限 | Y6 | |
X7 | Z原点 | Y7 |
触摸屏的界面设置如上,下面把这些点位写成表格,如下图表:
点位 | 标签 | 点位 | 标签 |
M0 | 启动 | M10 | 手自动 |
M1 | 停止 | M11 | 回原点开始 |
M2 | 急停 | M12 | 回原点中 |
M3 | X正转 | M13 | 回原点完成 |
M4 | X反转 | M14 | X轴回原完成 |
M5 | Y正转 | M15 | Y轴回原完成 |
M6 | Y反转 | M16 | Z轴回原完成 |
M7 | Z正转 | M17 | 确认下降点 |
坐标系的地址如下,启点的X坐标使用D1000开始的连续25个双字寄存器,起点的Y坐标用D1100开始的连续25个双字寄存器;
个坐标系个点坐标是(D1000,D1100),第2个点是(1002,1102)... ...
同样的方法,终点的X坐标用D1200开始的连续25个双字寄存器,终点的Y坐标用D1200开始的连续25个双字寄存器;
后面计算就给这些地址赋值可以搭建好坐标系。
1.原点回归速度和爬行速度设置
为了缩短扫描周期,把回归速度和爬行速度写在子程序P0里面,设置回归速度为2000,爬行速度为500。
2.数据计算
触摸屏只需要给定起点坐标(D1000,D1100),终点坐标(D1200,D1300)其他地址坐标就能自动计算出,这部分的程序比较多,可以写成子程序,这里使用P1的子程序,需要调用的时候再调用。
求出下面一行,所有点的横坐标,如下通过一段FOR循环和变址,后面的每一个点是前一个点坐标加10mm,通过循环变址,循环4遍,就能求出行的10个数据横坐标。
根据行的数据,后面每一行的横坐标都和行一样,使用8个批量测试指令,就能把后面8排地址的数据计算出来,这样的话横坐标就都计算完毕。
求出列10个点的纵坐标,如下通过一段FOR循环和变址,后面的每一个点是前一个点坐标加10mm,通过循环变址,循环4遍,就能求出行的10个数据纵坐标。
就可以求出每一列所有点的纵坐标,通过批量传送指令,前5行程序就把个坐标系的Y点都计算出来,后一行,终点坐标也是一样的计算方法,执行完毕,子程序结束。
3.计算调用
上面计算的程序不是需要时时刻刻都执行的,需要当数据发生改变时,再执行一次改变。
起点X坐标D1000的值通过demov指令不断传送给D2000,它们是相等的,这比较指令,会让M51导通(常闭触点断开),只有给了一个新的值给D1000,它们才会不相等,这时,M51就会失点(常闭触点会导通),触发P1指令,执行计算。
其他3个坐标也是同样的控制原理。
4.数据的调用
在自动控制时,每抓取完一个物料每一遍动作,就导通M100的线圈(这部分的程序在后面),每次就让D0加1,抓取25个点的物料,就会增加到25。每一次动作,调用的坐标系点位不同,比如次启动时,下面就把D1000Z5(D1000),D1100Z5(D1100),D1200Z5(D1200),D1300Z5(D1300,)坐标给到对应控制的寄存器,执行完毕,M100导通,D1加1,Z5=2;这里调用的坐标是D1000Z5(D1002),D1100Z5(D1102),D1200Z5(D1202),D1300Z5(D1302)
每完成一次,使用的坐标地址就偏移2位,这样就可以切换坐标位置上;
面计算出来的是浮点数的数据,还需要这几个数据转化成脉冲数(已知,丝杆导程是4mm,步进电机设置位800转每圈),可以求出脉冲当量=4mm/800=0.005mm
把之前求出的坐标除以0.005得出实际控制脉冲,并把数据转化成整数;
5.正负极限设置
6.原点回归控
7.手动控制
8.启停控制
9.顺序控制
动作需要逆序写,步写在后,动作完成M8029会导通,使用INC让D100加1,后面每一步都一样;运行到第5步,用M8029导通M10线圈,M10的常开写在这一行程序上面,用MOV指令让D100回到第1步,这样写是为了隔开一个扫描周期,让第5步的动作和步的定位指令不在同一个扫描周期里面运行。
10.升降点设置
11.位置显示