搬家第45天-citect2018元数据的学习1
我在学习citect2018时,控件属性设置对话框中会看到元数据选项卡,以前一直没有什么概念。今天逐步开始“元数据”这个概念的学习。
看资料上说“元数据是具有对应值的名称的列表”,就是说元数据有名称,还有数值,比如一个元数据叫做“体积”,它的有一个数值,比如说数值是1000。“元数据附加到对象的动态点”。动态点就是一个控件属性的“访问”选项卡上那个AN数值。“附加到对象的动态点”就是说元数据不能脱离对象,依附于对象,比如说元数据“体积”,它得依附于某个控件,比如一个罐子。元数据数值通过
DspAnGetMetadata(nAN, sMetaName)
函数来获取。nAN是一个整数,就是控件的访问选项卡上的AN数值,sMetaName是元数据的名称。
资料上说以下控件可以有元数据:
手绘线、直线、矩形、椭圆、多边形、管道、文本、数字、按钮、符号集、趋势、粘贴符号、ActiveX、过程分析器、DatabaseExchage、Pelco Camera View、web gate、超级精灵
先做一个练习,学习怎么添加元数据,怎么获取元数据。
在页面上添加一个矩形,双击矩形,打开设置对话框,找到元数据选项卡,可以看到表格。双击第一行名称,输入“体积”,参数值写91(随手写的,没有意义),第二行名称写“重量”,参数值写183,然后保存设置。
新建一段cicode程序
FUNCTION showMetaData()
STRING value1,value2
value1=DspAnGetMetadata(4,"体积")
value2=DspAnGetMetadata(4,"重量")
Message("alarm",value1,48)
Message("alarm",value2,48)
END
画面上添加一个按钮,按钮的鼠标点击事件调用showMetaData()函数。保存编译运行,点击按钮就会逐个弹出对话框,显示编辑时设定的两个元数据数值了。
元数据名称的定义要以字母或者数字开头或中文,不能包含关键字,不能包含英文句号,不能包含空格,长度不超过253个字符,不能再运行期间修改名称,名称可以包含精灵替换,在特定动态点上需要是唯一的。
元数据的数值可以包含精灵替换,只包含变量标签名称或equipment.item标签引用中允许的字符,且不包含宫格,不超过255个字符,可以是文字字符串,在单引号中指定。元数据的值可以在运行时修改,但是图形页面关闭时,元数据值将回到初始值。
为了体验一下修改元数据值,新增一个cicode函数
FUNCTION MODifymate()
DspAnSetMetadata(4,"体积",300)
DspAnSetMetadata(4,"重量",500)
STRING value1,value2
value1=DspAnGetMetadata(4,"体积")
value2=DspAnGetMetadata(4,"重量")
Message("alarm",value1,48)
Message("alarm",value2,48)
END
画面上新增一个按钮,鼠标点击是调用MODifymate()函数,保存编译运行,可以看到元数据被修改了。
再新建一个页面,这两个页面分别添加按钮,做页面切换。这一次实验修改了元数据,离开页面再次返回,元数据修改是否有效果。
通过实验发现,在前述基础上元数据修改但是当页面切换后,元数据会回到初始值。
接下来测试一下元素据不是常数,是变量,修改数据后页面切换元数据的修改是否有效。
新建两个内部变量,real数据类型,变量名为TJ1和ZL1。画面上绘制一个矩形,动态点为8.定义两个元数据

新建两个cicode函数
FUNCTION showMetaData1()
STRING value1,value2
value1=DspAnGetMetadata(8,"体积")
value2=DspAnGetMetadata(8,"重量")
Message("alarm",value1,48)
Message("alarm",value2,48)
END
FUNCTION MODifymate1()
DspAnSetMetadata(8,"体积",301)
DspAnSetMetadata(8,"重量",501)
STRING value1,value2
value1=DspAnGetMetadata(8,"体积")
value2=DspAnGetMetadata(8,"重量")
Message("alarm",value1,48)
Message("alarm",value2,48)
END
画面上新建两个按钮,分别用于读取2#矩形元数据和修改元数据。保存编译运行,直接点击显示元数据,弹出的对话框是两个元数据对应的标签名,点击修改元数据按钮,可以看到修改成功,但是页面切换后,再次点击读取元数据,发现元数据又回到初始状态,显示标签名了。

浙公网安备 33010602011771号