APP下载

基于PLC的步进电机控制系统设计

2021-07-06王勋

赤峰学院学报·自然科学版 2021年1期

王勋

摘 要:本设计以西门子公司的S7-200可编程逻辑器为中央处理模块,以两相步进电机为控制对象,介绍了西门子S7-200PLC的控制原理和系统总体设计方法,并从软件设计方面详细地讲解了如何用PLC的移位指令和高速脉冲输出指令实现对步进电机的控制。

关键词:PLC;两相步进电机;步进电机驱动模块

中图分类号:TP23  文献标识码:A  文章编号:1673-260X(2021)01-0063-05

0 引言

在生产制造流水线中,经常需要使用定位装置或机械手臂等加工设备来实现生产元件的组装,尤其是对于精度要求较高的组装器件,更需要根据控制要求,选取高精度的电机进行精确控制来减小误差。本设计采用西门子S7-200系列的PLC来控制步进电机[1,2],西门子S7-200PLC具有逻辑性强、编程控制简单的特点[3,4],而步进电机可以通过驱动脉冲来控制电机的角度和速度,进而达到了减小误差和精确控制的目的。

1 系统总体设计

基于PLC控制的步进电机电路图如图1所示。控制电路主要由三个部分构成,第一部分是电路的核心处理单元,由西门子S7-200系列PLC构成,本设计就是通过设置PLC高速脉冲发生器的参数来产生频率不同的高速脉冲从而实现电机控制;第二部分是由步进电机驱动板构成,步进电机驱动板主要用来给步进电机提供相应的时序电流和驱动电压;第三部分是由步进电机构成的执行机构,有了足够电压和电流的步进电机经过PLC传输来的不同频率、不同脉冲数的控制信号来达到对自身运行速度及角度的调节,實现了步进电机的驱动。

2 系统硬件设计

2.1 PLC概述

以前,工业控制主要都是人工手动控制,成本高还不稳定。近年来,越来越多可靠性高,实用性强的智能控制器投入到工业生产中,可以有效减低成本,还可以使工业生产稳定化。PLC就是其中优秀可靠的产品之一。

PLC是一种数字运算智能设备[5],主要由输入模块、中央处理模块、存储器、通信接口模块、输出模块、拓展接口模块、电源等硬件部分组成。PLC的核心是中央处理单元,它可以在内部执行各种运算,计时以及计数等操作的指令,并将运算后的指令通过相应的输出接口实现对外部受控单元的控制。

2.2 PLC工作过程

PLC的工作过程是描述PLC从上电初始状态到完整的运行完整个程序并产生相应输出的过程,主要分为以下五个阶段。

(1)内部处理阶段,PLC检查中央处理器并且复位监视定时器,之后完成其他内部工作。

(2)通信服务阶段,PLC响应编程器输入的命令、更新编程器,并且可能与一些智能模块进行通信。

(3)输入处理阶段,所有输入端子的状态被PLC顺序读取,并将读取的信息存入映像寄存器中。此时,输入映像寄存器刷新。

(4)程序处理阶段,按照先上后下,先左后右的顺序,对梯形图中的程序进行扫描,然后进行逻辑运算,运算结果存入相关的映像寄存器中。如果遇到程序跳转指令,就会根据条件判断并且跳转到指定的地址。

(5)输出刷新阶段,将所有输出映像寄存器中的状态转存到输出锁存器中,然后输出端输出驱动信号。

本设计以西门子S7-200PLC为核心处理器件,设计了一个两相步进电机的手动调速、自动变速、角位移控制和正反转控制的驱动系统。在系统输入信号部分,由输入按键I0.0控制步进电机慢速运行,由输入按键I0.1控制步进电机快速运行,由输入按键I0.2控制步进电机自动运行,由输入按键I0.3控制步进电机运行方向;在系统输出信号部分,由Q0.0输出信号控制驱动板的脉冲信号控制,由Q0.1输出信号控制驱动板的正反转信号控制,由Q0.3输出信号控制驱动板的使能端。

2.3 步进电机驱动板部分

TB6560步进电机驱动板工作电压直流10V-35V,其采用6N137高速光电耦合,保证高速不失真;可以有效地实现对负载电路的欠电压保护,过载保护和长时间电流过大的保护,适合额定电流低于3A的步进电机。对于多相步进的电机的运行通常是需要多相具有时序控制的电流来驱动的,而PLC不具备专门的时序电流控制输出结构,所以在PLC驱动步进电机时,需要加入步进电机驱动板。

