PLC控制步进电机的实例(图与程序)

合集下载

PLC控制步进电机的实例(图与程序)

PLC控制步进电机的实例(图与程序)

PLC(一)控制步进电机的实例(图与程序)·采用绝对位置控制指令(DRVA),大致阐述FX1S控制步进电机的方法。

由于水平有限,本实例采用非专业述语论述,请勿引用。

·FX系列PLC单元能同时输出两组100KHZ脉冲,是低成本控制伺服与步进电机的较好选择!·PLS+,PLS-为步进驱动器的脉冲信号端子,DIR+,DIR-为步进驱动器的方向信号端子。

·所谓绝对位置控制(DRVA),就是指定要走到距离原点的位置,原点位置数据存放于32位寄存器D8140里。

当机械位于我们设定的原点位置时用程序把D8140的值清零,也就确定了原点的位置。

·实例动作方式:X0闭合动作到A点停止,X1闭合动作到B点停止,接线图与动作位置示例如左图(距离用脉冲数表示)。

·程序如下图:(此程序只为说明用,实用需改善。

)·说明:·在原点时将D8140的值清零(本程序中没有做此功能)·32位寄存器D8140是存放Y0的输出脉冲数,正转时增加,反转时减少。

当正转动作到A点时,D8140的值是3000。

此时闭合X1,机械反转动作到B点,也就是-3000的位置。

D8140的值就是-3000。

·当机械从A点向B点动作过程中,X1断开(如在C点断开)则D8140的值就是200,此时再闭合X0,机械正转动作到A点停止。

·当机械停在A点时,再闭合X0,因为机械已经在距离原点3000的位置上,故而机械没有动作!·把程序中的绝对位置指令(DRVA)换成相对位置指令(DRVI):·当机械在B点时(假设此时D8140的值是-3000)闭合X0,则机械正转3000个脉冲停止,也就是停在了原点。

D8140的值为0·当机械在B点时(假设此时D8140的值是-3000)闭合X1,则机械反转3000个脉冲停止,也就是停在了左边距离B点3000的位置(图中未画出),D8140的值为-6000。

西门子200系列PLC直流步进电机控制方法

西门子200系列PLC直流步进电机控制方法

直流步进电机plc控制方法系统功能概述:本系统采用PLC通过步进电机驱动模块控制步进电机运动。

当按下归零按键时,电机1和电机2回到零点(零点由传感器指示)。

当按下第一个电机运行按键时,第一个电机开始运行,直到运行完固定步数或到遇到零点停止。

当按下第二个电机运行按键时,第二个电机开始运行,运行完固定步数或遇到零点停止。

两电机均设置为按一次按键后方向反向。

电机运行时有升降速过程。

PLC输入点I0.0为归零按键,I0.1为第一个电机运行按键,I0.2为第二个电机运行按键,I0.3为第一个电机传感器信号反馈按键,I0.4为第二个电机传感器信号反馈按键。

PLC输出点Q0.0为第一个电机脉冲输出点,Q0.1为第二个电机脉冲输出点,Q0.2为第一个电机方向控制点,Q0.3为第二个电机方向控制点,Q0.4为电机使能控制点。

所用器材:PLC:西门子S7-224xpcn及USB下载电缆。

编程及仿真用软件为V4.0 STEP 7 MicroWIN SP3。

直流步进电机2个,微步电机驱动模块2个。

按键3个。

24V开关电源一个。

导线若干。

各模块连接方法:PLC与步进电机驱动模块的连接:驱动模块中EN+、DIR+、CP+口均先接3k电阻,然后接24V 电源。

第一个驱动模块CP-接PLC的Q0.0,DIR-接PLC的Q0.2,EN-接PLC的Q0.4第二个驱动模块CP-接PLC的Q0.1,DIR-接PLC的Q0.3,EN-接PLC的Q0.4注意:1、PLC输出时电压为24V,故和驱动器模块连接时,接了3k 电阻限流。

2、由于PLC处于PTO模式下只有在输出电流大于140mA时,才能正确的输出脉冲,故在输出端和地间接了200欧/2w下拉电阻,来产生此电流。

(实验室用的电阻功率不足,用200欧电阻时功率至少在24*24/200=2.88w,即用3w的电阻)3、PLC与驱动模块连接时,当PLC输出低电平时不能将驱动模块电平拉低,故在EN-和DIR-上接了200欧/2W下拉电阻驱动模块与电机接法:驱动模块的输出端分别与电机4根线连接电机传感器与PLC连接:传感器电源接24v,信号线经过240欧电阻(试验中两个470电阻并联得到)与24v电源上拉后,信号线接到PLC的I0.3和I0.4将各模块电源、地线接好。

PLC控制步进电机的实例(图与程序)知识讲解

PLC控制步进电机的实例(图与程序)知识讲解

PLC控制步进电机的实例(图与程序)·采用绝对位置控制指令(DRVA),大致阐述FX1S控制步进电机的方法。

由于水平有限,本实例采用非专业述语论述,请勿引用。

·FX系列PLC单元能同时输出两组100KHZ脉冲,是低成本控制伺服与步进电机的较好选择!·PLS+,PLS-为步进驱动器的脉冲信号端子,DIR+,DIR-为步进驱动器的方向信号端子。

·所谓绝对位置控制(DRVA),就是指定要走到距离原点的位置,原点位置数据存放于32位寄存器D8140里。

当机械位于我们设定的原点位置时用程序把D8140的值清零,也就确定了原点的位置。

·实例动作方式:X0闭合动作到A点停止,X1闭合动作到B点停止,接线图与动作位置示例如左图(距离用脉冲数表示)。

·程序如下图:(此程序只为说明用,实用需改善。

)·说明:·在原点时将D8140的值清零(本程序中没有做此功能)·32位寄存器D8140是存放Y0的输出脉冲数,正转时增加,反转时减少。

当正转动作到A点时,D8140的值是3000。

