莱芜西门子专业授权代理商
4.1.2 程序主要实现的功能
(1)利用触摸屏为变频器设定频率,并由PLC和D/A输出模块转化成(o-lo)v的模拟量输出给变频器的模拟输入端子;
(2)由编码器测量轧辊的转速,将速度信息用增量脉冲的形式输入到PIE中,在PLC内部利用SPD指令进行速度测量,按一定比例关系输出脉冲给伺服放大器去控制伺服电机,控制切刀线速度和轧辊线速度同步。程序的流程图设计,如图2所示。
图2 程序总体流程图
FX2N-2DA型模拟输出模块用于将12位的数字值转换成为2点模拟输出,并将它们输入到变频器等设备中。PLC内部数据寄存器D5用于设定变频器的频率,本系统要使用BFM#16的低8位用于保持D/A转换的下端8位数据和BFM#17的低端3位用于控制D/A转换时的数据保持和开启指定的转换通道。因为要移动的是寄存器D5下端的12位数据,而数据寄存器D是16位的。因此要先把寄存器D5内部的数据扩展到辅助继电器MOM15中,然后分两次传送到D/A模块的BFM#16单元中(先移动并保持下端8位数据,再移动上端4位数据)对轧辊进行测速.进行比例转换后由PLC输出高速脉冲给伺服放大器,主要用到高速处理指令SPD和PLSY。由增量光电旋转编码器输出的高速脉冲串经XO输出给PLC,在PLC内部用脉冲密度指令SPD对脉冲串密度进行测量,即测定轧辊的转速。
数据寄存器(D1)对脉冲进行计数,到达规定时间即将计数结果存放到另一个数据寄存器(D0)中,寄存器(D2)用于测定剩余时间。
这样D0中存放的值就代表了轧辊转速的大小,再乘以一个比例系数,将其放在D10中用于控制输出脉冲串的频率大小,以控制伺服电机转速。
4.2 触摸屏的设计
系统选用的是eView的MT4400系列,通过触摸屏实现以下功能:变频器运行频率的设定、系统监控、调试维护、报警信息等。
4.2.1 操作界面设计
在触摸屏上将给定频率的数值存储寄存器D25中,界面上添加调节频率按钮,实现频率实时可调功能。D25内的值通过急停按钮,系统开关复位,从程序上保证了系统运行的安全性。变频器运行频率界面,如图3所示。
图3 变频器运行频率的设定界面
4.2.2 监控画面的设计
触摸屏的主要任务是对整个系统的运行进行监控,包括所有功能部件的监控元件。如图4所示。
图4 触摸屏监控界面
在主机控制窗口中,*主要的是轧辊电机调速控制。在触摸屏中,电机启动及调速是一个平滑的过程,因此选用多状态设定元件对PLC数据寄存器内数值的修改。以主电机加速粗调按钮为例,设置为多状态设定元件,其输出地址D25,设定类型为递加(减速则为递减),递加值为8,轧辊电机的转速不能太高。因此变频器频率上限设为50Hz。根据D/A输出模块的转换特性,将上限值设定为512,约对应变频器的51.2Hz。而对于减速按钮,设下限值设为0。
这样限定D/A模块转换时的数值区间为0~512。元件的迟滞时间设为0.6s,执行速度0.2s,即按下按钮的时间不超过0.6s,则D25内数值加8,如果按住不放时间超过0.6s,则每隔0.2sD25内数值自动增加。细调时设定需将递加/递减值设置为1,执行速度变为0.1s
在以单片机为核心的嵌进式应用中,友好的人机互界面起着十分重要的作用。笔者在设计中使用WGM-12864B图形LCD模块实现一种中文窗口菜单界面,设计中使用的方法具有普遍性意义。
关键词:人机交互界面 图形LCD模块 数据结构 窗口 菜单
随着液晶显示技术的进步,高质量的液晶显示模块会被日趋广泛地应用于各种嵌进式系统中。在系统整体设计中,人机交互界面的设计往往占据着很大一部分工作,现以某嵌进式系统的人机交互部分为例,先容一种使用WGA-12864B图形LCD模块实现中文窗口菜单界面的方法。
1 图形LCD模块WGM-12864简介
WGM-12864B模块是单色图形点阵液晶显示模块,点阵数为64×128,其点阵存储区如图1所示。
模块点阵分为左右两边,左右两边的结构是完全一样的。对模块的点阵存储区进行读写操纵时,由CS1、CS2进行片选,高电平有效。模块中每8行为1页,页地址由X确定;Y确定点阵的列号,点阵数据的每一个字节所在的位置由(CSi,X,Y)唯一确定。字节中的每一位对应着相应的像素,为1显示该像素;为0则不显示。液晶显示模块工作时,逐行扫描点阵存储区。首先被扫描的行显示在LCD屏幕的第1行上,其余行则依次顺序显示。“扫描起始行”可以通过Z地址寄存器来设置。Z可以是0~63的任意一行,如Z=56时,则显示在LCD屏幕上的次序从上到下分别为:56,57,…,62,63,0,1,2,…,54,55
该模块的这一功能为窗口的滚屏提供了便利。
2 人机界面的硬件接口设计
系统扩展了1片8255A作为人机界面的接口,硬件接口电路如图2所示。8255A的A口连接图形LCD的8位数据线,B口低6位连接相应的控制线,D/I表示数据总线上的信号是点阵数据还是控制命令字,R/W表示当前操纵是读或写操纵,E是使能控制端,RST是复位端,CS1、CS2是左右点阵区选端。以行扫描方式扩展键盘接口,C口高半字节接行线,低半字节接列线。8255A初始化时,定义A、B口为方式0输出;C口高半字节为方式0输出,低半字节为方式0输进。请留意,大多数类型的8255芯片在对其方式控制寄存器进行初始化时,会引起A、B、C口清零,故不要在程序中动态改变8255端口的输进输出方式,以免影响LCD和键盘。
3 用户界面的软件设计
人机交互界面设计的目标是实现中文窗口界面,用户可以在菜单方式下进行交互。窗口分为两类:对话框和菜单,也包括对话框和菜单的混合。对话框用于参数的输进输出显示;菜单用于响应用户的选择,根据用户的选择运行程序。
首先,应当确定系统需要多少个窗口,每个窗口有多少个菜单,画出窗口之间的变迁图,可以知道所有的窗口应当组成一个树形结构。菜单中的汉字大小为16×16的点阵,数字和符号的大小为16×8的点阵。这些点阵数据可以由点阵提取程序获得。点阵数为64×128的LCD模块只能同时显示4个菜单项,每个菜单项点据256个字节的点阵存储空间。窗口多于4个菜单项时,应当使用滚屏功能。为方便数据的安排,系统规定了参数、菜单、窗口及LCD缓冲区的数据结构。
(1)数据结构
为方便参数的显示和处理,参数的输进输出格式用类似于分离BCD码来表示,数据结构如图3所示。数据长度表示数据区的字节数。正负标志,为1表示负数,为0表示正数,负数在输进都要在数据前面加上负号“-”。数据区的每一字节对应于参数的每一位数。数字用分离BCD码表示,小数点用ASCII码表示。“数据长度”域占1个字节时,此数据结构可以表示*多255位的数据。
菜单点阵的数据结构如图4所示。菜单序号表示该菜单在该窗口所有菜单中的次序;菜单长度表示该菜单项中汉字的个数,菜单点阵数据区存放的是菜单中汉字的点阵,每一个汉字都是16×16的点阵;参数标志为0表示没有参数,为1表示此菜单项是对话框,后面随着参数。参数存放在参数指针域指向的内存中,若是系统参数,则要预先从E2PROM读到内存中。由于系统是16位寻址的存储空间,所以用2个字节存放指针。参数存放格式如图3所示。
窗口点阵的数据结构如图5所示,其中用到了菜单数据结构,窗口中使用到的菜单项依着菜单序号顺次存放,各域的含义是显而易见的。留意,窗口的点阵数据是事先按照此格式建立的,系统中所有窗口以此格式存放非易失存储介质中,如ROM。以此格式,系统可以有255个窗口,每一个窗口可以多达255个菜单项。
系统在内存中特定区域开壁了1个LCD显示缓冲区,将要显示的整个窗口的点阵数据按下列格式拼装好以后存放在此区间。LCD的显示程序从此区间中读取数据到LCD点阵数据存储区,LCD显示程序正是凭借此数据结构治理用户交互界面。每个菜单项除了汉字和参数的点阵外,其余的空间用00H补齐为256字节。对话框中显示的参数,可以依据菜单数据结构中的参数指针域检索到数据,然后把它译码成为可以显示的16×8的点阵数据。LCD缓冲区数据结构如图6所示。当前菜单域指的是当有获得焦点的菜单序号,需要反显,主要用于光标治理。显示中的菜单项序号分别对应着当前LCD点阵存储区中的4个菜单项,这些数据主要用于滚屏操纵。其余各域和上述类似。
(2)人机交互设计
人机交互设计的重点在于窗口界面的显示、滚屏、光标的治理及参数的显示、修改和保存。现在只先容窗口的滚虐和参数的输进输出显示。仅当窗口的菜单数大于4的时候,才用到滚屏操纵。为进步系统响应的速度,窗口在滚屏时只将新的菜单点阵数据读进LCD点阵存储 ,其余3个菜单的点阵数据保持不变。图7所示的窗口滚屏过程中LCD点阵存储区的快照以及LCD屏上显示的菜单次序,从A到E的滚屏每一步都是可逆的。
可以发现,每一步相邻的操纵,只要将1个即将显示的菜单项点阵数据写进LCD点阵存储区,图中加黑框的菜单项就是新写进的。当向下滚屏时,从LCD显示缓冲区中“显示中的菜单项”域检索出菜单序号*小的项,把新的菜单序号插进此位置,从显示缓冲区的“菜单点阵数据”域把菜单的点阵数据读到LCD点阵存储区中相应位置。然后再检索更新后的“显示中的菜单项”域,找出*小菜单项所在的行号,设置扫描起始行Z为此行号,图中箭头指向的位置即为扫描起始行。*后要更新的域是“当前菜单项”,用于光标显示治理。当向上滚屏时,操纵是类似的,不同的是要替换出“显示中的菜单项”域中序号*大的菜单项。
参数的输进输出显示是人机交互界面中的重要环节。显示的参数来自键盘输进或系统内部,数据的流向如图8所示。参数依据图3对应的数据格式存放到参数指地所指的内存中,然后启动窗口更新即可。若该参数需要保存,则存进对应的E2PROM地址中。本系统使用X5045作为E2PROM,同时兼作看门狗。