7. STM32 控制步进电机正方转
PLC实现步进电机的正反转及调整控制

实训课题三PLC实现步进电机正反转和调速控制一、实验目的1、掌握步进电机的工作原理2、掌握带驱动电源的步进电机的控制方法3、掌握DECO指令实现步进电机正反转和调速控制的程序二、实训仪器和设备1、FX2-48MR PLC 一台2、两相四拍带驱动电源的步进电机一套3、正反切换开关、起停开关、增减速开关各一个三、步进电机工作原理步进电机是纯粹的数字控制电动机,它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电机就转动一个角度,图3-1是一个三相反应式步进电机结图。
从图中可以看出,它分成转子和定子两部分。
定子是由硅钢片叠成,定子上有六个磁极(大极),每两个相对的磁极(N、S极)组成一对。
共有3对。
每对磁极都绕有同一绕组,也即形成1相,这样三对磁极有3个绕组,形成三相。
可以得出,三相步进电机有3对磁极、3相绕组;四相步进电机有4对磁极、四相绕组,依此类推。
反应式步进电动机的动力来自于电磁力。
在电磁力的作用下,转子被强行推动到最大磁导率(或者最小磁阻)的位置,如图3-1(a)所示,定子小齿与转子小齿对齐的位置,并处于平衡状态。
对三相异步电动机来说,当某一相的磁极处于最大导磁位置时,另外两相相必处于非最大导磁位置,如图3-1(b)所示,即定子小齿与转子小齿不对齐的位置。
图3—1三相反应式步进电动机结构图把定子小齿与转子小齿对齐的状态称为对齿,把定子小齿与转子小齿不对齐的状态称为错齿。
错齿的存在是步进电机能够旋转的前提条件,所以,在步进电机的结构中必须保证有错齿的存在,也就是说,当某一相处于对齿状态时,其它绕组必须处于错齿状态。
本实验的电机采用两相混合式步进电机,其内部上下是两个磁铁,中间是线圈,通了直流电以后,就成了电磁铁,被上下的磁铁吸引后就产生了偏转。
因为中间连接的电磁铁的两根线不是直接连接的,是采用在转轴的位置用一根滑动的接触片。
这样如果电磁铁转过了头,原先连接电磁铁的两根线刚好就相反了,所以电磁铁的N极S极就和以前相反了。
基于STM32和FPGA的多通道步进电机控制系统设计共3篇

基于STM32和FPGA的多通道步进电机控制系统设计共3篇基于STM32和FPGA的多通道步进电机控制系统设计1本文介绍了基于STM32和FPGA的多通道步进电机控制系统设计。
一、设计目标本次设计的目标是:设计一个可控制多路步进电机的系统,具备高效、可靠的控制方式,实现步进电机多通道运动控制的目标。
二、硬件选型1、主控芯片STM32本设计采用STM32作为主控芯片,STM32系列微控制器具有高性能、低功耗、高集成度、易于开发等优点,非常适合此类控制系统。
2、FPGA本设计采用FPGA作为数据处理和控制模块,FPGA具有可编程性和高速、低功耗的特点,在电机控制系统中有广泛的应用。
3、步进电机步进电机具有速度可调、定位精度高等特点,很适合一些高精度的位置控制系统。
4、电源模块电源模块负责为整个系统提供稳定的电源。
5、驱动模块驱动模块负责驱动步进电机,其控制原理为将电机的输入电流拆分为若干个短脉冲信号,每一个短脉冲信号控制一个步距运动。
三、系统设计1、STM32控制器设计STM32控制器是本系统的核心,其功能是读取FPGA发送的控制信号和控制步进电机的运动。
STM32控制器处理的信号主要包括方向信号、脉冲信号、微步子段等控制参数,将这些参数按照驱动模块的需求分发到各个驱动模块中,从而控制步进电机的运动。
2、FPGA模块设计FPGA模块是本系统的数据处理模块,其主要功能是接收STM32发送的指令,进行解码并且转化为步进电机的控制信号,以驱动步进电机的运动,同时FPGA模块还负责将电机的运动数据反馈回STM32,以保证整个系统的稳定运行。
3、驱动模块设计驱动模块是本系统的控制模块,其主要功能是将电机的输入电流拆分成若干个短脉冲信号,每一个短脉冲信号控制一个步距运动,从而实现对步进电机的控制。
四、系统流程1、系统初始化整个系统初始化主要包括STM32控制器的初始化、FPGA模块的初始化、各个驱动模块的初始化、电源模块的初始化,当系统初始化完成后,所有硬件设备均已经准备完成,可以开始正常的运行。
PLC实现步进电机的正反转及调整控制

