I’ve done a test. In my driver I generated Tags from all subcodes like this:
for (StatusCode.SubCode c : StatusCode.SubCode.values()) {
… generate tags with respective subcodes …
}
However, only a bunch of subcodes are recognized by Ignition (translated from OPC UA to Ignition Quality).
- Bad_ConfigurationError -> Config Error (4)
- Bad_DataUnavailable -> Bad Quality (0)
- Bad_NoData Available -> Bad Quality (0)
- Bad_NotConnected -> Not Connected (8)
- Bad_NotFound -> Not Found (404)
- Bad_ServerNotConnected -> Not Connected (8)
- Bad_ShelvingTimeOutOfRange -> Demo Expired (900)
- Bad_UserAccessDenied -> Access Denied (403)
- Uncertain_LastUsableValue -> Uncertain (showing last value) (68)
- Uncertain_NoCommunicationLastUsableValue -> Uncertain (showing last value) (68)
Other codes are translated to Unknown (600)
According to this document:
http://docs.inductiveautomation.com/display/DOC79/Tag+Quality+and+Overlays
other codes should be supported like: SENSOR_BAD (80), SUB_NORMAL (88), …
I would also need Uncertain_SubstituteValue to be supported at least.
This is important to translate Quality from IEC protocols.
Is it possible to extend or customize the translation from OPC Quality to Ignition Quality?