图5-28 立体存储单元的控制工艺流程图
根据图5-28所示立体存储单元的控制工艺流程图编写其对应的控制程序。为了更方便地进行程序的设计与管理,本单元中采用模块化的编程思想进行控制程序设计。下面对子程序的功能以及具体的使用做简单的介绍。
在立体存储单元主程序中,调用PTOx_MAN子程序,通过手动模式将工作平台移动到接收工件位置,根据X、Y坐标的运动距离来设置脉冲数量,测量从原点位置到接收工件位置的X轴距离为16mm、Y轴距离为46mm,因为本单元的步进电动机每步移动的距离为0.005mm,因此Q0.0需要输出的脉冲数为16/0.005=3200,Q0.1需要输出的脉冲数为46/0.005=9200,按照上面的方法多次测量,最后取平均值。
立体存储单元主程序可以由25个子程序组成分别为:初始化、复位、原点位置、去接收工件位置、开始指示灯、计数处理、去第三行、去第四行、去第一列、去第二列、去第三列、去第四列、去存储位置、推出工件、返回原点位置、循环判断、PTO控制、还有配置PLC脉冲发生器生成的8个子程序。
初始化、复位、开始指示灯和循环判断的子程序与前两单元子程序编写的方法一样,具体程序可参考光盘;原点位置子程序主要任务是调用PTO0_RUN和PTO1_RUN子程序实现工作平台回原点操作;返回原点子程序主要任务是调用原点位置子程序,当工作平台存储工件后,工作平台返回原点位置;去接收工件位置子程序主要任务是使工作平台移动到接收工件位置;计数处理子程序主要任务是工件到位时,计数器进行计数;去第三行子程序主要任务是调用PTO1_RUN子程序控制工作平台的Y轴移动,去第四行子程序同理;去第一列子程序主要任务是调用PTO0_RUN子程序控制工作平台的X轴移动,去第二列、去第三列、去第四列子程序同理;去存储位置子程序主要任务是根据计数器的值去相应的存储位置;推出工件子程序主要任务是控制直线气缸推出工件;PT0控制子程序主要任务是控制X、Y轴运动包络停止运行控制。具体的程序如5-29所示。
首先直接调用初始化、PTO控制、计数处理和开始指示灯的子程序,进行系统初始化。如程序图5-29(a)所示
28
图5-29 程序梯形图(a)
进入步S0.1中,开始指示灯闪烁,按下开始按钮,启动步S0.2;工作平台移动到接收工件位置。如程序梯形图5-29(b)所示。
图5-29 程序梯形图(b)
进入步S0.3中,调用去存储位置子程序,到达储存位置。如程序梯形图5-29(c)所示。
29
图5-29 程序梯形图(c)
进入步S0.5中,调用返回原点子程序,到达原点位置。如程序梯形图5-29(d)所示。
图5-29 程序梯形图(d)
在原点子程序中,调用PTOx_RUN子程序(运行包络),进行子程序的嵌套,方便程序的管理、修改,包络0的操作模式为单速连续旋转,编一个子程序(PTOx_ADV)用于为此包络启动STOP(停止)操作,当X轴反方向的原点左限位和Y轴反方向的原点下限位都检测到位时,调用PTOx_ADV子程序,停止步进电机运行。在去接收工件子程序中,调用PTOx_RUN子程序(运行包络),包络1的操作模式为相对位置,子程序的局部变量参数类型是IN_OUT,既是被交接至程序的参数,又是从子程序交接出来的参数,数据类型是布尔,执行完成时,M5.1和M6.1导通后,置位L0.0和L0.1,如程序梯形图5-29(e)所示。
30
图5-29 程序梯形图(e)
在计数处理子程序中,当主程序进入步S0.3中时,S0.3导通,控制行计数器C1加1,M10.1、M10.2和M10.3之间进行互锁,C1为1时,置位10.1,M10.1导通后,控制列计数器C4加1,这是第四行第一列工件的技术处理,第三行第几列和第二行第几列同理,如程序梯形图5-29(f)所示。
图5-29 程序梯形图(f)
31
在去存储位置子程序中,当中间继电器M0.0、M0.1、M0.2均断开时,置位M0.0,进入第0步; M0.0导通后,置位控制X轴推料台的移动方向和控制Y轴推料台的移动方向的线圈,改变步进电动机的运动方向,使步进电动机向X、Y正方向移动,当M10.1、M10.2或M10.3导通时,延时3s,延时时间到,置位M0.1并复位M0.0;M0.1和M10.1同时导通时,调用含有局部变量的去第四行子程序,到达第四行,M4.1置位,当计数器C4为1时,调用含局部变量的去第一列子程序,到达第一列,M3.1置位,当计数器C4为2时,去第二列,以此类推,如程序梯形图5-29(g)所示。
图5-29 程序梯形图(g)
当M0.1和M10.2同时导通、M0.1和M10.3同时导通时,与去第四行第一列同理,具体解释可参照上张程序梯形图,如程序梯形图5-29(h)所示。
图5-29 程序梯形图(h)
32