理论教育 程序设计:主PLC示教操作优化

程序设计:主PLC示教操作优化

时间:2023-06-17 理论教育 版权反馈
【摘要】:图9-20 脉冲停止发送程序段其余各轴示教的原理与1#轴相同,在此不赘述。图9-24 启动C点示教程序段此时开始C点的示教操作,其操作流程与A点相同。当C点的示教操作完成后,按下“示教完毕”按钮。图9-25 读取C点数据程序段当按下“示教完毕”按钮时,定时器TIM20保持信号为1,此时对A、B、C三点各轴的目标值进行加偏差值的操作,直到起动按钮按下时复位。

程序设计:主PLC示教操作优化

复位操作的梯形图如图9-16所示。当复位按钮按下时,使高速计数器0、2、3对应的复位标志A531.00、A531.02、A531.03置位,将三个高速计数器的当前值复位,即1#轴、2#轴和4#轴复位。

978-7-111-48236-9-Chapter09-19.jpg

图9-16 复位程序段

当按下“示教”按钮时,示教保持位置1,将所有在该程序中使用的通道和工作位清零,将所用到的频率值和偏差值放入相应的通道中。直到“复位”或“起动”按钮按下时,示教保持位才被复位。其控制程序如图9-17所示。

978-7-111-48236-9-Chapter09-20.jpg

图9-17 示教起动程序段

此时开始A点的示教过程。当按下“1轴顺”或“1轴逆”按钮时,CNT001计数一次,并将1#轴的使用位置1。若1#轴不使用,则该计数器不计次且1#轴的使用位为0。其控制程序如图9-18所示。

978-7-111-48236-9-Chapter09-21.jpg

图9-18 按钮计次与轴使用标志程序段

当按下“1轴顺”按钮时,此时1#轴按顺时针方向转动,同时将1#轴正向位置1。若按下“1轴逆”按钮时,则1#轴将按逆时针方向转动,同时将1#轴正向位复位。其控制程序如图9-19中SPED指令的第一行执行条件所示。

978-7-111-48236-9-Chapter09-22.jpg

图9-19 1#轴正/反向脉冲控制程序段

当“1轴顺”或“1轴逆”按钮再次按下时,CNT001产生1个周期的输出,使20.00导通0.5s,从而确保1#轴脉冲停止输出。其控制程序如图9-20所示。

978-7-111-48236-9-Chapter09-23.jpg

图9-20 脉冲停止发送程序段

其余各轴示教的原理与1#轴相同,在此不赘述。当A点所用的轴全部示教完后,如不需再进行下一点的示教操作,则按下“示教完毕”按钮。此时将A点各轴的目标值、方向和使用情况写入A点的通道中备用。其控制程序如图9-21所示。

978-7-111-48236-9-Chapter09-24.jpg

图9-21 写入A点数据程序段

当A点所用的轴全部示教完成后,若需要进行下一点的示教操作,则按“下一点”按钮,它将上次操作所有使用标志位复位,同时CNT007和CNT008都对下一点按钮计数一次,CNT007产生输出,将A点的数据写入到相应的通道中备用(见图9-21),并设置B点使用位,其控制程序如图9-22所示。

978-7-111-48236-9-Chapter09-25.jpg

图9-22 起动B点示教程序段

此时开始B点的示教操作,其控制方式与A点相同。当B点的示教操作完成后,如不进行下一点的示教,则按“示教完毕”按钮。此时在CNT007产生输出时将B点各轴的目标值、方向和使用情况写入到B点的通道中备用。其控制程序如图9-23所示。

978-7-111-48236-9-Chapter09-26.jpg

图9-23 读取B点数据程序段

在B点所用的轴全部示教完成后,如需要进行下一点的示教操作,则再次按下一点按钮,它将上次操作产生的使用位复位。此时CNT008对下一点按钮计数一次,CNT008产生输出,将B点的数据写入到相应的通道中备用(见图9-23),并设置C点使用位,其控制程序如图9-24所示。

978-7-111-48236-9-Chapter09-27.jpg

图9-24 启动C点示教程序段