此时闭合X1,机械反转动作到B点,也就是-3000的位置。

D8140的值就是-3000。

·当机械从A点向B点动作过程中,X1断开(如在C点断开)则D8140的值就是200,此时再闭合X0,机械正转动作到A点停止。

·当机械停在A点时,再闭合X0,因为机械已经在距离原点3000的位置上,故而机械没有动作!·把程序中的绝对位置指令(DRVA)换成相对位置指令(DRVI):·当机械在B点时(假设此时D8140的值是-3000)闭合X0,则机械正转3000个脉冲停止,也就是停在了原点。

D8140的值为0·当机械在B点时(假设此时D8140的值是-3000)闭合X1,则机械反转3000个脉冲停止,也就是停在了左边距离B点3000的位置(图中未画出),D8140的值为-6000。

PLC实现步进电机的正反转和调整控制

PLC实现步进电机的正反转和调整控制

实训课题三PLC实现步进电机正反转和调速控制一、实验目的1、掌握步进电机的工作原理2、掌握带驱动电源的步进电机的控制方法3、掌握DECO指令实现步进电机正反转和调速控制的程序二、实训仪器和设备1、FX-48MR PLC一台2N2、两相四拍带驱动电源的步进电机一套3、正反切换开关、起停开关、增减速开关各一个三、步进电机工作原理步进电机是纯粹的数字控制电动机,它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电机就转动一个角度,图3-1是一个三相反应式步进电机结图;从图中可以看出,它分成转子和定子两部分;定子是由硅钢片叠成,定子上有六个磁极大极,每两个相对的磁极N、S极组成一对;共有3对;每对磁极都绕有同一绕组,也即形成1相,这样三对磁极有3个绕组,形成三相;可以得出,三相步进电机有3对磁极、3相绕组;四相步进电机有4对磁极、四相绕组,依此类推;反应式步进电动机的动力来自于电磁力;在电磁力的作用下,转子被强行推动到最大磁导率或者最小磁阻的位置,如图3-1a所示,定子小齿与转子小齿对齐的位置,并处于平衡状态;对三相异步电动机来说,当某一相的磁极处于最大导磁位置时,另外两相相必处于非最大导磁位置,如图3-1b所示,即定子小齿与转子小齿不对齐的位置;把定子小齿与转子小齿对齐的状态称为对齿,把定子小齿与转子小齿不对齐的状态称为错齿;错齿的存在是步进电机能够旋转的前提条件,所以,在步进电机的结构中必须保证有错齿的存在,也就是说,当某一相处于对齿状态时,其它绕组必须处于错齿状态;本实验的电机采用两相混合式步进电机,其内部上下是两个磁铁,中间是线圈,通了直流电以后,就成了电磁铁,被上下的磁铁吸引后就产生了偏转;因为中间连接的电磁铁的两根线不是直接连接的,是采用在转轴的位置用一根滑动的接触片;这样如果电磁铁转过了头,原先连接电磁铁的两根线刚好就相反了,所以电磁铁的N极S极就和以前相反了;但是电机上下的磁铁是不变的,所以又可以继续吸引中间的电磁铁;当电磁铁继续转,由于惯性又转过了头,所以电极又相反了;重复上述过程就步进电机转了;根据这个原理,如图3-2所示,两相步进电机的转动步骤,以正转为例:由图可见,现相异步电机正转过程分为四个步骤,即A相正方向电流、B相正方向电流、A向反方向电流和B相反方向电流;反转工作的顺序与之相反;A、B两相线圈不是固定的电流方向,这与其它步进电机的控制逻辑有所不同;因此,控制步进电机转动时,必须考虑用换相的思路设计实验线路;可以根据模拟驱动电路的功能和plc必须的逻辑关系进行程序设计;四、采用步进电机驱动器的控制方式利用步进电机驱动器可以通过PLC的高速输出信号控制步进电机的运动方向、运行速度、运行步数等状态;其中:步进电机的方向控制,只需要通过控制U/D端的On和Off就能决定电机的正转或反转;将光耦隔离的脉冲信号输入到CP端就能决定步进电机的速度和步数;控制FREE信号就能使电机处于自由状态;因此PLC的控制程序相当简单,只需通过PLC的输出就能控制步进电机的方向、转速和步数;不必通过PLC控制电机换相的逻辑关系,也不必另外添加驱动电路;实训面板见图3-4,梯形图见图3-5;本程序是利用D0的变化,改变T0的定时间隔,从而改变步进电机的转速;通过两个触点比较指令使得D0只能在10~50之间变化,从而控制步进间隔是1S~5S之间,I/O分配表见表3-1;表3-1 I/O分配表图3-5 梯形图五、采用PLC直接控制步进电机方式对于两相步进电机控制,根据其工作原理,必须考虑其换向的控制方式,因此将其步骤用代号分解,则为:①实现电流方向A+→A-、②实现电流方向B+→B-、③实现电流方向A-→A+、④实现电流方向B-→B+;如果反转则按照④、③、②、①的顺序控制;PLC的I/O分配表按照表3-2,分配图按照图3-6,梯形图见图3-7;表3-2 PLC的I/O分配表步进电机正反转和调速控制的梯形图如图3-7所示,程序中采用积算定时器T246为脉冲发生器,因系统配置的PLC为继电器输出类型,其通断频率过高有可能损坏PLC,故设定范围为K200 ms~1000ms,则步进电机可获得1~10步/秒的变速范围,X0为ON时,正转,X1为ON时;反转;X0为ON时,输出正脉冲列,步进电机正转;当X0为ON时,T246以D0值为预置值开始计时,时间到,T246导通,执行DECO指令,根据D1数值首次为0,指定M10输出,Y0、Y4为ON,步进电机A相通电,且实现电流方向A+→A-;D1加1,然后,T246马上自行复位,重新计时,时间到,T246又导通,再执行DECO指令,根据D1数值此次为1,指定M11输出,Y1、Y5为ON,步进电机B相通电,且实现电流方向B+→B-;D1加1,T246马上又自行复位,重新计数,时间到,T246又导通,再执行DECO指令,根据D1数值此次为2,指定M12输出,Y2、Y6为ON,步进电机A相通电,且实现电流方向A-→A+;D1加1,T246马上又自行复位,重新计时,时间到,T246又导通,再执行DECO命令,根据D1数值此次为3,指定M13输出,Y3、Y7为ON,步进电机B相通电,且实现电流方向B-→B+;当M13为ON,D1复位,重新开始新一轮正脉冲系列的产生;X1为ON时,输出反脉冲列,步进电机正转;当X1为ON时,T246以D0值为预置值开始计时,时间到,T246导通,执行DECO指令,根据D1数值首次为0,指定M10输出,Y3、Y7为ON,步进电机B相通电,且实现电流方向B-→B+;依此类推,完成实现A相反方向电流、B相正方向电流、A相正方向电流三个脉冲列输出;当M13为ON,D1复位,重新开始新一轮正脉冲系列的产生;当X2为ON时,程序由自动转为手动模式,当X0X1为ON时,每点动一次X3,对D1数值首次为0加1,分别指定M10、M11、M12及M13输出,从而完成一轮正反脉冲系列的产生;第73步中,当X4为ON,M8012为ON,M4为ON,且D0当前值<K1000,则D0即加1;第88步中,当X5为ON,M8012为ON,M4为ON,且D0>K200,由D0即减1;六、程序调试及执行调速时按X4或X5按钮,观察D0的变化,当变化值为所需速度时释放;如动作情况与控制要求一致表明程序正确,保存程序;如果发现程序运行与控制要求不符,应仔细分析,找出原因,重新修改,直到程序与控制要求相符为止;七、实训思考练习题如果调速需经常进行,可将D0的内容显示出来,试设想方案,修改程序,并实验;图3-7 步进电机正反转和调速控制程序说明1、步骤0,指定脉冲序列输出顺序移位值;2、当X0为ON,输出正脉冲序列,电机正转;当X1为ON,输出负脉冲序列,电机反转;3、当X2为ON,程序由自动转为手动模式,由X3状态单步触发电机运转;4、当X4为ON,如D0小于1000,每100ms对D0加1,从而延长每脉冲输出的时间间隔,降低电机的转速;5、当X5为ON,如D0大于200,每100ms对D0减1,从而缩短每脉冲输出的时间间隔,加快电机的转速;6、T0为频率调整限制;。

