简思中文编程PLC入门:运动控制类-双轴控制

【控制要求】
①实现两轴机械回零,回零时遇外部零点信号停机。
②两轴执行先后动作,或者同时动作。
③电机运行过程中,对位置进行比较再触发电磁阀动作。
④整体程序进行有限次数循环,并设置外部清零按钮。
⑤采用简思四代PLC,型号:SFa-1616A2MT。
【流程图说明】

【元件说明】
PLC输入端:
X0-启动按钮;X1-电机右限信号,X2-清零按钮,X6-轴1零点,X7-轴2零点(零点开关位置是PLC内设的,PLC对应X端直接连接零点传感器就行,无需在程序中设置)。
PLC输出端:
Y0-轴1脉冲信号(程序中无需设置该端口),Y2-轴1方向信号(程序中无需设置该端口)。Y10-1号电磁阀;Y11-2号电磁阀;Y12-3号电磁阀;Y13-4号电磁阀。
特别说明:伺服电机/步进电机均属于运动控制类,PLC支持24V脉冲输出信号,若电机驱动器支持24V脉冲,则可以将驱动器的脉冲信号和方向信号线直接连接到PLC输出端的脉冲控制端口,此时用作运动控制的输出端口就不能做普通开关量控制;若电机驱动器不支持24V脉冲信号,电机驱动器的方向线和脉冲线都必须串一个2.2K电阻。
【软件别名】
PLC输入端:

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

【编程指令要义】
启动信号:“等待输入X通”,等外部条件给信号到PLC。
限位信号:也是给的PLC输入端,故在程序中一样用到“等待输入X”的指令。
普通输出端:“触发输出Y通/断”,用于控制电磁阀推出/缩回的动作。
伺服电机控制指令:运动指令版块,其中涉及到“速度控制”-给电机赋予速度比值;“单轴运动”-给电机赋予位移长度;“单轴等待”-等待正在运行的电机停止;“单轴操作”-控制电机停止或运行,或回零。
机械回零:为PLC内部设置零点动作,在程序中只需要添加“单轴操作”指令,选择回零,PLC就会持续发出脉冲,电机开始以快搜的速度寻找零点开关位置,找到零点有信号时,电机切换成慢搜速度,直至零点信号断开,电机停下,此处就是外部零点位置;而电机的零点开关位置是硬设零点,固定位,在软件中轴参数位置可以查询,不是自己随意选定的。
【程序编辑】
①主流程程序在时序环0环实现:

程序解析:
严格对照流程图编辑,一个动作一条指令。
帧0:“等待输入X00通”,动作的启动信号。
帧1-帧2:电机机械回零:帧1“单轴操作-A1正向回零”,帧2“单轴操作-A2正向回零”两条指令直接控制两轴开始回零,为同时执行;以快搜的速度自动寻找零点,待X6有信号,轴1切换慢搜速度直至X6信号断开,轴1停下,此过程无需添加等待X6通的指令;同理,待X7有信号,轴2切换慢搜速度直至X7信号断开,轴2停下,此过程无需添加等待X7通的指令。
帧3-帧4:“单轴等待”,等电机回零点后停止下来,该条指令有效的起到了保证电机在执行回零的过程中,程序避免向下执行的作用。
帧5:“延时等待”,按照流程图动作添加对应的延时指令。
帧6-帧8:轴1基础运动程序:帧6“速度控制”,赋予电机运动一个速度比值,比如500;帧7“单轴增量”,采用的单轴运动指令 ,属性设置选择运动方式:增量(表示位移值在原有的基础继续增加),运动方向:正向,位移值:5000;帧8“单轴等待”,等电机执行完5000个脉冲位置后停止下来,该条指令有效的起到了保证电机在运行的过程中,程序避免向下执行的作用。

“单轴增量”属性参数:

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

帧15:“延时等待”,按照流程图动作添加对应的延时指令。
帧16-帧17:电机脉冲位置清零:轴1采用赋值运算:Pa1=D0+D0,轴2采用赋值运算:Pa2=D0+D0,0+0所得结果全是0,就是将之前两台电机所运转的位移值全部清空,为下面实现比较电机脉冲位置的程序打好铺垫。

帧18-帧21:电机的总位移长度:帧18-帧19“速度控制”,分别赋予电机运动的初步速度比值,A1表示轴1,A2表示轴2,速比值比如800,两台电机速比值一致;帧20-帧21“单轴增量”,都是采用的单轴运动指令 ,属性设置选择运动方式:增量(表示位移值在原有的基础继续增加),运动方向:正向,轴1的位移值:10000,轴2的位移值:20000。

帧22-帧23:轴1电机位置比较,进而触发4个电磁阀推出:

帧22“逻辑比较”:比较轴1电机的当前脉冲位置P1,将这段比较位移值5000保存在寄存器W0里面,当P1>W0时,执行帧23“触发输出Y010-013通”控制1号/2号/3号/4号电磁阀同时推出,此处采用触发输出的多端口模式,一条指令可以连续触发多个端口。
帧24-帧25:轴2电机位置比较,进而触发1号电磁阀和2号电磁阀同时缩回:

帧24“逻辑比较”:比较轴2电机的当前脉冲位置P2,将这段比较位移值10000保存在寄存器W1(同一个寄存器不能重复使用)里面,当P1>W1时,执行帧25“触发输出Y010-011断”控制电磁阀1号和2号同时缩回。
帧26-帧27:“单轴等待”,等待电机停止,帧26轴号为1,帧27轴号为2,等待两台电机完全停止下来,此处其实A1电机早已运行完10000的脉冲位置,实际等待是等待A2电机停止,但写上等待轴1停止也没有影响。

帧28:“延时等待”,按照流程图动作添加对应的延时指令。
帧29-帧31:根据动作流程图,依次控制3号电磁阀缩回,延时,在控制4号电磁阀推出s。

帧32-帧37:轴1电机和轴2电机同时运行,但非同速非同位移:

帧32:“速度控制”为轴1赋予速比值,如700;帧33“速度控制”为轴2赋予速比值,轴号要改成2,如300;帧34“单轴运动”为轴1位移值,改轴号1,如5000,运动方式:增量,运动方向:正向;帧35“单轴运动”为轴2位移值,改轴号2,位移值如2000,运动方式:增量,运动方向:正向;帧36-帧37“单轴等待”,等待电机停止,帧36轴号为1,帧37轴号为2,等待两台电机完全停止下来。
帧38:触发4号电磁阀缩回,触发输出Y13断。
帧39-帧40:补充程序,可以在程序最后加上脉冲清零,清空电机的所有位移值,此段程序可加可不加。

帧41:“延时等待”,按照流程图动作添加对应的延时指令。
帧42:“计数循环1帧50次”,程序结束实现有限次数循环,用计数循环指令将程序跳转到帧1,再次回到电机机械回零的动作,继续往下执行,直接跳过启动条件。

属性设置:

寄存器W值保存设置,两台电机位移比较值,保存在W32位寄存器里面:

②计数清零程序在时序环1环实现:

程序解析:
对主程序计数功能清零,我们称为计数清零,需要用到“赋值运算”指令。
环1帧0-帧1:“等待输入X02断”,“等待输入X02通”表示清零按钮从断到通的瞬间信号,也就是一次动作。
帧2:计数清零:“赋值运算”Rc0=D0+D0,0+0=0,该指令就能实现直接清零;Rc0中的Rc表示时序环的计数变量,Rc0中的0表示计数器的序号(一个时序环最多能调用10个计数器),也就是Rc0表示时序环的第一个计数变量。至于该计数器是哪一个时序环的计数器,在属性选择环号就行。
赋值运算属性设置:
