运动控制(脉冲回零+电机启动+限位停机+实时变速)
【控制要求】
①实现伺服电机/步进电机脉冲回零。
②伺服电机/步进电机完成基础动作执行,如给速度,走相对应的位移,然后等待电机停止。
③伺服电机/步进电机遇限位停机。
④伺服电机/步进电机执行三段速变化,实现实时变速。
⑤采用简思四代PLC,型号:SFa-1616A2MT。
【流程图说明】

【元件说明】
PLC输入端:X0-启动按钮;X1-电机负限信号。
PLC输出端:Y0-轴1脉冲信号(程序中无需设置该端口),Y2-轴1方向信号(程序中无需设置该端口)。Y4-指示灯1号;Y5-指示灯2号;Y6-指示灯3号;
特别说明:伺服电机/步进电机均属于运动控制类,PLC支持24V脉冲输出信号,若电机驱动器支持24V脉冲,则可以将驱动器的脉冲信号和方向信号线直接连接到PLC输出端的脉冲控制端口,此时用作运动控制的输出端口就不能做普通开关量控制;若电机驱动器不支持24V脉冲信号,电机驱动器的方向线和脉冲线都必须串一个2.2K电阻。
【软件别名】
PLC输入端:

PLC输出端:请注意Y0和Y2在实际程序中是不需要用到的,只是此处别名以示区分。

【编程指令要义】
启动信号:“等待输入X通”,等外部条件给信号到PLC。
限位信号:也是给的PLC输入端,故在程序中一样用到“等待输入X”的指令。
普通输出端:“触发输出Y通/断”,用于控制指示灯点亮/熄灭的动作。
伺服电机控制指令:运动指令版块,其中涉及到“速度控制”-给电机赋予速度比值;“单轴运动”-给电机赋予位移长度;“单轴等待”-等待正在运行的电机停止;“单轴操作”-控制电机停止或运行,或回零。
【程序编辑】
流程动作程序在时序环0环实现:

程序解析:
严格对照流程图编辑,一个动作一条指令。
帧0:“等待输入X00通”,动作的启动信号。
帧1-帧3:电机脉冲回零:帧1“速度控制”,赋予电机脉冲回零一个速度比值,比如100;帧2“单轴绝对”,采用的单轴运动指令 ,属性设置选择运动方式:绝对,运动方向则任意,可正可反,绝对模式走的是坐标位置,所以对电机方向没有要求。帧3“单轴等待”,等电机回脉冲零点后停止下来,该条指令有效的起到了保证电机在执行脉冲回零的过程中,程序避免向下执行的作用。

“单轴绝对”属性参数:

帧4:“延时等待”,按照流程图动作添加对应的延时指令。
帧5-帧7:电机的基础运动程序:帧5“速度控制”,赋予电机运动一个速度比值,比如500;帧6“单轴增量”,采用的单轴运动指令 ,属性设置选择运动方式:增量(表示位移值在原有的基础继续增加),运动方向:正向,位移值:5000;帧7“单轴等待”,等电机执行完5000个脉冲位置后停止下来,该条指令有效的起到了保证电机在运行的过程中,程序避免向下执行的作用。

“单轴增量”属性参数:

帧8:“延时等待”,按照流程图动作添加对应的延时指令。
帧9-帧13:电机反转碰限位停机:帧9“速度控制”,赋予电机运动一个速度比值,比如300;帧2“单轴增量”,采用的单轴运动指令 ,属性设置选择运动方式:增量(表示位移值在原有的基础继续增加),运动方向:反向,位移值:2000000000(因为是碰限位传感器,电机在运转的过程中要寻找限位,所以该位移值尽可能设置大一点,单条指令最大位移是2后面9个0);帧11“等待输入X1通”表示负限位传感器有信号;帧12:“单轴操作-减速停止”控制电机停止;帧13“单轴等待”,等待电机完全停止下来。

帧4:“延时等待”,按照流程图动作添加对应的延时指令。
帧15:电机脉冲位置清零:采用赋值运算:Pa1=D0+D0,0+0所得结果全是0,就是将之前电机所运转的位移值全部清空,为下面实现实时变速的程序打好铺垫。
![]()
帧16-帧17:电机开始实时变速的总位移长度:帧16“速度控制”,赋予电机运动的初步速度比值,比如900;帧17“单轴增量”,采用的单轴运动指令 ,属性设置选择运动方式:增量(表示位移值在原有的基础继续增加),运动方向:正向,位移值:35000。
![]()
帧18-帧20:电机第一段变速并触发指示灯1号点亮:

帧18“逻辑比较”:比较电机的当前脉冲位置P1,将第一段比较位移值5000保存在寄存器W0里面,当P1>W0时,执行帧19“速度控制”,将电机速度值无缝从900降速到速比值:500;并且执行帧20“触发输出Y4通”控制指示灯1号点亮。
帧21-帧24:电机第二段变速并触发指示灯2号点亮,指示灯1号熄灭:

帧21“逻辑比较”:比较电机的当前脉冲位置P1,将第二段比较位移值15000保存在寄存器W1(同一个寄存器不能重复使用)里面,当P1>W1时,执行帧22“速度控制”,将电机速度值无缝从500降速到速比值:300;并且执行帧23“触发输出Y5通”控制指示灯2号点亮,以及帧24“触发输出Y4断”控制指示灯1号熄灭。
帧25-帧28:电机第三段变速并触发指示灯3号点亮,指示灯2号熄灭:

帧25“逻辑比较”:比较电机的当前脉冲位置P1,将第三段比较位移值25000保存在寄存器W2(同一个寄存器不能重复使用)里面,当P1>W2时,执行帧26“速度控制”,将电机速度值无缝从300提升到速比值:600;并且执行帧27“触发输出Y6通”控制指示灯3号点亮,以及帧28“触发输出Y5断”控制指示灯2号熄灭。
帧29:电机三段变速完成,等待电机停止,执行完最后的位移值:单轴等待-电机停止,该条指令有效的起到了保证电机在运行的过程中,程序避免向下执行的作用。
帧30:“触发输出Y6断”,控制指示灯3号熄灭。
帧31:“延时等待”,按照流程图动作添加对应的延时指令。
帧32:“帧环跳转环0帧1”,程序结束实现无限循环,用帧环跳转将程序跳转到第一条,再次回到脉冲回零的动作,继续往下执行,直接跳过启动条件。
寄存器W值保存设置,电机位移比较值,保存在W32位寄存器里面:
