用微机串口实现对交流伺服电机的控制
用微机串口实现对交流伺服电机的控制
在自动控制系统中,交流伺服电机的作用是把信号(控制电压或相位)变换成机械位移,也就是把接收到的电信号变为电机的一定转速或角位他具有精度高、低频特性好、额定转速高、速度响应时间短等特点,因而在自动控制系统中得到越来越广泛的应用。
若用微机对交流伺服电机进行控制,现在采用较多的办法是选用现成的运动控制卡。微机通过对与控制卡配套的接口板通信,进而实现对电机的控制=这种控制简单可靠,但在一些对系统各轴联动要求不高的场合,选用现成的控制卡略显浪费(控制卡价格在万元左右)下面介绍一种控制方法,他可以较低成本实现对伺服电机的控制=系统框图如所示2串口通信系统首先要实现的任务是微机与计算机之间的串口通信。在DOS作环境下,要实现单片机与微机的串行通信,只要直接对与微机接口的通信芯片8250进行口地址操作即可。然而在Windows环境下,由于系统硬件的无关性,不再允许用户直接操作串行口地址如果用户要进行串行通信,可以调用Windows的API应用程序接口函数,但是由于其专业化程度较高,因而使用较为复杂。微软公司的VisualBasic提供了一个通讯控件(Mscomm),使用他就可以很容易地解决这一问题新一代面向对象的程序设计语言VisualBasic是将Windows图形工作环境与Basic语言编程简便性的美妙结合。他简明易用,实用性强,因而得到了广泛的应6.0提供了一个名为MSCOMM32.OCX通信控件,他具备基本的串行通信能力:即通过串行端口传输和接收数据,为应用程序提供串行通讯功旨能该控件可以从VB的TOOLBOX中加入到窗体FORM,若TOOLBOX中没有此控件,贝IJ用PROJECT的COMPONENT将他从Windows的SYSTEM目录中加入到VB 6.0的TOOLBOX中。这样便可自由地设置他的属性,并用VisualBasic语句与串口沟通MSComm控件有许多重要的属性,主要的有:Settings以子付串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen设置并返回通讯端口的状态也可以打开和关闭端口。
Input从接收缓冲区返回和删除字符。
Output向传输缓冲区写一个字符串。
借助这个控件可以很容易的实现上下位机之间的通信。
3控制电路在控制电路中要想实现高精度伺服控制,其位置反馈装置必须有4倍频来提高码盘的分辨率,其输出的脉冲再由可逆计数器进行加减计数,计算机在每个采样周期内首先读取可逆计数器的值做为坐标轴实际运动位置,然后与差补程序所送出的坐标轴的期望位置命令相比较,算出当前坐标轴速度指令电压,实现位置控制=这种控制存在很多缺点主要有位置控制的电路采用元器件较多,电路复杂,调试比较困难,可靠性不是很高,容易出现脉冲丢失现象;控制算法全部由计算机软件完成,采样频率低,多轴控制较难实现与此相比采用LM628专用控制芯片将会起到事半功倍的效果公司生产的运动控制专用芯片,他具有32位的位置、速度、加速度寄存器;带有16位参数的可编程数字PID控制器,并对位置误差进行PID控制;具有速度与位置两种工作方式;他支持实时读取设定的和实际的运动参数(位置速度加速度);可以自动产生梯形波速度曲线,使得加减速平稳并对码盘脉冲自动4倍频;具有可编程微分采样间隔;支持8位或12位DAC数据输出;具有8位并行异步主机接口;可实时编程的主机中断。LM628提供了23条自带指令,包括速度设置、加速度设置、停止运动、设置PID参数等,利用这些指令可简化软硬件的开发过程控制过程如下所述,以三轴控制电路为例,89C52根据指令要求通过74LS138选定运动轴,将数据发给74LS245 74LS245再将数据发往LM628的啦双向数据输入输出口,LM628将指令处理后,通过DAC输出口将电压信号的数字量发往AD767;最后由AD767将数字量转为模拟量电压,控制电机转速4软件开发为了使本控制系统具有一定通用性,使之今后可适用于其他三轴交流伺服电机控制,采用了开发控制库函数的方法软件结构框图如所示与控制电路上的接口相对应,将LM628提供的基本函数细化诸如设置速度、设置加速度、急停等,这样在使用时,仅需将库函数调入,即可进行编程。
在上位机软件系统设计中,首先建立一个基本模块Basic.bas,也就是上文中提到的库函数他包含运动控制控制软件的基本结构为了编程方便,再建个类模块Specific.bas,将Basic.bas模块中的函数进一步细化,将命令具体化,使之成为本系统的专用模块Specific,bas是用VB面向对象的编程方式在Basic.bas的基础上开发的类模块,其中定义了系统软件所需的函数,使得上位机的软件的编程无需直接调用Basic.bas中较为抽象的函数例如在系统中需要经常用的打开伺服函数这样编写:即根据需要输入字符串打开相应的I/O口,若伺服开关接在第5个I/O口上可这样定义:在需要打开伺服时,直接调用OpenServe函数即可,这样具体的函数给编程带来很大的方便5通信协议为使上下位机能很好的通信,制定合理高效的通信协议十分关锘通信协议可采用主从方式,上位PC机永远是主控者,单片机只是被动接收者。上下位机都采用数据帧的形式,按照下述帧的格式发送或接收数据。对PC机协议规定如下:PC机每发一帧命令,采用如下过程:清空发送与接受缓冲区―发送命令*等待+超时错PC机每发一帧命令必须收到响应帧后才能开始与单片机的下一次通讯PC机在不发命令字的期间与非等待响应期间,间隔一定时间间隔向单片机发送状态查询命令,显示当前系统状态。(下转第37页)9个属性,分三个阶段进行训练识别,各个阶段的网络学习率均为0.2,因为输入数据都经过了归一化处理,训练初始值限制在±2之间。三阶段神经网络各个阶段的识别率比较如表1所示表1各阶段神经网络识别率比较第一阶段第二阶段第三阶段识别率误判率噪声误判为信7%号远震T区域P 4%误判为区域S远震T误判为%区域S信号误判为噪2%声区域S误判为2远震T 2区域P区域S误判为%远震三个阶段的识别率分别为9%,93.%,98%.在第一阶段信号与噪声的识别率比较低,主要是因为地震信号的噪声比较复杂,在信噪比较低的情况下,噪声容易被误判为信号。
在今后的工作中,拟通过信号的预去噪来提高识别率经过丫轴号命令标识响应位轴00:读命令0:指令失败1:指令成功11:接口电路命令命令标识区(1 PC机发出一条指令给单片机后,经过一段时间,单片机应返回相应的响应指令。指令正常完成与否都在命令标识字节的最后一位表示为了统一帧的格式,单字节指令的响应也需要包含数据长度项,只不过长度为0 6结语采用上述方法可在低成本的前提下实现通过微机串口对交流伺服电机的控制1 LM628运动控制芯片的采用,减少了系统软硬件开发的工作量故本系统可广泛适用于在对多轴联动要求不高的场合。但其也存在一定缺陷,即在实现多轴联动方面有一定难度,特别是在对多轴进行实时位置控制时,本系统就无法胜任