文档库 最新最全的文档下载
当前位置:文档库 › PLC控制步进电机的正反转和速度

PLC控制步进电机的正反转和速度

PLC控制步进电机的正反转和速度
PLC控制步进电机的正反转和速度

1.控制要求

对定时器进行不同的时间定时控制其速度。

通过定时器定时通、断电使步进电机实现正反转。

本文以五相十拍步进电机用西门子S7-200PLC来进行举例。2.五相十拍步进电机的控制要求

1)五相步进电动机有五个绕组:A、B、C、D、E,控制五相十拍电动机的时序图如下:

2)用五个开关控制步进电动机工作:

1 号开关控制其运行(启/停)

2 号开关控制其低速运行(转过一个步距角需0.5S)

3 号开关控制其中速运行(转过一个步距角需0.1S)

4 号开关控制其低速运行(转过一个步距角需0.03S)

5 号开关控制其转向(ON为正转,OFF为反转) 3.PLC外部接线图

PLC外部接线图的输入输出设备、负载电源的类型等设计就结合系统的控制要求来设定。其控制接线图如下图所示:

4.I/O地址分配

根据PLC外部接线图可以写出各电气元件符号、功能说明表及I/O地址分配表如下:

5.五相十拍步进电动机的拍数实现梯形图如下:

西门子S 系列PLC控制步进电机进行正反转的方法

1、主程序先正转,等到正转完了就中断,中断中接通个辅助触点(),当闭合,住程序中的反转开始运做。这样子就OK了。 2、用PTO指令让OR 高速脉冲,另一个点如做方向信号,就可以控制正反转了,速度快慢就要控制输出脉冲周期了,周期越短速度越快,如果你速度很快的话请考虑缓慢加速,不然它是启动不了的,如果方向也变的快的话就要还做一个缓慢减速,不然它振动会蛮厉害,而且也会失步。 3、程NETWORK 1 // 用于单段脉冲串操作的主程序(PTO) // 首次扫描时,将映像寄存器位设为低 // 并调用子程序0 LD R 1 CALL SBR_0 NETWORK 1 // 子程序0开始 LD MOVB 16#8D SMB67 // 设置控制字节: // - 选择PTO操作 // - 选择单段操作 // - 选择毫秒增加 // - 设置脉冲计数和周期数值 // - 启用PTO功能 MOVW +500 SMW68 // 将周期设为500毫秒。 MOVD +4 SMD72 // 将脉冲计数设为4次脉冲。 ATCH INT_0 19 // 将中断例行程序0定义为 // 处理PTO完成中断的中断。 ENI // 全局中断启用

PLS 0 // 激活PTO操作,PLS0 =》 MOVB 16#89 SMB67 // 预载控制字节,用于随后的 // 周期改动。 NETWORK 1 // 中断0开始 // 如果当前周期为500毫秒: // 将周期设为1000毫秒,并生成4次脉冲 LDW= SMW68 +500 MOVW +1000 SMW68 PLS 0 CRETI NETWORK 2 // 如果当前周期为1000毫秒: // 将周期设为500毫秒,并生成4次脉冲 LDW= SMW68 +1000 MOVW +500 SMW68 PLS 0序注释 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城。

用PLC控制步进电机的相关指令说明

用PLC控制步进电机的相关指令 下面介绍的指令只适用于FX1S、FX1N系列的晶体管输出PLC,如高训的FX1N-60MT。这些指令主要是针对用PLC直接联动伺服放大器,目的是可以不借助其他扩展设备(例如1GM模块)来进行简单的点位控制,使用这些指令时最好配合三菱的伺服放大器(如MR-J2)。 然而,我们也可以用这些指令来控制步进电机的运行,如高训810室的实验台架。下面我们来了解相关指令的用法: 1、脉冲输出指令PLSY(FNC57) PLSY指令用于产生指定数量的脉冲。助记法为HZ、数目Y出来。指令执行如下: 2、带加减速的脉冲输出指令PLSR(FNC59) 3、回原点ZRN(FNC156)--------重点撑握 ZRN指令用于校准机械原点。助记法为高速、减速至原点。指令执行如下:

4、增量驱动DRVI(FNC158)--------重点撑握 DRVI为单速增量驱动方式脉冲输出指令。这个指令与脉冲输出指令类似但又有区别, 只是根据数据脉冲的正负多了个转向输出。本指令执行如下: 5、绝对位置驱动指令DRVA(FNC159) 本指令与DRVI增量驱动形式与数值上基本一样,唯一不同之处在于[S1.]: 在增量驱动中,[S1.]指定的是距离,也就是想要发送的脉冲数;而在绝对位置驱动指令中, [S1.]定义的是目标位置与原点间的距离,即目标的绝对位置。

下面以高训810室的设备为例,说明步进电机的驱动方法: 在用步进电机之前,请学员考虑一下几个相关的问题: 1、何谓步进电机的步距角?何为整步、半步?何谓步进电机的细分数? 2、用步进电机拖动丝杆移动一定的距离,其脉冲数是如何估算的? 3、在步进顺控中运用点位指令应注意什么?(切断电源的先后问题!) 步进电机测试程序与接线如下: 1、按下启动按钮,丝杆回原点,5秒钟后向中间移动,2秒后回到原点。

基于单片机ATS控制步进电机正反转

基于单片机A T S控制步进 电机正反转 The latest revision on November 22, 2020

目录 步进电机 (7) 附件A 源程序 .......................................... (12) 附件B 仿真结果 (15) 致谢 (18)

摘要 能够实现步进电机控制的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异更新。本文介绍一种用AT89S52作为核心部件进行逻辑控制及信号产生的单片机技术和汇编语言编程设计的步进电机控制系统,步进电机背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍,使我们不仅对步进电机的原理有了深入的了解,也对单片机的设计研发过程有了更加深刻的体会。本控制系统采用单片机控制,通过人为按动开关实现步进电机的开关,复位。该系统还增加了步进电机的加速及减速功能。具有灵活方便、适用范围广的特点,基本能够满足实践需求。 关键词: AT89S52 步进电机 ULN2003 第一章系统分析 框图设计 根据系统要求画出基于AT89S52单片机的控制步进电机的控制框图如图2-1所示。

图2-1基于AT89C52单片机的控制步进电机的控制框图 系统主要包括单片机、复位电路、晶振电路、按键电路、步进电机及驱动电路几部分。 晶振电路 AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。 晶振模块自带振荡器、提供低阻方波输出,并且能够在一定条件下保证运行。最常用的两种类型是晶振模块和集成RC振荡器(硅振荡器)。晶振模块提供与分立晶振相同的精度。硅振荡器的精度要比分立RC振荡器高,多数情况下能够提供与陶瓷谐振槽路相当的精度。图2-2为晶振电路。 图2-2 晶振电路 第二章系统设计 硬件连接图 根据图2-1,可以设计出单片机控制步进电机的硬件电路图,如图3-1所示。

步进电机启动停止正反转控制程序的汇编语言的实现

DELAY 1MS MACRO TIME ;延时宏命令 LOCAL AA LOCAL BB PUSH CX MOV CX,TIME AA: PUSH CX MOV CX,1000 BB: NOP LOOP BB POP CX LOOP AA POP CX ENDM DATA SEGMENT TABA DB 01H,03H,02H,06H,04H,05H;正转的模型 TABB DB 05H,04H,06H,02H,03H,01H;反转的模型DATA ENDS CODE SEGMENT ZZ PROC NEAR PUSH DS MOV AX,DATA MOV DS,AX MOV AX,0 PUSH AX MOV DX,203H MOV AL,80H OUT DX,AL ;8255的控制字设定 MOV DX,200H MOV AL,0 OUT DX,AL ;先输出制动命令 MOV CX,360 ;设定正转步数 DD: MOV BL,6 ;六拍 MOV DX,200H LEA DI,TABA ;指针指向正转的数字模型 CC: MOV AL,[DI] OUT DX,AL DELAY 1MS 10 INC DI ;指针加1,指向下一步的数字模型 DEC BL ;拍数减1 JNZ CC ;六拍未结束,则继续循环 LOOP DD;360个周期的六拍未结束,继续循环 ZZ ENDP

