[摘要]:
紫金桥实时数据库中点的内部算法一般都是固定的,是在点开发时在程序中预先定义好的。如累计点、控制点、滤波点等其内部算法是在开发阶段完成的,用户是不能改变的。但有时用户需要根据需求自己定义点类型,同时自定义其内部算法。当然这可以通过三种手段来实现:一种是增加新的点类型来实现,但增加点类型比较复杂,且修改困难;另外一种是使用用户程序点;第三种是使用自由运算点。但是用户程序点和自由运算点中不同的点具有独立的算式,需要针对每个点进行单独编辑,而且自由运算点只能编写表达式而不能编写程序块。为此紫金桥提供了点的自定义算法功能。自定义算法定义好后,相当于定义了一套算法库,该类型的点都可以选择性的使用这些算法。
一、自定义算法简介
点的自定义算法用于完成点的内部逻辑,是一段用户自定义脚本。该脚本定义了点中各参数间的运算关系,一般不会涉及到具体的点。脚本中涉及的变量主要是该点类型相关的参数。
每种自定义点类型都可以定义若干名字不同的算法,例如定义了一种自定义点类型CustomTag,并且为其定义了三种算法分别为:A、B、C。那么使用点类型CustomTag创建的点则可以选择使用这三种算法中的任意一种,而且不同点可以使用不同算法。
通常自定义算法涉及许多点参数,这些参数的个数、种类随需求而不同。因此自定义算法点一般需要自定义点类型,这样用户才可以根据需要来配置所需要的参数。
二、自定义算法的构成
自定义算法由3个部分组成,包括:算法名称、算式、Formula参数。
1.算法名称
算法名称是用户自定义脚本的名字。每种算法属于某种点类型,而不属于某个具体的点。因此用户自定义算法并不存放在某个具体点上。
一种点类型可以定义多种算法,每个具体的点可以选择其中的一种算法。
2.算式
每种算法中的脚本被称为此种算法的算式。
算式在DB启动时被装载并进行编译。如果编译脚本时出现错误,错误信息将在DB的异常显示中报告。
a参数
预定义算法名称参数为Formula,该参数为字符串类型,记录的是算法名称。点通过该参数使用不同的算法。
例如:某种点类型有A、B 两种算法。定义此种点类型的2个点TAG1和TAG2。TAG1、TAG2的Formula参数取值分别为‘A’,‘B’,则点TAG1使用的是算法A.,则点TAG2使用的是算法B。
三、自定义算法的步骤
1.自定义点类型
在实时数据库点组态菜单中,选择点类型-〉点类型管理,定义一种点类型,为点类型添加需要的参数项。添加的参数中必须包含Formula参数。
2.新建算法
在实时数据库点组态菜单中,选择点类型-〉自定义算法,在自定义算法编辑器中,选中新建的点类型名,点击“增加”,进入算式编辑器,如下图所示:
3.编辑算式
在算式编辑器中,输入新建的算法名称。在下面的算式框中,编辑本算法的具体算式。
算式编辑框的右侧列出了本点类型支持的参数名称。
算式编辑器如下图所示:
4.完成新建
编辑完算式后,点击“保存”按钮,则将新建的内容保存,此时算法名称将被新建,并且不能再修改。
点击“确定”按钮,保存当前配置,并关闭算式编辑器。
四、总结
自定义算法功能的推出,将极大的提高紫金桥实时数据库点组态的功能,使每个数据库点中的参数不再是孤立的数据,而成为一个有机的整体。数据库自定义点类型的功能,也将从原来的数据集合,提升为数据与逻辑的完整模块。
(转载)