西门子S7-200在步进电机定位控制中的应用

2012-07-16 10:45:14 来源:OFweek工控网 点击:3053

摘要:  借助于cpu214所产生的集成脉冲输出,通过步进电机来实现相对的位置控制。虽然这种类型的定位控制不需要参考点,本例还是粗略地描述了确定参考点的简单步骤。因为实际上它总是相对一根轴确定一个固定的参考点,因此,用户借助于一个输入字节的对偶码(dual coding)给cpu指定定位角度。

关键字:  PLS7-200步进电机定位控制

  1 引言

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

  2 系统结构

  如图1所示。

  

  3 硬件配置

  

 

  如表1所示。

  4 软件结构

  4.1 plc的输入信号与输出信号

  plc的部分输入信号与输出信号,以及标志位如表2所示。

  4.2 系统软件设计

  plc的程序框图如图2所示。

  

  .3 初始化

  在程序的第一个扫描周期(sm0.1=1),初始化重要参数。选择旋转方向和解除联锁。

  4.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开关,便在两个模式之间切换。如果此信号产生,同时电机在运转,那么电机就自动停止。

  实际上,一个与驱动器连接的参考点开关将代替手动操作切换开关的使用,所以,参考点标志能解决模式切换。

  4.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,以便能够再次起动电机。

  4.6 停止电机

  按“stop”(停止)按扭(i1.1),可在任何时候停止电机。执行子程序0中与此有关的指令。

[#page#]

  5 程序和注释

  //标题:用脉冲输出进行定位控制

  //主程序

  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结束

  6 结束语

  通过对硬件和软件的合理设计,用较为价廉的西门子s7-200系列plc作为核心控制部件,构成的定位系统能够达到精确定位的目的。特别应指出的是通过灵活、巧妙的应用plc的指令系统,可使系统实现高精度定位。

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告