首页 上一页 1 2 3 4 下一页 尾页

(已结束)工控PLC擂台第17期--PLC控制步进电机。 点击:0 | 回复:63



云锋

    
  • 精华:2帖
  • 求助:5帖
  • 帖子:394帖 | 5543回
  • 年度积分:1
  • 历史总积分:30358
  • 注册:2005年6月24日
发表于:2010-12-24 13:23:57
楼主
PLC控制步进电机应用实例,写出组成整个系统的PLC模块及外围器件,并附相关程序。

PLC品牌不限。

工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。



林 森

  • 精华:34帖
  • 求助:3帖
  • 帖子:1922帖 | 8704回
  • 年度积分:376
  • 历史总积分:57827
  • 注册:2010年6月30日
发表于:2010-12-24 14:05:36
1楼

基于PLC的步进电机运动控制

 

一、 步进电机工作原理


1. 步进电机简介


      步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单

2. 步进电机的运转原理及结构


      电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A‘与齿5相对齐,(A‘就是A,齿5就是齿1)


3. 旋转


      如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力,以下均同)。如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。 如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て
      这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,电机就每步(每脉冲)1/3て,向右旋转。如按A,C,B,A……通电,电机就反转。由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。
步进电机的静态指标术语
      拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A. 步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。

4. 步进电动机的特征

 

      1) 运转需要的三要素:控制器、驱动器、步进电动机

      以上三部分是步进电机运转必不可少的三部分。控制器又叫脉冲产生器,目前主要有PLC、单片机、运动板卡等等。

      2) 运转量与脉冲数的比例关系


二、 西门子S7-200 CPU 224 XP CN


      本机集成14输入/10输出共14个数字量I/O点。2输入/1输出3个模拟量I/O点,可连接7个扩展模块,最大扩展至168路数字量I/O点或38路模拟量I/O点。22K字节程序和数据存储空间,6个独立的30KHz高速计数器,2个独立的20KHz高速脉冲输出,具有PID控制器。1个RS458通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由通讯能力。I/O端子排可很容易地整体拆卸。是具有较强能力的控制器。

 
三、 三相异步电动机DF3A驱动器


1.产品特点
      可靠性高:数字技术和单片机的应用,使得驱动器线路简单可靠;合理的结构设计,使得整机结构紧凑、防护性能好;短路、过流、超温、欠压保护线路提供全面、可靠的保护、大大提高了步进驱动器的可靠性。低速性能好:引入单片机进行软环分及矢量细分,实现1:1平滑细分及5、10、20倍矢量细分,使得步进电机低速运行平稳,避免振荡及失步。矢量细分技术的应用,使得与μm级位置控制器配套的步进系统输出精度接近μm级。高速性能优:输入信号频率不大于250kHz(20细分时),输出电流频率可达15kHz。由于采用单高压(300V)恒流斩波,高速特性好,驱动步进电机空载运行最高速不低于7.0mm/min适用面广:输出电流3A~10A可调,可驱动90BF、110BF、130BF步进电机,输出转矩2N•m~25N•m。
2.主要技术参数

四、 PLC与步进电机驱动器接口原理图

五、 PLC控制实例的流程图及梯形图


1. 控制要求
      1) 要求点机能正反转
      2) 电机有高低速两档
      3) 电机位移和距离有两档
      4) 要求说明用PLS原理
      5) 所有换挡均需要在电机停止时进行
2. 流程图

3. 梯形图

 



林 森

  • 精华:34帖
  • 求助:3帖
  • 帖子:1922帖 | 8704回
  • 年度积分:376
  • 历史总积分:57827
  • 注册:2010年6月30日
发表于:2010-12-24 14:07:48
2楼
上面的“PLC与步进电机驱动器接口原理图 ”太大显示不全,下面是缩小版的!

陈石头

  • 精华:52帖
  • 求助:2帖
  • 帖子:1210帖 | 9290回
  • 年度积分:114
  • 历史总积分:54887
  • 注册:2008年3月07日
