200PLC的应用和练习,pls脉冲完成位是sm66.7
前言
上一章简单说了一下运动控制和运动指令,PLC,步进,步进驱动器三者之间的关系,接线以及脉冲频率的解释,这一章继续学习。
一、所遇到的问题
在上一章中我们已经实现步进电机的运动,但是仍有问题:
1.电机可以走一个脉冲了,但怎么停下来?
2.怎么让电机一直走?
3.怎么让电机反转?
4.怎么循环运行?
下面一起来看!
二、解决问题
1.让电机停止
SM67.0 | PTO/PWM更新周期值 | 0=不更新 | 1=允许更新 |
SM67.1 | PWM更新脉冲宽度值 | 0=不更新 | 1=允许更新 |
SM67.2 | PTO更新脉冲数 | 0=不更新 | 1=允许更新 |
SM67.3 | PTO/PWM时间基准选择 | 0=us | 1=ms |
SM67.4 | PWM更新方式 | 0=异步更新 | 1=同步更新 |
SM67.5 | PTO单/多段方式 | 0=单段 | 1=多段 |
SM67.6 | PTO/PWM模式选择 | 0=选用PTO | 1=选用PWM |
SM67.7 | PWM/PTO脉冲输出 | 0=禁止 | 1=允许 |
根据上图控制字节表,发现如果SM67.7=0,那么将无法发脉冲,电机也就无法运动。
我们只要将SM67.7变为零,问题就解决,可以对SM67.7进行复位。
但在运行过之后发现停止后无法再次启动,根据下方代码:发现无法再次启动的原因是没有在进行初始化(sm0.1是上电初始化),那么这里将sm0.1改为按钮i0.0,每次启动都初始化。
未修改前:
修改后:
2.如何让电机一直发脉冲
在初始化脉冲参数中给smd72传入0,电机将会一直发脉冲,但要注意的是这里不要用沿指令触发,如下:
这里可以用置位指令 ,使m0.0一直得电,停止的时候再复位。
3.电机反转
如何让电机反向运行 !这里需要触发一个(Q0.0,Q0.1除外)的输出点,来实现反转,以Q0.2为例,Q0.2=1,电机反向运行,Q0.2=0,电机恢复正向运行
4.电机循环运行
例题:电机在AB两点之间往返运行,A点限位I1.0,B点限位I1.1 .
这里有两个限位开关,当碰到限位1时,反转运行,当到限位2时,正转运行,一直循环可以随时停止。
思路:在上面我们知道如何使电机反转,那么只需要在碰到限位后启动反转运行,再碰到限位再正转运行。这里可以用取反指令或者置位复位。
方法一:需要知道电机是先正转还是翻转
方法二:使用取反指令,不考虑先正转还是反转 ,可以完美解决!
三.练习题
1.按启动,发送3000个脉冲,随时可以停止和重启。
2.按启动电机一直走,按反向按钮,电机反向,随时停。
3.电机在两点之间往返,A点限位I1.0,B点限位I1.1.
4.电机在两点之间往返,c点为原点,按下停止按钮,电机到c点才停止。
5.按下启动按钮,电机正转3000脉冲,停1秒,反转3000脉冲,停一秒,然后再正转,如此循环,按下停止按钮,电机立即停止。
这里说一下第四题第五题:
第四题要求往返运动,并且有原点,按下停止后要回到原点,如下:
第四题: 4.电机在两点之间往返,c点为原点,按下停止按钮,电机到c点才停止。
1.初始化:
2.启动和停止 :
3.A点B点往返:
第五题: .按下启动按钮,电机正转3000脉冲,停1秒,反转3000脉冲,停一秒,然后再正转,如此循环,按下停止按钮,电机立即停止。
在这里需要发3000个脉冲,然后反转,进行循环,这里要用到脉冲状态完成位sm66.7,来帮助完成程序。
因为程序尚未进行试验,不确定完全对,这里就不写了。
总结
这里主要讲了运动控制的一些问题和应用练习。pls指令的状态完成位是SM66.7,脉冲发完=1.