自动控制网—学习自动控制技术电气自动化技术从这里开始!
当前位置: 自动控制网 > 自动化 > PLC >

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

时间:2017-05-21 09:50来源:www.eadianqi.com 编辑:自动控制网
5 程序和注释 //标题:用脉冲输出进行定位控制 //主程序 ld sm0.1 //仅首次扫描周期sm0.1才为1。 r m0.0,128 //md0至md12复位 atch 0,19 //把中断程序0分配给中断事件19(脉冲串终止) eni //允许中断 //脉冲输出

  5 程序和注释

自动控制网www.eadianqi.com版权所有

  //标题:用脉冲输出进行定位控制 自动控制网www.eadianqi.com版权所有

  //主程序 自动控制网www.eadianqi.com版权所有

  ld sm0.1

自动控制网www.eadianqi.com版权所有

  //仅首次扫描周期sm0.1才为1。 自动控制网www.eadianqi.com版权所有

  r m0.0,128

自动控制网www.eadianqi.com版权所有

  //md0至md12复位 自动控制网www.eadianqi.com版权所有

  atch 0,19 本文来自www.eadianqi.com

  //把中断程序0分配给中断事件19(脉冲串终止)

本文来自www.eadianqi.com

  eni 自动控制网www.eadianqi.com版权所有

  //允许中断

本文来自www.eadianqi.com

  //脉冲输出功能的初始化

本文来自www.eadianqi.com

  movw 500,smw68 本文来自www.eadianqi.com

  //脉冲周期t=500us

本文来自www.eadianqi.com

  movw 0,smw70 自动控制网www.eadianqi.com版权所有

  //脉冲宽度为0(脉冲调制)

自动控制网www.eadianqi.com版权所有

  movd 429496700,smd72

本文来自www.eadianqi.com

  //为参考点设定的最大脉冲数 本文来自www.eadianqi.com

  //设置逆时针旋转

自动控制网www.eadianqi.com版权所有

  ldn m0.1 //若电机停止

自动控制网www.eadianqi.com版权所有

  a i1.5 //且旋转方向开关=1 本文来自www.eadianqi.com

  s q0.2,1 //则逆时针旋转(q0.2=1)

自动控制网www.eadianqi.com版权所有

  //设置顺时针旋转

本文来自www.eadianqi.com

  ldn m0.1 //若电机停止

自动控制网www.eadianqi.com版权所有

  an i1.5 //且旋转方向开关=0

本文来自www.eadianqi.com

  r q0.2,1 //则逆时针旋转(q0.2=0)

自动控制网www.eadianqi.com版权所有

  //联锁 自动控制网www.eadianqi.com版权所有

  ld i1.1 本文来自www.eadianqi.com

  //若按“stop”(停止)按钮

自动控制网www.eadianqi.com版权所有

  s m0.2,1 //则激活联锁(m0.2=1) 自动控制网www.eadianqi.com版权所有

  //解除联锁

自动控制网www.eadianqi.com版权所有

  ldn i1.1 本文来自www.eadianqi.com

  //若“start”(启动)按钮松开 自动控制网www.eadianqi.com版权所有

  an i1.0

自动控制网www.eadianqi.com版权所有

  //且“stop”(停止)按钮松开

本文来自www.eadianqi.com

  r m0.2,1 //则解除联锁(m0.2=0) 本文来自www.eadianqi.com

  //确定操作模式(参考点定位控制) 本文来自www.eadianqi.com

  ld i1.4 自动控制网www.eadianqi.com版权所有

  //若按“设置/取消参考点”按钮 自动控制网www.eadianqi.com版权所有

  eu //上升沿

自动控制网www.eadianqi.com版权所有

  call 1 //则调用子程序1 自动控制网www.eadianqi.com版权所有

  //启动电机 自动控制网www.eadianqi.com版权所有

  ld i1.0 本文来自www.eadianqi.com

  //若按“start”(启动)按钮 自动控制网www.eadianqi.com版权所有

  eu //上升沿 本文来自www.eadianqi.com

  an m0.1 //且电机停止

自动控制网www.eadianqi.com版权所有

  an m0.2 //且无联锁

本文来自www.eadianqi.com

  ad≥ smd72,1 本文来自www.eadianqi.com

  //且步数≥1,则 自动控制网www.eadianqi.com版权所有

  movb 16#85,smb67 本文来自www.eadianqi.com

  //置脉冲输出功能(pto)的控制位 自动控制网www.eadianqi.com版权所有

  pls 0 //启动脉冲输出(q0.0) 本文来自www.eadianqi.com

  s m0.1,1 本文来自www.eadianqi.com

  //“电机运行”标志位置位(m0.1=1) 自动控制网www.eadianqi.com版权所有

  //定位控制

自动控制网www.eadianqi.com版权所有

  ld m0.3

自动控制网www.eadianqi.com版权所有

  //若已激活“定位控制” 操作模式

本文来自www.eadianqi.com

  an m0.1 //且电机停止

自动控制网www.eadianqi.com版权所有

  call 2 //则调用子程序2 本文来自www.eadianqi.com

  //停止电机

本文来自www.eadianqi.com

  ld i1.1

本文来自www.eadianqi.com

  //若按“stop”(停止)按钮

