ARM嵌入式控制器应用于印染设备监控中
扫描二维码
随时随地手机看文章
1 引 言
随着工业自动化进程的推进和企业信息化程度的提高,利用远端智能模块和RS一485网络构建监控工作分散、监控结果集中的分布式监控系统,由于投资费用低、结构简单、实现容易、通信距离长、抗噪声等优点,在工业控制中得到了广泛的应用。而微电子技术和自动控制技术的发展。以及计算机技术迅速向非计算机领域的渗透,特别是32位微处理器ARM 在国内外的广泛应用,使数字化、网络化和智能化控制,成为新一代印染控制设备的主要发展方向。
我们针对拉幅热定型机主、从电机的同步运行和烘房温度控制系统进行监控,实现了微机(PC机)与MICROMASTER 440变频器的设站通讯,配合汉化下拉式菜单和画面显示,以及必要的操作提示,可完成对变频器参数的设定、运行参数的监测、运行数据和故障数据的采集。嵌入式控制器ARM除控制拉幅热定型机主、从电机的同步和烘房的温度外,还通过RS-485网络,将主、从电机的转速和烘房温度数据,传送给上位机画面实时显示。
2 系统的总体设计
图1为系统的总体框图。
图1 系统框图
ARM控制器通过两路光电脉冲发生器PG1和PG2,同时采集拉幅热定型机的主、从电机M1和M2的转速,经计算后求出两电机的转速偏差,再经过智能算法,输出控制量,调整从动机的转速,使之跟随主动机。由于是变频器驱动,控制量要转换为频率的变化量。ARM 控制器按确定的数据结构,把控制量送给PC机,PC机通过485接口与变频器通讯,调节变频器2输出频率,从而控制从动机M2的转速,使之与主电机同步运行。
ARM控制器还通过温度检测控制电路,采集烘房温度,经过适合的算法,对烘房温度进行控制。这里重点介绍PC机与变频器和嵌入式控制器的RS-485接口设计。整个系统采用RS-485总线标准进行数据传输。PC机采用研华的MOX-A CP-132UL卡,它是专为工业通讯环境设计的RS-422/485二串口卡,它支持2个独立的RS-422或RS-485串口,在一对多点应用环境中,每个串口最多可控制32个设备。每块卡采用自动数据流向控制ADDC(Automatic Data Direction Con-tro1)功能,无需额外的编程,即可轻松管理RS-485半双工通讯串口数据的传送和接收。变频器采用西门子的MM440,它有统一开放的USS通信协议,可方便的与PC机进行通信,并可以在运行中改变变频器的运行参数。
系统运行前,首先在PC机上设定变频器的内部参数,电机的转速和温度的额定值;同时开启控制器ARM,进行数据采集和运算控制。通过485总线,PC机可对主传动系统的主、从电机同步和烘房温度的控制进行实时监测。图1仅针对拉幅热定型机的同步系统,所以只用了一个ARM控制器,如果需要扩展到多单元的同步控制,增加被监控的单元和控制量,可利用485接口,方便地接人多个ARM控制器。[!--empirenews.page--]
3 上位机和变频器
PC机与变频器的通信采用USS协议。该协议由SIEMENS AG定义,主要以RS-485总线方式将多台西门子公司生产的变频器、直流调速器或PLC等终端设备与工业控制计算机相连,实现远程监控。USS协议是开放的,所以为用户开发自己的基于该协议的软件产品提供了可行性。这样不仅有利于降低开发成本,而且能充分满足特定项目的需要,方便日常的工控网络维护。
USS协议支持多点联接,支持主一从存取方式,用于单主站系统,最多可链接32个站。USS协议支持可变和固定报文长度,报文格式简单,通信字符格式为:1位起始位、1位停止位、1位校验位、8位数据位,波特率最高可达18715Kbps。
图2为变频器MM440的通信报文结构,对报文的具体字符含义不做过多解释,强调一点MM440支持BiCo(二进制互联连接)技术,用户可更方便的对它进行参数的控制。
图2 变频器通信报文结构
在变频器与PC机进行485通信前,对于MM440的参数设置至关重要。首先将所有参数复位到出厂设置:
P0010(调试参数过滤器):30,表示为工厂的设定值;
P970(工厂复位)=1,表示所有参数都复位到它们的缺省值;
设置参数:P0700(选择命令源)=5,表示C0M 链路的USS设置;
PIO00(频率设定值的选择)=5,表示可通过USS对变频器进行控制;
P2010(USS波特率)=6,表示通信波特率选9600;
P2011(USS地址号)=1,表示变频器1的地址为1;
P2009(USS规格化)=1,表示数值是以绝对十进制数的形式发送[即4000(十进制)(=0FA0hex)等于40.00Hz];
P2012(USS协议的PZD(过程数据)长度):2,表示PZD传输的是控制字和设定值,共2个;
P1013(USS协议的PKW 长度)=4,表示用4个字节读写各个参数的数值;
P2014(USS的停止传输时间(ms))=X,表示允许用户设定一个时间X,在经过这个时间以后,如果USS通道接收不到报文,就将产生故障信号F07O。
上位机和变频器通信采用VB6.0编程,程序编制上采用事件驱动的通信方式。串口每接收16个字符便激活一个OnComm()事件,在On-Comm()消息处理函数中,加入相应的处理代码,实现对变频器参数的在线修改。
4 上位机和ARM
嵌入式控制器采用三星公司的32位微处理器S3C44B0,芯片的内核是16/32位ARM7TDMI精简指令结构处理器,是一种低功耗,通用微处理器内核,特别适合于对价格比较敏感产品的设计[4]。S3C44B0芯片除了微处理器内核外,在芯片中还集成了许多外围设备,如8通道10位ADC,1个I2C-BUS控制器,LCD控制器,2通道UART。最重要的是它可以移植操作系统uClinux进行管理。uClinux是一个优秀的嵌入式操作系统,它很适合那些没有MMU(Memory Management Unit)的处理器。没有MMU 的处理器在嵌入式领域中应用相当普遍。针对uClinux内核的二进制代码和源代码都经过重新编写,以紧缩和裁剪基本的代码。这就使uClinux和标准Linux 2.0内核相比非常小,但它仍然保持了Linux操作系统主要优点。
本系统中,我们用带uClinux操作系统的S3C44BOX控制器,用它自带的一路10位ADC,方便的对拉幅热定型机的烘房温度进行较高精度的数据采集;通过I2C总线和外围计数芯片实现两路电机转速的采集。一个UART用作485总线接口,与PC机通信;一个LCD控制器直接接3.5寸的STN液晶器,方便观察。由于uClinux本身已经做好网络的移植,本系统采用网络芯片RTL8019AS把嵌入式接入以太网,用户可以通过浏览器访问该控制系统的运行数据,实现对系统的远程监控。
在拉幅热定型机中,作为主传动,带动布铗的主、从电机的线速度同步,是保证加工质量的关键,控制算法通常在PC机中完成,由于本系统采用32位微处理器,所以完全可以在作为下位机的ARM控制器中完成。PC机仅用于监测和变频器通信,大大减轻了负担。而且S3C44B0具有很好的移植性,可以作为模块方便的挂在485总线上。嵌入式控制器S3C44B0和PC机之间,我们定义了下面的收发协议,如图3所示。其中命令包括复位命令和发送命令,若接收方在约定时间内未收到发送命令帧,则发送复位帧,双方回到通信程序的开始,清空缓冲区,然后重新同步,具体流程如图4所示。
图3 控制器和PC机通信协议[!--empirenews.page--]
图4 控制器通信流程
以下为ARM控制器发送数据的主程序流程:
while(1){ //主循环
if(recv_cmd(&type)==0)//CRC校验发生帧错误
continue;
switch(type){
case_ADDR: //是本机地址
send_ack(_OK,0,dbuf);//发送应答信息
break;
case_GETDATA_: //是发送命令帧
len= strlen(dbuf);
send_data(_DATA,len,dbuf);//发送采集数据信息
case_RESET: //是复位帧
break;
default:
break;//偷令类型错误,丢弃当前帧后返回
}
}
5 实验结果
PC机采用VB6.0做上位机监控画面,使用其Activex控件一MSComm,方便地实现了和多台变频器及嵌入式控制器的通信。为了使软件更友好,采用了多文档(MDI)Windows界面,支持下拉菜单,弹出式窗口,最大限度地方便了用户的操作。软件主要由以下几大模块组成,即:用户登陆模块,实时监控模块、参数设定模块,历史数据查询模块和文件管理模块。图5为实时监控模块,它的三块仪表可以显示两台主、从电机的转速和烘房的温度,当温度超过或低于设定值时,烘房温度报警指示灯会点亮红色,并发出报警声。同样,当主、从电机转速之差超过规定偏差的2%时,相应的报警指示灯也会点亮红色,并发出报警声。中间17个指示灯组成光柱,可以直观地显示主、从电机转速的正负偏差。当偏差为零时,中间的绿灯亮;有偏差时,两边的黄灯亮,偏差量越大,黄灯亮得越多,光柱越长;偏差超限时,位于光柱左、右两端的红灯亮,表示主、从电机的转速失去同步,发出报警停车信号,这种设计使人机界面更加友好。
图5 实时监控模块画面