缩放值

<< 点击显示目录 >>

主页  PVI通信 > PVI帮助信息 > PVI Services > Communication classes > Variable class >

缩放值

缩放值是在 缩放 类 的帮助下完成的  。因此,它是通过给这个类分配一个实例来定义的。然后每个变量对象都接受 缩放 属性。

Variable variable = new Variable(this.service,"clientVariable");
// 通过分配一个新的缩放实例进行缩放
variable.Scaling = new Scaling();
variable.Connect(ConnectionType.Link);

一个缩放对象提供四种不同的缩放方式。

按系数缩放

构建:

  Scaling ( Value factor ); Variable variable = new Variable(this.service,"clientVariable");
// 通过分配一个新的缩放实例进行缩放
variable.Scaling = new Scaling();
variable.Connect(ConnectionType.Link);

例子:

variable.Scaling = new Scaling(10);

使用一个系数进行缩放,将变量的测量值乘以该系数.

重要的是
如果在缩放Integer类型的变量时返回带有小数位的结果,那么必须使用DataType属性设置变量或值对象的数据类型。
variable.Value.DataType = DataType.Single。

重要的是
DataType属性只能为链接变量对象设置!

缩放对象的 因子 属性可以用来在任何时候改变因子。然后必须用  变量类的WriteScaling 方法 启用 "新 "因子值

variable.Scaling.Factor = 20;
variable.WriteScaling();

缩放为极限值监测

构建:

Scaling ( Value minValue, Value maxValue );

例子:

variable.Scaling = new Scaling(1,1000);

用MinValue和MaxValue来限制一个数值范围,可以在读和写两个方向上限制测量值。写入时超过任何一个极限值都会导致错误事件。

与缩放系数一样,以这种方式缩放时的极限值也可以在任何时候改变。

 

variable.Scaling.MinValue = -150;
variable.Scaling.MaxValue = 300;
variable.WriteScaling();

结合极限值和因子的比例

构建:

Scaling ( Value minValue, Value maxValue, Value factor );

例子:

variable.Scaling = new Scaling(-250,750,10);

结合极限值和缩放因子,一方面可以限制变量的原始值,另一方面可以用因子进行计算。对 MinValueMaxValueFactor 属性 改变  只有在  调用WriteScaling 方法 后才会生效  。

使用数据点进行缩放

构造:

Scaling ( ScalingPointCollection scalingPoints );

构建ScalingPoint对象:

ScalingPoint ( Value xValue, Value yValue );

例子:

// 生成一个ScalingPointCollection对象
ScalingPointCollection scalingPoints = new ScalingPointCollection();
scalingPoints.Add(new ScalingPoint(40,30));
scalingPoints.Add(new ScalingPoint(100,50));
scalingPoints.Add(new ScalingPoint(140,80));
// 生成缩放对象
variable.Scaling = new Scaling(scalingPoints);

用X和Y坐标定义各种缩放点(ScalingPoint),将原始值转换为应用值。Y值代表应用侧的值,而X值代表控制器侧的值。各个数据点被分组在ScalingPointCollection对象中(Add()),并在变量的缩放对象中定义。这里也可以改变配置的缩放比例。

 

// 生成一个新的ScalingPointCollection对象
ScalingPointCollection newScalingPoints = new ScalingPointCollection();
newScalingPoints.Add(new ScalingPoint(50,30));
newScalingPoints.Add(new ScalingPoint(120,60));
newScalingPoints.Add(new ScalingPoint(130,80));
newScalingPoints.Add(new ScalingPoint(170,110));
// 生成缩放对象
variable.Scaling.ScalingPoints = newScalingPoints;
variable.WriteScaling();

 

注意
缩放属性的默认值是0,如果你想进行缩放操作,必须在调用Connect()方法之前设置。如果在进行连接时缺少缩放信息,但以后可以设置,那么该属性应该在调用
连接时缺少缩放信息,但以后可以进行设置,那么该属性应该被初始化,如下所示。
variable.Scaling = new Scaling();