本文来自www.eadianqi.com

  eu //上升沿

自动控制网www.eadianqi.com版权所有

  a m0.1 //且电机运行,则

本文来自www.eadianqi.com

  call 0 //则调用子程序0

自动控制网www.eadianqi.com版权所有

  mend //主程序结束 本文来自www.eadianqi.com

  //子程序1

本文来自www.eadianqi.com

  sbr 0 //子程序0停止电机 自动控制网www.eadianqi.com版权所有

  movb 16#cb,smb67

本文来自www.eadianqi.com

  //激活脉宽调制

本文来自www.eadianqi.com

  pls 0 //停止输出脉冲到q0.0

自动控制网www.eadianqi.com版权所有

  r m0.1,1 自动控制网www.eadianqi.com版权所有

  //“电机运行”标志位复位(m0.1=0) 自动控制网www.eadianqi.com版权所有

  ret //子程序0结束

自动控制网www.eadianqi.com版权所有

  sbr1

自动控制网www.eadianqi.com版权所有

  //子程序1,“确定操作模式” 自动控制网www.eadianqi.com版权所有

  ld m0.1 //若电机运行 自动控制网www.eadianqi.com版权所有

  call 0 自动控制网www.eadianqi.com版权所有

  //则调用子程序0,停止电机 本文来自www.eadianqi.com

  //申请“参考点曲线” 本文来自www.eadianqi.com

  ld m0.3

自动控制网www.eadianqi.com版权所有

  //若已激活“定位控制”,则 本文来自www.eadianqi.com

  r m0.3,1

自动控制网www.eadianqi.com版权所有

  //参考点标志位;复位(m0.3=0) 自动控制网www.eadianqi.com版权所有

  r q1.0,1

本文来自www.eadianqi.com

  //取消“定位控制激活”信息(q1.0=0)

自动控制网www.eadianqi.com版权所有

  movd 429496700,smd72

本文来自www.eadianqi.com

  //为新的“参考点曲线”设定最大的脉冲数。 本文来自www.eadianqi.com

  cret

本文来自www.eadianqi.com

  //条件返回到主程序。

自动控制网www.eadianqi.com版权所有

  //申请“定位控制”

本文来自www.eadianqi.com

  ldn m0.3

自动控制网www.eadianqi.com版权所有

  //若未设置参考点(m0.3=0),则 自动控制网www.eadianqi.com版权所有

  s m0.3,1 本文来自www.eadianqi.com

  //参考点标志位置位(m0.3=1)

本文来自www.eadianqi.com

  s q1.0,1

本文来自www.eadianqi.com

  //输出“定位控制激活”信息(q1.0=1)

本文来自www.eadianqi.com

  ret //子程序1结束 本文来自www.eadianqi.com

  //子程序2 自动控制网www.eadianqi.com版权所有

  sbr2 //子程序2,“定位控制”

本文来自www.eadianqi.com

  movb ib0,mb11 本文来自www.eadianqi.com

  //把定位角度从ibo拷到md8的最低有效字节mb11。

本文来自www.eadianqi.com

  r m8.0,24 本文来自www.eadianqi.com

  //mb8至mb10清零

自动控制网www.eadianqi.com版权所有

  div 9,md8 自动控制网www.eadianqi.com版权所有

  //角度/9=q1+r1

自动控制网www.eadianqi.com版权所有

  movw mw8,mw14 本文来自www.eadianqi.com

  //把r1存入md12

本文来自www.eadianqi.com

  mul 25,md8

本文来自www.eadianqi.com

  //q1×25→md8 自动控制网www.eadianqi.com版权所有

  mul 25,md12

本文来自www.eadianqi.com

  div 9,md12

自动控制网www.eadianqi.com版权所有

  // r1×25/9= q2+r2

本文来自www.eadianqi.com

  call 3 自动控制网www.eadianqi.com版权所有

  //在子程序3中循环步数 本文来自www.eadianqi.com

  movw 0,mw12 //删除r2

本文来自www.eadianqi.com

  +d md12,md8 本文来自www.eadianqi.com

  //把步数写入md8

本文来自www.eadianqi.com

  movd md8,smd72 自动控制网www.eadianqi.com版权所有

  //把步数传到smd72 本文来自www.eadianqi.com

  ret //子程序2结束

自动控制网www.eadianqi.com版权所有

  //子程序3

自动控制网www.eadianqi.com版权所有

  sbr3 //子程序3,“循环步数” 自动控制网www.eadianqi.com版权所有

  ldw≥mw12,5 //如果r2≥5/9,则 自动控制网www.eadianqi.com版权所有

  incw mw14 //步数增加1。 本文来自www.eadianqi.com

  ret 自动控制网www.eadianqi.com版权所有

  //子程序3结束 本文来自www.eadianqi.com

  //中断程序0,“脉冲输出终止”

本文来自www.eadianqi.com

  int0 //中断程序0 本文来自www.eadianqi.com

  r m0.1,1 自动控制网www.eadianqi.com版权所有

  //“电机运行”标志位复位(m0.1=0) 自动控制网www.eadianqi.com版权所有

  ret //子程序0结束

本文来自www.eadianqi.com

6 结束语

本文来自www.eadianqi.com

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

本文来自www.eadianqi.com


本文已影响