FZ PROC NEAR MOV CX,400 ;设定反转步数 FF: MOV BL,6 MOV DX,200H LEA DI,TABB ;指针指向反转的数字模型 EE: MOV AL,[DI] OUT DX,AL DELAY 1MS 10 DEC DI ;指针减1,指向反转下一步数字模型 DEC BL JNZ EE LOOP FF FZ ENDP MOV DX,200H MOV AL,0 OUT DX,AL ;结束后,输出制动命令 RET MAIN ENDP CODE ENDS END START

西门子S系列PLC控制步进电机进行正反转的方法

西门子S系列P L C控制步进电机进行正反转 的方法 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

1、主程序先正转,等到正转完了就中断,中断中接通个辅助触点(),当闭合,住程序中的反转开始运做。这样子就OK了。 2、用PTO指令让 OR 高速脉冲,另一个点如做方向信号,就可以控制正反转了,速度快慢就要控制输出脉冲周期了,周期越短速度越快,如果你速度很快的话请考虑缓慢加速,不然它是启动不了的,如果方向也变的快的话就要还做一个缓慢减速,不然它振动会蛮厉害,而且也会失步。 3、程NETWORK 1 // 用于单段脉冲串操作的主程序(PTO) // 首次扫描时,将映像寄存器位设为低 // 并调用子程序0 LD R 1 CALL SBR_0 NETWORK 1 // 子程序0开始 LD MOVB 16#8D SMB67 // 设置控制字节: // - 选择PTO操作 // - 选择单段操作 // - 选择毫秒增加 // - 设置脉冲计数和周期数值 // - 启用PTO功能 MOVW +500 SMW68 // 将周期设为500毫秒。 MOVD +4 SMD72 // 将脉冲计数设为4次脉冲。 ATCH INT_0 19 // 将中断例行程序0定义为 // 处理PTO完成中断的中断。 ENI // 全局中断启用

PLS 0 // 激活PTO操作,PLS0 =》 MOVB 16#89 SMB67 // 预载控制字节,用于随后的 // 周期改动。 NETWORK 1 // 中断0开始 // 如果当前周期为500毫秒: // 将周期设为1000毫秒,并生成4次脉冲 LDW= SMW68 +500 MOVW +1000 SMW68 PLS 0 CRETI NETWORK 2 // 如果当前周期为1000毫秒: // 将周期设为500毫秒,并生成4次脉冲 LDW= SMW68 +1000 MOVW +500 SMW68 PLS 0序注释 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城。

单片机课设步进电机控制正反转(单片机爱好者)

单片机课程设计报告设计题目:步进电机控制系统 学院机械工程学院 专业机械设计制造及其自动化 班级 姓名 学号 指导教师 湖北工业大学 2010 年秋季学期

目录 1.设计目的 (2) 2.设计的主要内容和要求 (2) 3.题目及要求功能分析 (2) 4.设计方案 (5) 4.1 整体方案 (5) 4.2 具体方案 (5) 5.硬件电路的设计 (6) 5.1 硬件线路 (6) 5.2 工作原理 (7) 5.3 操作时序 (8) 6. 软件设计 (8) 6.1 软件结构 (8) 6.2 程序流程 (9) 6.3 源程序清单 (9) 7. 系统仿真 (9) 8. 使用说明 (10) 9. 设计总结 (10) 参考文献 (11) 附录 (12)

步进电机的控制 1.设计目的 (1)熟悉单片机编程原理。 (2)熟练掌握51单片机的控制电路和最小系统。 (3)单片机基本应用系统的设计方法。 2.设计的主要内容和要求 (1)查阅资料,了解步进电机的工作原理。 (2)通过单片机给参数控制电机的转动。 (3)通过按钮控制启停及反转。 (4)其他功能。 3.题目及要求功能分析 步进电机:步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其精度高等特点,广泛应用于各种工业控制系统中。 三相单、双六拍步进电机的结构和工作原理: 三相单、双六拍步进电机通电方式:这种方式的通电顺

步进电机正反转控制C语言程序 只为初学者

