The I/O Feature
- Last UpdatedMay 22, 2024
- 3 minute read
The I/O Feature allows you to configure all aspects of data input and output for an attribute.
You can configure I/O type and you can specify input sources and output destinations. The I/O types you can specify are:
-
Read (Input): See Configure I/O as read-only.
-
Read/Write (InputOutput): See Configure I/O as read/write.
-
Write (Output): See Configure I/O as write-only.
You can also configure advanced properties, described in the following table. The attribute’s data type and I/O type determine what Advanced I/O properties are available.
|
I/O Feature Advanced Property |
Description |
|---|---|
|
Buffered |
Enable buffered data to propagate to data subscribers the entire subset of values accumulated within a single scan cycle. Buffering data ensures that if a given attribute changes its value several times during a single scan cycle, there is no folding of data, which occurs when an accumulation of values of multiple data changes within a single scan are overwritten and only the latest value is stored. Note: If Galaxy-wide buffering is enabled, you cannot enable (or disable) buffering for individual attributes. With Galaxy-wide buffering, all attributes are buffered. See Auto-buffering for additional information. |
|
Deadband |
Specify the minimum amount by which a value must vary in order for the attribute to register a change, for example, by triggering an alarm, historizing an alarm or event, or triggering a script. The Deadband property is not available for string data types. |
|
Reflect input to output |
Enable to propagate an input value to an output destination. Enabling automatically disables the Output destination differs from input source option. Typically, set this option when you want to read an input from one source, manipulate its value in a script, and send the manipulated value to a different destination address, all during a single scan of an object. For more information, see Use Read/Write I/O in Scripts. Available only when the I/O type is Read/Write. You must set separate Read from and Write to properties. |
|
Output every scan |
Available only when Reflect input to output is selected. Write to the specified output destination occurs even when there has been no state or data change since the previous scan. The timestamp is not updated if there has been no state or data change since the previous scan. |
|
Enable I/O scaling |
Enables scaling between the raw value and the Engineering Units (EU) value. Scaling is the process of taking raw data from a device and presenting it as an appropriate value for your application. Application Server supports two types of data scaling: linear and square root, described in this table. Available only for integer, float, and double data types. |
|
Maximum |
Available only when I/O scaling is enabled. Raw: The raw input maximum to be used in the scaling equation. EU value: The maximum value in engineering units to be used in the scaling equation. Extended EU range: The highest value allowed for the attribute before it is clamped, if clamping is enabled, or set to NaN. This value must be greater than or equal to the specified maximum EU value. |
|
Minimum |
Available only when I/O scaling is enabled. Raw: The raw input minimum to be used in the scaling equation. EU value: The minimum value in engineering units to be used in the scaling equation. Extended EU range: The lowest value allowed for the attribute before it is clamped, if clamping is enabled, or set to NaN. This value must be less than or equal to the specified minimum EU value. |
|
Conversion mode |
Available only when I/O scaling is enabled. Select Linear or Square Root conversion mode from the list. Linear: Typically converts directly from one value scale and type (raw) to another value scale and type (EU). ScaledValue = ((RawValue-RawMin)/(RawMax-RawMin) * (EngUnitsMax-EngUnitsMin)) + EngUnitsMin Square Root: Provides more precise scaling, typically used when the raw value is too large to be usefully scaled to an EU. ScaledValue = sqrt((RawValue-RawMin)/(RawMax-RawMin)) If RawValue < RawMin, then ScaledValue = (sqrt(RawMin) * (EngUnitsMax-EngUnitsMin)) + EngUnitsMin |
|
Clamp input to EU range |
Available only when I/O scaling is enabled. If enabled, the scaling calculation result is clamped at either the maximum EU range value or the minimum EU range value, and the attribute quality is set to Uncertain. If not enabled, and the attribute value exceeds the EU range, then the value will continue to scale out of range, and the quality is set to Bad. |