导读:在自动化设备中,我们通常会使用步进或者伺服电机来实现设备的定位控制,而定位的过程中需要实现暂停的功能,那在定位的过程中如何实现暂停的功能呢?比如这个朋友就问了这个问题,这个问题问的非常好,所以本文就来借助一个案例来探讨西门子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”的位置停止,而且是不确定的位置点。当然,在一些特殊的场合可能可以用的到。
|