PLC实现步进电机的正反转及调整控制
一、PLC实现步进电机的控制原理
拿步进电机举例,大家可以把它想象成一个隔著一定距离的圆盘,隔着每一环的距离形成齿轮的节点。
步进电机的正向或反向转动,就是将这一环索引和圆盘一起发动转动。
步进电机的转动,是靠每一步索引圆盘来完成的,每一步都有一个控制信号来告诉电机从哪一环节点开始转动,当接收到控制信号时,电机开始转动,并且每转一圈循环转动几个索引。
1、正向、反向控制
要实现步进电机的正向反向控制,就要在PLC程序中控制信号形式来实现,一般可以使用两个控制信号,一个是正反控制信号,一个是步进电机转动的速度,要求PLC程序根据正反控制信号来实现正向和反向控制。
正反控制信号就是设置一个开关量变量,当这个开关量为ON时,电机运行正转,当开关量为OFF时,电机运行反转,具体可以采用T函数来实现,T11=1,电机正转,T12=0,电机反转。
由于步进电机的转动是一布一射的过程,所以需要用一个电位器来控制步进电机的转动速度,当电位器的旋钮调整到一定位置时,就会给出一定频率的步进信号,PLC程序可以根据此步进信号,来控制步进电机的转动速度。
基于stm32的28byj步进电机控制设计原理

基于stm32的28byj步进电机控制设计原理
基于STM32的28BYJ步进电机控制设计原理主要包含以下几个步骤:
1. 确定步进电机的型号:28BYJ步进电机是一种减速型永磁式步进电机,其有效最大外径为28毫米,有四相八拍的工作方式。
2. 确定步进电机的工作原理:五线四相步进电机,不同相位得电会让步进电机的转子转动一个角度,按一定规律给不同的相位通电,就可以让步进电机连续转动。
通电的顺序如下表所示。
3. 控制电机的转速:通过改变延时的时间,就可以控制电机的转速。
但要注意不能太慢,也不要太快,需要不断调试以达到合理范围。
4. 控制电机的转向:调换得电的顺序,就可以控制电机的转向。
5. 连接硬件:将STM32的IO口和步进电机的四条相线连接,但要确保连接顺序正确,否则可能无法正常工作。
具体来说,如果你想让步进电机向一个方向转动,你可以按照这个方向的通电顺序给电机通电;如果你想让步进电机停止转动,你可以让所有相位的电流都停止;如果你想改变步进电机的转动方向,你可以改变通电的顺序。
此外,通过改变通电的频率,你可以改变步进电机的转速。
以上就是基于STM32的28BYJ步进电机控制设计原理。
控制步进电机实验报告(3篇)

第1篇一、实验目的1. 理解步进电机的工作原理及控制方法。
2. 掌握单片机与步进电机驱动模块的接口连接方法。
3. 学习使用C语言编写程序,实现对步进电机的正反转、转速和定位控制。
4. 通过实验,加深对单片机控制系统的理解。
二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是控制精度高、响应速度快、定位准确。
步进电机控制实验主要涉及以下几个方面:1. 步进电机驱动模块:常用的驱动模块有ULN2003、A4988等,它们可以将单片机的数字信号转换为步进电机的控制信号。
2. 单片机:单片机是整个控制系统的核心,负责接收按键输入、处理数据、控制步进电机驱动模块等。
3. 步进电机:步进电机分为单相、双相和三相等类型,本实验使用的是双相四线步进电机。
三、实验设备1. 单片机开发板:例如STC89C52、STM32等。
2. 步进电机驱动模块:例如ULN2003、A4988等。
3. 双相四线步进电机。
4. 按键。
5. 数码管。
6. 电阻、电容等元件。
7. 电源。
四、实验步骤1. 硬件连接(1)将步进电机驱动模块的输入端(IN1、IN2、IN3、IN4)分别连接到单片机的P1.0、P1.1、P1.2、P1.3口。
(2)将按键的输入端连接到单片机的P3.0口。
(3)将数码管的段选端连接到单片机的P2口。
(4)将步进电机驱动模块的电源端连接到电源。
(5)将步进电机连接到驱动模块的输出端。
2. 编写程序(1)初始化单片机I/O端口,设置P1口为输出端口,P3.0口为输入端口,P2口为输出端口。
(2)编写按键扫描函数,用于读取按键状态。
(3)编写步进电机控制函数,实现正反转、转速和定位控制。
(4)编写主函数,实现以下功能:a. 初始化数码管显示;b. 读取按键状态;c. 根据按键状态调用步进电机控制函数;d. 更新数码管显示。
3. 调试程序(1)将程序烧写到单片机中;(2)打开电源,观察数码管显示和步进电机运行状态;(3)根据需要调整程序,实现不同的控制效果。
西门子S7-200系列PLC控制步进电机进行正反转的方法