此时开始C点的示教操作,其操作流程与A点相同。当C点的示教操作完成后,按下“示教完毕”按钮。此时在CNT008产生输出时将C点各轴的目标值、方向和使用情况读入C点的通道中备用。如图9-25所示。(www.daowen.com)

978-7-111-48236-9-Chapter09-28.jpg

图9-25 读取C点数据程序段

当按下“示教完毕”按钮时,定时器TIM20保持信号为1,此时对A、B、C三点各轴的目标值进行加偏差值的操作,直到起动按钮按下时复位。其控制程序(部分)如图9-26所示。

978-7-111-48236-9-Chapter09-29.jpg

图9-26 目标值加偏差处理程序段

定时器TIM20定时5s到时,置位返回原点标志,直到起动按钮按下时复位。其控制程序如图9-27所示。

978-7-111-48236-9-Chapter09-30.jpg

图9-27 启动返回原点程序段

如果示教时只使用了A点,在TIM20导通的情况下将根据各轴的使用情况和方向来发送脉冲。下面仅以1#轴为例加以说明。

假定在示教操作中,1#轴顺时针转动,那么A点1#轴使用位将置为1,A点的方向位W10.00此时也置1。在TIM20导通且B点不使用的情况下,则1#轴将按逆时针方向发送脉冲。其控制程序如图9-19中SPED指令的第二行执行条件所示。

如果示教时,定位了A点和B点,在TIM20导通的情况下,首先要进行当前方向的判断。这是因为在示教B点时,所记录的方向是相对于A点的,而不是相对于原点的方向,所以有可能在B点示教时某个轴的运动经过了原点,为了能准确判断相对于原点的方向,必须要进行当前方向的判断。其中涉及高速计数器的使用,高速计数器的设置如图9-28所示。

978-7-111-48236-9-Chapter09-31.jpg

图9-28 高速计数器的系统设置

由图9-28可见,本例中高速计数器设置为循环计数模式,循环最大值设为10000000。该最大值的设置是经过现场实测放大而得到的,在实际操作中高速计数器的值要远远小于该值。根据编码器接线的不同,当某个轴正/反转时其高速计数器的值可以为递增或递减。此处只介绍其中一种接线的判断方法。例如,在A点示教时,1#轴顺时针转动,此时编码器的B相超前A相,所以高速计数器为递减算法,从循环最大值向下递减,直到1#轴停止运动为止。在B点示教时,1#轴逆时针转动,此时编码器的A相超前B相,所以高速计数器为递增算法,从当前值累加,直到1#轴停止运动为止。当该运动跨过原点时,从0开始累加。其运动如图9-29所示。

当最后一点示教完成时,若该轴的当前值比循环最大值的一半5000000(十六进制中的#4C4B40)还大,那么说明该轴处于原点的顺时针方向;反之,说明该轴处于原点的逆时针方向。其控制如图9-30所示。

978-7-111-48236-9-Chapter09-32.jpg

图9-29 循环计数示意图

978-7-111-48236-9-Chapter09-33.jpg

图9-30 B点相对于原点方向的判定

在B点当前方向判断完毕时,且在TIM20导通的情况下,将根据A、B点各轴的使用情况和B点当前方向来发送脉冲。下面以1#轴为例加以说明。

假定在A点示教时,1#轴顺时针转动;在B点示教时,1#轴逆时针转动且经过原点,则此时A、B点1#轴使用位都被置为1,且经过B点当前方向的判断B点一正向被置为0。在TIM20导通且C点不使用的情况下,则1#轴将按顺时针方向发送脉冲。其控制程序如图9-19中SPED指令的第三行执行条件所示。

示教时C点使用的操作原理同B点,如图9-13中SPED指令的第4行执行条件所示。

当各轴脉冲发送的同时,编码器通过高速计数器实时把各轴的当前值返回到相应的通道中。通过区域比较指令(ZCPL)把该值与原点的值进行比较,如果该轴的当前值处于原点的允许误差范围内时,则发送已到位信号。其控制程序如图9-31所示。

978-7-111-48236-9-Chapter09-34.jpg

图9-31 与原点值区域比较程序段

当已到位信号导通时,停止相应轴的脉冲输出,其控制如图9-20所示。至此,示教的操作全部完成。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