| Volume pwrb | |
| Attributes: Runtime | Development | System | Template | Detail C Binding: Struct | Class  ClassTree | INDEX NO INDEX |
Class ChanAi
|
||
|---|---|---|
| Version | 1.0 | |
| Modified | 15-JAN-2025 13:23:35.00 | |
Configures an analog input channel independent of the type of physical Ai-card. The conversion from signal value to actual value is done by polynomials. Figure below shows the steps in Ai-signal conversion and attributes of interest. The internal filtering concerns local Ai signals, i.e remote Ai-signals are not affected.

Quantities of Importance for Handling Ai Signals
SigValue is converted to ActualValue via sensor
function s, sensor polynomial p and filter function f
according to,
ActualValue = f ( p( s(SigValue) ) ) , where
the choice of
-- sensor function s, is determined by SensorTypeCode
-- sensor polynomial p, is determined by SensorPolyType
-- filter function f, is determined by FilterType in Ai object
For linear conversion the conversion from rawvalue to engineering value can be
specified by four ranges
- raw value range RawValRangeLow - RawValRangeHigh
- channel signal value range ChannelSigValRangeLow - ChannelSigValRangeHigh
- sensor signal value range SensorSigValRangeLow - SensorSigValRangeHigh
- actual value range ActValRangeLow - ActValRangeHigh
Raw value is the value read by the card or received from the bus. This converted to
the signal value of the channel, typically +/-10 V, +/-5 V or +/-20 mA. The part of
this range that is actually utilized by the sensor, that could be for example 4-20 mA
is then converted to engineering unit.

Hints
ChanAi objects are configured below a suitable card object. Rack and card objects to different I/O systems are documented separately. To create card object with channel objects belonging to it the function 'Configure Card' in "Utility Window" is recommended.Object graph

