[西门子] 步进/伺服定位控制中“暂停”功能案例

[复制链接]
查看282 | 回复1 | 2024-9-29 19:07:57 | 显示全部楼层 |阅读模式

导读:在自动化设备中,我们通常会使用步进或者伺服电机来实现设备的定位控制,而定位的过程中需要实现暂停的功能,那在定位的过程中如何实现暂停的功能呢?比如这个朋友就问了这个问题,这个问题问的非常好,所以本文就来借助一个案例来探讨西门子1200PLC发脉冲的方式控制步进/伺服如何实现暂停功能。

1.控制要求:当按下启动按钮后,步进/伺服以指定的速度在0-100mm位置来回往复运行,而在行走的过程中可以随时按下暂停按钮暂停。

2.程序编写

程序段1是轴使能

程序段2是轴点动功能,程序段3是轴的当前位置

程序段4是轴回原点功能,采用的是3号模式回原点,如果想把当前位置设定为原点直接改成0号模式即可

程序段5是绝对定位指令。

程序段6是启动功能,当按下启动后,将数值1给到寄存器中

程序段7是判断寄存器的值等于1时,将需要定位的位置值修改为100mm,然后触发线圈,开始定位,当定位完成后将寄存器的值值修改为2

程序段8是将0.0的位置给到需要定位的寄存器中,接着还是触发定位功能,然后定位完成了将寄存器的值赋值为1,此时就形成了循环往复定位了,那如何暂停呢?

程序段9是暂停的功能,当接通了暂停指令的“Excute”管脚后步进/伺服实现了暂停,那当“"步进控制DB".暂停”的值从1变为0后(也就是取消了暂停),则会触发程序段5的定位程序。(也就是从1变为0之后再次在原先的基础上定位,比如原先暂停的位置是50.2mm位置,那再次启动会在此基础上继续运行)

注:使用暂停指令是比较好实现暂停的方法,那还有其他的方式实现暂停吗?有,但是这都不是严格意义上的暂停,大家可以借鉴!

方法一:可以直接将MC_POWER指令的“Enable”管脚的值修改为0,那它的轴也会停止。但是这种是方法的弊端就是,轴需要再次回原点才能继续定位。

方法二:可以将将程序中的寄存器“"步进控制DB".循环次数”的值修改为0,但是这种方法不是立即停止,而是到达“0.0”或者“100.0”的位置停止,而且是不确定的位置点。当然,在一些特殊的场合可能可以用的到。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
步进电机 | 2024-10-13 13:14:24 | 显示全部楼层
百分百照搬次程序并不能实现暂停,不知道哪里不对
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则