PTO指令及其步进电机控制系统中应用

发布者:zonheny最新更新时间:2022-06-29 来源: 21ic关键字:S7-200PLC  步进电机  PTO 手机看文章 扫描二维码
随时随地手机看文章

引言

步进电机用于控制机电设备上平动体或转动体的位移、速度和方向。s7-200PLC的高速脉冲输出指令PTO可产生占空比为50%、周期和个数可控的脉冲信号,进而控制步进电机的速度和位移。本文结合实例,介绍PTO指令在步进电机控制系统中的实际应用。


1系统组成

步进电机控制系统由CPU224、步进电机驱动器、步进电机、电源等组成,如图1所示。

其中,CPU224PLC是步进电机控制系统的控制器,通过执行PTO指令控制输出脉冲的周期和个数:步进电机驱动器接受来自PLC的脉冲信号,进行功率放大和分配,用以驱动步进电机,步进电机的方向由PLC的方向信号控制,通过改变分配给步进电机绕组的脉冲相序来改变转向:步进电机接受一个脉冲信号会产生一个步距角的位移。


2PTO指令介绍

2.1功能

PTO(PulseTrain0utput)是脉冲串输出的简称。PTO指令可以控制00.0或00.l端输出占空比为50%、周期和脉冲数可以指定的脉冲串,用以控制步进电机的速度和位移。


2.2特殊存储区

CPU224中有两个高速脉冲发生器,每个高速脉冲发生器都有一个8位控制字、一个32位脉冲计数值、一个16位的周期值和一个l6位的脉宽值,这些值都放在特定的特殊存储区中。例如,00.l端对应的控制字存在sMB67中,脉冲周期值存在sMw68中,脉冲计数值存在sMD72中。


在程序中设置好这些存储区值,执行脉冲输出指令PLs,CPU就会读取这些值,并执行特殊存储区所定义的操作,输出相应的高速脉冲。


2.3包络表

如果需要输出多个脉冲串,可以在存储区中建立包络表,包络表中存放多个脉冲串的参数。建立包络表后,执行PLs指令,PLC就会从包络表中读取参数值,按照参数定义控制脉冲串的输出。包络表中每段脉冲串的参数需用8个字节,其中包含2个字节的周期值、2个字节的周期增量值、4个字节的脉冲计数值。


3PTO指令在程序中的应用

3.1控制要求

步进电机控制要求如图2所示,从A到B为加速过程,从B到C为恒速运行,从C到D为减速过程。

根据控制要求,PLC需要输出3段脉冲,这3段脉冲的参数分别为A一B段:200个脉冲,频率从2kHz到l0kHz均匀增加,周期从500μs到l00μs均匀减小,周期增量为-2μs:B一C段:3600个脉冲,脉冲频率和周期不变化:C一D段:频率从l0kHz到2kHz均匀减小,周期从l00μs增加到500μs,周期增量为2μs。


包络表的起始字节存放段数范围为(1~255),本例中脉冲串为3段,包络表初始字节设为VB200。

3.2程序编制

3.2.1编程思路

本例程序由主程序、子程序和中断程序组成。其中,主程序中调用初始化子程序,复位00.0:在子程序中完成控制字设置及包络表的建立,并启动脉冲串的输出,建立中断程序的连接:当脉冲串完成时,执行中断程序,这里用00.0输出作为完成标志。


3.2.2程序及说明

3.2.2.1主程序

LDsM0.l//sM0.l的常开触点在首次扫描时接通一个扫描周期:

R00.0,l//首次扫描时复位00.0:

CALLsBR0:sBR0//首次扫描时调用子程序sBR0,设置PTO控制字和中断。


3.2.2.2子程序

LDsM0.0//sM0.0常开触点在PLC运行期间接通:

M0VB3,VB200//VB200中存放的是脉冲串包络表的段数,这里设为3:

M0Vw+500,Vw20l//第l段的初始周期设为500μs:M0Vw2,Vw203//第l段的脉冲周期增量为-2μs:

MoVD200,VD205DD第1段的脉冲个数设为200:MoVw+100,Vw209DD第2段的初始周期设为100μs:MoVw+0,Vw211DD第2段的脉冲周期增量为0:MoVD+3600,VD213DD第2段的脉冲个数设为3600:MoVw+100,Vw217DD第3段的初始周期设为100μs:MoVw+2,Vw219DD第3段的脉冲周期增量为2μs:MoVD+200,VD221DD第3段的脉冲个数设为200:LDsM0.0DDPLC运行期间接通:

MoVB16/A5,sMB67DDPTo的控制字设为A5:其含义为允许PTo操作,多段操作,时基为微秒,脉冲周期和计数值刷新:

MoVw+200,sMw168DD包络表的起始地址设为200:

ATCHINT0:INT0,19DD将中断INT0和PTo0脉冲串输出完成事件的联系:

∶NIDD允许中断:

PLs0DD按上述PTo控制字设置启动内部脉冲发生器工作并输出脉冲。


3.2.2.3中断程序

LDsM0.0DDPLC运行期间接通:

=o1.0DD当中断发生时,o1.0有输出,表示3段脉冲串输出完成。


4结语

s7#200PLC的高速脉冲输出指令PTo,通过设置控制字和包络表,可以方便地实现多段脉冲串的周期和脉冲个数的控制,从而实现对步进电机的速度和位移的多段控制。


关键字:S7-200PLC  步进电机  PTO 引用地址:PTO指令及其步进电机控制系统中应用

上一篇:基于PLC控制污水处理系统的设计研究
下一篇:GMC-96B钢轨打磨车常见电气故障分析、处理

