陈鉴铭, 史伟民,2, 彭来湖,2
(1.浙江理工大学 浙江省现代纺织装备技术重点实验室, 浙江 杭州 310018;2.杭州旭仁自动化有限公司, 浙江 杭州 310018)
数控锁孔机是用于加工木材、不锈钢和铝合金材质的门、门框、窗框、门锁和铰链等工件的数控机床[1]。当数控锁孔机进行加工时,需要对工件的多个面进行加工,传统锁孔机完成单面加工后要加工另一个侧面时,需要将工件取下,人为调转加工面,然后再固定在加工台面上进行加工,生产效率低下。这种加工方式对操作者的加工技能和生产经验有较高要求[2]。操作者加工经验不同易造成产品品质不稳定和加工效率偏低等问题,同时也增加了质检和校验等后续工序的难度。
针对生产过程中存在的问题,课题组运用嵌入式技术,设计适用数控锁孔机的控制系统[3]。根据数控锁孔机的机械结构,结合生产加工流程和工艺,提出了数控锁孔机控制系统的控制需求。采用基于正则表达式的译码模块[4],以满足CAM软件G-code编程语言译码要求[5];采用7段柔性S形加减速算法[6],以满足伺服电机的加减速控制要求;控制系统以STM32F205RGT6芯片为控制核心[7],通过总线实现各模块之间的通信,保证系统具有较高的稳定性和可靠性[8]。
课题组所控制的数控锁孔机机械结构主要由主轴传动系统、进给伺服系统、床身和控制柜等部分组成。其机械结构如图1所示。
图1 机械结构图
主轴传动系统是设备实现主运动的核心部分,由3部分组成:主轴伺服电机、主轴机构和传动系统。主轴伺服电机通过主轴机构和传动系统带动刀具旋转完成切削运动;进给伺服系统由伺服驱动器、伺服电机和机械传动机构等组成。系统接收到速度和位移脉冲指令后由伺服电机电路将指令信号进行转换和放大,再由机械传动机构带动滚珠丝杠旋转,驱动锁孔机完成精确定位或预设的走刀路径动作。控制柜包含上位机和人机交互控制板,可实现控制信息传输,操作者可通过LED显示屏实现设备可视化操作。
结合上述的机械结构和加工工艺,可实现设备多段位移加工,根据每段位移加工所需快速精准且冲击振动较小的控制需求来设计符合控制要求的控制系统。
根据数控锁孔机的机械结构和生产工艺需求设计了模块化控制系统,该系统包括人机交互模块、MCU主控模块、电源管理模块、接口电路模块和伺服电机驱动模块。各模块之间相互独立,通过其中人机交互模块的上位机与MCU主控模块使用RS-485收发器进行通信,电源管理模块与MCU主控模块使用CAN收发器进行通信,四轴伺服电机通过差分信号转换电路与MCU主控模块连接,控制系统硬件框图如图2所示。
图2 控制系统硬件框图
人机交互模块由上位机、存储器和LCD显示屏组成。模块以Linux操作系统为软件平台,使用QT软件进行可视化交互界面开发。操作者通过操作人机交互界面,可控制数控锁孔机工作启动、停止和设置生产参数,实现各模块校验测试,在线可视化编写加工程序代码,实时查看机器当前工作状态以及工作参数指标。
MCU主控模块以STM32F205RGT6为核心芯片,此芯片具有CAN总线、RS485总线及输入输出电路等,其中包含PWM发生器。伺服电机驱动模块接收通过差分信号转换电路转换后的控制信号,实现伺服电机正反转联动和加减速控制。
电源管理模块通过CAN收发器与MCU主控模块连接,采用CAN通信协议以实现各模块的电源分配。接口电路模块用于连接编码器输入、模拟量输入、模拟量输出、数字量的输入和数字量的输出,可实现各模块之间的数据通信、上传和下发指令。
译码程序的功能是识别代码并翻译成设备可识别的指令。操作者将加工G-code编程语言导入到人机交互模块,因上位机无法直接执行G-code编程语言指令,需要将指令译码成系统可识别的指定规则指令。译码流程是从加工G-code编程语言中读取一行代码并存入字符串缓存中,缓存的字符串中包含英文大写字母和阿拉伯数字,使用正则表达式函数将字符串缓存中的字母与数字分割并存入数组中。识别读取的字符,然后将字母后面的数字发送至相应的缓冲区内,保存译码结果后继续读取代码直至代码结束。最后将翻译后的代码发送至MCU主控模块,由MCU主控模块进行插补输出。
标准G-code编程语言如下:
G01 X100 Y200 Z300
G02 X100 Y200 Z300 I300 J100 K200
G03 X300 Y200 Z100 I200 J100 K300
上述标准G-code编程语言中G01为直线插补指令,X,Y,Z为加工刀具终点坐标,故第1行代码的意义为刀具从加工起点直线加工运动至坐标点(100,200,300)。G02为顺时针圆弧插补指令,X,Y,Z为加工刀具终点坐标,I,J,K分别表示加工圆弧的圆心在X,Y,Z方向上相对于此行代码起点坐标的增量坐标,故第2行代码的意义为刀具沿顺时针方向加工圆弧到坐标点(100,200,300),其中加工圆弧的圆心相对于圆弧起点的X,Y,Z坐标增量分别为300,100和200。G03为逆时针圆弧插补指令,此段代码的意义为刀具沿逆时针方向加工圆弧到坐标点(300,200,100), 其中加工的圆弧圆心相对于圆弧起点的X,Y,Z坐标增量分别为200,100和300。
G-code编程语言译码流程图如图3所示。
图3 G-code编程语言译码流程图
如图3所示,G-code编程语言译码时,先按行读取代码,用正则表达式函数将代码中的字母与数字分割并放入数组,读取数组,当读取到字符G时进入判断,如果G后字符为01时,启动直线译码流程;如果字符G后的字符为02或03时,启动圆弧译码流程。保存译码结果后继续读取代码直至代码结束。
G-code编程语言直线译码流程图如图4所示。直线译码流程先按行读取代码,用正则表达式函数将代码中的字母与数字分割并放入数组,对数组中的字符与G,X,Y和Z对比。当读到字符G时,进入判断流程,如果字符G后的数字为01,则将给Ttype赋值为1,同时种类标识符置1。当读到字符X时,把字符X后的数字赋值给X;同理,当读取到字符Y和Z时,将字符后面的数字赋值给相应的字符。继续读取字符循环至代码结束。
图4 G-code编程语言直线译码流程图
如图5所示,圆弧译码流程先按行读取代码,用正则表达式函数将代码中的字母与数字分割并放入数组,对数组中的字符与G,X,Y,Z,I,J和K对比。当读到字符G时,将字符G后的数字02或03赋值给Ttype,同时种类标识符置2;当读到字符X时,把字符X后的数字赋值给X;同理,当读取到字符Y,Z,I,J和K时,将字符后面的数字赋值给相应的字符。继续读取字符循环至代码结束。
图5 G-code编程语言圆弧译码流程图
MCU主控模块通过向伺服电机驱动器发送脉冲信号来控制电机运行,为了保证伺服电机精确定位和快速稳定性,需要在伺服电机运动过程中进行合适加减速控制。常用的加减速控制算法有梯形加减速控制算法、指数形加减速控制算法和S形加减速控制算法。梯形加减速控制算法和指数型加减速控制算法因加速度不连续,在设备启动和停止阶段存在速度突变的问题,在加工运动中易造成冲击振动,影响加工质量。S形加减速控制算法加速度平稳连续,可实现运行各阶段平滑过渡,减少设备冲击振动,最大程度发挥伺服电机的电气性能,适用于控制精度要求高、柔性要求高的系统。
课题组在传统的7段S形加减速控制算法的基础上进行研究改进[9],提出7段柔性S形加减速控制算法。加减速全过程可分为3个阶段:加速阶段、匀速阶段和减速阶段。加速阶段分为加加速阶段、匀加速阶段、减加速阶段;减速阶段分为加减速阶段、匀减速阶段和减减速阶段;加速和减速阶段之间由匀速阶段过渡。根据控制要求,为避免柔性冲击,要求运行全阶段速度、加速度和加加速度变化连续且平稳无突变,故加速度和加加速度在加减速起始的数值都为零。7段柔性S形加减速曲线如图6所示。
图6 7段柔性S形加减速曲线图
设定设备允许的最大加速度为Amax,则加加速度J公式为:
(1)
加速度A公式为:
(2)
速度V公式为:
(3)
在满足控制要求的条件下,为降低运算复杂度提高运算效率,可在实际计算中将上述公式简化。设加加速、减加速、加减速和减减速阶段运行时间相等,即t1=t3=t5=t7;匀加速和匀减速阶段运行时间相等,即t2=t6。
系统加速阶段和减速阶段总位移S为:
(4)
根据式(3)中v4表达式,可得:
(5)
(6)
(7)
S与系统实际位移量L进行比较,分为3种情况:
1) 当L>S,则系统存在匀速阶段。由式(6)~(7)可求得t1,t2,t3,t5,t6和t7,匀速阶段的运行时间t4为:
t4=(L-S)/vmax。
(8)
2) 当L=S,则系统不存在匀速阶段。加速阶段达到速度最大值时立刻进入减速阶段,匀速阶段运行时间为零,即t4=0;其余各阶段运行时间由式(6)~(7)可求解。
3) 当L
(9)
求解出速度vmax,将数值代回式(6)~(7),可得各阶段的运行时间,将此时的位移量S和实际位移量L进行比较。
若L=S,则加减速过程不含匀加速、匀减速和匀速阶段,此3阶段运行时间为零。则其余阶段运行时间为:
(10)
若L
根据上述情况计算得出各段时间,根据各段时间即可求取各阶段所需的脉冲数。
人机UI界面采用QT平台开发[10]。如图7所示,人机界面在设备上电后运行,经过初始化后液晶屏显示数控锁孔机的工作状态,显示页面主要分为5个部分:最上方为状态栏,显示设备当前网络连接状态、当前加工工作面、当前工作状态和有无报警;左上方为加工的机械坐标和工件坐标;左下方为加工方式和加工速度设置界面;右侧为输入输出、台面角度、主轴等参数设置界面;最下方为功能切换栏,可实现手动自动切换、设备参数设置及程序在线编辑等功能。
图7 人机界面
为验证本研究设计的系统是否可以正常工作,搭建了测试平台对整体系统进行调试。测试平台如图8所示,整套测试平台硬件包括4个伺服电机驱动器、4个伺服电机、1块 MCU主控模块控制板和1台人机交互模块上位机。
图8 测试平台
本研究中MCU主控模块与人机交互模块采用RS485协议进行通信,每次通信时发送1包数据,每包数据12个字节,波特率为115 200 Bd。在进行通信测试时,将示波器探头接到RS485总线的A,B端之间,传输数据测试得波形如图9所示。
图9 RS485通信测试波形图
对波形图中的数据进行分析,波形为差分波形,与实际发送的数据对比结果一致,每一字节的传输的时间与理论值接近,验证符合RS485通信要求。
MCU主控模块与电源管理模块通过CAN总线通信,以CAN2.0B协议为基础。MCU主控模块向电源管理模块发送数据报文,波特率为1×106Bd。在进行通信时测试CAN通信电路的波形,将示波器接在CAN收发器的CAN-High和CAN-Low端,得到的波形如图10所示。对波形图中的数据进行分析,实际发送的数据与程序设计的一致,每一帧的传输时间也与理论计算值基本吻合,测量的传输时间符合要求。
图10 CAN通信测试波形
课题组通过对锁孔加工生产现状与生产工艺分析,结合数控锁孔机的机械结构,基于ARM控制器,基于正则表达式的译码程序和7段柔性S形加减速算法,设计了数控锁孔机控制系统。人机交互模块基于正则表达式的译码程序通过RS485总线实现设备参数信息的译码和传输;MCU主控模块基于7段柔性S形加减速控制算法提高数控锁孔机工作效率;电源管理模块通过CAN总线通信进行电源分配。课题组搭建了测试平台,测试结果表明该控制系统可以完成数控锁孔机的加工任务,实现数控锁孔机自动化生产。课题组着重研究了加工路径整段位移加减速控制算法,连续微小位移的加减速控制是后续需要研究的内容。