See also
| RtBody attributes pwr_sClass_ChanAi | |||
|---|---|---|---|
| String80 | Description | Optional text, for example to describe the channel or its employment. |
|
| AttrRef | SigChanCon | Name of a signal object, i.e. Ai object, connected with the channel object. |
|
| String80 | Identity | The identity of the channel. Optional, for example Ai0 to denote the first channel, physical cable marking, etc. |
|
| UInt16 | Number | The Number attribute is used to associate the ChanAi object to a fixed channel on the card named by SigChanCon. The physical channels of the card are numbered in the interval {0,1, ... , (MaxNoOfChannels-1)}, where MaxNoOfChannels is an attribute in the card object. The channels of the card are numbered according to the instructions of the card manufacturer. |
|
| Boolean | ConversionOn | Specifies if the RawValue should be updated or not. FALSE means no updating; TRUE means that RawValue should be updated at the period of ScanInterval. |
|
| UInt32 | ScanInterval | Specifies, in relation to the period T0, how often RawValue will be read in and converted to ActualValue. The IO job handles local Ai-signals by the period T0 = CycleTimeBus and remote signals by the period T0 = CycleTimeSerial; see IOHandler). ScanInterval have to be >= 1. RawValue will be updated by the period: ScanInterval * T0. |
|
| Boolean | CalculateNewCoef | ||
| Float32 | RawValRangeLow | The Low and High values of RawValRange specifies the raw value range of the channel. |
|
| Float32 | RawValRangeHigh | ||
| Float32 | ChannelSigValRangeLow | The Low and High values of ChannelSigValRange specifies the signal range of the channel. |
|
| Float32 | ChannelSigValRangeHigh | ||
| Float32 | SigValPolyCoef0 | ||
| Float32 | SigValPolyCoef1 | ||
| String16 | SigValueUnit | Engineering unit for SigValue, for example Voltage. | |
| UInt16 | SensorTypeCode | Obsolete. | |
| AiSensorTypeEnum | SensorPolyType | Specifies in which way SigValue will be converted to ActualValue. The possible types of conversions are: 0 No conversion 1 Linerar converson. 2 Parabolic conversion. 3 Squareroot conversion. 4 Signed squareroot conversion. |
|
| Float32 | SensorPolyCoef0 | The constant term in a SensorPolyType expression; see above. |
|
| Float32 | SensorPolyCoef1 | ||
| Float32 | SensorPolyCoef2 | ||
| Float32 | SensorSigValRangeLow | The Low and High values of SensorSigValRange specifies the part of the ChannelSigValRange that is used by the sensor. For example, the channel can have a signal range of -20 - 20 mA but the sensor only utilizes 4 - 20 mA. |
|
| Float32 | SensorSigValRangeHigh | ||
| Float32 | ActValRangeLow | The Low and High values of ActValRange specifies the range of the ActualValue of the signal. These values are correlated to the SensorSigValRange. |
|
| Float32 | ActValRangeHigh | ||
| DataRepEnum | Representation | Specifies the data representation of the raw value. | |
| Template Object | |
|---|---|
| ConversionOn | 1 |
| ScanInterval | 1 |
| SensorTypeCode | 0 |
| SensorPolyType | 1 |
| ActValRangeLow | -100 |
| ActValRangeHigh | 100 |
| ChannelSigValRangeLow | -10 |
| ChannelSigValRangeHigh | 10 |
| SensorSigValRangeLow | -10 |
| SensorSigValRangeHigh | 10 |
| SigValueUnit | V |
| Description Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | String80 | |
| Flags | ||
| Body | RtBody | |
Optional text, for example to describe the channel or its employment.
| SigChanCon Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | AttrRef | |
| Flags | STATE | INVISIBLE | |
| Body | RtBody | |
Name of a signal object, i.e. Ai object, connected with the channel object.
| Identity Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | String80 | |
| Flags | ||
| Body | RtBody | |
The identity of the channel. Optional, for example Ai0 to denote the first channel, physical cable marking, etc.
| Number Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | UInt16 | |
| Flags | ||
| Body | RtBody | |
The Number attribute is used to associate the ChanAi
object to a fixed channel on the card named by
SigChanCon. The physical channels of the card are
numbered in the interval {0,1, ... , (MaxNoOfChannels-1)},
where MaxNoOfChannels is an attribute in the card
object.
The channels of the card are numbered according to the
instructions of the card manufacturer.
| ConversionOn Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Boolean | |
| Flags | ||
| Body | RtBody | |
Specifies if the RawValue should be updated or not. FALSE means no updating; TRUE means that RawValue should be updated at the period of ScanInterval.
| ScanInterval Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | UInt32 | |
| Flags | ||
| Body | RtBody | |
Specifies, in relation to the period T0, how often RawValue will be read in and converted to ActualValue. The IO job handles local Ai-signals by the period T0 = CycleTimeBus and remote signals by the period T0 = CycleTimeSerial; see IOHandler). ScanInterval have to be >= 1. RawValue will be updated by the period: ScanInterval * T0.
| CalculateNewCoef Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Boolean | |
| Flags | ||
| Body | RtBody | |
| RawValRangeLow Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
The Low and High values of RawValRange specifies the raw value range of the channel.
| RawValRangeHigh Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
| ChannelSigValRangeLow Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
The Low and High values of ChannelSigValRange specifies the signal range of the channel.
| ChannelSigValRangeHigh Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
| SigValPolyCoef0 Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | INVISIBLE | STATE | |
| Body | RtBody | |
| SigValPolyCoef1 Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | INVISIBLE | STATE | |
| Body | RtBody | |
| SigValueUnit Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | String16 | |
| Flags | ||
| Body | RtBody | |
Engineering unit for SigValue, for example Voltage.
| SensorTypeCode Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | UInt16 | |
| Flags | ||
| Body | RtBody | |
Obsolete.
| SensorPolyType Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | AiSensorTypeEnum | |
| Flags | ||
| Body | RtBody | |
Specifies in which way SigValue will be converted to ActualValue. The possible types of conversions are: 0 No conversion 1 Linerar converson. 2 Parabolic conversion. 3 Squareroot conversion. 4 Signed squareroot conversion.
| SensorPolyCoef0 Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
The constant term in a SensorPolyType expression; see above.
| SensorPolyCoef1 Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
| SensorPolyCoef2 Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
| SensorSigValRangeLow Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
The Low and High values of SensorSigValRange specifies the part of the ChannelSigValRange that is used by the sensor. For example, the channel can have a signal range of -20 - 20 mA but the sensor only utilizes 4 - 20 mA.
| SensorSigValRangeHigh Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
| ActValRangeLow Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
The Low and High values of ActValRange specifies the range of the ActualValue of the signal. These values are correlated to the SensorSigValRange.
| ActValRangeHigh Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | Float32 | |
| Flags | ||
| Body | RtBody | |
| Representation Attribute | ||
|---|---|---|
| Class | Attribute | |
| Type | DataRepEnum | |
| Flags | ||
| Body | RtBody | |
Specifies the data representation of the raw value.