控件的应用与控制——动画控件
动画控件是介于图片控件与视频控件之间的一种显示控件。通常用来展示一些简单的动态图象效果。图片是静态显示的图象,视频是通过录制形成的连续播放的动态影像。动画则是由多个静态图片组成的,可以连续播放的动态图片效果。当多个动作连续的图片组合在一起,形成连续播放的效果时,就构成了动态的运动影像。
在HMI系统中,图片控件的显示可以有多种形式,特别是具有免抠元素的图像类型,可以很好的与其它控件组合成一体的系统整体显示效果,方便显示也方便控制。视频控件是一个连续播放的影像有独立的背景和显示边界,不易与其它控件组合显示,不易控制和编辑,只能作为独立的影像控件内容进行展示。动画控件即具有图片控件的优点,又可以象视频控件一样产生连续的动态画面。还能够很好的与其它控件组合在一起形成整体效果,它产生的动态画面构成了系统中设备的实时运行状态,可以生动的表达关于设备运行状态的直观效果。
动画控件是HMI系统中,在各种组态软件应用中必不可少的一个控件组成单元。利用动画控件可以设计出各种简单的系统运行的动态效果。例如,水流的流动,LED的闪烁,平台的移动,水位液位的上升下降,风扇的转停,阀门的开关等,用于完成自动化控制中的实时动态显示效果。通常在一套自动化的组态软件显示系统中,图片控件用来构建系统中的静态运行部分,利用动画控件展示系统中运行过程相关的动态变化部分,包括流动,开关,亮灭,启停,大小等。
动画控件的显示原理也非常简单,就是由若干张静态图片组成并在控件中形成连续循环的显示效果构成的。图片内容不相关联就构成切换效果,如果图片之间是相同的事物的连续动作片段,那么在显示中即构成了连续运动的动画效果。利用动画控件的显示特征,在HMI系统应用中,可用于进行工业控制方面的动态展示,状态展示,以及其它相关设计的剧情展示,动态表情,动作展示等。
动画控件的展示与控制需要有相关的动画素材支持。在HMI系统中,在主页面的显示区中有一个专门用于存放各种文件素材的窗口,资源文件管理器窗口。相当于系统的素材库,里面存放各种应用素材文件。当系统中的任何一个控件需要使用外部的素材资料时,需将该素材调入资源文件管理器以后,才能够实现控件对该素材的调取与应用。也就是说,所有的控件如果需要使用系统以外的任何资源时,都需要先将这些资源导入系统中的专用资源文件管理器中,再由控件从资源文件管理器中进行调取方可使用。
资源文件管理器相当于一个系统的综合素材仓库。所有外部资源需先存到这个“管理器仓库”中,再从此处分配给对应的控件使用。根据HMI系统的设计需要,“素材仓库”中一共存放5种类型的资源文件。分别为图片素材,字库素材,动画素材,视频素材和音频素材文件。动画控件所使用的素材需要从资源文件管理器窗口中的动画素材区中调取。控件通过相关的属性变量设计、选择和调取相应的素材内容。
动画素材区中的文件都属于动态图文件类型。都属于常用的,通用的动态图文件类型,即gif类型。动态素材区中的动图素材主要通过3个方面的资源途径来获得。
1、 网络下载动图文件(.gif),这样的素材文件,可以直接调入资源文件管理器中,在调入时有的gif文件类型会有所差别,在导入时,系统会先完成格式类型的自动转换后,再存入资源文件管理器中。
在动画素材区中,点击“+”可以添加调入相应的动图素材到窗口中,同时按顺序生成相应的ID编号。在窗口中也可以根据相应的功能标识符号点击相应的功能实现相关的素材管理与操作。
2、利用专用的动图制作软件,设计制作动图素材文件。
动态图文件类型介于图片与视频文件之间,即有静态图片的显示特点,也能够像视频文件一样生成连续播放的图像。它是由有限的图片数量通过连续放映的形式,生成的简单动态运行图。在组态软件的应用中,可以用于表达控件对象运行时的动态特征。
少则两个图片,即可生成动态切换动画,多的话就可以形成更多的变化图像,如果是同一事物的不同运行状态组合,就可以生成连续的运动动态图象。根据动态图的这一生成原理。可以使用图片制作软件如PS,来设计动态图,利用图片与时间轴的设计组合生成动态图。也可以使用类似AE的视频制作软件来制作(有些大材小用)。还可以使用很多的专用制作小软件来生成动态图。本人使用的是七彩图gif动态图制作工具。专用的动态图制作软件,在设计使用方面简单,直接,只需简单的调整相应的参数就可以生成各种形态,各种状态变化的动态图样式。不论使用哪种方式设计,生成什么格式的文件类型,最终的动态图文件类型都需要再转换成常用的gif文件格式类型后,才能够被资源文件管理窗口调用和识别。
在动态素材文件的设计中,还要充分考虑动画显示的点阵尺寸问题。综合屏幕尺寸,动画点阵尺寸以及控件摆放的需要来设计动态图素材的点阵像素尺寸。一旦被使用,在HMI系统的设计过程中,是无法对动图的尺寸进行适应性调节的。
3、使用HMI系统内部配套的动图素材生成工具GmovMaker进行制作
HMI系统也可以使用相关的图片素材,利用系统自带的配套软件工具GmovMaker来制作需要的动图素材文件。软件的设计制作过程简单,方便,易操作。
GmovMaker软件使用非常简单,总体来讲就是将素材图片按顺序调入制作软件窗口中,再让图片按设计好的时间间隔参数进行循环往复的切换显示。前提是这些图片必须是相同的尺寸,才会生成连续的动图文件。软件也会对图片规格进行自动识别,规格不相同的图片无法调入编辑窗口,以第一张图片的尺寸规格为准,作为整个动画文件的显示尺寸标准。
设计中,先设置图片的切换间隔时间参数Fd(ms),以毫秒计,设置数据值。然后再按顺序将图片依次导入显示列表窗口。过程中,可以使用插入,删除功能来调整和增减图片项内容。调入后,点击
按钮图标标识,可以右侧空白区域中观察成型的动态图预览效果。成功后,点击“生成动画”按钮,在指定的系统路径中生成动图素材文件。
GmovMaker软件的图片素材可以是扩展名为jpg,bmp,png的图片文件类型,也可以是成型的gif动图文件。不论是哪一种,首先需要保证调用的所有图片的点阵像素尺寸一致,并且是同一种格式类型的文件,不可混用。jpg和bmp可以设计带有背景图的整张图片组合的动图文件。其中,jpg的图片格式比bmp的图片格式在内存空间的使用上要节省很多,这主要源自图片文件的压缩格式产生的数据大小。png图片可以设计没有背景的免抠图图像,这样图片就可以更好的与其它的控件内容相结合,形成有静有动的整体图像系统效果。gif是现成的动图素材文件,对它的调取可以将其还原成多个图片的组合形式,并利用拆分出的图片进行重新的调整和排列组合。生成新的动图素材文件。
GmovMaker软件所生成的动力素材文件,有自己的扩展名和格式类型。它所生成的动图文件扩展名为.gmov。是系统专用的动图素材文件,可由资源文件管理器窗口直接调用。文件生成后,同样按照第一点中描述的过程,导入资源文件管理器中,供相关控件使用。
动画控件的各种显示功能,可以通过控件属性变量的设置操作来实现。例如,播放,暂停,停止,亮度,速度,循环等,有专门的控件属性变量进行设置。对于播放进程,选择性播放等操作,虽然没有专用的变量进行设置,但是可以通过其它相关的属笥变量的读取,换算,修改过程来实现。实现部分显示或根据运行条件进行智能动画显示。
属性功能说明:
type-控件类型编号,固定值,可读取不可写入。
id-当前页面中的ID编号。
objname-控件名称。
vscope-内存占用。0为私有,1为全局。
drag-拖动功能支持。0为否,不支持拖动,1为是,支持拖动。
disup-拖动功能子项。是否禁止拖动后的弹起事件。0为否,不禁止。在拖动发生后,启动弹起事件。1为是,禁止。在拖动发生后,不启动弹起事件。
aph-不透明度。取值范围在0~127之间,0为完全透明,127为完全不透明。
effect-加载方式。0为立即加载,1~10为10种加载特效。
vid-动画ID。资源文件管理器窗口的动画素材区中关于动图素材的排列顺序编号。控件对素材的调取都是通过设置编号的形式来获得,而非素材的名称。
en-播放状态。控件中动图的运行状态标识。是可读可写属性变量单元。对它的读取,可以了解当前的动图状态,对它的修改,可以改变动图的运行状态。变量值中,0为停止,1为播放,2为暂停。
loop-循环播放。动图文件播放完成后,在没有收到任何指令时,选择的一种运行状态,即重新开始再次播放,并保持循环。数据值0为否,不循环。1为是,循环。
dis-播放速度百分比。动图文件的播放速度设置选项。以百分比,即倍率的形式来表现。数据值范围是10~1000之间。正常的1比1速度为100,即100%的速率。10则代表10%,即以10分之一的速率进行播放。1000则代表1000%,即以10倍的速度来播放动图文件。
tim-当前播放时间。在动图文件播放过程中,该属性变量随时根据播放进度的变化而改变变量的数据值信息。以毫秒(ms)为单位,记录当前动图文件的播放时间点信息。可读写单元。读取可获取信息,修改的话,可实现跳跃播放的效果。
stim-总时间(由动画文件决定,不可设置,运行中可获取)。总时间的大小是由控件所调取的动图素材的文件播放时间决定的。不能随意的设置和修改。但是可用于读取,在 各种播放方式的设计中,可参与相关的计算,换算过程。是主要的参数内容。
qty-总帧数(由动画文件决定,不可设置,运行中可获取)。总帧数的大小是由控件所调取的动图素材的文件属性决定的。不能随意的设置和修改。但是可读取,用于获取相关的动图素材信息。
x,y-坐标位置。指的是动画控件左上角的坐标起点位置。每一个控件都以其左上角的端点作为该控件的坐标原点来定义其在页面中的位置。
w-宽度。动画控件在页面中所占的点阵宽度。
h-高度。动画控件在页面中所占的点阵高度。
事件功能说明:
1、控件事件说明
除了常用的按下事件、弹起事件外,动画控件还有一个多媒体控件专有的事件功能,就是播放完成事件。按下事件,弹起事件是人为操作控件时的触发事件。不论动画控件处在什么样的运行状态中,当点击动画控件时,触摸的一瞬间,即可触发按下事件,而点击完成后的离开状态,又可以触发弹起事件。
播放完成事件,不是一个操作控件的触发事件,它相当于一个关联事件。事件的触发设定在程序运行的某一个时间点上。播放完成事件就是指控件在进行播放状态时,当播放任务结束以后,控件应该继续保持哪种运行状态,包括停止,暂停,继续重新播放或在控件素材的某一个时间点开始播放等。在控件属性变量loop中,有一个通用设置项,即循环和不循环播放设置选项。
这是动画控件在系统运行时,首选要识别的选项。如果播放完成事件中没有任何关联设计时,就按loop变量中的设置执行操作。在播放完成事件中,如果有任何执行指令代码,也是在loop变量设置的基础上执行相关操作。例如,在事件中添加某一时间节点上的开始播放任务,那么控件在第一次完整的播放完成后,执行事件中的任务,跳转到指定的播放时间点位置,再根据loop变量的设定,执行循环播放任备。
2、动画控件的播放操作设计说明
动画控件的播放操作功能主要包括播放,停止,暂停,速度,亮度以及选择性播放等内容。动画控件的画面内容相对简单,制作及内容也是直观且简单。表达的含义和意图也同样的直接,易懂。所以在播放功能方面,虽然具备视频文件的一些基本功能,又无法实现视频文件的的全部功能。例如,倒放,音频等。因为动画控件设计,制作简易,实现倒放的话,不如重新制作一个倒放素材来的简单。音频效果,在HMI系统中由专门的音频控件提供,所以不需要让动画控件具备音效功能。
将动画控件的属性变量和相关的事件功能相结合,可以完成上述功能中的全部设计。也可以根据课程中所描述的各种功能,进行创造性的功能设计和测试实践。
控件属性变量vid是控件素材的选项变量,也是可读写变量单元。该属性变量与播放完成事件结合应用,可实现控件内容(素材)的切换播放显示。en属性变量负责控件的播放使能设计。通过对该属性变量的修改可实现控件停止,暂停,播放功能的指令操作。loop属性变量是控件循环播放功能的设置选项。控件播放完成后,是否进入循环播放模式,通过该变量进行设置。dis属性变量可以控制控件的播放速度,通过参数设定,可以让控件在放慢10倍和加速10倍的播放速度之间进行调整设置。以上描述的是能够根据相对应属性变量的设置操作,直接实现相对应功能的设计方法。
对于一些特殊的,不常应用的显示设计方式,没有直接的属性变量可以使用。我们可以通过动画控件素材相关的文件参数变量来实现。将素材自身的参数特征和设计需求相结合,使用算法加换算的方式实现想要达成的设计功能。
动画控件中,提供的文件素材参数有当前播放时间,总播放时间以及总帧数。其中,当前播放时间为可读写单元,可以通过对该属性变量的修改提供跳转式和选择性的播放显示功能。总播放时间和总帧数单元是控件素材的信息变量单元,只能供系统对该信息进行读取操作,不能进行修改。如果要实现更复杂的,甚至需要有计算方面的功能参与时,这两项数据信息是主要且必要的参考、参与事项和内容。