推荐阅读最新更新时间:2024-11-03 19:59

基于LPC2148的步进电机调速和测速系统设计
步进电机 的调速和测速系统一般都采用ARM作为控制器,外加分立的数字逻辑电路和模拟电路构成。该系统以LPC2148作为控制核心,合理选择电动机的频率控制和闭环反馈控制,实时检测和调整电机的转速,使系统既具有良好的稳态性能,又具有良好的动态性能。 1 系统的工作原理 该系统主要由基于LPC2148为核心的主控电路连接电机驱动电路、通信模块电路(RS232)、测速电路(霍尔传感器)、A/D转换电路等其他电路组成,如图l所示。图2为ARM主控芯片。LPC2148为核心的主控电路负责频率输出,通过改变频率的大小来控制电机的转速,采集电路采集的数据可以通过RS-232接口电路与PC机实现通信。同时LPC2148模块将采集到的数
[单片机]
步进电机控制器电路
步进电机控制器电路 Stepper Motor Controller I found this circuit in my files. I don't know where it came from, but it looks like I photocopied it from somewhere years ago. I have been told that it came from "The Robot Builder's Bonanza", by Gordan McComb. Anyway, I thought that it should be fairly useful, so I decided to po
[工业控制]
<font color='red'>步进电机</font>控制器电路
步进电机驱动教程_步进电机功率计算
  步进电机驱动教程   步进电机是一种特殊的电机,可以通过输入脉冲信号来控制它的位置和运动。步进电机通常由电机本体和驱动电路组成,驱动电路负责将输入的脉冲信号转换为电机的运动控制信号。   以下是步进电机驱动教程的基本步骤:   确定电机参数首先,需要确定步进电机的参数,包括步距角度、相数、电流和额定电压等。这些参数对于正确选择驱动器至关重要,因为不同的电机需要不同的电压和电流以获得最佳性能。   选择合适的驱动器根据步进电机的参数选择合适的驱动器,通常可以选择单轴或多轴驱动器。单轴驱动器可以控制一个步进电机,而多轴驱动器可以控制多个步进电机。要选择正确的驱动器,需要考虑所需的电流和电压以及控制信号的类型。   连接
[嵌入式]
单片机步进电机的驱动程序
单片机 步进电机的驱动程序 动电压 12V ,步进角为 7.5 度 . 一圈 360 度 , 需要 48 个脉冲完成 !!! 在这里介绍一下用 51 单片机 对这款步进电机的驱动方法。 该步进电机有 6 根引线,排列次序如下: 1: 红色、 2: 红色、 3: 橙色、 4: 棕色、 5: 黄色、 6: 黑色。 采用 51 驱动 ULN2003 的方法进行驱动。 ULN2003 的驱动直接用 单片机 系统的 5V 电压,可能力矩不是很大,大家可自行加大驱动电压到 12V 。 此主题相关图片如下:     ;********************************************************
[单片机]
单片机<font color='red'>步进电机</font>的驱动程序
用AVR单片机直接控制其步进电机
用mege8L的PB0-PB3连接步进电机的四个接线端!该步进电机的转矩很小,强烈建议不要将其从底座上拆下!!!否则没有轴承支撑,摩擦力太大,转不起来! #include iom8v.h #define uchar unsigned char #define uint unsigned int uchar np; const uchar motortb ={0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33};//步进电机运行数据表 void delay(uchar t)// 每步延时的子程序 { uchar i; uint j; for (i=0;i t;i++) for (j=0;j 900
[单片机]
STM32控制步进电机源代码
单片机源程序如下: #include stm32f10x.h #include stm32f10x_rcc.h #include misc.h void RCC_Configuration(void); void GPIO_Configuration(void); void ZhengZhuan(u16 tt); void FanZhuan(u16 tt); void delay_ms(u16 nms); /**************************************************************************** * 名 称:int main(void) * 功 能:
[单片机]
STM32控制<font color='red'>步进电机</font>源代码
步进电机控制芯片UDN2916LB原理及应用
UDN2916LB是SANKEN公司推出的一款两相步进电机双极驱动集成电路,能够驱动双绕组双极步进电机,特别适用于目前国内税控市场双步进微型打印机电机的控制。 UDN2916LB适用的电机电压范围为10~45V,逻辑电压不能超过7V;通过内部脉宽调制控制器(PWM)可实现最大750mA的输出电流;内置1/3和2/3分割器;逻辑输入实现1相/2相/W1-2phase激励模式;内置过热和交叉电流保护功能;集成钳位二极管;内置防止低压误操作等保护功能。UDN2916LB内部结构如图所示,芯片有两组电路构成,每组电路由PWM控制器、电桥及辅助电路组成。 图1 UDN2916LB内部结构框图 PWM电流控制电路 每个PWM控制器由
[单片机]
<font color='red'>步进电机</font>控制芯片UDN2916LB原理及应用
单片机/智能仪表外围电路设计(步进电机)
实验内容: 编写试验程序,通过单片机P0口控制步进电机运转,接线图和各步电平见下。 参考程序: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R1,#08H MOV DPTR,#TAB LOOP: CLR A MOVC A,@A+DPTR MOV P0,A INC DPTR LCALL DELAY DJNZ R1,LOOP AJMP MAIN TAB: DB 0EH,0CH,0DH,09H,0BH,03H,07H,06H DELAY: MOV R5,#0FEH DELAY1: MOV R4,#0FF
[单片机]
单片机/智能仪表外围电路设计(<font color='red'>步进电机</font>)
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved