10.3精灵库
10.3.1精灵详解
为便于图形的构建,增加系统搭建的灵活性及减少大量的重复性劳动,CyberControl软件提供了精灵库的功能。精灵不仅可以保存各图元的静态属性,更可以保存图形内所有动画连接配置。
CyberControl系统软件的精灵存储在精灵/对象库内。打开主菜单中的视图-精灵/对象库面板,如图:
在精灵/对象库面板内可以对精灵进行建立、删除、重命名、编辑等维护工作。系统中可以对精灵对象进行分类存储,分类名称以及精灵对象名称均由用户自定义命名。精灵/对象库也支持导入精灵功能,可以将其他CyberControl工程应用中的精灵导入到新的工程应用中来。
精灵是由若干简单图形对象组合而成,能够预先定义好需要完成的动画连接、具备特定的动画效果。使用精灵的目标在于将若干图元具有的共同属性项合并成同一个属性项,一次配置即可完成所有图元的配置。合并后的属性项为精灵对象本身的属性,也叫用户接口。精灵库工具可以将普通图元的所有属性页设置项完全开放到精灵的属性页中来,由用户根据需求重新组织用户接口配置项。
精灵由各种基本图形组合而成,通过通用组态使其具有特定动画效果,精灵的制作在精灵编辑环境中完成。精灵编辑环境和普通窗口编辑界面一致,不同之处在于窗口的属性页即为精灵对象的属性,包括精灵属性映像表、精灵行为方式、精灵事件类型和精灵标注规则四项属性,请详细阅读属性功能说明:
- 精灵属性映射表:是精灵对象的重要属性,双击弹出‘设定精灵映射规则’对话框,主要用于自定义精灵的属性页,并将精灵的属性项与精灵中所包含的图元对象属性项对应建立关联。
如上图所示:图中左侧“+-”按钮为精灵属性项增加删除按钮,右侧“+-”按钮为精灵属性项关联图元数量增加减少按钮。
如上图所示:左侧设定精灵属性项的类型,右侧映射图元的“映射属性组”以及“映射属性”项会自动根据当前精灵属性项的类型列出选中图元可以参与映射的属性项。
- 精灵行为方式:设置精灵特有的行为方式类型,分为“传统精灵”、“做为虚对象精灵”和“做为对象精灵”三种,精灵行为遵循用户自定义规律;
- 精灵事件类型:设置精灵中关于鼠标响应事件的规律。
子元件事件模型:被引用的精灵不再开放其它事件配置项,精灵只能响应精灵设计时面向组成精灵的各图形元件所预先设置的事件;
精灵统一事件模型:被引用的精灵不在开放其它事件配置项,精灵只能响应编辑精灵时在精灵属性页-事件中设置的事件;
实例事件模型:被引用的精灵将在引用时开放若干支持的事件配置项,精灵只响应被引用后设置的事件,不能响应编辑精灵时设置的任何事件。
- 精灵标注规则:设置精灵在引用显示时动态添加的辅助标记。双击打开标注规则设置窗口,如下:
标注条件:填写表达式,表达式为真时显示标注内容;
标注类型:提供图标标注和文字标注两种标注方式;
标注文字内容、文字颜色、文字字体:标注类型为位子标注时起作用;
标注图标名称:标注类型为图标标注时起作用,所有图标可选项存储与…/graph/图形资源/avi/mark目录下,图标标注是显示的图片文件按原始大小显示,使用时注意图标大小与图元大小的比例;
标注区域:以精灵对象中心点位基准,采取九宫格方式显示标注内容;
标注区域X偏移:在九宫格显示的基础上再次进行偏移量显示,以像素为单位;
标注区域Y偏移:在九宫格显示的基础上再次进行偏移量显示,以像素为单位;
10.3.2传统精灵制作
传统精灵即精灵行为方式为“传统精灵”的精灵,也叫基本精灵。
下面举例说明制作一个基本精灵对象的基本步骤:
首先保证需求明确:制作一个调节型电动阀门,它需要完成的主要功能是动态显示阀门开关状态,数值显示阀门开度(0-100%),0-5%时阀体绿色,5-95%时阀体黄色,95-100%时阀体红色;阀门旁边要求动态显示远方/就地状态。每个阀门对象可提供数据点至少包括阀门开度反馈量和远方/就地状态数字量点。
打开视图-精灵对象库,进入精灵编辑环境。
步骤一:创建精灵对象。单击‘新建组’按钮,建立精灵存储的组类别“阀门”,单击“新建精灵”按钮,建立新精灵对象“调节阀门”。
步骤二:绘制精灵子元件,命名。在精灵编辑窗口中,利用简单图形元件绘制精灵所有子元件。
矩形元件:命名,矩形
多边形元件:命名,多边形
线元件1:命名,水平线
线元件2:命名,垂直线
文本元件1:命名,开度
文本元件2:命名,单位
文本元件3:命名,远方状态
步骤三:启用满足需求的配置项,并配置必要的动画连接。
- 阀体颜色变化:矩形和多边形元件启用颜色驱动,设置枚举值,方法参考第七章;
- 阀门开度显示:开度元件启用模拟量输出驱动;
- 远方/就地显示:远方状态元件启用数字量输出驱动,配置如下:
步骤四:新建精灵属性。根据调用精灵时用户需要配置的内容设置精灵属性(用户接口),双击“设定精灵映射规则”,开始定义精灵属性。精灵定义对话框如下:
属性名称:精灵属性项(用户接口)名称,比选项;
属性描述:备注型文本,可选项;
属性类型:精灵属性所属类型,一般参考该属性项下建立映射关系的子元件属性项类型,并保持一致,必选项;
步骤五:为精灵属性项映射对象。选中精灵属性节点,用右侧增删按钮增加映射对象。新建映射对象后,依次配置映射元件名称->映射属性组->映射属性项->映射属性的顺序完成整个过程。其中:
映射元件名称:列表中即为各子元件的名称(步骤二中的命名);
映射属性组:对应属性页中凝固属性、事件属性和驱动属性三种;
映射属性项:列表显示当前属性组下可参与映射的属性项(步骤三中启用的动画连接);
映射属性:列表显示当前属性项下可参与映射的属性(与精灵属性类型一致,步骤四中设置的精灵属性);
注意上图中的“表达式替代”项为系统默认项,不需配置。
步骤六:保存精灵编辑设置,统将用户编辑的精灵保存到精灵/对象库中。
注意:传统精灵配合元件标示符、复合驱动、对象操作面板等功能可完成更加完美的精灵元件。请参考综合应用实例章节。
10.3.3传统精灵使用
- 精灵选择
打开主菜单中视图-精灵/对象库面板,选择精灵类型中的精灵对象,双击操作精灵自动添加到当前窗口中,也可以选中精灵直接拖动到当前窗口内。
- 精灵配置
选中图形窗口内的精灵对象,打开属性页-属性窗口,配置“用户自定义属性”项。此项即为精灵属性,也成为用户接口。
10.3.4对象行为精灵
对象行为精灵的定义主要是指精灵的行为方式为“做为对象”类型,该类型精灵将面向部分开放的数据库表,与之建立对象匹配关系,制作精灵中子元件的动画连接时,表达式(变量)可直接关联数据库表的属性字段,引用精灵时指定数据库表的记录即可实例化一个对象精灵。
- 做为对象行为方式设定
如下图所示,指定精灵行为方式为“做为对象”,然后指定精灵的关联对象为系统开发的任意数据库表。
示例中将精灵与进程表建立对象匹配关系。
- 子元件动画连接组态
根据需求将数据库表中的字段属性值变化与精灵子元件的驱动事件组态建立关系。与通用的表达式(变量)选择不同,在变量选择框内点击“选择属性”按钮,关联指定数据库表的指定数据库属性字段。
示例中精灵某一子元件的颜色变化属性关联属性为“是否活动”属性字段,即子元件的颜色变化可表示为系统进程是否处于活动状态。
- 对象精灵引用实例化
打开精灵对象库,拖动精灵到窗口图形工作区内,属性页->元件属性中将增加一项“关联对象”配置项,下拉框将以当前精灵所关联的数据库表对象内所有记录作为备选项,选择某一个记录即可实例化该精灵。
示例中实例化为worker1B节点的前置通讯进程,即精灵子元件的颜色变化可表示为worker1B节点的前置通讯进程是否处于活动状态。
10.3.5虚对象行为精灵
虚对象行为精灵的定义主要是指精灵的行为方式为“做为虚对象”类型,该类型的精灵为系统根据专用需求而设计的具有特定行为方式和使用规范的精灵类型。
- 做为虚对象行为方式设定
如下图所示,指定精灵行为方式为“做为虚对象”。
- 选择虚对象模型
选择配置模型即为选择系统内置的满足专用需求的具有特定行为方式的对象类。目前
系统预置配置模型包括“数字量配置”、 “模拟量配置”和“电度量配置”。数字量配置模型可对应开关类、遥信标记类[无操作]、遥信标记类、ECS模拟量、ECS电度量。所有模型及类模板均为ECS工程类型专用,具体行为方式请参考ECS专用手册。
- 精灵子元件组态
对于开关类或遥信标记类元件,在绘制元件时,必须包含“合状态”和“分状态”两
个名称的元件:
子元件可以是矩形、椭圆、填充多边形中及组合形状中的任意填充元件。
注意:
可以添加额外的元件以表达更多的元件状态,现在支持:合状态,关状态,通讯故障状态,坏数据状态。
- 精灵引用实例化
打开精灵库,拖动元件到画面上或双击元件即可在画布上绘制元件,点击这些元件,在属性页中进行正确的配置:
ECS专用数据选择方法有多种方式,详细请参考ECS专用手册。
10.3.6变量属性精灵
精灵制作章节中介绍的制作流程属于正常的映像方法,由于特殊需求,CyberControl软件提供一种特殊的功能,命名为‘精灵变量属性’,即为精灵定义特有的属性,该属性为变量类型。编辑精灵时可以使用该属性变量做为属性或事件的驱动源,根据需求在精灵内部组件的属性驱动或事件中编辑表达式,当引用精灵时直接在用户自定义属性的对应变量属性项内实例化变量即可。
举例:
需要达到的效果是:一个文本实时显示某一个模拟量的工程值,并且当该模拟量的工程值小于5时文本颜色为绿色,大于95时文本颜色为红色,大于5小于95时为蓝色,背景色根据一个数字量的真假确定是否闪烁,闪烁时为黄色闪烁。
步骤一:创建精灵以及所需要的对象
打开精灵/对象库后,新建一个精灵名称为‘光字文本’,在编辑环境内新建一个文本用来显示模拟量,新建一个矩形充当背景,分别将其命名为‘text’和‘background’对象。
步骤二:定义精灵属性变量
双击打开‘设定精灵映射对话框’,进行如下编辑:
点击‘添加新建属性’按钮定义一个精灵属性,该属性提供用户设置模拟量的接口。属性定义如下,
属性名称:VarAnalog
属性描述:需要设置的模拟量
属性类型:变量(属性返回类型一定为变量类型,系统则确定该属性为精灵属性变量)
点击‘添加新建属性’按钮定义一个精灵属性,该属性提供用户设置数字量的接口。属性定义如下,
属性名称:VarDigital
属性描述:需要设置的数字量
属性类型:变量(属性返回类型一定为变量类型,系统则确定该属性为精灵属性变量)
点击确定按钮后,精灵属性变量设置完毕。
步骤三:设置精灵内部组件组态
选中精灵中文本对象text,根据需求设置如下,
- 启用模拟量输出驱动,关联变量为VarAnalog,显示1位有效小数;
- 启用多条件文本颜色驱动,设置条件表达式及对应区间颜色,
选中精灵中背景矩形对象background,根据需求设置如下,
启用闪烁驱动,关联表达式为VarDigital,设置闪烁颜色为黄灰闪烁。
步骤四:引用精灵,精灵属性变量实例化
新建一个窗口,引用精灵库中创建的‘光字文本’精灵,用户自定义属性如下,
根据实例化需求关联对应的模拟量和数字量后,精灵将按照精灵定义中的表达式驱动规则变化。