PLC控制步进电机的实例(图与程序)知识讲解

PLC控制步进电机的实例(图与程序)知识讲解

PLC控制步进电机的实例(图与程序)·采用绝对位置控制指令(DRVA),大致阐述FX1S控制步进电机的方法。

由于水平有限,本实例采用非专业述语论述,请勿引用。

·FX系列PLC单元能同时输出两组100KHZ脉冲,是低成本控制伺服与步进电机的较好选择!·PLS+,PLS-为步进驱动器的脉冲信号端子,DIR+,DIR-为步进驱动器的方向信号端子。

·所谓绝对位置控制(DRVA),就是指定要走到距离原点的位置,原点位置数据存放于32位寄存器D8140里。

当机械位于我们设定的原点位置时用程序把D8140的值清零,也就确定了原点的位置。

·实例动作方式:X0闭合动作到A点停止,X1闭合动作到B点停止,接线图与动作位置示例如左图(距离用脉冲数表示)。

·程序如下图:(此程序只为说明用,实用需改善。

)·说明:·在原点时将D8140的值清零(本程序中没有做此功能)·32位寄存器D8140是存放Y0的输出脉冲数,正转时增加,反转时减少。

当正转动作到A点时,D8140的值是3000。

此时闭合X1,机械反转动作到B点,也就是-3000的位置。

D8140的值就是-3000。

·当机械从A点向B点动作过程中,X1断开(如在C点断开)则D8140的值就是200,此时再闭合X0,机械正转动作到A点停止。

·当机械停在A点时,再闭合X0,因为机械已经在距离原点3000的位置上,故而机械没有动作!·把程序中的绝对位置指令(DRVA)换成相对位置指令(DRVI):·当机械在B点时(假设此时D8140的值是-3000)闭合X0,则机械正转3000个脉冲停止,也就是停在了原点。

D8140的值为0·当机械在B点时(假设此时D8140的值是-3000)闭合X1,则机械反转3000个脉冲停止,也就是停在了左边距离B点3000的位置(图中未画出),D8140的值为-6000。

PLC实训程序--步进电机的PLC控制

PLC实训程序--步进电机的PLC控制

步进电机的PLC控制一、实验目的1、掌握PLC控制的基本原理,掌握移位寄存器的使用。

2、掌握步进电机的工作原理,掌握环形分配器的使用方法。

3、掌握运用PLC驱动步进的方法。

二、实验器材1、PLC-2型可编程控制器实验台1台2、步进电机的PLC控制演示板1块3、PC机或手持编程器1台4、编程电缆1根5、自锁式连接导线若干图16.1三、实验原理与实验步骤1、步进电机的PLC控制演示板如图16.1所示。

2、实验原理本演示装置采用的四相步进电机,运用PLC设计一个步进电机的环形分配器的软件程序。

以此来实现步进电机的单步,连续运转。

四相步进电机的结构如下图所示。

演示板上四个LED发光管分别代表步进电机的四个相位。

3、设计要求:按照步进电机的工作方式,设四相线圈分别为A、B、C、D,公共端为E、F。

当电机正向转动时其工作时序如下:A→AB→B→BC→C→CD→D→DA当电机反向转动时其工作时序如下:A←AB←B←BC←C←CD←D←DA要求慢速度为I S—格,快速度为0.1S—格。

4、实验步骤:(1)打开PLC-2型实验台电源,编程器与PLC连接。

(2)根据具体情况编制输入程序,并检查是否正确。