1、主程序先正转,等到正转完了就中断,中断中接通个辅助触点(M0.X),当M.0X闭合,住程序中的反转开始运做。
这样子就OK了。
2、用PTO指令让Q0.0 OR Q0.1高速脉冲,另一个点如Q0.2做方向信号,就可以控制正反转了,速度快慢就要控制输出脉冲周期了,周期越短速度越快,如果你速度很快的话请考虑缓慢加速,不然它是启动不了的,如果方向也变的快的话就要还做一个缓慢减速,不然它振动会蛮厉害,而且也会失步。
3、程NETWORK 1 // 用于单段脉冲串操作的主程序(PTO)// 首次扫描时,将映像寄存器位设为低// 并调用子程序0LD SM0.1R Q0.0 1CALL SBR_0NETWORK 1 // 子程序0开始LD SM0.0MOVB 16#8D SMB67 // 设置控制字节:// - 选择PTO操作// - 选择单段操作// - 选择毫秒增加// - 设置脉冲计数和周期数值// - 启用PTO功能MOVW +500 SMW68 // 将周期设为500毫秒。
MOVD +4 SMD72 // 将脉冲计数设为4次脉冲。
ATCH INT_0 19 // 将中断例行程序0定义为// 处理PTO完成中断的中断。
ENI // 全局中断启用PLS 0 // 激活PTO操作,PLS0 =》Q0.0MOVB 16#89 SMB67 // 预载控制字节,用于随后的// 周期改动。
NETWORK 1 // 中断0开始// 如果当前周期为500毫秒:// 将周期设为1000毫秒,并生成4次脉冲LDW= SMW68 +500MOVW +1000 SMW68PLS 0CRETINETWORK 2// 如果当前周期为1000毫秒:// 将周期设为500毫秒,并生成4次脉冲LDW= SMW68 +1000MOVW +500 SMW68PLS 0序注释艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
PLC实现步进电机的正反转和调整控制

PLC实现步进电机的正反转和调整控制PLC(可编程逻辑控制器)是一种用于自动化控制系统的可编程电子设备。
在工业领域,PLC被广泛应用于各种自动化设备和机器的控制。
步进电机是一种非塔式电机,其运动是以固定的步长进行的,适用于需要精确定位的应用,如印刷机、数控机床等。
本文将介绍如何使用PLC实现步进电机的正反转和调整控制。
步进电机的正反转控制可以通过改变电机的运行顺序来实现。
一种常见的方法是使用四相步进电机,通过改变电机的相序来实现正反转。
一般来说,步进电机有两种驱动方式:全步进和半步进。
全步进驱动方式是指每次脉冲信号到达时,电机转动一个步进角度。
全步进驱动方式可以通过控制PLC输出的脉冲信号来实现。
例如,当需要电机正转时,在PLC程序中输出连续的脉冲信号,电机将按照一定的步进角度顺时针旋转。
当需要反转时,输出连续的反向脉冲信号,电机将逆时针旋转。
半步进驱动方式是指每次脉冲信号到达时,电机转动半个步进角度。
半步进驱动方式可以通过改变输出的脉冲信号序列来实现。
例如,正转时输出连续的脉冲信号序列:1000、1100、0100、0110、0010、0011、0001、1001,电机将按照半个步进角度顺时针旋转;反转时输出反向脉冲信号序列:1001、0001、0011、0010、0110、0100、1100、1000,电机将逆时针旋转。
调整控制是指通过PLC来调整步进电机的运行速度和位置。
调速控制可以通过改变输出脉冲信号的频率来实现。
例如,可以定义一个计时器来控制输出脉冲信号的频率,通过改变计时器的时间参数来改变电机的速度。
较小的时间参数将导致更快的脉冲频率,从而使电机加快转速。
位置控制可以通过记录步进电机当前的位置来实现。
可以使用PLC的存储和控制功能来记录和更新电机的位置信息。
例如,可以使用一个变量来保存电机当前的位置,并在转动过程中不断更新该变量的值。
通过读取该变量的值,可以获得电机当前的位置信息。
总结起来,使用PLC实现步进电机的正反转和调整控制可以通过控制输出的脉冲信号序列和频率来实现。
西门子PLC控制电动机正反转的编程(软硬件图解)

