三菱FX3U做为一款入门级PLC,应用很广泛,其实学习PLC就几点,开关量的输入、输出,就是我们平常所说的IO、伺服(或者步进电机)的控制、Modbus通信、模拟量输入输出,掌握了这些,基本可以做80%的项目了,小编今天主要来和大家说一下伺服电机(或者步进电机)的控制方法。
其实伺服电机就是高级一点的步进,其自带编码器,驱动器功能更加强大,支持位置模式、速度模式和转矩模式三种类型,因为伺服电机可以精确定位,所以通常我们用到的是位置模式。
位置模式需要PLC发送高速脉冲串给伺服驱动器,伺服驱动器再驱动伺服电机按照一定的角度和速度来旋转,从而达到位置控制的模式
三菱FX3U这款PLC控制伺服电机有两种方法,一种是高速脉冲模式,一种是定位模式,其指令是不一样的,同时,FX3U只支持三路高速脉冲的发送,分别是Y0、Y1、Y2,所以最多只能控制三台伺服电机,如果想控制超三台伺服电机,可以选择加装定位模块或者几台PLC组网来实现。
一、高速脉冲模式
1、PLSY指令
PLSY是高速脉冲输出指令,可以指定Y0、Y1或者Y2发送高速脉冲,其指令格式如下
如上图所示,分别是16位高速脉冲输出和32位高速脉冲输出,16位高速脉冲输出可以发送最大频率为32767的数据,而32位高速脉冲输出可以发送最大频率为200,000Hz的脉冲串,各位同学可以根据实际需要进行选择,不过这里小编建议大家养成一个好习惯,就是坚持用32位运算进行程序处理,可以有效防止程序溢出。
熟悉了相关指令,我们看下详细用法。
比如我们想接通M0的同时,让Y0输出频率为10000,数量为25000的脉冲串,那么就这样来写程序
其中: 频率为每秒钟发送的脉冲数,表示到伺服电机就是速度
发送脉冲数即为一共发送多少个脉冲给驱动器,转换到伺服电机就是走过的距离或者角度
Y0为输出通道,接线到驱动侧的高速脉冲输入点。
这里M0只要保持接通,就会以当前速度发送25000个脉冲,中间如果M0断开,则停止发送脉冲,再次接通M0则重新发送25000个脉冲直到完成。
如果我们想让伺服电机以一定速度一直旋转不停,那么脉冲数设置为K0就可以了,如下
在实际控制中,我们需要知道Y0什么时候发送完成了这25000个脉冲,这里面就用到了特殊继电器M8029。
2、指令结束标志位M8029
这个标志位很重要,因为不只是这里用到M8029,还有好多地方会用到,后面再介绍。
M8029的作用就是告诉我们,脉冲指令发送结束了,该干嘛干嘛了
这里的意思是一旦PLSY指令发送完成了25000个脉冲,则M8029接通,同时置位M10,复位M0
32位指令和16位的一样用法,只是操作数的范围更大了,这里不再说明。
3、实际案例
现在我们完成了脉冲的发送,只是实现了伺服电机的旋转,但是这只是单方向的旋转,在项目中我们还需要实现正反转旋转和定位,那还需要通过其它输出点来控制伺服电机的方向,这个输出点可以是高速脉冲输出点(Y0、Y1、Y2),也可以是其它点,大家可以根据要控制的伺服数量进行选择。
下面我们先设计一下功能动作,然后再看怎么来实现
我们先来定义一下脉冲输出和方向输出的两个辅助继电器M10和M11,以后我们不再直接控制脉冲和方向,而是控制这两个继电器来实现
然后正转是方向无输出,反转为方向有输出。
4、手动正反转输出
手动正反转,将速度传递给D10(D10可以在触摸屏中输入数值),将K0传递给D12,这样只要按下M0或者M1,伺服电机就一直正反转旋转,直到遇到前后极限,这里极限都是用的常闭点的接近开关,程序如下:
同时这里加了正反转的互锁,防止同时按下M0和M1按钮。
5、回原点程序
用高速脉冲指令也可以简单实现回原点动作,只是精度没有专用指令高,如果在精度要求不高的场合可以使用。一般回原点之前,滑台有位置有三种情况,在原点前、原点开关中和在原点后,如下
我们的目的是滑台反转的时候碰到原点开关(X0)停止,当前点设置为原点,考虑到滑台位置的三种情况,动作可能如下:
其实不管那种情况,用第三种办法肯定不会出错,其中也包含了动作一和动作二的情况,动作流程图如下
大家可以尝试着自己写一下这个原点回归程序,下次我再把我写的公布给大家。
6、定位指令
用高速脉冲指令进行定位只能相对定位,下面看一下正反转定位的程序:
然后在刚才的程序中再添加上M5和M6两个辅助继电器
为什么要加M5和M6两个继电器呢,因为我们设计触摸屏上的M0、M1、M2、M3模式都是点动,如果把M2、M3模式置位,则可以不用M5和M6辅助继电器了。
7、PLSR指令
上面我们详细的讲解了PLSY指令的用法,再接着说一下PLSR这个指令。
PLSR指令是带加减速的高速脉冲指令,其功能如下
和PLSY不同的是加了一个加减速时间(单位为ms),其它都是一样的。
8、最重要的一点
脉冲输出也是线圈输出的一种方式,所以实际使用过程中,是不可以产生双线圈的,同样的还包括定位指令也是一样,所以不可以使用多个PLSY指令驱动同一线圈。
好了,今天的指令讲解到这里就结束了,有不懂的可以关注并私信我,很乐意为您解答。