1 系统的主要组成与功能
系统由上位机(PC机)和下位机(单片机)两部分组成,硬件结构如图1所示。
上位机(PC机)软件采用可视化编程语言VB6.0开发,使用MScomm控件完成PC机与单片机的数据通信,传送控制信息、状态信息和焊接参数;并利用VB6.0具有的对各种数据库的操作能力实现焊接的人性化。下位机(单片机)通过串行接口接收PC机发送的命令,启动工作程序,控制6个步进电机(其中x轴两个、y轴1个、z轴两个,旋转θ轴1个),通过丝杠将电机的角位移转换为线位移,带动焊接电极按设计的轨迹运行,并实时向PC机传送当前的运行状态。系统的主要功能有:
①上位机实时监视下位机的工作状态,控制下位机的工作过程;设置下位机的工作参数,接收和发送数据信息、控制信息和状态信息;记录历史芯片的焊接参数;系统在重新上电时,将最新的焊接参数作为本次焊接参数的默认值;进行数据处理并显示数据和工作状态,指导操作过程;
②下位机控制6个步进电机的运转,最终控制焊接电极的移动;控制焊接功率的大小并实现间歇控制;实现焊接电极的微调。
③系统的各焊接轴方向精度不得低于0.1mm。
2 系统资源利用及通信机理
2.1 系统资源的利用
为充分利用PC机强大的数据处理能力、海量的存储空间,有效地发挥单片机数据存储器的作用,必须合理地分配系统资源。具体做法之一是PC机在发送焊接数据时,将其以浮点数存储的焊接参数根据步进电机的步角和丝杠比转换为脉冲数发送给单片机;二是当脉冲数占用的位数略大于单字节整数倍N位时,在满足精度要求的前提下有:发送的数据=原数据/2N,这时对发送数据取整,单片机接收到该整数数据后,左移N位便可恢复真实数据。这样既提高了通信效率,又减小了对单片机RAM的占用。
2.2 系统通信协议
波特率设置为4800bps;数据帧结构设置为:起始位1bit,数据位8bit,停止位1bit。
PC机向单片机发送的信息包包括数据信息包和控制信息包。数据信息包结构为:以“S”字符开头,其后为22字节的16进制数。发送时按ASCII码格式(文本格式)发送,实际发送44个ASCII码。下位机正确收到后,向PC机发“K”作为确认应答信号。若在规定的时间内,PC机未收到“K”信号,则重发。若三次未成功,则在屏幕上给出显示信息。PC机必须保证44个ASCII码的包长度,以免系统误动。控制信息包结构为:以大写“O”开始,其后为单字节16进制数的控制字,实际发送两个字节ASCII码,也是以“K”作为应答信号,采用等比码3/8。发送时高位在前,低位在后。
PC机从单片机接收的信息包结构的主要内容为数据信息和状态信号,且数据信息和状态信息被同时发送。该信息包以“S”开头,其后为32个1位16进制数的ASCII码,以“K”作为结束信号。若PC机收到单片机发来的完整信息包,则有屏幕提示,指示用户进行操作。
以上的信息由双字节数、单字节数混合构成,信息包的头与尾均采用非十六进制的ASCII码字符,以示区分。接收方则按照协议双方规定的算法进行解包,发送方按照双方规定的数据结构组包。
3 下位机的主要组成模块及设计思想
3.1 通信模块
通信模块的硬件组成由于仅使用了一片MAX232完成电平的转换功能而变得较为简单,免去了一般芯片使用±12V~15V电压带来的麻烦,而且与PC机的连接方式是最为简单的,不需要进行硬握手,大量的工作都由软件完成。
其主要程序设计方法如下:
①下位机接收PC机发送的数据包,以中断方式(且设置为高级中断)来接收,以满足通信的实时性要求。这里仅是触发接收中断服务程序的执行并且接收首字节,一旦进入该中断程序后,就用程序查询的方法来接收剩余的字节。接收标志RI是硬件置位、软件复位的,因此每接收完一个字节后,需执行指令CLR RI。接收完数据后,按协议规定对数据进行解码和验证,并向PC机返回验证信息。②下位机向PC机发送运行状态信息的子程序是根据程序工作过程的需要而调用的。在调用过程中为保证程序逻辑的清晰性,使CPU关中断,利用程序查询发送标志TI(TI的使用同RI相似),按协议要求进行数据变换并发送完整个信息包,再使CPU开中断,整个程序执行完毕。
3.2 步进电机控制模块
步进电机是机电一体化产品中重要的执行元件之一。对于三相反应式步进电机,其工作方式分为两种。本系统选用三相单、双六拍通电方式,这种方式不容易失步,在转子平衡位置附近不易产生振荡,运行的稳定性较好,而且控制的精度也提高了一倍。为使步进电机的运行更平稳,控制精度更高,系统采用了具有细分的步进电机驱动器来控制。步进电机的转速取决于步进脉冲序列的频率。其硬件接口电路如图2所示。图中只是X轴左侧步进电机的连接示意图,其余电机的连接方式与图中相似,但使用8155A其它的引脚。步进电机驱动器的CP+和CP-是步进脉冲输入端,U/D+和U/D-是方向控制输入端,PD+和PD-为脱机控制输入端(本系统未使用),且各具有光电隔离电路,有利于实现系统工作的安全性和可靠性,连线采用共阳极接法是因为逻辑电路的灌电流负载能力通常大于拉电流负载能力;DC和GND为电源接线端,要求为直流20~60V,电流为4A;输出端A+和A-、B+和B-、C+和C-分别与步进电机A、B、C三相引出线对应连接。对步进电机的控制主要有逻辑控制和速度控制。
逻辑控制包括电机旋转方向控制和发送步进脉冲序列。由于访问8155的PA口和PB口需以字节方式进行,因此根据旋转方向控制和步进脉冲序列发送的需要,组成逻辑置位和复位两个控制字,交替地输出到对应的端口,即可实现对电机旋转的控制。系统最多控制两个电机同时工作,共有16个控制字。具体的编程思想是:脉冲数经步进角到角位移,再经丝杠到线位移,即可实现脉冲数正比于线位移。
速度控制是通过在置位和复位两个控制字交替输出期间插入延时子程序而实现的,所以速度的快慢是由延时子程序的执行时间决定的。在本系统的电机工作的低速区,非焊接运行时控制线速为4mm/s;焊接运行时线速为1~8mm/s,由PC机根据需要实时控制。
3.3 PWM模块
为满足IC芯片缝焊的技术条件,要求焊接过程的功率加载是间歇的,为此设计了PWM脉冲宽度调制模块,以实现对功率的间歇控制。图3是本模块的电路组成。核心器件为SG3524,它的输出为周期脉冲序列,其周期受RT、CT端对地的接入电阻RT和接入电容CT的控制,周期T=0.77RT×CT,所以在此串入数字电位器X9C104用以实现对T的控制。按图中数字电位器的使用方法,则其电阻R的表达式为:R=(99-n)×100kΩ,其中n是通过编程进行控制的。SG3524的输出信号的占空比由D/A转换电路通过编程控制。本系统实现了T=40ms~80ms,占空比为0~100%,由上位机控制。
3.4 焊接功率控制模块
焊接功率的控制实际上是通过控制输出电压来间接实现的。由单片机输出数字信号到DAC0832进行数/模转换,转换的结果经SG3524控制的模拟开关后,再控制固态调压模块EVU—40A,使其输出的交流电压与输入的数字信号成线性比例。将输出电压接至焊接变压器,转换为低电压高电流加到焊接电极,通过产生高温对IC芯片进行缝焊。实现电路如图4所示。另外由于EVU—40A调压模块在实际运用过程中存在残留电压,致使在调节焊接参数时电极焊轮出现打火现象,致使不必要的损失,因此在调压模块的输入回路串接交流固态继电器GJH25—W进行阻断。
对焊接功率模块控制的编程方法如下:单片机接收上位机的功率控制信息并写入地址为6000H的DAC0832芯片,同时GJH25-W送有效控制信号使其导通,焊接电极就有相应的功率输出,进行缝焊。不进行焊接时,使GJH25-W截止,同时向DAC0832发送0FFH,实现焊接完全可靠的断开。
4 实验测试结果
X、Y轴丝杠的线位移/角位移=4mm/360度,Z轴丝杠的线位移/角位移=1.5mm/360度,步进角均为0.36度。实验方法是:利用计算机发送脉冲数并计算理论值,用千分尺实际测量并计算绝对误差值(见表1)。分析结果满足设计要求。
本系统经过一段时间的试验运行,证明通信实时性好、控制精度高,满足了设计要求。
参考文献
1 Brian Siler,Jeff Spotts著.Visual Basic 6开发使用手册. 北京:机械工业出版社,1999.4
2 张宏林.Visual Basic 6开发数据库. 北京:人民邮电出版社,2000.2
3 范逸之.Visual Basic与RS232 串行通讯控制.北京:中国青年出版社,2001.1