第24章精灵和超级精灵.docx
《第24章精灵和超级精灵.docx》由会员分享,可在线阅读,更多相关《第24章精灵和超级精灵.docx(20页珍藏版)》请在冰点文库上搜索。
第24章精灵和超级精灵
精灵和超级精灵
通常,图形页中的图形对象分别设置。
可以使用精灵把几个相关对象结成一组,并存到精灵库中。
精灵可被用作单个对象(粘贴、移动、改变大小等等)。
精灵可以储存各种类型的图形对象及其组态数据。
例如,可以定义精灵为开始和停止控制(一个开始按钮,一个停止按钮和一个指示灯),并应用于所有使用这种控制的设备中。
使用精灵时,只要指定泵或传感器的唯一信息即可(即变量名)。
Citect有两种精灵:
精灵 关联对象的附属,系统组态时加到图形页中。
可加入任意多精灵到一个图形页中。
超级精灵 动态页,在运行时间系统中显示的页中传递信息。
技巧:
可以将精灵和超级精灵附属起来使用,大多数超级精灵都配有一个精灵。
Citect包括精灵库和超级精灵库,可以自定义。
可为复杂实体如环形控制、常规控制和指示联接建造单个精灵。
注意:
1)若修改工程中的精灵或超级精灵,工程中的精灵或超级精灵会自动更新(超级精灵环境变量例外)。
2)若修改运行中的工程的精灵,必须执行更新页。
若包含精灵的页在显示时做了改动,它会在下次显示时更新。
精灵
精灵代替每个相关对象的共同信息。
例如,典型配置显示泵及其转速,使用两个对象:
(1)文本对象显示转速,
(2)符号对象显示泵的状态:
不用精灵执行以上安排,要分别进行文本和符号组态。
这证明一些对象的共同附属有大多数相同的配置。
精灵可在需要处插入指定信息来进行部份设置。
精灵的功能在于对象只须定义一次。
每次在页中放置精灵时,要指定代替信息。
建造并使用精灵
创建精灵
创建新精灵与使用图形对象创建页相似,但没有背景。
创建精灵通常使用图形编辑器,添加对象,定义精灵取代装置并保存精灵在精灵库中。
创建新精灵:
1.从文件菜单中选新建
2.点击精灵钮
3.可创建精灵对象(定义取代字符串)。
打开已存在精灵:
1.点击打开工具
或从文件菜单中选打开。
2.选择精灵标签
3.选择精灵储存的工程和图库
4.选择精灵
5.点击确定钮。
注意:
1)从工程中删除精灵,选择精灵名,并点击删除钮。
2)若修改使用过的精灵,所有精灵会自动更新。
(超级精灵环境变量除外)
3)若修改当前运行的工程中的精灵,要执行更新页命令。
若修改运行页中的精灵,退出并再次显示时才会更新。
保存当前精灵:
1.点击保存工具
或从文件菜单中选保存
2.选择精灵储存的工程和图库
3.输入精灵名
4.点击确定钮
注意:
创建新精灵库,按新建钮。
定义精灵的取代作用
可使用取代字符串代替每次指定的对象属性。
它可代替任何文本属性。
指定取代字符串要以%开始和结束。
例如,创建标准精灵,可使用两个取代字符串,一个取代变量标签的状态,一个为变量标签的速度:
注意:
1)不是只有变量标签可代替,任何表达式都可以代替。
如常数或标记。
2)只有包括文本的域可以有精灵标签代替。
使用精灵
精灵创建后可用于任何图形页。
使用前要有粘贴精灵工具把精灵粘贴到图形页中。
然后可以双击它来设置。
例如,每次使用上面的精灵,只须输入两个值,一个为变量标签的速度,一个为变量标签的状态。
提示:
双击粘贴的精灵会显示精灵属性。
显示精灵中单个对象的对象,按住CTRL键再双击特定对象。
若精灵有连接,大多数属性为只读的。
上例是精灵的简单应用,只包括两个对象和两个取代字符串。
可定义使用多个对象的精灵,可使用取代字符串代替任何文本属性。
注意:
若使用构造标签,可使用带标签名的取代字符串构造更多高级精灵。
见UsingStructuredTagNameswithGeniesandSuperGenies。
粘贴精灵到图形页
1.点击粘贴精灵工具(在工具箱中)
或在编缉菜单中选粘贴精灵
2.选择包括精灵的图库。
3.从精灵列表的粘贴精灵对话框中选择精灵图标
4.或双击图标或点击确定钮。
粘贴精灵对话框
用来添加精灵到图形页。
精灵
工程中的精灵表格,显示超级精灵。
添加精灵,使用滚动条指定精灵,选择精灵并点击确定钮(或双击小图标)。
注意:
1。
要编缉精灵,选中并按编缉钮。
2.创建精灵,按新建钮。
图库
精灵储存的图库。
超级精灵
若选中的精灵附有超级精灵,会显示超级精灵图标,否则此域为空。
精灵属性
此对话框显示输入的精灵的取代字符串。
在精灵中定义取代标签。
标签中的值会被取代(若附有超级精灵,会在其中取代)。
提示:
显示精灵中单个对象的属性,按住CTRL键并双击特定对象。
若精灵有连接,大多数属性为只读的。
在模板中使用精灵取代功能
可通过向模板中添加对象和使用相关取代字符串创建具有相同特征的常规页模板。
(若有属性的缺省值,可添加到原始对象中)。
随后创建基于此模板的新页,一个对话框会提示操作员输入取代字符串。
趋势模板和SPC模板就是这样制成的。
超级精灵
超级精灵与精灵相似,但也有很大区别。
超级精灵可以取代变量和常数。
精灵是一组对象,而超级精灵是一完整的页。
超级精灵的取代在运行时通过使用SuperGenieCicode函数完成。
注意:
超级精灵为精灵的扩展。
通常超级精灵可独立于精灵执行。
例如,典型的控制数字输出的控制器(如电泵)使用三个对象:
(1)设置数字变量为开的按钮,
(2)设置数字变量为关的按钮,(3)表示变量状态的符号。
若不使用超级精灵,完成上例需要为每个泵设置一页。
使用超级精灵只须为所有电机设置一页。
在Citect工程中只设置一页,而且实例中的特定信息会在运行时被取代(需要时)。
构造并使用超级精灵
创建超级精灵
创建超级精灵几乎与创建Citect页相同。
使用图形编辑器创建新超级精灵,添加对象,定义超级精灵取代功能并保存超级精灵到超级精灵库。
与精灵库相同,超级精灵库是通用的,可以用于其它Citect工程中。
注意:
超级精灵是高级工具需要仔细设计。
使用超级精灵前要熟练掌握精灵和Cocide。
定义超级精灵时,实质是创建超级精灵模板(与页模板相似)。
通常把超级精灵和控制精灵缚在一起。
Citect会在粘贴相关精灵控制器时自动产生一页。
不一定要把超级精灵和精灵缚在一起,也可以单独定义超级精灵为普通Citect页。
此方法的优点是不必设计控制精灵,缺点是不能使用粘贴精灵工具定位。
注意:
超级精灵名称必须以(!
)开始。
这使粘贴超级精灵产生的页隐藏。
若把超级精灵当做普通页,不得以(!
)开始命名,否则不能再对其进行编缉。
前8个字符不得重复。
创建超级精灵
1.点击新建工具
或从文件菜单中选新建。
2.点击超级精灵钮
3.现在可以创建超级精灵页(定义自己的取代字符串)。
注意:
1)对于粘贴精灵对话框中显示的超级精灵,须设置精灵做为精灵控制器使超级精灵隶属于它。
2)超级精灵名称的前8个字符不得重复。
打开已存在的超级精灵:
1.点击打开工具
或从文件菜单中选打开
2.选择超级精灵标签。
3.选择超级精灵储存的工程和图库。
4.选择超级精灵。
5.点击确定钮。
注意:
要删除超级精灵,选中超级精灵名并点击删除钮。
保存当前超级精灵:
1.点击保存工具
或从文件菜单中选保存
2.选择超级精灵储存的工程和图库
3.输入超级精灵的名称
注意:
超级精灵的名称限于8个字符。
4.点击确定钮。
定义超级精灵的取代功能
超级精灵的取代功能比精灵的更加严格和复杂。
最重要的是,超级精灵的取代功能只用于包括标签、命令和表达式的对象。
(也可用于对象接触和键盘命令的记录信息,工具提示、页键盘命令,或做为趋势对象注意的一部份和颜色填充。
)
取代字符串以(?
)开始和结束。
如下所示:
?
?
这里DataType为可选择的,可以是任何Citect支持的数据格式(BYTE,BCD,DIGITAL,INT,UINT,LONG,LONGBCD,REAL,orSTRING)。
SubstitutionStringNumber决定超级精灵显示时取代的标签(1-256)(使用超级精灵函数)。
若使用多于一个取代字符串要按顺序排列。
这会使超级精灵函数便于使用。
例如,为弹出控制器定义取代字符串,如下所示:
注意:
此超级精灵应保存为页-命名为SGenie1,这样可以不使用精灵控制器。
若不指定数据类型缺省值为TYPELESS。
此类型要传递BYTE,BCD,DIGITAL,INT,UINT,LONG,LONGBCD,REAL类型的标签,但不能传递STRING型。
此时Citect会自动把取代的数据为当前类型。
例如,上图中?
Digital1?
做为取代字符串,运行时若使用INT类型传递变量会出现硬件错误,若使用?
1?
,可以使用STRING外的任何类型。
注意:
超级精灵中指定的类型会产生严格的检错,TYPELESS很灵活,但错误很难发现。
使用超级精灵
超级精灵必须被超级精灵Cicode函数调用,该函数执行取代并显示弹出信息。
创建超级精灵前要熟练掌握这些函数。
使用此超级精灵,必须定义打开超级精灵页和传递标签到超级精灵的命令(可将其设计为菜单页中的按钮等等)。
AssPopUp()超级精灵Cicode函数执行此功能:
运行时按住CTRL键会显示超级精灵和取代的内容。
注意:
1。
用于超级精灵中的变量标签须在变量标签数据库中定义。
2.超级精灵的句法不得用于汇报,报警,趋势或背景Cicode函数。
3.应尽量少使用超级精灵标签(最好每页不超过20个)。
数组不受此限制,即使使用上百个标签也会很好地执行。
4.Citect中所有超级精灵和精灵缚在一起。
使用常数和数组
常数
传递常数的功能是受限制的,因为常数只用于常规Cicode标签-键盘命令,符号地址域等。
所有常数被以下类型支持:
STRING,INTEGER,DIGITAL,REAL,LONG。
要传递常数需要在Ass函数中调用以单引号开始和结束的参数。
例如,传递变量标签-TAGI-到超级精灵中,要调用Ass函数如下:
Ass(hWin,nArg,"TAG1");
若传递常数-1.2345-到超级精灵,应调用Ass函数如下:
Ass(hWin,nArg,"’1.2345’");
数组
超级精灵中可使用数组元素或整个数组。
传递数组元素,如下所示:
AssPopUp("MyPopUp","DigArray[42]");
传递整个数组,只须使用数组名,例如:
AssPopUp("MyPopUp","DigArray");
当传递整个数组时,要将超级精灵设置为包括数组而不是单个数值。
要使用以下句法:
?
[]?
[]
数组只支持以下类型:
DIGITAL,INT,REAL,LONG。
注意:
数组大小为可选项,若不指定缺省值为2048(数字型),128(整型)或64(实型)。
只可用它来检查数组的范围-若数组小于指定范围,其余的补0(或空字符串)而不会产生Cicode错误。
例如,显示第三个元素,要遵守以下句法:
Expression
?
DIGITAL[]1?
[3]
或使用以下句法来保证数组的所有元素都被传递到超级精灵中:
Expression
?
DIGITAL[4]1?
[3]
使用和精灵附属的超级精灵
通常把超级精灵和精灵缚在一起使用。
它们之间的连接在粘贴精灵控制器时存在。
还必须使用超级精灵Cicode函数调用变量,若将其做为精灵控制器的一部份,只须做一次。
定义精灵控制器
一个按钮命令被加到精灵中,它使用AssPopUp()函数显示和指定变量:
上例中的超级精灵是独立的(保存为页),但若与精灵一起使用,它会被存为超级精灵(模板)。
使用超级精灵组合,必须使用隶属超级精灵功能(在编缉菜单中)把超级精灵和精灵缚在一起-只有在编缉精灵时可以执行此功能。
粘贴精灵控制器
一旦把超级精灵和精灵缚在一起,精灵就成为精灵控制器。
可使用粘贴精灵工具粘贴精灵控制器(粘贴时超级精灵和控制器连在一起)。
粘贴精灵对话框显示哪个精灵与超级精灵相连。
Citect自动从超级精灵模板中创建超级精灵页。
粘贴精灵控制器时可输入精灵取代工具(可双击取代工具来改变它们)。
此例中,输入精灵的标签传递到超级精灵中:
注意:
把超级精灵和精灵缚在一起,要保证超级精灵按顺序储存在精灵库中,这样便于管理。
也可单独使用超级精灵,Citect会将其做为页处理,不会显示在粘贴精灵对话框中。
创建精灵控制器:
1.保存超级精灵(超级精灵名称限于8个字符以内)。
2.创建精灵,使用超级精灵函数显示超级精灵。
3.从编缉菜单中选择附属超级精灵。
4.点击添加钮,会显示选中的超级精灵对话框。
5.选择第一步保存的超级精灵,添加到精灵列表中。
6.点击确定钮。
7.保存精灵。
超级精灵会显示在粘贴精灵对话框中。
从精灵库中粘贴超级精灵到页中:
1.点击粘贴精灵工具(在工具箱中)
或从编缉菜单中选择粘贴精灵。
2.从图库列表中选择一个图库。
3.从精灵列表中选择精灵图标,在超级精灵框中会显示附属的超级精灵的图标。
4.双击图标或按确定钮。
注意:
此过程用来添加精灵(到图形页),并有一个超级精灵和它附属。
精灵为超级精灵的控制器。
运行时选中精灵,超级精灵也会显示。
附属超级精灵对话框
用来把超级精灵和当前精灵附属起来。
附属超级精灵
与当前精灵附属的超级精灵列表。
附属超级精灵:
1.点击添加钮。
2.使用超级精灵对话框选择附属的超级精灵。
3.点击确定钮保存更改或按取消。
分离超级精灵:
1.点击移动钮。
不会出现提示确认是否除去附属。
2.点击好钮保存更改或按取消钮。
选择超级精灵对话框
用来把超级精灵和当前精灵附属起来。
超级精灵
工程中超级精灵表。
要选择超级精灵,使用滚动条指定图标,然后选中超级精灵并击确定钮(或双击图标)。
注意:
1。
要编缉超级精灵,选中并按编缉钮。
2.超级精灵,点击新建钮。
图库
超级精灵储存的图库。
嵌套超级精灵
Citect支持嵌套超级精灵-嵌套指一个超级精灵中包含另一个超级精灵。
被包含的精灵控制器必须使用AssChain函数而不能使用Ass函数。
更多信息见超级精灵Cicode函数。
超级精灵域
显示超级精灵时,超级精灵域与父域相同。
例如,父页为1号域,超级精灵也会显示在1号域。
可不同页不同域调用相同超级精灵。
为超级精灵定义指定域可避免其继承性。
这样,无论其父页的域是什么,超级精灵会有相同域。
超级精灵只在其域为空时会继承其父页的域。
超级精灵环境变量
定义超级精灵时,实质是创建超级精灵模板-与页模板相似。
当精灵控制器调用超级精灵时,此模板用来创建新超级精灵页。
任何保存于模板中的环境变量会复制到超级精灵页中。
然而,当模板中的环境变量改变时,超级精灵页中的仍不会改变。
若要更新超级精灵页中的环境变量,要找到并删除超级精灵页,(以!
为前缀)然后使用精灵控制器重新调用超级精灵。
使用精灵和超级精灵的构造标签名
使用精灵和超级精灵的构造标签名功能更强大。
但一定要熟悉structuredtaggingconvention。
大多数精灵使用同一物理装置,所以相似的标签名可减少工程的设置。
使用精灵构造标签
定义精灵时,可以为精灵工具加前缀或后缀产生完整的标签。
例如,若定义工具为%tag%_PV,并使用DEV1为标签,精灵会产生完整的标签DEV1_PV。
可在精灵工具的前缀或后缀加入额外信息。
例如,若定义三个条形图表表示环状控制器,显示DEV1_PV,DEV1_SP和DEV1_OP,可设置精灵如下:
每个矩形有单独的精灵标签:
Levelexpression
%PV_Tag%
Levelexpression
%SP_Tag%
Levelexpression
%OP_Tag%
设置精灵时要输入三个标签:
DEV1_PV,DEV1_SP和DEV1_OP。
若使用构造标签,可设置矩形如下:
Levelexpression
%Tag%_PV
Levelexpression
%Tag%_SP
Levelexpression
%Tag%_OP
此例中,只要输入一个标签,就可产生6个对象。
精灵自动连接DEV1到_PV,_SP,或_OP,这取决于标签在哪被取代。
此精灵不仅节省设置时间,而且便于维护。
注意:
上例是精灵功能的简单说明。
对象越复杂,数量越多,使用构造标签就越方便。
也可使用多个变量创建复杂的精灵。
例如,%Area%_TIC_%Occ%_PV或任何前缀、后缀和数字。
使用超级精灵构造标签
超级精灵不支持超级精灵标签的直接串联。
例如,?
INT1?
_PV为非法-会产生编译错误。
然而,可以使用Cicode表达式串联标签。
必须为每个实型标签使用唯一的超级精灵变量,并使用AssCicode函数串联标签。
例如,若定义三个条形图表表示环状控制器,显示DEV1_PV,DEV1_SP和DEV1_OP,可设置超级精灵如下:
每个矩形有单独的精灵标签:
Levelexpression
?
INT1?
Levelexpression
?
INT2?
Levelexpression
?
INT3?
若不使用构造标签,调用Ass函数如下:
AssPage("PageName","DEV1_PV","DEV1_SP","DEV1_OP");
若要把信息加到精灵中,可设置自己的Cicode函数如下:
FUNCTION
AssMine(STRINGsPage,STRINGsTag)
AssPage(sPage,sTag+"_PV",sTag+"_SP",sTag+"_OP");
END
此函数可调用AssMine()函数并传递单个标签(DEV1)如下:
AssMine("PageName","DEV1");
自定义Cicode函数有很多便利,也可使用精灵调用Ass函数,如下:
Executecommand
AssPage("%Page%","%tag%_PV","%tag%_SP","%tag%_OP");
使用上述精灵,只要输入一次页名和标签。
注意:
必须传递标签名(用单引号括起来)到超级精灵函数。
不能传递标签值。
例如,若传递%tag%_SP(没有引号),变量值被传到精灵,而不是变量名。
而且也不会产生附属。