2.4 步进电机部分

步进电机是依据脉冲信号的上升沿进行运作的电子元件。一般在理想情况下,电机的转速、转动的圈数只取决于告诉脉冲信号的周期和脉冲数,并且不受负载的影响。当步进驱动器接收到一个脉冲信号的上升沿时,它就会按照固定方向旋转一个角度,称为“步距角”。可以通过控制脉冲个数来控制步进的角度,也就是转动的圈数,从而达到可以准确定位的目的;同时可以通过控制脉冲的周期来控制步进电机的旋转速度。

步进电机的应用不像普通的直流和交流电机那样,一般情况下会比普通电机复杂一些,但是普通的直流、交流电机对于转动的速度和转过的角度不能实现精准的控制,而现在工业中对于精准控制的要求越来越高,所以这就使得步进电机的需求量与日俱增,在各个国民经济领域都有应用。

本设计采用的是42型四线二相混合式步进电机,是一种精度和成本相对较高,结构相对复杂的执行元件,步进电机是依据脉冲信号的边沿进行动作的电子元件[6]。在额定输入和额定负载环境下,步进电机的每一步角位移都是固定不变的,每一步的触发都是由脉冲信号来控制的,所以脉冲信号的频率决定了步进电机的转速,脉冲信号的个数决定了步进电机的旋转圈数,从而就可以实现对步进电机及电机所带动的负载的精确控制。

3 系统软件设计

通常意义上来说,可编程逻辑控制器软件程序大体上可以分为以下三类,即控制主程序部分,子程序部分和中断服务子程序部分,本设计主要是由主程序和子程序两部分组成,在自动调速控制功能程序设计部分,加入了中断服务子程序,下面以手动调速控制和自动调速控制为例来说明本设计的程序部分。

3.1 主程序部分

主程序是指可编程逻辑控制器中程序开始执行的部分,可以作为独立的加工程序使用,并且主程序可以调用子程序,而不被任何子程序所调用,是可编程逻辑控制器程序的中心部分。而本设计中的主程序主要是由逻辑控制部分和调用子程序部分组成。

以主程序图2为例,I0.0表示逻辑常开触点,当I0.0端输入为低电平时,逻辑常开触点保持断开状态,Q0.0输出端无效;当I0.0端输入为高电平时,逻辑常开触点转换为闭合状态,Q0.0输出端有效,使得Q0.0输出端执行逻辑清零操作,同时SBR_0使能端EN输入有效,主程序调用SBR_0子程序指令。子程序调用指令说明见表1。

3.2 子程序部分

在程序设计过程中,经常会有一些特定运算或功能需要反复使用,例如本例中的调速控制、正反转控制等操作,可以把这些特定功能的程序编写成子程序,从而达到减少主程序的扫描时间和,增加程序的易读性和调试的便捷性的目的。

3.2.1 数据传送指令

数据传送指令可以将数据在各个存储单元之间传送,并且数据值在传送工程中是保持不变的。传送指令可用于机内数据的流转和生成,也可用于存储单元的清零、程序的初始化等场合。

不同数据类型的传送指令只能传送相对应类型的数据,一般传送数据的类型包括字节传送、字传送、双字传送以及实数传送。

(1)字节传送指令MOVB

图3中MOV_B为梯形图表示方式,在图中:EN为使能端,IN为传送数据输入端(IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、常数等操作数),OUT为数据输出端(IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、等操作数),ENO为指令和传送状态位。

MOVB传送指令的功能是当使能端EN=1时,将在IN端的一个8位字节数据传送到MOVB指令的OUT端,OUT指定字节单元的地址位置。

(2)字传送指令MOVW

图4中MOV_W为梯形图表示方式,在图中:EN为使能控制输入端,IN为传送数据输入端(IW、QW、VW、MW、SMW、SW、T、C、LW、AIW、AC、*VD、*LD、*AC、常数等操作数),OUT为数据输出端(IW、QW、VW、MW、SMW、SW、T、C、LW、AQW、AC、*VD、*LD、*AC等操作数),ENO为指令和传送状态位。

(3)双字传送指令MOVDW

