1 引言
步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件,具有快速启动和停止的能力。但大多数设计人员常常习惯于用逻辑电路实现复杂的步进电机的控制,虽然已经取得很大成效,但实现起来成本高、费时多,而且一旦组成了电路,就很难再改动,因此不得不完全重新设计控制器。微处理器与微计算机的先进技术和低廉的价格,给步进电机的控制开创了一个新的局面[1]。人们完全可以借助于软件来对步进电机实施控制,从而实现复杂而成本又不高的控制系统,同时还可以很灵活地通过改变程序来改变控制方案。为此,我们基于 89C51单片机设计了步进电机控制器用于玻璃管加热系统。该控制器具有线路简洁、性能良好、成本低、可靠性高等特点,在实际应用中取得了良好效果。
2 控制系统硬件设计
2.1 玻璃管加热器的原理
直径400mm 的圆盘上每隔15°有1个固定器,用于安放直径3mm,长度50mm-70mm的玻璃管,圆盘上方有一个火焰喷头,用于对玻璃管进行加热。先在圆盘上装上 24个玻璃管,开机定位后开始工作,步进电动机开始运转,当每转过15°时,延时T秒(T的大小可以设定为3,4,5三种状态,本系统的默认值为3,通过软件控制可以使时间偏差小于0.1秒)当一个玻璃管加热完毕后,步进电机转动移动到下一个玻璃管,所用时间为1秒,通过软件可以使定位偏差小于 0.1mm,后重复上一步工作。机械传动原理图主视图如图1所示,俯视图如图2所示。
图1 机械传动原理图主视图
图2 机械传动原理图俯视图
2.2 单片机控制系统硬件设计
该系统控制器的核心采用89C51单片机,具有4K的可擦除程序存储器,易于系统的扩展和程序的改进。采用P1口的四位作为键盘输入控制,用K1,K2, K3控制延时状态,K1按下延时3秒,K2按下延时4秒,K3按下延时5秒。K4控制运行方向选择,在顺时针和逆时针之间进行切换。数码管采用串行显示方式,对运行状态给以显示,LED1显示显示方向选择,“-”表示顺时针旋转,“|”表示逆时针旋转。LED2显示的是延时时间,可显示3,4,5三种状态。参见图3电气控制框图。
图3 电气控制框图
3 控制系统软件设计
3.1 软件实现的功能分析
控制系统可以按要求来设定方向选择,延时时间等,操作者可以方便的观察控制系统的工作情况。
(1) 步进电动机的最小步距角为1.5°,每转的步数为240步/转;
(2) 圆盘上15°一个固定器,一共可以安放24个玻璃管;
(3) 圆盘转过15°的时间为1秒;
(4) 数字显示部分为延时时间(可以设置为3,4,5秒);
(5) 喷头与圆盘保持垂直以减少误差。
3.2 控制系统的主程序流程图
根据系统所应完成的任务,设计主程序流程图如图4所示:
图4 主程序流程图
图4中:
左1:走一步延时10ms用来寻找定位点,找到定位点后进入正常运行状态;
左2:置数,用于设置10步一停,240步一判断;
左3:正常运行状态,走1步延时0.1s,10步一停,延时T(T=3,4,5);
左4:240步为一周,旋转一周后判断是否有干扰丢步,若有,重新寻找定位点。
系统启动后,首先对端口及显示进行初始化,显示清零,步进电动机三相绕组处于失电状态,然后对数字键和功能键的扫描。当操作通过数字键的一个设定值后,设定值以十六进制存入RAM单元,再以十进制通过动态LED显示出来;操作者确认后,按下左(或右)行功能键,步进电动机就会带动圆盘转动,延迟的时间通过静态LED显示出来。
3.3 步进电动机正反转驱动子程序的设计
本系统所选用的步进电动机为110BF3-15型,它有三相绕组,向三相绕组输入脉冲输入脉冲的顺序有三种,分别为单三拍、双三拍、三相六拍。本系统选择双三拍输入方式。输入方式是靠软件来控制的。双三拍控制软件是最简单的软接口之一。首先要以8255A的PA口为输出口,接着把控制信息送到PA0~PA2中,对应的I/O线为“1”(高电平有效),则步进电动机相应的相绕组通电,步进电机转子就转动。要求转子以不同的方向转动,三相绕组的通电顺序就不同,则相应的控制字也就不一样,双三拍绕组通电控制信息表如表1[2]。
由表1可知,正反转所需要的信息串为03H→06H→05H→03H,这时按AB→BC→CA→AB顺序通电。反转时所需的信息串为05H→06H→03H→05H,这是按照顺序CA→BC→AB→CA通电。
表2为步进电动机不同步相控制方式的控制字(十六进制,下同)。
表1 步进电动机相绕组通电控制信息表
表2 不同步相控制方式的控制字
考虑步进电动机的正反转之后,双三拍控制软件清单如下[3]:
DS :MOV A,#00H ;初始化使PA0~PA2为输出
MOV DPTR,#0C000H ;
MOVX @DPTR,A ;
MOV DPTR,#0C000H ;为AB相通电
MOV A,#03H
MOVX @DPTR,A
LCALL DELY ;调延时
MOV DPTR,#0C000H ;为BC相通电
MOV A,#06H
MOVX @DPTR,A
LCALL DELY ;调延时
MOV DPTR,#0C000H ;为CA相通电
MOV A,#05H
MOVX @DPTR,A
LCALL DELY ;调延时
DELY:MOV 0CH,#0FH ;延时子程序
RET
以上是步进电动机三相绕组正向通电子程序,反向通电子程序类似,若要改变电机转速,只要改变MOV 0CH,#0FH指令中的立即数的值即可。图5为步进电动机正反转驱动子程序流程图:
图5 正反转驱动程序流程图
4 结束语
本系统操作方便,控制灵活,精确度高,可靠性好,已达到了预期的设计要求,大大减轻了体力劳动强度,改善了工作条件。在软、硬件实现上为了提高系统的可靠性及精度,均采用了相应的抗干扰措施。