只为初学者的步进电机正反控制程序 #include<> #define uchar unsigned char #define uint unsigned int #define MotorData P2 //步进电机控制接口定义 sbit zheng=P3^0; sbit fan=P3^1; sbit stop=P3^2; uchar phasecw[8] ={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转 uchar phaseccw[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转 //ms延时函数 void delay(uint t) { uint k; while(t--) { for(k=0; k<125; k++); } } void Delay_xms(uint x) { uint i,j; for(i=0;i

void Motor_work(uint t) { uchar i,j; switch(t) { case 0: while(1) {if(stop==0) break; for(i=0;i<8;i++) {MotorData=phasecw[i]; delay(50);//转速调节 } } break; case 1: while(1) {if(stop==0) break; for(j=0;j<8;j++) {MotorData=phaseccw[j]; delay(50);//转速调节 } } break; } } //停止转动 void Motor_test(void) { if(zheng==0) { Delay_xms(10); if(zheng==0) Motor_work(0); } if(fan==0) { Delay_xms(10); if(fan==0) Motor_work(1); } } //主函数 void main(void) {

基于PLC的步进电机控制

2014 ~ 2015 学年第 1 学期 《电气控制及PLC 》课程设计报告 题目:步进电机的PLC控制设计 专业:自动化 班级: 11自动化(1)班 姓名:李勇李亚李新明荆欢 贾伟黄龙飞皇甫趁心 指导教师:江春红 电气工程学院 2014年10月31日

1、任务书

摘要 步进电机可以对旋转角度和转动速度进行高精度控制。步进电机作为制执行元件,是电气自动化的关键产品之一, 广泛应用在各种自动化控制系统和精密机械等领域。例如,在仪器仪表,机床设备以及计算机的外围设备中(如打印机和绘图仪等),凡需要对转角进行精确控制的情况下,使用步进电机最为理想。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。软件PLC综合了计算机和PLC的开关量控制、模拟量控制、数学运算、数值处理、网络通信、PID调节等功能,通过一个多任务控制内核,提供强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各种I/O系统的及网络的开放式结构。用PLC控制步进电机的定位、转向、调速、细分有很大的优势与前景。此次设计是利用PLC 的控制方法,上位机的监控功能,在试验室进行模拟实现的。试验结果达到了预期的功能。 关键词:软PLC;步进电机;上位机;定位;转向;调速;细分

目录 1引言 0 2.方案论证与对比 0 2.1 方案一 0 2.2 方案二 0 2.3 方案对比与选择 (1) 3、系统设计 (1) 3.1 PLC内部原理 (1) 3.2 二相混合式步进电机工作原理 (3) 3.3 驱动器原理 (4) 3.4硬件与软件设计 (4) 4、组态的设计 (6) 4.1 I/O 口的定义 (6) 4.2 构造数据库 (6) 4.3 建立动画连接 (7) 5、系统功能调试与性能分析 (7) 5.1系统调试中的问题及解决方案 (7) 5.1.1软件调试 (7) 5.1.2、正反转未响应 (8) 5.1.3、定位的误差 (8) 5.1.4、组态设计中的问题 (8) 5.1.5、其它 (8) 6、详细仪器清单 (8) 7、总结与致谢 (8) 参考文献 (10) 附录一梯形图 (11) 附录二源程序 (13)

步进电机正反转控制及转速显示

/***************************************************** 程序调试成功 *********************************************************/ #include #define uchar unsigned char #define uint unsigned int sbit wale = P1^4; sbitdula = P1^5; sbitjia_key=P3^3; sbitjian_key=P3^2; sbitZ_key=P3^0; sbitF_key=P3^1; sbit Z_LED=P1^0; sbit F_LED=P1^1; sbit J_LED=P1^2; sbit JA_LED=P1^3; uint flag; ucharnum,show_num=2,maichong=4,table_begin; uchar code SHU[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阳数码管驱动信号0---9,不显示 uchar code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3};//电机正反转 void delay(uchar x) { uint y; for(;x>0;x--) for(y=0;y<124;y++); } void display() //显示函数 { uint a; a=num; if(a<10) a=a+1; else a=a%10; wale=1; P0=0xfb; wale=0; dula=1; P0=SHU[(num/10)]; dula=0; delay(10);

步进电机正反转程序

步进电机正反转程序 #include //51芯片管脚定义头文件 #include //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正转编码 uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反转编码 sbit K1 = P3^2; //正转 sbit K2 = P3^3; //反转 sbit K3 = P3^4; //停止 sbit BEEP = P3^6; //蜂鸣器 /********************************************************/ /* /* 延时t毫秒 /* 11.0592MHz时钟,延时约1ms /* /********************************************************/ void delay(uint t) { uint k; while(t--) {

for(k=0; k<125; k++) { } } } /********************************************************** / void delayB(uchar x) //x*0.14MS { uchar i; while(x--) { for (i=0; i<13; i++) { } } } /********************************************************** / void beep() { uchar i; for (i=0;i<100;i++) { delayB(4); BEEP=!BEEP; //BEEP取反

步进电机正反转程序 一

步进电机正反转程序一 #include <reg51.h> //51芯片管脚定义头文件 #include <intrins.h> //内部包含延时函数_nop_(); #define uchar unsigned char #define uint unsigned int uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正转编码 uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反转编码 sbit K1 = P3^2; //正转 sbit K2 = P3^3; //反转 sbit K3 = P3^4; //停止 sbit BEEP = P3^6; //蜂鸣器 /********************************************************/ /* /* 延时t毫秒 /* 11.0592MHz时钟,延时约1ms /* /********************************************************/ void delay(uint t) { uint k; while(t--) { for(k=0; k<125; k++) { } } } /**********************************************************/ void delayB(uchar x) //x*0.14MS { uchar i; while(x--) { for (i=0; i<13; i++) { } } } /**********************************************************/

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。 ·一般两相步进电机驱动器端子示意图: ·FREE+,FREE-:脱机信号,步进电机的没有脉冲信号输入时具有自锁功能,也就是锁住转子不动。而当有脱机信号时解除自锁功能,转子处于自由状态并且不响应步进脉冲。 ·V+,GND:为驱动器直流电源端子,也有交流供电类型。 ·A+,A-,B+,B-分别接步进电机的两相线圈。

步进电机正反转

步进电机控制设计 摘要 步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。结合对步进电机的了解,然后对步进电机的控制原理包括步进电机的控制方式和驱动方式作了系统的说明,采用8051单片机来控制步进电机,并给出了步进电机的双相三拍控制单片机控制和三相六拍的单片机控制的具体实现方法,用汇编程序进行控制运行。控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。 电机的控制系统由AT80C51单片机控制,具有抗干扰能力强,可靠性高而且系统扩展容易等优势。本次课程设计中着重于通过控制脉冲数来控制位移,实现准确定位。基于步进电机本身的优越性和应用的广泛性,这正是用单片机控制步进电机课程设计的实际意义。 关键字:步进电机 ,角位移,单片机 ,脉冲

目录 1 课题描述 (1) 2总体实现原理 (1) 3 步进电机原理及硬件设计 (2) 3.1 单片机电路 (2) 3.1.1 AT89C51单片机的组成结构 (2) 3.1.2 AT89C51单片机的引脚及功能 (4) 3.2步进电机 (6) 3.2.1 步进电机的工作原理 (6) 3.2.2控制原理 (7) 3.2.3步进电机的驱动方式 (8) 3.2.4最小系统 (9) 3.3输入显示部分 (10) 3.4 电源 (10) 4 软件程序设计 (11) 4.1 主程序的设计 (11) 4.2 定时中断设计 (12) 4.3 外部中断设计 (13) 4.4 系统软件程序 (14) 总结 (19) 致谢 (20) 参考文献 (21)

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

P L C控制步进电机的实例(图与程序)

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-:脱机信号,步进电机的没有脉冲信号输入时具有自锁功能,也就是锁住转子不动。而当有脱机信号时解除自锁功能,转子处于自由状态并且不响应步进脉冲。

步进电机正反转控制C语言程序只为初学者

步进电机正反转控制C 语言程序只为初学者公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

只为初学者的步进电机正反控制程序 #include<> #define uchar unsigned char #define uint unsigned int #define MotorData P2 //步进电机控制接口定义 sbit zheng=P3^0; sbit fan=P3^1; sbit stop=P3^2; uchar phasecw[8] ={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转uchar phaseccw[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转//ms延时函数 void delay(uint t) { uint k; while(t--) { for(k=0; k<125; k++); } } void Delay_xms(uint x) { uint i,j; for(i=0;i

void Motor_work(uint t) { uchar i,j; switch(t) { case 0: while(1) {if(stop==0) break; for(i=0;i<8;i++) {MotorData=phasecw[i]; delay(50);//转速调节 } } break; case 1: while(1) {if(stop==0) break; for(j=0;j<8;j++) {MotorData=phaseccw[j]; delay(50);//转速调节 } } break; } } //停止转动 void Motor_test(void) { if(zheng==0) { Delay_xms(10); if(zheng==0) Motor_work(0); } if(fan==0) { Delay_xms(10); if(fan==0) Motor_work(1); } } //主函数 void main(void) {

步进电机正反转及调速设计

步进电机正反转及调速设计 陈超 渭南师范学院物理与电气工程系2008级电气(1)班 摘要:本系统用52系列单片机和LY-36电机驱动芯片并加入了按钮来控制步进电机实现转向、转速等。系统中使用的四相步进电机,相应的驱动和控制电路对于其整体性能起着非常重要的作用。经系统调试,能够很好的控制步进电机的正反转、加减速,从而达到预期目的。整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。 关键词:四相步进电机 52单片机控制 YL-36驱动电路正反转 1 绪论 1.1 概述 步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化系统中,与其他类型的电机相比具有易于精确控制,无累积误差等优点。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定的方向转一个固定的角度,它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有累积误差的特点,广泛应用于各种开环控制。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,用它来做一些控制电器一类不是很复杂的工作[1]。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。 本文设计一种用STC89C52作为核心部件进行逻辑控制及信号产生的步进电机控制系统。为使步进电机系统的可靠性、通用性、可维护性以及性价比最优,根据系统的功能要求,通过单片机存储器、I/O口、中断、键盘、LED显示器的扩展来实现步进电机的启停、正反转、加减速等功能。 1.2 步进电机及单片机的发展趋势 步进电机的发展,将依赖于新型材料的应用、设计手段,以及与驱动技术的最佳匹配。随着自动控制技术、计算机网络通信技术在众多领域中的快速发展,以及进一步数字化、智能化,步进电机将会在更深入广泛的领域中得意应用。电

基于单片机原理的步进电机的正反转程设计报告89397460

电机控制课程设计报告书题目基于单片机原理的步进电机的正反转

目录 目录 (1) 摘要 (2) 1.概述 (3) 1.1课程设计的任务和要求 (3) 1.2设计思路框架 (3) 1.3设计方案的模块解释 (3) 2.系统硬件设计 (5) 2.1单片机最小系统原理介绍 (5) 2.1.1 AT89C51的工作原理 (6) 2.1.2复位电路的工作原理 (8) 2.1.3晶振电路的工作原理 (9) 2.2电机驱动电路原理介绍 (9) 3.系统软件设计 (11) 3.1系统流程图 (11) 3.2系统程序分析 (11) 4.调试过程与结果 (20) 5.总结与体会 (21) 6.参考资料 (21) 7.附录 (23)

摘要 介绍了步进电机正反转控制原理及其接口驱动控制电路,编制了基于MCS-51单片机的步进电机正反转控制的子程序,并应用wave软件进行了仿真。证明在并行口控制中,可以利用软件实现环行脉冲分配,实现程序较简单,同时还可以节省硬件投资。结合单片机控制步进电动机的实际工作环境,从提高控制系统运行的可靠性角度,讨论了实际应用的软件抗干扰技术。 关键词单片机;步进电机;正反转控制

1.概述 1.1课程设计的任务和要求 电机控制课程设计是考察学生利用所学过的电机控制专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合规范的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。 本次设计考核的能力主要有: 专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电机与拖动、微特电机及其驱动、计算机高级语言、计算机辅助设计、计算机办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。 项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT汇报与口头表达能力。 电气与自动化系统的设计与实际应用能力。 要求完成的工作量包括: 制作实际成品,并现场演示效果。 学生结合课题进行PPT演讲与答辩。 学生上交课题要求的各类设计技术文档。 1.2设计思路框架 1.3设计方案的模块解释 本系统主要由电源模块、控制模块、电机驱动模块、按键中断模块等四个模块组成。 电源模块的功能是将交流220V电源经过整流转化为直流+5V电源,以供给

PLC控制步进电机正反转

实验名称:步进电机正反转的PLC控制 一、实验目的 了解步进电机运转的基本原理和步进电机控制系统的基本组成,熟练运用梯形图语言进行编程,掌握用PLC控制系统控制步进电机正反转的方法。 二、实验要求 1)通过查找相关资料和教师讲解了解步进电机运转的基本原理和步进电机 控制系统的基本组成; 2)以实验室西门子SIMATIC S7-200为硬件设备,认识掌握用PLC控制系统 控制步进电机正反转的方法; 3)学习STEP7-Micro/WIN4.0软件,运用梯形图语言进行编程。 三、实验设备 1)西门子SIMATIC S7-200 PLC硬件系统 2)西门子SIMATIC S7-200 PLC编程软件STEP7-Micro/WIN4.0 3)SH全系列步进电机驱动器SH-3F075 四、实验原理 1、PLC控制系统I/O分配表

