Data functions

<< 点击显示目录 >>

主页  PVI通信 > PVI帮助信息 > PVI base system > PVICOM interface > Process data > 处理数据的功能 >

Data functions

每个数据功能都被开发为Windows DLL,并由PVI管理器根据需要加载。

PVI设置在Windows注册表中为每个已安装的数据功能生成一个带有功能名称的键项。所有条目都位于注册表键 "HKEY_LOCAL_MACHINE/SOFTWARE/BR_Automation/Pvi/PviFunc "下。每个函数键包括DLL的名称和路径以及特定函数参数的条目。

数据函数可以为变量对象( POBJ_PVAR类型的 过程对象 )和 对象描述中  使用参数 FS链接对象定义 。对于过程对象,也可以使用 POBJ_ACC_FUNCTION 访问类型  读取或修改数据函数属性  。数据函数只能应用于单个变量或数组变量以及 数据格式 Integer(i8 ..., u8 ...)和Floating Point(f32 ...)。

变量对象中的数据函数的定义旨在将系统特定的值转换为标准化的单位,而链接对象中的数据函数可用于进一步将值转换为特定的应用单位。例如,非线性温度传感器的温度值在变量对象中被缩放为单位 "摄氏度",然后在链接对象中转换为 "华氏度",以便在屏幕上显示。

只有在创建链接对象时在链接对象描述中指定了参数 "LT=prc",在过程对象中定义的数据功能才会有效。

语法。

FS=[<FunctionName>;]<FunctionDescription>

用函数名称选择一个数据函数。如果没有指定函数名称,那么将使用默认的数据函数 "LIN"。函数描述的语法取决于正在使用的数据函数。另外,也可以指定函数DLL的路径名称来代替函数名称。然而,PVICOM应用程序只能使用一个注册的函数名。函数名称不区分大小写。

功能名称

简短描述

LIN

缩放功能和极限监测

目前PVI中只包括一个功能DLL

LIN Data Function

用于缩放和极限监测的数据函数。缩放可以用2个(线性函数y=kx+d)或更多的点来定义。指定的第一个和最后一个点用于极限监测。也可以在没有缩放功能的情况下定义极限监测。

当超过极限值时会发生什么,取决于传输方向。

如果在写过程数据(访问类型 POBJ_ACC_DATA)时超过了极限值 ,那么写指令就不会被执行。响应数据会报告错误12014。RESP_STATUS_OVERFLOW或RESP_STATUS_UNDERFLOW标志和RESP_STATUS_LINK或RESP_STATUS_POBJ标志被设置在响应数据的状态中(RESPONSE_INFO结构)。此外,响应数据还包含链接对象或过程对象数据格式中的超限值。这个极限值可以用PVICOM函数 PviWriteResultResponse 或PviXWriteResultResponse读取  。

如果在读取方向(访问类型POBJ_ACC_DATA或事件 POBJ_EVENT_DATA)超过了极限值 ,那么极限值将与响应或事件数据一起返回。RESP_STATUS_OVERFLOW或RESP_STATUS_UNDERFLOW标志和RESP_STATUS_LINK或RESP_STATUS_POBJ标志被设置在响应或事件数据的状态(RESPONSE_INFO结构)中。

值可以定义为整数(不指定逗号)或浮点(指定小数点)。根据这一规格,缩放功能和极限监测以整数或浮点格式计算。

限制监控,不需要缩放。

语法:

FS=[LIN;]<Limit1>,<Limit2>

指定的限值(<限值1>和<限值2>)定义了过程数据的有效值范围。有效范围在写和读的方向上进行测试。

例子。

"FS=0,100"

有效值范围0至100(与规格 "FS=100,0 "或 "FS=0,0;100,100 "相同)。

带极限值监控的线性函数。

语法:

FS=[LIN;]<XValue1>,<YValue1>;<XValue2>,<YValue2>

在有效值范围内根据线性函数(y=kx+d)进行缩放。线性函数是用2个坐标定义的。有效值范围的函数计算和监测在写和读方向进行(读过程数据:X -> Y,写过程数据:Y -> X)。

例子:

FS=40,30;150,110

原始值的有效值范围为40至150。对于过程值,30到110。

pviprocessfunctionlin1

用几个坐标进行缩放,并对极限值进行监控。

语法:

FS=[LIN;]<XValue1>,<YValue1>;<XValue2>,<YValue2>; ... ;<XValue n>,<YValue n>

使用坐标进行缩放。 理论上,最多可以指定32,766个坐标。2个坐标之间的缩放是通过线性插值(线性函数)进行的。使用第一个(X1,Y1)和最后一个(Xn,Yn)坐标来定义极限监测的有效值范围。有效值范围的函数计算和监测在写和读方向进行(读过程数据:X -> Y,写过程数据:Y -> X)。

例子:

FS=40,30;100,50;140,80;160,110

原始值的有效值范围为40至160。对于过程值,30到110。

pviprocessfunctionlin2

指定的函数必须能够反转,即在有效值范围内 "严格单调地增加 "或 "严格单调地减少"。