发表于:2010-12-24 14:51:23
3楼

步进电机的定位控制

plc输出的集成脉冲可通过步进电机进行定位控制。关于定位控制,调节和控制操作之间存在一些区别。步进电机不需要连续的位置控制,而在控制操作中得到应用。在以下的程序例子中,借助于cpu214所产生的集成脉冲输出,通过步进电机来实现相对的位置控制。虽然这种类型的定位控制不需要参考点,本例还是粗略地描述了确定参考点的简单步骤。因为实际上它总是相对一根轴确定一个固定的参考点,因此,用户借助于一个输入字节的对偶码(dual coding)给cpu指定定位角度。用户程序根据该码计算出所需的定位步数,再由cpu输出相关个数的控制脉冲。 

1、 系统结构
如图1所示:

                       图1 系统结构 


2、 硬件配置
如表1所示:

3、软件结构
3.1 plc的输入信号与输出信号
plc的部分输入信号与输出信号,以及标志位如表2所示。

 3.2 系统软件设计
plc的程序框图如图2所示。

3.3 初始化
在程序的第一个扫描周期(sm0.1=1),初始化重要参数。选择旋转方向和解除联锁。
3.4 设置和取消参考点
如果还没有确定参考点,那么参考点曲线应从按“start”按扭(i1.0)开始。cpu有可能输出最大数量的控制脉冲。在所需的参考点,按“设置/取消参考点”开关(i1.4)后,首先调用停止电机的子程序。然后,将参考点标志位m0.3置成1,再把新的操作模式“定位控制激活”显示在输出端q1.0。
如果i1.4的开关已激活,而且“定位控制”也被激活(m0.3=1),则切换到“参考点曲线”参考点曲线。在子程序1中,将m0.3置成0,并取消“定位控制激活”的显示(q1.0=0)。此外,控制还为输出最大数量的控制脉冲做准备。当再次激活i1.4开关,便在两个模式之间切换。如果此信号产生,同时电机在运转,那么电机就自动停止。
实际上,一个与驱动器连接的参考点开关将代替手动操作切换开关的使用,所以,参考点标志能解决模式切换。
3.5 定位控制
如果确定了一个参考点(m0.3=1)而且没有联锁,那么就执行相对的定位控制。在子程序2中,控制器从输入字节ibo读出对偶码方式的定位角度后,再存入字节mb11。与此角度有关的脉冲数,根据下面的公式计算:
n=φ/360°×s
式中:n-控制脉冲数
φ-旋转角度
s-每转所需的步数
该程序所使用的步进电机采用半步操作方式(s=1000)。在子程序3中循环计算步数,如果现在按“start”按钮(i1.0),cpu将从输出端q0.0输出所计算的控制脉冲个数,而且电机将根据相应的步数来转动,并在内部将“电机转动”的标志位m0.1置成1。 在完整的脉冲输出之后,执行中断程序0,此程序将m0.1置成0,以便能够再次起动电机。
3.6 停止电机
按“stop”(停止)按扭(i1.1),可在任何时候停止电机。执行子程序0中与此有关的指令。 
4、 程序和注释

//标题:用脉冲输出进行定位控制
//主程序
ld sm0.1             //仅首次扫描周期sm0.1才为1。
r m0.0,128      //md0至md12复位
atch 0,19        //把中断程序0分配给中断事件19(脉冲串终止)
eni                     //允许中断

//脉冲输出功能的初始化
movw 500,smw68      //脉冲周期t=500us
movw 0,smw70            //脉冲宽度为0(脉冲调制)
movd 429496700,smd72      //为参考点设定的最大脉冲数

//设置逆时针旋转
ldn m0.1          //若电机停止
a i1.5               //且旋转方向开关=1
s q0.2,1        //则逆时针旋转(q0.2=1)

//设置顺时针旋转
ldn m0.1         //若电机停止
an i1.5            //且旋转方向开关=0
r q0.2,1       //则逆时针旋转(q0.2=0)

