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?
