自动控制网移动版

自动控制网 > 自动化 > PLC >

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

  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的指令系统,可使系统实现高精度定位。


本文已影响
最近关注
0基础免费学PLC,扫描观看

扫描上方二维码免费观看PLC视频课程