//联锁
ld i1.1            //若按“stop”(停止)按钮
s m0.2,1     //则激活联锁(m0.2=1)

//解除联锁
ldn i1.1         //若“start”(启动)按钮松开
an i1.0         //且“stop”(停止)按钮松开
r m0.2,1     //则解除联锁(m0.2=0)     

 //确定操作模式(参考点定位控制)
ld i1.4      //若按“设置/取消参考点”按钮
eu             //上升沿
call 1        //则调用子程序1

//启动电机
ld i1.0                        //若按“start”(启动)按钮
eu                             //上升沿
an m0.1                    //且电机停止
an m0.2                     //且无联锁
ad≥ smd72,1      //且步数≥1,则
movb 16#85,smb67           //置脉冲输出功能(pto)的控制位
pls 0                               //启动脉冲输出(q0.0)
s m0.1,1                 //“电机运行”标志位置位(m0.1=1)

//定位控制
ld m0.3                //若已激活“定位控制” 操作模式
an m0.1                 //且电机停止
call 2                  //则调用子程序2

//停止电机
ld i1.1                      //若按“stop”(停止)按钮
eu                      //上升沿
a m0.1                  //且电机运行,则
call 0                  //则调用子程序0
mend                  //主程序结束

//子程序1
sbr 0                             //子程序0停止电机
movb 16#cb,smb67               //激活脉宽调制
pls 0                            //停止输出脉冲到q0.0
r m0.1,1                  //“电机运行”标志位复位(m0.1=0)
ret                            //子程序0结束
sbr1                     //子程序1,“确定操作模式”
ld m0.1                  //若电机运行
call 0                     //则调用子程序0,停止电机
//申请“参考点曲线”
ld m0.3                      //若已激活“定位控制”,则
r m0.3,1                //参考点标志位;复位(m0.3=0)
r q1.0,1               //取消“定位控制激活”信息(q1.0=0)
movd 429496700,smd72              //为新的“参考点曲线”设定最大的脉冲数。
cret                    //条件返回到主程序。
//申请“定位控制”
ldn m0.3              //若未设置参考点(m0.3=0),则
s m0.3,1             //参考点标志位置位(m0.3=1)
s q1.0,1            //输出“定位控制激活”信息(q1.0=1)
ret                        //子程序1结束

//子程序2
sbr2                //子程序2,“定位控制”
movb ib0,mb11                    //把定位角度从ibo拷到md8的最低有效字节mb11。
r m8.0,24                           //mb8至mb10清零
div 9,md8                            //角度/9=q1+r1
movw mw8,mw14             //把r1存入md12
mul 25,md8                      //q1×25→md8
mul 25,md12
div 9,md12                      // r1×25/9= q2+r2
call 3
//在子程序3中循环步数
movw 0,mw12                   //删除r2
+d md12,md8                      //把步数写入md8
movd md8,smd72                      //把步数传到smd72
ret                             //子程序2结束

//子程序3
sbr3                        //子程序3,“循环步数”
ldw≥mw12,5           //如果r2≥5/9,则
incw mw14                //步数增加1。
ret
//子程序3结束

//中断程序0,“脉冲输出终止”
int0               //中断程序0
r m0.1,1                //“电机运行”标志位复位(m0.1=0)
ret                    //子程序0结束






云锋

  • 精华:2帖
  • 求助:5帖
  • 帖子:394帖 | 5543回
  • 年度积分:307
  • 历史总积分:30324
  • 注册:2005年6月24日
发表于:2010-12-24 14:59:24
4楼
楼上的动作也太快了嘛。

玻璃的心

  • 精华:91帖
  • 求助:3帖
  • 帖子:4970帖 | 5804回
  • 年度积分:0
  • 历史总积分:61329
  • 注册:2010年6月11日
发表于:2010-12-24 20:01:11
5楼

         我来晚了

