基于ARM的嵌入式卷板机数控系统研究与设计
2015-07-01陈柏金
陈 卓,陈柏金
(华中科技大学 材料成形与模具技术国家重点实验室,湖北 武汉430074)
0 引言
卷板机是金属加工行业广泛使用的加工装备。卷板机数控系统可满足方便、高效、高精的生产要求。目前广泛应用于卷板机上的数控系统是基于工业控制计算机和PLC 开发的,技术已经十分成熟。随着电子行业技术的进步,嵌入式处理器凭借自身优势得到越来越多的应用。相对于传统的基于PLC开发的数控系统,嵌入式系统体积小,功耗低,成本低,同时能够运行嵌入式操作系统,多任务处理能力强,运算速度快。从近年的发展趋势看,工业控制系统的嵌入式化将是工业控制系统发展的一个重要方向。
本文详细介绍一套采用ARM926EJ 核的S3C2416处理器和Altera 公司MAX II 系列CPLD EPM570T 144C5 为控制核心的数控系统设计方案。该系统具有完备的用户接口和控制接口、运行Linux 操作系统、拥有基于Qt 设计的友好触控界面,可适用于常用的三辊或四辊卷板机控制。此系统具有一定的通用性,也可搭配合适的数控软件应用于其他工业控制场合。
1 数控系统硬件结构
该数控系统硬件设计主要分为ARM 最小系统和CPLD 互联以及基于CPLD 扩展各种I/O 接口两大部分。该数控系统具有64MB DDRII 运行内存,256MB SLC NAND Flash 存储器用于存储系统软件和数据,ARM 处理器运行主频为400MHz。ARM处理器是系统的控制核心,完成数据计算、系统控制、人机交互、通讯等任务。因ARM 芯片I/O 端口数量有限,而控制卷板机需要较多的I/O 端口,采用CPLD 扩展各类控制接口。ARM 通过16 位数据总线、8 位地址总线、控制总线(片选、读、写信号等)以并行总线方式与CPLD 实现互联。
该数控系统电源电压为5V,由于数控系统需要有不同的电压确保各类器件正常工作,在系统电源模块中分别采用LM2596、AD0515、AD587 等专用电源器件实现系统所需的5V、3.3V、±15V、±10V 等各种不同电压。CPLD 运行时钟由50MHz 的晶振提供。
卷板机数控系统需要对卷板机的工作辊、倒头装置等进行控制,根据卷板机液压系统原理,对各种液压控制元件进行控制,同时还需要对现场的各种传感器、编码器、开关量信号等进行采集以用于工作辊运动控制和监测设备运行状态,系统采用2 片CPLD 芯片扩展了24/44 路开关量输入/输出接口、16/8 路模拟量输入/输出接口以及6 路增量式旋转编码器信号输入接口以满足控制需求,此外系统还具有触摸屏LCD、USB、UART、以太网络等接口。系统硬件部分设计成主控制电路板和各个接口电路板相分离的形式,便于构成不同配置的系统。
数控系统硬件接口整体结构如图1 所示。
数控系统的各种硬件接口功能如下:
开关量输出接口用于控制液压电磁阀等控制元件,开关量输入接口用于采集现场的各种开关量输入值。采用PC817 光电耦合器实现开关信号的光电隔离,在数字量输出时采用ULN2803 提高输出功率。
增量式编码器接口采集旋转式编码器信号,用于卷板机工作辊位移、角位移等的测量,需要将A+、A-、B+、B-、Z+、Z-差分信号转为A、B、Z 单端信号,通过光电隔离以及信号整形来获得良好的信号波形,再将信号电压转换为CPLD 引脚容许电压即可送入CPLD。
图1 基于ARM 的卷板机数控系统硬件结构
AD 转换电路用来测量卷板机液压系统的工作压力以及部分位移信号,采用12 位的AD 转换器AD1674 和多路模拟开关AD7506 实现。
对于一些控制精度要求高的卷板机,液压缸的运动控制采用了电液比例阀,需要模拟量输出接口来用于控制电液比例方向阀和比例压力阀,采用12位4 通道DA 转换器DAC7724 芯片实现。
LCD 触摸屏接口用于外接8 寸触摸屏、USB 接口可以用于外接键鼠、UART 接口用于与上位机进行通讯、以太网接口不仅可用于系统更新时的NFS挂载,同时也可用于实现控制系统网络化,ARM JTAG 接口用于ARM 程序调试,CPLD 的JTAG 接口用于CPLD 程序的下载。
2 数控系统软件
数控系统软件实现人机交互、控制算法、分配和控制系统硬件资源、发出控制信号和设备状态监测等任务。卷板机数控系统软件分为应用控制层、操作系统层和硬件层三部分。该数控系统运行Linux 操作系统,其中操作系统层包括操作系统API、操作系统内核、设备驱动程序三部分。应用层软件通过操作系统API 与系统层进行信息交互,系统层则通过设备驱动程序驱动CPLD 与其他外设,使信号通过硬件接口与被控设备产生交互以实现控制。系统软件结构以及三者之间的关系如图2 所示。
2.1 应用层软件
图2 卷板机数控系统软件层次结构
数控系统的应用控制软件主要包括人机交互模块、控制模块、数据采集模块和故障诊断模块,其中人机交互模块包括工艺参数计算、系统参数设置等功能模块。
2.1.1 人机交互模块
人机交互模块基于Qt 开发,以水平下调式三辊卷板机人机交互模块为例,其主要包括工艺参数计算、工艺参数选择、系统参数设置、动作状态输入、辅助可视化、故障提示等主要功能模块。
工艺参数计算模块依据输入板材尺寸和工件参数,按工艺计算算法计算获得对应的加工工艺参数,并将此工件参数和工艺参数分别保存到数据库中的工件参数表和工艺参数表中。
加工工艺参数选择是从数据库中调出保存的工件参数所对应的工艺参数进行加工,同时加工工艺参数将在主界面工序列表中显示,可对列表中的工艺参数进行编辑修改并保存。
系统参数设置提供一些加工常用的参数值或极限值,可用于加工或限定部分输入参数值大小以保证卷板机的加工精度,保存在数据库的系统参数表中,可以根据具体情况进行参数的修改。
动作状态输入是对卷板机进行一系列手动调节。辅助可视化将直观地显示出上辊左、右主缸压力和液压电磁阀状态,由OpenGL 设计的模拟工作辊可模拟加工时工作辊状态及位置变化。故障显示是对设备运行的故障作出提示。三辊卷板机数控系统界面如图3 所示。
2.1.2 控制模块
控制模块实现卷板机加工的自动控制,使卷板机按照设定的加工参数对卷板机工作辊进行运动控制,完成一定规格工件的加工。控制程序通过中断方式实现,由CPLD 提供中断信号。
对于多数采用液压传动系统的卷板机,由液压马达驱动工作辊做回转运动、液压缸实现工作辊的移动或工作辊的倾斜,可能还有翻倒缸控制倒头的复位和翻倒、平衡缸控制工作辊的平衡等。在卷板机液压系统中,工作辊、倒头装置等被控对象都有对应的液压电磁阀等被控元件,通过对这些电磁阀动作进行一定的组合可以使被控对象执行相应的动作。卷板机加工时,控制程序使用工件的加工工艺参数来设定每道加工工序中各个工作辊的位置值等相关参数,并结合采集的位置反馈值,工作辊动作控制子程序将按照一定的控制算法产生控制信号控制液压系统中的液压电磁阀等控制元件使工作辊执行相应的动作或到达指定位置。卷板机某工作辊的运动控制流程如图4 所示。
图3 基于Qt 设计的三辊卷板机人机交互界面
图4 工作辊位置控制流程
当卷板机的所有工作辊完成了系统设定的所有加工工序,加工过程结束。如果卷板机有倒头装置,则控制倒头液压缸带动倒头下降,取出制品。
需要注意的是对于一个工作辊由多个液压缸带动的情况,工作辊时移动需要对液压缸的运动进行同步。采用“主从模式”来进行同步,即设定其中一个液压缸的运动为主运动,其输出为理想输出,其余液压缸的运动为从运动,从运动受到控制来跟踪主运动的理想输出来实现液压缸的同步运动。
2.1.3 数据采集模块
数据采集模块用于采集各种反馈量和状态值便于了解卷板机的工作状态。采集各种开关量、压力传感器、位移传感器、编码器的反馈值等用于监测设备工作状态和工作辊的运动控制。
2.1.4 故障诊断模块
故障诊断程序主要用于发现设备故障并可在数控系统界面的错误提示窗口上做出故障提示便于故障查找和排除,实时了解卷板机的运行状态。
2.2 系统层程序
本数控系统运行Linux 操作系统,系统层需要有CPLD 设备的驱动程序才能使CPLD 正常工作。CPLD设备驱动的基本原理是将CPLD 作为Linux 操作系统的一个字符型设备文件,通过Linux 系统提供的设备文件统一函数接口进行各种操作,如设备的初始化和释放、设备的读和写、设备的打开和关闭等。需要注意的是,用户空间对CPLD 设备的访问通过内存映射机制实现,即将CPLD 芯片看作是连接在ARM处理器芯片存储Bank 上的一段物理地址来寻址,然后将此段物理地址空间映射到虚拟地址空间,通过操作系统API 可对此I/O 内存资源进行访问。
本系统中,CPLD 挂载在ARM 的nRCS5 对应的存储空间上,其物理起始地址为0x28000000,通过ioremap()函数调用可将对应大小的一段物理地址映射到内核虚拟地址空间。通过ioread()、iowrite()类函数对内核虚拟地址空间进行读写访问,使用copy_to_user()从内核虚拟地址空间中读数据到用户空间,而写操作则使用copy_from_user()实现相反的功能。
2.3 硬件层程序
硬件层程序需要编写CPLD 程序,在该数控系统中,CPLD 程序主要完成对系统的输入输出信息进行预处理以及为外围芯片如AD/DA 转换器等芯片提供运行时序和进行相关控制。CPLD 程序主要包括ARM 与CPLD 通信程序、开关量I/O 信号处理程序、AD、DA 芯片时序控制程序、旋转编码器信号处理程序、中断信号发送程序几个部分,采用Verilog HDL 语言可方便地实现各种功能。
ARM 与CPLD 的通信程序实现ARM 对CPLD内部寄存器的访问,原理是将CPLD 作为ARM 的外部存储器挂载在ARM 的存储器Bank 上,通过内存映射,按照ARM 读写总线的时序要求来编写Verilog HDL 程序,按地址访问CPLD 内部定义的寄存器。实现正常的读、写操作需要设置好ARM 处理器控制寄存器对应的位宽、总线速率等。
开关量信号处理程序负责读取开关量输入信号以及发出开关量输出信号。输入信号由硬件接口获取,经调理电路后寄存到CPLD 内部定义的寄存器中,供ARM 读取;开关量输出信号则由ARM 将要输出的信号发送到CPLD 相应的寄存器,并由CPLD对应的引脚输出,信号经过调理电路,最终通过数字量输出接口输出。
A/D 转换时序程序是根据芯片手册提供的时序要求编写出其转换状态变化的有限状态机程序,CPLD 产生时序信号并提供给A/D 转换器芯片。转换后的数据寄存到CPLD 的寄存器中由ARM 读取。由于16 路模拟量需分时送入A/D 转换器,需要编写多路模拟开关的通道选择程序,设计思路是CPLD 程序接收ARM 发送开始通道和结束通道的地址,然后程序可以实现分时选通这两个通道之间的通道,或者选通任意单个通道。
D/A 转换的数据则由ARM 通过CPLD 寄存器间接发送到D/A 转换器进行转换。由于系统的数据总线为16 位,D/A 转换器为12 位,CPLD 程序接收ARM 发送的包含D/A 转换器通道地址和转换数据的数据帧并发送到D/A 转换器的各个通道的数据寄存器,然后CPLD 程序接收ARM 发送转换信号即可实现各个通道的模拟量输出。
增量式旋转编码器信号处理程序将CPLD 读取到的编码器A、B 两相信号进行四倍频、依据相位进行辨向、对编码器信号进行计数操作后得到编码器的计数值,寄存在CPLD 寄存器中供ARM 读取。每一路编码器对应一个计数寄存器,同时还定义一个6 位的清零寄存器,通过对相应的位赋1 来清零相应编码器的计数寄存器。
中断信号发送程序每隔一定时间发送一个中断信号给ARM,是控制程序运行的中断源程序,系统中设置每2ms 发送一个中断信号。
CPLD 程序使信号在硬件接口上正常输入与输出,实现数控系统对设备的控制。
3 结论
基于ARM 的嵌入式卷板机数控系统接口丰富,结构简单,可以根据控制需要配置不同的接口模块,具有一定的通用性和较好的灵活性,用户界面友好,结构紧凑、功耗低,可用于目前普遍使用的卷板机数控系统的替换和改造。
[1]方四喜.埃斯顿嵌入式数控系统在三辊卷板机上的解决方案[J].锻压装备与制造技术,2012,47(4):51-53.
[2]邢伟荣,原加强,郭永平.水平下调式结构在大型三辊卷板机上的应用[J].锻压装备与制造技术,2006,41(5):20-22.
[3]刘 源,朱善安.基于ARM9 和CPLD 的嵌入式工业控制系统[J].机电工程,2007,24(1):39-41.
[4]吴彦宏,陈相宁.S3C2410 在Linux 下的FPGA 驱动[J].科学技术与工程,2008,8(17):5034-5038.
[5]闫莎莎,朱世强,刘华山,等.基于CPLD 的光电编码器测量系统[J].机电工程,2009,26(1):77-79.
[6]窦高强,车小霞.数控弧线下调式30×2500 四辊卷板机液压系统的优化[J].锻压装备与制造技术,2014,49(5):39-40.
[7]李 森.四辊卷板机数控系统的设计与研究[D].南京:南京航空航天大学,2012.
[8]李沙妮,等.大型卷板机回转电液系统的设计与优化[J].液压气动与密封,2014,(5).