2、PLC电气接线图 24 伏 电 源 步 进 电 机 步 进 电 机 驱 动 器 7-200 图1 PLC电气接线图 3、程序代码(梯形图) 图2 电机停止梯形图 (1)按下停止键,I0.0接通,脉冲输出功能关闭,电机停止。

图3 电机正转梯形图 (2)按下正转键,I0.1接通,方向电平复位,脉冲输出功能PWM输出脉冲周 期为2000um,脉宽为1000um的脉冲,电机正转。 注:寄存器说明 SM77.0 PWM update cycle time value 0 = no update; 1 = update cycle time SM77.1 PWM update pulse width time value 0 = no update; 1=update pulse width SM77.3 PWM time base select 0 = 1 us/tick; 1 = 1ms/tick SM77.4 PWM update method: 0 = asynchronous update, 1 = synchronous update SM77.6 PWM mode select 0 = selects PTO; 1 = selects PWM SM77.7 PWM enable 0 = disables PWM; 1 = enables PWM SMW78 :PWM cycle time value (range: 2 to 65535) SMW80 :PWM pulse width value (range: 0 to 65535)

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置位。(懒得改程序了)

单片机控制步进电机正反转

简单的单片机控制步进电机 电路原理图: 过程简介: 用AT89C52单片机控制步进电机,P3.0和P3.1引脚外接两个开关按钮,做控制用。P2.0引脚接一LED灯,接上拉电阻,做提示信号用。P1口为电机提供信号。用ULN2003D,它是个达林顿器件,主要是给步进电机供电,因为如果直接用单片机对步进电机供电,则电压不足。RST引脚外接开关按钮,提供程序复位。步进电机采用M42SP-5五线四相步进电机,直接接在DIANJI口。其基本工作过程是单片机先查看是否有按键按下,延时消抖,检查是否松开。然后进入电机驱动程序,电机驱动程序主要是向P1口按规律发送0或1,之前建立的数组按照A,AB,B,BC,C,CD,D,DA顺序向ULN2003D提供信号,ULN2003D也按照这个顺序给电机供电。从而使步进电机进行步进。当轴旋转180°后,单片机向P2.0引脚发出低电平信号,则LED灯亮。 其实本题目要求是要转180°,所以才一步一步走的,如果只是一直转则只需把电机驱动函数改为: void Motor() {

unsigned char i; for(i=0;i<8;i++) { GPIO_MOTOR = FFW[i]; Delay(Speed); //调节转速 } } 当然,这种控制个人觉得是不太精确的,如果只是让一个轴转动180度,则用步进电机外接减速箱,然后接一轴,让电机转一圈,轴转10度或20度,则控制会更精准。 C语言程序: #include #define GPIO_MOTOR P1 sbit LED=P2^0; sbit K1=P3^0; sbit K2=P3^1; unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转顺序 unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转顺序 unsigned char Direction; void Delay(unsigned int t); void Motor(); void main() { unsigned char i; while(1) {

相关文档
相关文档 最新文档