woyaokong

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 61回
  • 年度积分:0
  • 历史总积分:610
  • 注册:2010年5月26日
发表于:2010-12-24 20:13:36
6楼

又学习了,高手快出来啊

玻璃的心

  • 精华:91帖
  • 求助:3帖
  • 帖子:4970帖 | 5804回
  • 年度积分:0
  • 历史总积分:61329
  • 注册:2010年6月11日
发表于:2010-12-24 20:17:17
7楼
                                                                           基于PLC的步进电机的开环控制系统设计
一、控制要求:
⑴ 能够实现步进电机的起动和停止、正转和反转及改变转速。
⑵ 能够实现步进电机的单四拍、双四拍、单双八拍运行。
⑶ 当按下按钮SB1时,步进电机以单四拍方式和500MS/步的频率顺时针方向运行30步后停止;
当按下按钮SB2时,步进电机以单四拍方式和500MS/步的频率逆时针方向运行30步后停止;
当按下按钮SB3时,步进电机以双四拍方式和500MS/步的频率顺时针方向运行30步后停止;
当按下按钮SB4时,步进电机以双四拍方式和500MS/步的频率和逆时针方向运行30步后停止;
当按下按钮SB5时,步进电机以单双八拍方式和500MS/步的频率顺时针方向运行30步后停止;
当按下按钮SB6时,步进电机以单双八拍方式和500MS/步的频率逆时针方向运行30步后停止;
任何时刻按下按钮SB7,步进电机停止。

二、设计方案论证及电路图 (PLC的输入输出接线图、编程元件地址分配表、硬件组态、控制程序)
2.1 PLC的输入输出接线图:

                                                                    附图一 控制两相步进电动机正反转控制线路接线图
2.2编程元件地址分配表:
                                                                                   PlC编程元件的地址分配及相应符号表

2.3硬件组态:
                                                                                               PLC硬件组态表:

2.4控制程序:
                                                                       ※线性化控制程序(双四拍):


玻璃的心

  • 精华:91帖
  • 求助:3帖
  • 帖子:4970帖 | 5804回
  • 年度积分:0
  • 历史总积分:61329
  • 注册:2010年6月11日
发表于:2010-12-24 20:21:18
8楼
                         
      
     
以上为线性化编程,有些朋友喜欢结构化编程,这里再给出结构化编程:

玻璃的心

  • 精华:91帖
  • 求助:3帖
  • 帖子:4970帖 | 5804回
  • 年度积分:0
  • 历史总积分:61329
  • 注册:2010年6月11日
发表于:2010-12-24 20:43:54
9楼

                                                                                ② 结构化化控制程序(单四拍):

※结构化化控制程序(单四拍):
                                                                                              @FC1输出符号表

                                                                                                   @FC1输入符号表

★结构化OB1主控制程序:

 

★结构化FC1分控制程序:
以上即为结构化化控制程序。

Piston

  • 精华:2帖
  • 求助:1帖
  • 帖子:149帖 | 13110回
  • 年度积分:63
  • 历史总积分:39969
  • 注册:2009年5月22日
发表于:2010-12-24 22:48:48
10楼

  利用松下FP1可编程序控制器可以方便地实现对电机速度和位置的控制,方便可靠地进行各种步进电机的操作,完成各种复杂的工作,加速了机电一体化的实现。

控制方法及思路:

 1、FP1的特殊功能: (1) 脉冲输出   FP1的输出端Y7可输出脉冲,脉冲频率可通过软件编程进行调节,其输出频率范围为360Hz~5kHz。   (2) 高速计数器(HSC)   FP1内部有高速计数器,可同时输入两路脉冲,最高计数频率为10kHz,计数范围-8388608~+8388607。      (3) 输入延时滤波   FP1的输入端采用输入延时滤波,可防止因开关机械抖动带来的不可靠性,其延时时间可根据需要进行调节,调节范围为1ms~128ms。   (4) 中断功能   FP1的中断有两种类型,一种是外部硬中断,一种是内部定时中断。