(3)实验台与PLC-DOME008连接,检查连线是否正确。

(4)按下启动按钮,观察运行结果。

四、设计程序清单1、I/O地址分配清单:输入地址:正向启动X0 反向启动X1停止X2 速度控制X3 输出地址: A Y0 B Y1C Y2 C Y3E\F COM2、程序(1)指令表0 LD X0001 OR S02 ANI X0013 ANI X0024 OUT S06 LD X0017 OR S18 ANI X0009 ANI X00210 OUT S112 LD X00313 CJ P0 16 LDI T33 26 OUT Y01527 LDI X00328 CJ P131 P032 LDI T3333 OUT T32 K136 LD T3237 OUT T33 K140 OUT S242 OUT Y01543 P144 LD S245 PLS M1051 ANI M552 ANI M653 ANI M754 AND S155 LDI M256 ANI M357 ANI M458 ANI M559 ANI M660 ANI M761 ANI M862 AND S063 ORB68 AND S069 SFTR M0 M1 K8 K178 MPP79 AND S180 SFTL M0 M2 K8 K189 LD M190 OR M291 OR M892 OUT Y00093 LD M294 OR M395 OR M496 OUT Y00117 OUT T32 K520 LD T3221 OUT T33 K5 24 OUT S2101 LD M6102 OR M7 47 LDI M148 ANI M249 ANI M350 ANI M4103 OR M864 OUT M065 LD M800266 OR M1067 MPS104 OUT Y00397 LD M498 OR M599 OR M6100 OUT Y002105 END梯形图接线图※FX系列的输出继电器的公共端:FX2N-32MR为COM0~COM4;FX2N-48MR为COM0~COM5; FX1N-60MR为COM0~COM7五、思考题1、如果是三相步进电机,工作方式为三相六拍,程序该如何编制?2、如果是E、F公共端不接,作为二相时机使用,程序又该如何处理?。

PLC控制步进电机的实例(图与程序)知识讲解

PLC控制步进电机的实例(图与程序)知识讲解

PLC控制步进电机的实例(图与程序)·采用绝对位置控制指令(DRVA),大致阐述FX1S控制步进电机的方法。

由于水平有限,本实例采用非专业述语论述,请勿引用。

·FX系列PLC单元能同时输出两组100KHZ脉冲,是低成本控制伺服与步进电机的较好选择!·PLS+,PLS-为步进驱动器的脉冲信号端子,DIR+,DIR-为步进驱动器的方向信号端子。

·所谓绝对位置控制(DRVA),就是指定要走到距离原点的位置,原点位置数据存放于32位寄存器D8140里。

当机械位于我们设定的原点位置时用程序把D8140的值清零,也就确定了原点的位置。

·实例动作方式:X0闭合动作到A点停止,X1闭合动作到B点停止,接线图与动作位置示例如左图(距离用脉冲数表示)。

·程序如下图:(此程序只为说明用,实用需改善。

)·说明:·在原点时将D8140的值清零(本程序中没有做此功能)·32位寄存器D8140是存放Y0的输出脉冲数,正转时增加,反转时减少。

当正转动作到A点时,D8140的值是3000。

此时闭合X1,机械反转动作到B点,也就是-3000的位置。

D8140的值就是-3000。

·当机械从A点向B点动作过程中,X1断开(如在C点断开)则D8140的值就是200,此时再闭合X0,机械正转动作到A点停止。

·当机械停在A点时,再闭合X0,因为机械已经在距离原点3000的位置上,故而机械没有动作!·把程序中的绝对位置指令(DRVA)换成相对位置指令(DRVI):·当机械在B点时(假设此时D8140的值是-3000)闭合X0,则机械正转3000个脉冲停止,也就是停在了原点。

D8140的值为0·当机械在B点时(假设此时D8140的值是-3000)闭合X1,则机械反转3000个脉冲停止,也就是停在了左边距离B点3000的位置(图中未画出),D8140的值为-6000。

plc200-步进电机实例

plc200-步进电机实例

Plc200控制电机这是网上擂台的题目:一台电动机要求在按下起动按钮后,电动机运行10秒,停5秒,重复3次后,电动机自动停止。

同时设置有手动停机按钮和过载保护。

编写梯形图控制程序。

PLC可以随便选用,要有相关说明。

注意:要有PLC控制电路和I/O分配表。

1、硬件选择:一台PLC(S7-200)、一个交流接触器Z0(控制电机运行)、2个按钮开关(SB1、SB2)及1个过流继电器(FR),电路图如下:(不包括粉色虚线框部分)2、编程:用不同思路,可编出几种不同的控制方案,都可实现该项目要求。

(1)、最简单的编程方案,就是选用5个通电延时定时器:其3个定时10秒,用于电机启动运行,另2个定时5秒,使电机停。

具体编程也有二种方式,见下图:上图中的方案一与方案二,同用5个定时器,完成同样的功能。

方案一是这样编程:按下启动按钮(I0.0),使断开。

在此过程中,M0.0、MO.2、M0.4都是10秒的导通时间,用它们去控制Q0.7,其彼此间隔时间为5秒(即M0.1、M0.3的通导时间)。

?8?1延时?8?1M0.0=1,T101得电开始延时,延时10秒,T101吸合使M0.1=1、M0.0=0,使T101断电,而T102得电开始延时,5秒后T102得电吸合,使M0.2=1,M0.1=0。

直到T105得电方案二是这样编程:按下启动按钮(I0.0),使 M0.0=1,T101得电开始延时,延时10秒,T101吸合,使T102得电开始延时,延时5秒,T102吸合,使T103得电开始延时。

直至T105得电延时,延时10秒后动作,使M0.0=0,M0.0=0使T101—T105皆断开,程序结束。

用M0.0的常开触点与T101的常闭触点串联,用T102的常开触点与T103的常闭触点串联,用T104的常开触点与T105的常闭触点串联,三者再并联后去驱动Q0.7,可达到同样的控制作用,由上图可见,由于编程方法不同,其方案二用的指令比方案一少,显然:方案二优于方案一。

