可编程计算组件面向的客户要求比较高,但其主要目的是提供给软件制造企业在为客户提供解决方案时可通过动态编程的方式来耦合其业务逻辑。 有些应用系统中有部分业务数据需要通过现场实时数据进行相应的算法产生,这时编程计算组件可帮助您的应用系统和业务解耦,可编程计算组件适合:电力行业(SIS系统,实时系统) 、气象行业、航空行业、集团企业的数据集中化的应用解决方案等。
Apace计算服务支持单点、多点计算,包括对多个Apace数据库中的数据点进行综合计算。计算法则采用的是全编码式数据计算扩展接口,算法可以使用C#、VB.NET或Jscript三种语言进行编写。支持动态编译,每秒可对上万个数据点实时同步计算,每个计算法则的计算结果,可写入一个或多个数据点中。
支持引用自定义的程序集,让计算服务能处理更为复杂的计算法则成为可能,目前几乎已经可以完成任何所需的计算。
计算法则脚本编辑规范
以C#语言为例
1:,计算脚本代码必须写入GetAlgorithmValue()函数体内,函数体外禁止加入其它的函数,如需要使用自定义函数建议写入到“公用函数体”内,如下:
//必须的函数体GetAlgorithmValue,返回双精度结果
2:建议在编译通过后将上部分代码改为:
计算法则常用方法介绍
● this.CurrentPoint
描述:得到当前计算写入目标点信息;
返回类型:McbData
PointName |
获取或设数据点标签名称格式:[ServiceName].[DirName].[PointName],总长度为20个字节其中包含’.’字符。 |
PointValue |
|
PointTime |
|
Time |
|
BindingName |
获取绑定格式点名,也可理解为短点名:[PointName]。 |
State |
|
PointState |
|
PointDescribe |
|
PointUnit |
|
Position |
|
ServiceDirName |
实例代码:
McbData calcpoint= this.CurrentPoint;
double calcvalue= calcpoint.PointValue;
● this.CurrentPointInfo
描述:得到当前计算写入目标点基本信息;
返回类型:PcmData
PointName |
获取或设数据点标签名称格式:[ServiceName].[DirName].[PointName],总长度为20个字节其中包含’.’字符。 |
HighAlarm |
|
BosomAlarm |
|
LowAlarm |
|
AllowMaxValue |
|
AllowMinValue |
|
OperationType |
|
OperationCode |
|
DataShape |
|
StaticValue |
|
Precision |
|
HisStartTiem |
|
BindingName |
获取绑定格式点名,也可理解为短点名:[PointName]。 |
PointDescribe |
|
PointUnit |
|
Position |
实例代码:
● GetPoint(点名称)
描述:得到指定点信息;
返回类型:McbData
实例代码:
● Apace.Client.NetClientManage.GetNetClient().GetPointValue(点名称)
描述:得到指定点信息;
返回类型:McbData
实例代码:
说明: |
|
计算脚本可以使用Apace.Client程序集的所有方法,可以实现Apace客户端几乎所有的功能,详细方法调用请参见《Apace开发手册C#》版本; |
2.5.7 计算法则实例
● 计算标签值自增
● 计算两标签点累加值
● 多点循环累加值
● 根据计算点名查找匹配点累加值