2、步进电机的速度控制:  FP1有一条SPD0指令,该指令配合HSC和Y7的脉冲输出功能可实现速度及位置控制。速度控制梯形图见图1,控制方式参数见图2,脉冲输出频率设定曲线见图3,梯形图程序见图4。

电气原理图如下:



  3、控制系统的程序运行  
  
  关于此控制系统的接线:plc的Y7输出的脉冲作为步进电机的时钟脉冲,经驱动器产生节拍脉冲,控制步进电机运转。同时Y7接至PLC的输入接点X0,并经X0送至PLC内部的HSC。HSC计数Y7的脉冲数,当达到预定值时发生中断,使Y7的脉冲频率切换至下一参数,从而实现较准确的位置控制。实现这一控制的梯形图及外部接线图分别见图4、图5。
  

  控制系统的运行程序:第一句是将DT9044和DT9045清零,即为HSC进行计数做准备;第二句~第五句是建立参数表,参数存放在以DT20为首地址的数据寄存器区;最后一句是启动SPD0指令,执行到这句则从DT20开始取出设定的参数并完成相应的控制要求。

        由第一句可知第一个参数是K0,是PULSE方式的特征值,由此规定了输出方式。第二个参数是K70,对应脉冲频率为500Hz,于是Y7发出频率为500Hz的脉冲。第三个参数是K1000,即按此频率发1000个脉冲后则切换到下一个频率。而下一个频率即最后一个参数是K0,所以当执行到这一步时脉冲停止,于是电机停转。故当运行此程序时即可使步进电机按照规定的速度、预定的转数驱动控制对象,使之达到预定位置后自动停止。

Piston

  • 精华:2帖
  • 求助:1帖
  • 帖子:149帖 | 13110回
  • 年度积分:63
  • 历史总积分:39969
  • 注册:2009年5月22日
发表于:2010-12-24 22:58:46
11楼
                                                     

suizhou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 27回
  • 年度积分:0
  • 历史总积分:220
  • 注册:2010年4月28日
发表于:2010-12-24 23:20:25
12楼

好东西受益不浅,谢谢啊

#天涯

  • 精华:1帖
  • 求助:3帖
  • 帖子:204帖 | 2952回
  • 年度积分:16
  • 历史总积分:8820
  • 注册:2005年3月02日
发表于:2010-12-25 10:29:55
13楼
都是牛人啊!        

main_jun

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:48
  • 注册:2010年4月26日
发表于:2010-12-25 16:57:42
14楼

 好文,可以借鉴。

woyaokong

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 61回
  • 年度积分:0
  • 历史总积分:610
  • 注册:2010年5月26日
发表于:2010-12-25 20:15:45
15楼
新人怎么都不发程序啊

zhuzhuplc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2009年2月23日
发表于:2010-12-25 20:19:13
16楼
看了,觉得自己还有很长的路要走..

ye_w

  • 精华:25帖
  • 求助:1帖
  • 帖子:106帖 | 5215回
  • 年度积分:12
  • 历史总积分:46721
  • 注册:2002年4月17日
发表于:2010-12-26 09:08:10
17楼

我就看看,好好学习一下。

飯特餙

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 15回
  • 年度积分:0
  • 历史总积分:39
  • 注册:2010年1月12日
发表于:2010-12-26 10:37:36
18楼
学如逆水行舟,不进则退啊!

zhang5114210

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 538回
  • 年度积分:2
  • 历史总积分:2084
  • 注册:2006年8月01日
发表于:2010-12-26 11:12:22
19楼
引用woyaokong 的回复内容:新人怎么都不发程序啊

新手来了

ljc2008

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 45回
  • 年度积分:0
  • 历史总积分:386
  • 注册:2008年9月26日
发表于:2010-12-26 11:35:22
20楼
谁来发一个三菱的,先顶他一下!

相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 下一页 尾页