基于单片机的位置实时精调伺服控制系统开发*
2021-09-10黄建军邵中魁陶仁和姜耀林
黄建军 邵中魁 陶仁和 姜耀林
(浙江省机电设计研究院有限公司 杭州 310051)
在实际工业生产中,由于零件尺寸一致性差、传动机构热变形、机械磨损等原因,导致许多复杂传动机构的相关重要节点位置需要实时动态精确调节。以高速压力机滑块下死点位置为例,高速压力机加工的工件多种多样,每种冲压件的形状厚度也不一样,每更换一种冲压件,压力机滑块下死点位置得重新调节;另外,高速压力机在高速冲压过程中机身及运动部件产生的热变形、运动关节之间的间隙等将导致滑块下死点位置逐渐改变。因此,如何精确地实现滑块下死点位置调节是高速压力机必不可少的一项关键技术。
位置调节装置一般采用伺服电机作为动力输出源,通过一系列的传动机构最终实现重要节点位置实时调节。比如,高速压力机的滑块下死点位置调节装置采用伺服电机、滚珠丝杠等驱动滑块上下运动,实现滑块下死点位置精调[1-2]。
据此,本文研制了一套基于单片机的位置实时精调闭环伺服控制系统,该控制系统采用嵌入式控制系统方案,以嵌入式CPU为核心,在此基础上配以相应的外围硬件电路,共同组成功能完善的闭环控制系统。该控制系统体积小,结构紧凑,易于实现机构重要节点位置实时精确调节,具有很强的通用性。
1 伺服控制系统总体方案确定
本文设计的位置实时精调闭环伺服控制系统原理如图1所示,主要包括控制系统CPU、电机驱动系统、机械传动机构及位置检测模块等。上位机实时发送位置控制信号给控制系统CPU(即嵌入式处理器),同时机械传动机构上安装的位置检测装置也实时发送位置反馈信号给CPU,CPU根据上位机控制信号与实际位置反馈之差实时动态控制电机驱动系统以调整机械传动机构实际位置,从而实现位置实时闭环控制。
图1 伺服控制系统原理示意图
目前嵌入式处理器多种多样,其中应用最普遍的主要有单片机、DSP、ARM等微处理器芯片。本文采用STC12C5A60S2芯片作为微处理器。该芯片是一款多功能单片机,它的计算速度高、运行功率小、抗干扰能力强、稳定性能好,特别适用于一些干扰状况较恶劣的工业领域[3]。
根据上述原理示意图,设计该位置实时精调闭环伺服控制系统详细技术流程如图2所示[4]。
图2 伺服控制系统详细技术流程
STC12C5A60S2单片机接收外界输入的控制信号后,以设定的频率发送指令脉冲,该脉冲信号经AM26LS31分频处理后输入伺服驱动器,控制伺服电机运转,最终带动拟控制目标节点位置运动。在拟控制目标节点位置上安装有直线光栅尺,光栅尺产生脉冲信号,该脉冲信号经AM26LS32处理后分两路输入单片机,一路光栅脉冲信号作为方向判定信号输入单片机,另一路光栅脉冲信号作为脉冲计数信号输入单片机[5]。单片机根据处理后的光栅脉冲信号调整给伺服电机发送的脉冲数,构成闭环控制系统,以精确控制拟控制目标节点位置。
另外,为了方便观察该伺服控制系统的各个运行参数,采用LCD1602作为该系统的人机界面,并由STC12C5A60S2单片机控制该显示屏的状态。
2 伺服控制系统电路原理设计
基于Protel软件平台搭建位置实时精调闭环伺服控制系统硬件电路,如图3所示。
图3 伺服控制系统硬件电路
STC12C5A60S2单片机在其引脚 XTAL1与XTAL2之间外接一个24MHz晶振作为CPU的时钟源。单片机的P1.0~P1.7引脚接显示屏的第7~14位即 D0~D7共 8个数据引脚,用于双向并行传输8位数据。单片机的 P2.0引脚接显示屏的第 4位即RS数据/命令选择引脚。当RS为高电平时D0~D7传输数据,当RS为低电平时D0~D7传输指令。单片机的P2.1引脚接显示屏的第5位即R/W读/写选择引脚,当R/W为高电平时对显示屏进行读操作,当R/W为低电平时对显示屏进行写操作。单片机的P2.2引脚接显示屏的第6位即E使能信号引脚,当E引脚由高电平跳变成低电平时显示屏执行命令。
伺服电机采用位置控制方式,并且每接收一千个指令脉冲旋转360°。STC12C5A60S2单片机的P2.3引脚用于发送控制伺服电机旋转圈数的高低电平脉冲信号,该引脚接分频芯片AM26LS31的第1位引脚,该脉冲信号由AM26LS31分频处理后变成两路脉冲信号puls+和puls-,经AM26LS31的第2、3位引脚输入伺服电机驱动器,以控制伺服电机的旋转圈数。
单片机的 P2.4引脚用于控制伺服电机旋转方向。该引脚接分频芯片AM26LS31的第7位引脚,该脉冲信号由 AM26LS31分频处理后变成两路高低电平信号sign+和sign-,经AM26LS31的第5、6位引脚输入伺服电机驱动器,以控制伺服电机的旋转方向(正转或反转)。
光栅尺组件安装在拟控制目标节点位置上,光栅尺的分辨率为 10μm,当拟控制目标节点位置运动时光栅尺共输出 A+、A-、B+、B-、Z+、Z-共 6路高低电平脉冲信号,在此只取 A+、A-、B+、B-这 4路脉冲信号。其中 A+、A-两路脉冲信号分别连接合频芯片AM26LS32的第1、2位引脚,B+、B-两路脉冲信号分别连接合频芯片 AM26LS32的第6、7位引脚。
A+、A-两路脉冲信号经 AM26LS32合频处理后变成一路高低电平脉冲信号。并由AM26LS32的第3位引脚输入单片机的P3.2引脚,用于引发单片机的外部中断,每一次中断脉冲数目加一。
B+、B-两路脉冲信号经 AM26LS32合频处理后变成一路高低电平脉冲信号。并由AM26LS32的第5位引脚输入单片机的P2.5引脚,用于脉冲信号鉴相,由此判断拟控制目标节点位置运动方向。
零位传感器用于判断拟控制目标节点位置的绝对位置。当拟控制目标节点位置经过零位传感器时电平从1变成0。该下降沿信号直接输入单片机的P3.3引脚,并引起单片机外部中断,脉冲数目重新设置为0。
3 伺服控制系统程序流程设计
位置实时精调闭环伺服控制系统的控制程序流程如图4所示。
图4 伺服控制系统控制程序流程
控制系统启动后先设置外部中断1为下降沿触发。然后开外部中断1,进入外部中断1等待状态。一旦拟控制目标节点位置到达零位传感器位置时从STC12C5A60S2单片机P3.3引脚输入的下降沿信号将触发外部中断1并进入外部中断1处理程序。在外部中断1处理程序中,设置外部中断0为下降沿触发,脉冲计数清零,n=0,然后开外部中断0,进入外部中断0等待状态。
当拟控制目标节点位置运动使光栅尺产生脉冲信号时从STC12C5A60S2单片机P3.2引脚输入的A路脉冲信号下降沿将触发外部中断 0,并进入外部中断0处理程序。在外部中断1处理程序中,结合此时从STC12C5A60S2单片机P2.5引脚输入的B路脉冲信号的电平状态判断机构节点的运动方向,如果判定拟控制目标节点位置此时往下运动,则开始脉冲计数,n=n+1,并重新进入外部中断 0等待状态,不断进行脉冲计数。
当单片机P3.2引脚下降沿触发外部中断0时根据单片机 P2.5引脚电平信号判定拟控制目标节点位置开始往上运动,则立即关闭外部中断 0,并判定此时的脉冲计数结果n值。若此时n=0,则直接返回外部中断1等待状态,重新等待限位中断。若此时n值不等于0,则根据此时的脉冲计数结果 n值可计算出此时拟控制目标节点位置的下死点位置,计算它与理想的拟控制目标节点位置的差值,据此设置给伺服电机发送的指令脉冲数,并控制伺服电机旋转方向脉冲信号,实现拟控制目标节点位置的精确调节。调节完伺服电机后程序重新返回外部中断1等待状态。
4 伺服控制系统电路板开发实践
根据前述设计的伺服控制系统硬件电路图,基于Protel软件设计该伺服控制系统核心控制电路板布线图如图5所示。
图5 伺服控制系统protel布线图
在此基础上,外协购置各种电子元器件,外协制造 PCB 印刷电路板,并完成电子元器件焊接(贴装)工作。最终制造的伺服控制系统核心控制PCB电路板如图6所示。
图6 伺服控制系统PCB电路板
5 伺服控制系统程序开发实践
根据前述设计的伺服控制系统控制程序流程图,基于MDK5(keil uvision5)软件开发相应的嵌入式控制程序。限于篇幅,本文仅简要介绍编写的主程序、伺服电机发指令脉冲子程序、外部中断0中断服务程序、外部中断1中断服务程序四大核心程序模块,其余不再赘述。
(1)编写主程序如下:
(2)编写给伺服电机发指令脉冲子程序如下:
(3)编写外部中断0中断服务程序如下:
(4)编写外部中断1中断服务程序如下:
6 伺服控制系统应用案例
笔者所在团队曾开发了一种高速压力机滑块下死点调节机构,如图7所示,其工作原理为:在高速压力机高速运转过程中需要调节下死点高度时,伺服电机作为动力输出端输出高速旋转运动,经过减速机减速后驱动螺母正转或者反转,螺母驱动滑动丝杠竖直向上或者竖直向下运动,增大或减小下摆杆铰链支座的高度,从而实现滑块下死点高度位置自动调节。
图7 滑块下死点调节机构结构原理图
将本文研制的位置实时精调闭环伺服控制系统应用于该高速压力机滑块下死点调节机构,并在高速压力机滑块上安装直线光栅尺,STC12C5A60S2单片机实时根据上位机指令控制伺服电机运动,同时根据光栅尺反馈脉冲信号实时修正伺服电机运动控制指令。通过多次反复试验验证,该闭环伺服控制系统在高速压力机滑块下死点位置调节机构中的位置控制精度达±0.05mm、且动态响应速度也较快,达到了很好的位置实时控制效果。
7 结语
(1)本文研制的位置实时精调闭环伺服控制系统采用嵌入式控制方案,以STC12C5A60S2单片机作为核心微处理器,配以相应的外围硬件电路,共同组成功能完善的闭环控制系统。该控制系统体积小,结构紧凑,易于实现拟控制目标节点位置实时精确调节,具有很强的通用性。
(2)基于Protel软件平台搭建了位置实时精调闭环伺服控制系统硬件电路。
(3)构建了位置实时精调闭环伺服控制系统的控制程序流程。该伺服控制系统通过外部中断的方式进行光栅信号脉冲计数,并根据脉冲计数结果计算拟控制目标节点位置,计算与理想位置的差值并设置伺服电机发送的脉冲数进行位置补偿,如此构成闭环控制系统,实现了拟控制目标节点位置的实时精确自动调节。
(4)研制了伺服控制系统核心控制PCB电路板,开发了相应的嵌入式控制程序,并将该伺服控制系统成功应用于高速压力机滑块下死点位置实时动态调节,达到了很好的位置实时控制效果。