图5中MOV_DW为梯形图表示方式,在图中:EN为使能控制输入端,IN为传送数据输入端(ID、QD、VD、MD、SMD、SD、LD、HC、AC、&VB、&IB、&QB、&MB、&SB、&T、&C、&SMB、&AIW、&AQW、*VD、*LD、*AC、常数等操作数),OUT为数据输出端(ID、QD、VD、MD、SMD、SD、LD、AC、*VD、*LD、*AC等操作数),ENO为指令和传送状态位。

3.2.2 高速脉冲输出指令PLS

在S7-200PLC中,每种主机最多提供两个高速脉冲发生器,其中一个发生器分配在数字输出端Q0.0,另一个分配在Q0.1。

高速脉冲发生器发生高速脉冲时仅由Q0.0端和Q0.1端输出。高速脉冲输出有PTO和PWM两种输出形式:PTO是普通高速脉冲,PWM是宽度可调脉冲。本设计主要用到PTO。高速脉冲串输出PTO用来输出指定数量的方波,这样可以更好地控制脉冲的周期和个数。同时,为了成功驱动步进电机,我们还需要一些能提供高速脉冲输出的指令(如表2)。

不同的高速脉冲发生器都对应不同的特殊寄存器,且对应数量不一致。一般的寄存器包括控 制字节、状态字节寄存器和参数值寄存器。各个寄存器的功能如表3:

为了标明响应操作的状态,PLC在PTO方式下,在每个高速脉冲输出时都设置了状态位,而这些状态位可以作为判断条件来响应操作。状态字节中各状态位的功能如下:

Q0.0:当状态字节在范围SM66.0~SM66.3时,通常表示无意义。

当状态字节为SM66.4時,PTO包络增量计 算错误并且终止,此时0=无错误;1=终止。

当状态字节为SM66.5时,PTO包络由于用户命令而终止,此时0=不终止;1=终止。

当状态字节为SM66.6时,PTO管线溢出,此时0=无溢出;1=溢出。

当状态字节为SM66.7时,PTO空闲,此时0=执行中;1=PTO空闲。

Q0.1:当状态字节在范围SM76.0~SM76.3时,通常表示无意义。

当状态位字节SM76.4时,PTO包络增量计 算错误并且终止,此时0=无错误;1=终止。

当状态位字节SM76.5时,PTO包络由于用户命令而终止,此时0=不终止;1=终止。

当状态位字节SM76.6时,PTO管线溢出,此时0=无溢出;1=溢出。

当状态位字节SM76.7时,PTO空闲,此时0=执行中;1=PTO空闲。

每个高速脉冲输出都对应一个控制字节,可通过对控制字节指定位的编程来实现所需要的高速脉冲输出。

3.2.3 子程序部分

在主程序中,当I0.0端输入为高电平时,SBR_0使能端EN输入有效,主程序调用子程序SBR_0。子程序SBR_0程序图如下。

以子程序图6为例来说明PLC是如何使用传送指令和高速脉冲输出指令来实现步进电机的调速控制。图中SM表示特殊标志位存储器,该标志位寄存器能提供状态信息和控制功能,并且可以在程序和CPU之间实现信息交换。逻辑常开触点SM0.0表示上电保持功能,在系统上电时该值始终为1,程序立即触发与之相连接的四个指令的使能端。

当SM0.0触发第一个数据传送指令MOV_B的使能端时,将16进制数据85传送到特殊标志位存储器SMB67中,其中SMB67表示为控制PTO/PWM脉冲输出的标志位寄存器,可以通过传送指令来实现所需要的脉冲输出功能。本设计中给SMB67传送数据16进制85则表示设置高速脉冲此时为Q0.0输出单段PTO脉冲、时基为毫秒且允许更新脉冲数和周期值,不允许更新脉冲宽度。

当SM0.0触发第二个数据传送指令MOV_W的使能端时,将十进制数值2000传送给SMW68存储单元中,其中SM68表示为控制PTO/PWM脉冲周期的标志位寄存器,可以通过传送指令来实现所需要的高速脉冲周期值的调节,范围为2~65535ms或10~65535us,本程序为设置脉冲周期为2000us。

当SM0.0触发第三个数据传送指令MOV_DW的使能端时,将十进制数值0传送给SMD72存储单元中,其中SMD72表示为PTO脉冲数的标志位寄存器,可以通过传送指令来实现所需要的脉冲数的设置,设置值应该为大于等于0的正整数,当赋值为0时,系统默认为1。

当SM0.0触发第四个指令PLS的使能端时,其中PLS表示高速脉冲输出指令,该指令可以实现在高速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。当给该指令操作数赋值为0时,即默认高速脉冲输出端口为Q0.0位。