根据要求,I/O口的分配如下表所示。I/O口分配好后可以根据上面的电气接线图进行程序的编写。参考程序如下:
3、图符号表定义完符号地址后,在程序块中的主程序内输入如下图程序。注意当菜单“察看”中“√符号寻址”选项选中时,输入地址,程序中自动出现的是符号编址。若选中“查看”菜单的“符号信息表”选项,每一个网络中都有程序中相关符号信息。
4、程序监控与调试:通过个人计算机运行编程软件STEP 7 Micro-WIN4.0,在软件中应用程序监控功能和状态监视功能,监测PLC 中的各按纽的输入状态和继电器的输出状态。
PLC 控制电机正反转I/O 分配及硬件接线1、接线:按照控制线路的要求,将正转按纽、反转按纽和停止按纽接入PLC 的输入端,将正转继电器和反转继电器接入PLC 的输出端。注意正转、反转控制继电器必须有互锁。
2、编程和下载:在个人计算机运行编程软件STEP 7 Micro-WIN4.0,首先对电机正反转控制程序的I/O 及存储器进行分配和符号表的编辑,然后实现电机正反转控制程序的编制,并通过编程电缆传送到PLC 中。在STEP 7 Micro-WIN4.0 中,单击“查看”视图中的“符号表”,弹出图所示窗口,在符号栏中输入符号名称,中英文都可以,在地址栏中输入寄存器地址。
5、电机的正反转控制项目结果分析表:注意在硬件接线中必须实现互锁!在PLC 的梯形图中也应实现互锁。试分析仅在梯形图中实现的互锁能否真正避免电源的短路? 有电机的正反转控制项目的基础,可以进一步用西门子S7-200实现小车往返的自动控制。控制过程为:按下启动按钮,小车从左边往右边(右边往左边运动)当运动到右边(左边)碰到右边(左边)的行程开关后小车自动做返回运动,当碰到另一边的行程开关后又做返回运动。如此的往返运动,直到当按下停车按钮后小车停止运动。 设计思路:可以按照电气接线图中的思路来进行编写程序。即可以利用下一个状态来封闭前一个状态。使其两个线圈不会同时动作。同时把行程开关作为一个状态的转换条件。电气接线图如下:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的: 利用STM32 来控制步进电机正反转
实验设备:STM32开发板,两相步进电机,24V&5V直流电源,丝杆导轨,DM422C
驱动器
图1 实物图
第一步 弄清楚驱动器接线
1.1 ENA可以悬空
大部分使用者就是将ENA悬空的,就是电机通常不锁轴
1.2 OPTO 是共阳极端
1.2.1 如果用的是AVR ,就直接接到AVR 5V接线柱上。
1.2.2 如果用的是ARM,就将OPTO接到5V 电源上,记得电源要和ARM共
地,这样才能识别接的电源是5V
第二步 弄清楚脉冲的发送形式,即Delay函数作用
清楚脉冲的发送形式,即Delay函数作用,
弄清楚接口由哪个GPIO口控制,然后连接硬件图,
通过电源IO控指示灯检验信号发送:
第三步 主程序
下面这个程序是
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
void Delay (u32 nCount)
{
for(; nCount != 0; nCount--);
}
void GPIO_Config()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC |
RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
int main(void)
{
SystemInit();
GPIO_Config();
while(1){
int i,n=4000;
for(i=0;i
GPIO_SetBits(GPIOC , GPIO_Pin_3);
Delay(0xfff) ;
GPIO_SetBits(GPIOC , GPIO_Pin_2);
Delay(0xfff) ;
GPIO_ResetBits(GPIOC , GPIO_Pin_2);
Delay(0xfff) ;
}
Delay(0xfffff) ;
Delay(0xfffff) ;
Delay(0xfffff) ;
for(i=0;i
GPIO_ResetBits(GPIOC , GPIO_Pin_3);
Delay(0xfff) ;
GPIO_SetBits(GPIOC , GPIO_Pin_2);
Delay(0xfff) ;
GPIO_ResetBits(GPIOC , GPIO_Pin_2);
Delay(0xfffff) ; //增加的数值,会控制发脉冲的速度,从而控制电
机的转速
}
}
}
最后结果是电机启动,快去慢回
图 程序烧写过程图
注意:程序修改后一定要编译一次,或者保存才能烧写进去,不然永远只会是保存或者编
译前的程序。
编译
下载