RedundantDIObject overview
- Last UpdatedJul 19, 2024
- 3 minute read
The RedundantDIObject is a DeviceIntegration object that makes redundant connections to a field device possible. If one of the source objects is unable to provide connection to the field device, the RedundantDIObject automatically switches to the other source object for continued data acquisition.
The RedundantDIObject determines that a data source is in Bad state when:
-
the ConnectionStatus attribute, common to all DIObjects, is Disconnected,
-
the ProtocolFailureReasonCode attribute is non-zero, indicating a failure in communication between a DAS DIObject and a field device,
-
the ScanState attribute, common to all ApplicationObjects, is Offscan, or
-
the Scan-Group Ping-Item status of the active source is not as good as the Scan-Group Ping-Item status of the standby source.
When the active data source is in a Bad state, a switchover attempt is made to the standby data source.
There is a one-to-two relationship between an instance of a RedundantDIObject and a pair of source DeviceIntegration objects.
The RedundantDIObject supports the following operations on I/O points from field devices:
-
Subscriptions, which are implemented via scan groups. For more information, see RedundantDIObject Scan Group tab.
-
Read transactions, which are implemented via block reads (when available in the source DIObject). For more information, see Block read configuration.
-
Write transactions, which are implemented via block writes (when available in the source DIObject). For more information, see Block write configuration.
Most ApplicationObjects in the ArchestrA environment write only the last data received in a scan cycle. DeviceIntegrationObjects, including the RedundantDIObject, operate differently. They queue all data received in a scan cycle and write them all in the order received.
If the quality of an attribute changes, but a new value is not received from the data provider, the current time is used to update the time stamp of the attribute.
The two source DIObjects do not have to be the same type. But they must support the same type of DAGroups and must have the same item address space.
Important! The RedundantDIObject checks the state of its source DIObjects on every scan cycle.
During configuration, one DIObject is set as the Primary DI source and the other is set as Backup DI source. These are just the starting points. During runtime, the terms Active and Standby apply, the configured Primary object initially being the Active object (if able to provide connection to the field device) and the configured Backup object initially being the Standby. If the connection to the Active object fails, then the Standby becomes the Active one and the other becomes the Standby. This switching between Active and Standby objects can be repeated multiple times depending on the configured switch attributes.
For complete redundancy coverage, the RedundantDIObject must be configured to have the DAGroups that are common to both source DIObjects. When the connection fails to the Active DIObject, all items are unsubscribed from the Active DIObject and new subscriptions are made to the Standby DIObject. If either DIObject has unique DAGroups, it is important that the RedundantDIObject should not be configured to use those uncommon DAGroups.
RedundantDIObjects belong to a family of objects called DINetwork objects.
For more information about this object and its place in the ArchestrA redundancy infrastructure as well as general information on objects, including relationships, deployment, and alarm distribution, see the Integrated Development Environment (IDE) documentation. You can access the IDE Help (IDE.chm) from within the IDE by clicking Help Topics on the Help menu.