PLC如何控制步进电机

PLC如何控制步进电机

PLC如何控制步进电机PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备,通过输入/输出模块对各种机电设备进行控制。

在PLC系统中,步进电机是常见的执行元件之一,它具有准确的位置控制和高的加减速性能。

本文将介绍PLC如何控制步进电机,包括步进电机的驱动方式、PLC的控制原理及步进电机控制的程序设计。

一、步进电机的驱动方式1.串行通信驱动方式:步进电机通过串行通信驱动方式与PLC进行通信和控制。

首先,将PLC与串行通信模块相连,通过串行通信模块与步进电机控制器进行通信。

PLC通过串行通信模块发送指令,步进电机控制器接收指令后控制步进电机运动。

2.并行通信驱动方式:步进电机通过并行通信驱动方式与PLC进行通信和控制。

与串行通信驱动方式类似,首先将PLC与并行通信模块相连,通过并行通信模块与步进电机控制器进行通信。

PLC通过并行通信模块发送指令,步进电机控制器接收指令后控制步进电机运动。

3.脉冲驱动方式:步进电机通过脉冲驱动方式与PLC进行通信和控制。

在脉冲驱动方式中,需要PLC输出脉冲信号控制步进电机。

通常情况下,PLC将脉冲信号传递给步进电机驱动器,在驱动器中产生相应的控制信号,实现对步进电机的控制。

二、PLC的控制原理PLC作为控制器,一般采用扫描运行方式。

其运行原理如下:1.输入信号读取:PLC将外部输入信号输入到输入模块中,采集输入信号,并将其从输入模块传递给中央处理器(CPU)进行处理。

2. 程序执行:CPU根据事先编写好的程序进行处理,包括数据处理、逻辑运算和控制计算等。

PLC程序一般采用ladder diagram(梯形图)进行编写。

3.输出信号控制:根据程序的执行结果,CPU将处理好的数据通过输出模块发送给外部设备,用于控制和操作外部设备。

三、步进电机控制的程序设计步进电机的控制程序主要包括参数设定、模式选择、起停控制、运动控制等部分。

下面以一个简单的例子来说明步进电机控制的程序设计过程:1.参数设定:首先需要设定步进电机的一些参数,如电机型号、步距角度、运动速度等。

PLC控制步进电机脉冲信号发生器原理图及例程

PLC控制步进电机脉冲信号发生器原理图及例程

【简要说明】一、尺寸:83mmX50mm X 15mm 长X宽X高二、主要芯片:单片机控制三、工作电压:供电电压直流5~24伏(宽电压工作);四、特点:1、单路信号输出。

2、输出占空比约为百分之五十的方波波形4、输出频率由按键调节,加速减速按键控制5、输出频率范围1~4KHZ(40种脉冲频率调节)6、输出电压(直流5V)7、输出电流225毫安(MAX)8、上升/下降时间100 ns五、有详细使用说明书适用场合:单片机学习、电子竞赛、产品开发、步进电机脉冲信号、毕业设计。

【标注图片】【原理图】/********************************************************************汇诚科技使用芯片:STC15F104E晶振:33MHZ编译环境:Keil作者:zhangxinchun淘宝店:汇诚科技【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!*********************************************************************//********************************************************************/#include "reg52.h"#include <intrins.H>#define uchar unsigned char //宏定义字符型变量#define uint unsigned int //宏定义整型变量/********************************************************************寄存器设置*********************************************************************/ sfr IAP_DATA =0xc2; //数据寄存器sfr IAP_ADDRH =0xc3; //地址寄存器sfr IAP_ADDRL =0xc4; //地址寄存器sfr IAP_CMD =0xc5; //命令寄存器sfr IAP_TRIG =0xc6; //触发寄存器sfr IAP_CONTR =0xc7; //擦除寄存器/********************************************************************命令定义*********************************************************************/ #define CMD_IDLE 0 //EEPROM无操作#define CMD_READ 1 //读取字节#define CMD_PROGRAM 2 //写入字节#define CMD_ERASE 3 //擦除字节/********************************************************************编程周期由晶振决定*********************************************************************/ //#define ENABLE_IAP 0X80 //编程周期由晶振决定(如果<30MHZ选用此项)//#define ENABLE_IAP 0X81 //编程周期由晶振决定(如果<24MHZ选用此项)//#define ENABLE_IAP 0X82 //编程周期由晶振决定(如果<20MHZ选用此项) #define ENABLE_IAP 0X83 //编程周期由晶振决定(如果<12MHZ选用此项)//#define ENABLE_IAP 0X84 //编程周期由晶振决定(如果<6MHZ选用此项)//#define ENABLE_IAP 0X85 //编程周期由晶振决定(如果<3MHZ选用此项)//#define ENABLE_IAP 0X86 //编程周期由晶振决定(如果<2MHZ选用此项)//#define ENABLE_IAP 0X87 //编程周期由晶振决定(如果<1MHZ选用此项)#define IAP_ADDRESS 0X0000 //内部EEPROM地址/********************************************************************定义继输入输出*********************************************************************/ sbit JIA=P3^1; //sbit JIAN=P3^0; //sbit EN=P3^2; //sbit P35=P3^5; //bit write=0;/********************************************************************初始定义*********************************************************************/ uint tcnt1; //脉冲计数uint t1;bit write;uchar sudu;/********************************************************************延时100MS函数*********************************************************************/void Delay100ms(){uchar i, j, k;_nop_();i = 5;j = 144;k = 71;do{do{while (--k);} while (--j);} while (--i);}/********************************************************************操作函数*********************************************************************/ void IapIdle(){IAP_CONTR=0;IAP_CMD=0;IAP_TRIG=0;IAP_ADDRH=0X80;IAP_ADDRL=0;}/********************************************************************读取一个字节函数*********************************************************************/ uchar IapReadByte(uint addr){uchar dat;IAP_CONTR=ENABLE_IAP;IAP_CMD=CMD_READ;IAP_ADDRL=addr;IAP_ADDRH=addr>>8;IAP_TRIG=0X5A;IAP_TRIG=0XA5;_nop_();_nop_();_nop_();dat=IAP_DATA;IapIdle();return dat;}/********************************************************************写入一个字节函数*********************************************************************/void IapProgramByte(uint addr,uchar dat){IAP_CONTR=ENABLE_IAP;IAP_CMD=CMD_PROGRAM;IAP_ADDRL=addr;IAP_ADDRH=addr>>8;IAP_DATA=dat;IAP_TRIG=0X5A;IAP_TRIG=0XA5;_nop_();_nop_();_nop_();IapIdle();}/********************************************************************擦除一个字节函数*********************************************************************/void IapEraseSector(uint addr){IAP_CONTR=ENABLE_IAP;IAP_CMD=CMD_ERASE;IAP_ADDRL=addr;IAP_ADDRH=addr>>8;IAP_TRIG=0X5A;IAP_TRIG=0XA5;_nop_();_nop_();_nop_();IapIdle();}/********************************************************************按键判断函数*********************************************************************/void KEY(){if(JIA==0){Delay100ms();if(JIA==0){Delay100ms();sudu++;write=1;if(sudu>=37)sudu=37;while(!JI A);Delay100ms();}}if(JIAN==0){Delay100ms();if(JIAN==0){Delay100ms();sudu--;write=1;if(sudu<=1)sudu=1;while(!JI AN);Delay100ms();}}if(EN==0)TR0=1;else TR0=0;switch(sudu){case 1: t1=1;break;//2K case 2: t1=2;break;//1.6k case 3: t1=3;break;//1.33k case 4: t1=4;break;//2K case 5: t1=5;break;//1.6k case 6: t1=6;break;//1.33k case 7: t1=7;break;//1.14k case 8: t1=8;break;//1k case 9: t1=9;break;// 880 case 10: t1=10;break;// 800 case 11: t1=12;break;// 660 case 12: t1=14;break;// 580 case 13: t1=16;break;// 500 case 14: t1=18;break;// 450 case 15: t1=20;break;// 400 case 16: t1=22;break;// 360 case 17: t1=23;break;// 350 case 18: t1=26;break;// 300 case 19: t1=30;break;// 260 case 20: t1=33;break;// 240 case 21: t1=37;break;// 220 case 22: t1=41;break;// 200 case 23: t1=50;break;// 160 case 24: t1=60;break;// 135 case 25: t1=65;break;// 125 case 26: t1=75;break;// 110 case 27: t1=80;break;// 100 case 28: t1=95;break;// 84 case 29: t1=120;break;//60 case 30: t1=150;break;//50 case 31: t1=300;break;//30 case 32: t1=1000;break;//8 case 33: t1=10000;break;//1 case 34: t1=20000;break;//1 case 35: t1=30000;break;//1 case 36: t1=40000;break;//1 case 37: t1=60000;break;//1default:break;}}/********************************************************************定时中断服务函数*********************************************************************/ void t0(void) interrupt 1 using 0 //定时中断服务函数{tcnt1++;if(tcnt1>=t1){tcnt1=0;P35=!P35;}}/********************************************************************主函数*********************************************************************/ void main(){uchar Q;TMOD=0x02; //定时器工作在方式2TH0=0x06; //对TH0 TL0 赋值TL0=0x06;TR0=0; //关定时ET0=1; //开定时器EA=1; //开总中断P35=0;//脉冲输出脚Q=IapReadByte(0);sudu=Q;while(1){KEY();if(write==1){write=0;IapEraseSector(0); //擦除扇区IapProgramByte(0,sudu); //写入数据}}}/********************************************************************结束*********************************************************************/ 【应用举例】【产品展示】。

用FX1S 实现PLC控制步进电机的实例(图与程序)

用FX1S 实现PLC控制步进电机的实例(图与程序)

用FX1S 实现PLC控制步进电机的实例(图与程序)原创2018-01-26 工控教练工控教练FX1s是晶体管型PLC,有两个脉冲输出端子,分别是Y0 和Y1,能同时输出两组100KHZ的脉冲。

PLS+,PLS-是步进驱动器的脉冲信号端子,DIR+,DIR-是步进驱动器的方向信号端子。

本次实例的动作方式:当正转开关X0 闭合时,电机动作到A 点停止;当反转开关X1 闭合时,电机动作到B 点停止。

1·绝对位置控制(DRVA),是指定要走到距离原点的位置,原点位置数据存放于32 位寄存器D8140 里。

当机械位于我们设定的原点位置时用程序把D8140 的值清零,也就确定了原点的位置。

·实例动作方式:正转开关X0 闭合时,电机动作到A 点停止;反转开关X1 闭合时,电机动作到B 点停止。

2 三菱FX系列PLC绝对位置控制指令DRVA应用:绝对位置控制指令DRVA的格式:DRVA D0 D2 Y0 Y2 *D0:目标位置,可以是数值或是寄存器,也就是PLC要输出的脉冲个数。

*D2:输出脉冲频率,可以是数值或是寄存器。

也就是PLC输出的脉冲频率,也就是速度*Y0:脉冲输出地址,只能是Y0或Y1。

*Y2:方向控制输出,正向是ON或是OFF,反向是OFF或是ON (根据所控制执行元件设置来确定)3下面是PLC程序的梯形图:(此程序只为说明用,实用需改善。

)·在原点时将D8140的值清零(本程序中没有做此功能)·32 位寄存器D8140 是存放Y0 的输出脉冲数,正转时增加,反转时减少。

当正转动作到A 点时,D8140 的值是3000。

此时闭合X1,机械反转动作到B 点,也就是-3000 的位置。

D8140 的值就是-3000。

·当机械从A 点向B 点动作过程中,X1 断开(如在C 点断开)则D8140 的值就是200,此时再闭合X0,机械正转动作到A 点停止。

步进电机PLC控制ppt课件

步进电机PLC控制ppt课件

知识目标
1.能给出步进电机控制系统的 功能描述
2.能画出PLC控制系统的输入 输出接线图
3.能写出输入输出的I/O表
4.能完成梯形图程序的编制
5.能写入软件验证程序的正确 性并运行
1.步进电机的结构与原理 2.基本输入输出指令 3.定时器指令、计数指令 4.高级指令(移位指令MOV和数 据传送指令SFTL/SFTR)
复位R指令将Q0.0或Q0.1清0。
.
24
脉冲串输出(PTO)
PTO功能可输出一定脉冲个数和占空比为50%的 方波脉冲。
➢输出脉冲的个数在1-4 294 967 295范围内可调; ➢输出脉冲的周期以µs或ms为增量单位,变化范围分别
是10~65 535µs或2~65 535ms。
如果周期小于两个时间单位,周期被默认为两个时 间单位。如果指定的脉冲数为0,则脉冲数默认为1。
B'
C'
C
B
A'
工作方式为三相双三拍 时,每通入一个电脉冲,
转子也是转30,即 S =
30。
CA通电
以上三种工作方式,三相双三拍和三相单双六拍较三 相单三拍稳定,因此较常采用。
.
14
步距角
步进电机通过一个电脉冲转子转过的角度,称为步距角。
S
360 Zr N
如:Zr=40 ,
N:一个周期的运行拍数,即通电状态
循环一周需要改变的次数
Zr:转子齿数
N=3

S
360 3 40 3
1 单拍制
拍数:N=km
m:相数
k= 2 双拍制
.
15
细分:细分就是指电机运行时的实际步矩角是基本步矩角 的几分之一。如:驱动器工作在10细分状态时,其步矩角只为电机 固有步矩角的十分之一,也就是说:当驱动器工作在不细分的整步状 态时,控制系统每发一个步进脉冲,电机转动1.8°,而用细分驱动 器工作在10细分状态时,电机只转动了0.18°。细分功能完全是由

国产plc海为plc一路脉冲控制两台步进电机

国产plc海为plc一路脉冲控制两台步进电机

海为一路脉冲控制两台步进电机
发布人:厦门海为科技有限公司
一、引言
海为S系列PLC有一路的高速脉冲输出,一般情况下只能控制一台步进电机进行工作。

但是为了充分利用资源节约成本,可以利用正转/反转输出脉冲的模式再增加两个输出端来控制两台步进电机进行工作。

正转脉冲和反转脉冲分别接的是两台步进电机的脉冲输入端口,而两台步进电机的方向则通过其它输出端口进行控制。

这样就实现了通过一路正转/反转脉冲输出来控制两台步进电机的功能。

l 适用条件:两台步进电机(脉冲+方向)分时工作(不可同时工作)
二、硬件连接示意图及配置
1、PLC与步进电机的硬件连接图如下所示。

2、在PLC硬件配置中,脉冲输出通道号的输出模式必须改成“2-正转/反转脉冲”
三、PLC程序示例
下面是根据上述思路,对两台步进电机进行简单的正反转控制示例
步进电机1正反转:
PauF端:输出频率,PauN端:脉冲输出的个数(必须为正,表示控制电机1)
Y2是控制步进电机1的正反转,Y2失电时,步进电机1正转;Y2得电时,步进电机1反转。

步进电机2正反转:
PauF端:输出频率,PauN端:脉冲输出的个数(必须为负,表示控制电机2)
Y3是控制步进电机1的正反转,Y3失电时,步进电机2正转;Y3得电时,步进电机2反转。

四、总结
通过一路的高速脉冲输出达到可以控制两台步进电机进行分时工作的目的。

不足之处在于不能控制两台步进电机同时进行工作。

手把手教你PLC 1200控制步进电机

手把手教你PLC 1200控制步进电机

手把手教你PLC 1200控制步进电机1、步进电机硬件接线TB6600 升级版步进驱动器接线:控制信号连接:PUL+:脉冲信号输入正。

PUL-:脉冲信号输入负。

DIR+:电机正、反转控制正。

DIR-:电机正、反转控制负。

ENA+:电机脱机控制正(一般不接)。

ENA-:电机脱机控制负(一般不接)。

电机绕组连接A+:连接电机绕组 A+相。

A-:连接电机绕组 A-相。

B+:连接电机绕组 B+相。

B-:连接电机绕组 B-相。

备注:可以四根线两两短接,短接以后用手转动步进电机有阻力的为一组,另外一个有阻力的为另外一组,只要保证两两为一组即可,谁是 A,谁是 B 不影响,谁是+ 谁是-都没有关系,这样只会影响电机旋转的方向;电源电压连接:VCC:电源正端“+” GND:电源负端“-”细分设置:电流设置:接线图2、步进电机组态调试(1)双击TIA Portal V16软件(2)创建新项目:选择启动——创建新项目——修改项目名称、路径——创建(3)添加新设备:选择设备与网络——添加新设备——控制器——SIMATIC S7-1200——CPU——6ES7 2XX-——选择相应版本——添加(4)出现如下界面,点击步骤2获取按键,选择PG/PC接口类型、接口(接口为电脑的网卡)——点击步骤4开始搜索——出现步骤5 PLC_1——点击步骤6检测按键(5)出现步骤1 PLC界面,点击步骤2属性,修改PLC IP地址——点击步骤5脉冲发生器——选择勾选步骤6、步骤8——在步骤9位置出现脉冲输出Q0.0、方向输出Q0.1(6)在项目左侧,选择步骤1工艺对象—新增对象,步骤2运动控制下轴“TO_Axis_PTO”—点击确定(7)在轴组态常规窗口,脉冲发生器选择步骤5“Pulse_1”,显示步骤6内容(8)在扩展参数部分,电机每转脉冲数400(根据步进电机驱动器1.2.3位拨码开关的设置确定),电机每转的负载位移2mm(根据步进电机丝杠导程确定)(9)在位置限制部分,选择步骤8启用硬件限位开关,硬件下限位I0.2高电平、硬件上限位I0.4高电平(上下硬件限位根据实际PLC接线确定),步骤11速度限值的单位选择mm/S,显示步骤12内容(10)在回原点部分,步骤13归位开关选择I0.3高电平(根据PLC 硬件接线确定),选择步骤14“允许硬限位开关处自动反转”,步骤15修改接近速度、回原点速度5mm/S,然后在步骤16位置显示所有参数设置成功(11)选择步骤1 PLC,右键编译—硬件(完全重建),点击步骤4下载—步骤5装载—完成(12)选择步骤6调试,点击激活—启用,根据步骤9点动、定位、回原点命令进行步骤10调试3、步进电机程序设计(1)新建程序数据块和变量,添加以下变量(2)双击主函数main,插入控制指令。

PLC如何控制步进电机

PLC如何控制步进电机

PLC如何控制步进电机用三菱PLC的FX1S-14MT以切纸机为例,大致阐述一下PLC控制步进电机的方法。

*PL+,PL-:步进驱动器的脉冲信号端子,*DR+,DR-:步进驱动器的方向信号端子。

为了简单明了地讲明PLC控制步进电机的方法,所以本例一切从简,只画了PLC的脉冲输出端Y0,方向控制端Y2与步进电机驱动器的脉冲信号端子,方向信号端子的接线方式。

PLC输出端的内部结构如上图,其为NPN输出方式。

所以其负载(驱动器的光电三极管)应该接在输出三极管的集电极。

驱动器信号端子的内部结构图如上,其供电电压应该是5V,根据其电流参数计算,24V 供电应该串联了一个2K左右的电阻。

*个人认为24V串联电阻供电方式比5V供电抗干扰性要好,所以宁愿麻烦多串两个电阻。

电气接线为:X0接启动按钮,X1接停止按钮。

X2接切刀位置开关(切刀在下方切纸结束时接通).Y4控制切刀电磁阀。

机械结构大致为:步进电机经过同步带带动压轮(周长40mm),也就是说步进电机转动一圈送纸40mm。

切刀由电磁阀带动(实际应用切刀也用步进电机驱动更理想).根据机械结构与精度要求(误差小于0.1mm),本例将驱动器的设为4细分,也就是驱动器接收到800个脉冲步进电机转一圈,PLC输出一雎龀逅椭?.05mm.程序如下:本程序只为说明控制方法,没有认真考虑工作过程要求,程序严密性定然不够,不具备设计参考价值!第0步:设定基底速度120转/分(一转800个脉冲,1600HZ就是每秒2转),加速时间100ms,最高速度600转/分(一转800个脉冲,8000HZ就是每秒10转)。

HZ(赫兹)是频率单位,每秒PLC输出的脉冲个数。

第20步,22步:启动,停止操作。

T0的延时有防干扰作用,停止按钮(X1)闭合时间不到100毫秒无效。

20步的启动按钮应该再串联一个触点,防止再运行过程中按启动按钮,M0置位。

(懒得改程序了)第26步:按停止按钮不是立刻停止,而是用M1来达到完成一个过程后再停止(送纸后,切刀完成再停止)第29步:本例送纸40mm,送纸电机速度600转/分,送纸结束M8147断开置位M2,开始切纸过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PLC控制步进电机的实例(图与程序)
·采用绝对位置控制指令(DRVA),大致阐述FX1S控制步进电机的方法。

由于水平有限,本实例采用非专业述语论述,请勿引用。

·FX系列PLC单元能同时输出两组100KHZ脉冲,是低成本控制伺服与步进电机的较好选择!
·PLS+,PLS-为步进驱动器的脉冲信号端子,DIR+,DIR-为步进驱动器的方向信号端子。

·所谓绝对位置控制(DRVA),就是指定要走到距离原点的位置,原点位置数据存放于32位寄存器D8140里。

当机械位于我们设定的原点位置时用程序把D8140的值清零,也就确定了原点的位置。

·实例动作方式:X0闭合动作到A点停止,X1闭合动作到B点停止,接线图与动作位置示例如左图(距离用脉冲数表示)。

·程序如下图:(此程序只为说明用,实用需改善。

)
·说明:
·在原点时将D8140的值清零(本程序中没有做此功能)
·32位寄存器D8140是存放Y0的输出脉冲数,正转时增加,反转时减少。

当正转动作到A点时,D8140的值是3000。

此时闭合X1,机械反转动作到B点,也就是-3000的位置。

D8140的值就是-3000。

·当机械从A点向B点动作过程中,X1断开(如在C点断开)则D8140的值就是200,此时再闭合X0,机械正转动作到A点停止。

·当机械停在A点时,再闭合X0,因为机械已经在距离原点3000的位置上,故而机械没有动作!
·把程序中的绝对位置指令(DRVA)换成相对位置指令(DRVI):
·当机械在B点时(假设此时D8140的值是-3000)闭合X0,则机械正转3000个脉冲停止,也就是停在了原点。

D8140的值为0
·当机械在B点时(假设此时D8140的值是-3000)闭合X1,则机械反转3000个脉冲停止,也就是停在了左边距离B点3000的位置(图中未画出),D8140的值为-6000。

·一般两相步进电机驱动器端子示意图:
·FREE+,FREE-:脱机信号,步进电机的没有脉冲信号输入时具有自锁功能,也就是锁住转子不动。

而当有脱机信号时解除自锁功能,转子处于自由状态并且不响应步进脉冲。

·V+,GND:为驱动器直流电源端子,也有交流供电类型。

·A+,A-,B+,B-分别接步进电机的两相线圈。

相关文档
最新文档