3.3 中断服务子程序部分

中断服务子程序是PLC编程中的一种重要功能,用于实时控制、高速处理、通信和网络等复杂和特殊的控制任务。所谓中断就是在CPU执行程序时刻,系统出现了某些急需处理的特殊事件,这时CPU会暂时中断正在执行的程序,转而去处理相对更加紧急和更加重要的中断程序,当中断程序处理完毕以后,CPU会返回中断之前的程序继续执行。

中断服务程序与子程序最大的不同是,中断服务程序不能由用户程序调用,而只能由特定的事件触发执行。PLC最多有38个中断源(9个预留),分为三大类:通信中断、输入/输出(I/O)中断和时基中断,优先由高到低依次是:通信中断、I/O中断和时基中断。每类中断中不同的中断事件又有不同的优先权。

3.3.1 中断连接指令ATCH

上图是PLC程序中的中断连接指令功能图,EN是中断指令的使能端,当使能端EN所连接的前端输入有效电平时,触发程序体的中断连接指令,此时中断连接指令会时刻检测中断事件EVNT,如果此时中断事件有效,系统会暂时停止当前执行的任务,转而执行中断程序INT中所描述的程序,当中断程序执行完成后,系统会返回继续执行中断之前的程序。

中断事件即指发出中断请求的事件,PLC在系统中内置34个可作为中断请求的中断事件,每一个事件都由一个不同的事件触发,每一个中断事件都分配一个编号用来识别中断请求,称之为中断号。

3.3.2 中断允许指令ENI/中断禁止指令DISI

上图是PLC程序中中断允许指令和中断禁止指令的功能图,该指令的功能是当ENI指令输入端有有效输入电平时,允许全局中断连接指令执行相应的中断程序;如功能指令DISI输入端有有效输入电平时,禁止全局中断连接指令执行相应的中断程序。

3.3.3 中断返回指令

上图是PLC程序中中断返回指令的功能图,该指令的功能是当RETI指令输入端有有效输入电平时,退出中断程序,返回继续执行中断前的主程序。

3.3.4 中断服务子程序部分

上图是PLC程序中的中断连接指令使用部分,该中断出现在程序体的自动演示部分,中断事件19表示的是在PTO的0号端口脉冲串输出完成后触发中断操作。此时指令ENI的輸入一直保持有效,即允许全局中断连接指令的执行,当步进电机完成自动调速演示后,PTO脉冲串输出端口会终止脉冲串的输出,让步进电机由运动状态恢复到停止状态,此时中断连接指令中的中断事件19被触发,中断连接指令会调用中断服务子程序INT0,系统会暂时停止当前程序执行,转而执行相应的中断服务子程序。

上图是PLC程序中的中断服务子程序部分,当中断事件19触发中断后,中断连接指令调用中断服务子程序INT0,执行相应中断程序。SM0.0表示特殊存储器,当PLC上电后,该位始终为1,当中断程序被调用后,SM0.0始终得电,Q0.2位的状态被置1,产生相应输出表示自动演示程序执行完成,允许进行其他操作,同时RETI也立即得电,系统退出中断程序,返回继续执行中断前的主程序。

4 结论

本设计使用西门子公司S7系列的PLC作为步进电机的控制器,搭配步进电机驱动板可以方便地实现步进电机的正反转控制、调速控制和角位移控制,而且可以根据生活生产的需求进行实时的程序修改,达到实时控制的目的。PLC本身也具有可靠性高和抗干扰性强的特点,极大地提高了系统的可靠性。可广泛地在工业机械手、制造业和矿井提升系统中得到应用。

——————————

参考文献:

〔1〕宋立.基于PLC的步进电机闭环控制系统[J].中国高新科技,2019,26(24):86-88.

〔2〕范长青.基于西门子S7-200 SMARTPLC的步进电机控制[J].无线互联科技,2019,2(03):114-116.

〔3〕李文辉,李国强.基于PLC的步进电机控制系统设计[J].仪表技术,2008,37(10):89-90.

〔4〕龚仲华.机电一体化技术与系统[M].北京:人民邮电出版社,2018.

〔5〕杨友进,王卓君.基于S7-200SMART的步进电机控制研究[J].电工技术,2018,39(12):23-24.

〔6〕王雁博.基于PLC的步进电机控制系统设计[J].西安文理学院学报(自然科学版),2017,24(4):40-41.