If you've ever seen Ignition 8 Quality codes that look unfamiliar (i.e., not listed in this IA docs page), in our module message payloads, when scripting in Ignition, etc., you may need to do further decoding.

To get the specific subcode you must look only at the lower 16 bits of the QualityCode 32 bit Integer.

Please note that our Cirrus Link modules often optimize Sparkplug payloads by excluding Good tag qualities from a payload. If you see a Sparkplug payload that is missing the tag quality, it should be assumed to be Good.

See Ignition Java docs here for more details.

Below is a table of decoded Ignition 8 Quality codes (Python script below that was used to generate this list on Ignition 8.1.13)

QualityCodeIgnition Subcode
Good_Unspecified00
Good_WritePending22
Good192192
Good_Provisional200200
Good_Initial201201
Good_Overload202202
Good_Backfill203203
Uncertain1073742080256
Uncertain_LastKnownValue1073742081257
Uncertain_InitialValue1073742082258
Uncertain_DataSubNormal1073742083259
Uncertain_EngineeringUnitsExceeded1073742084260
Uncertain_IncompleteOperation1073742085261
Bad-2147483136512
Bad_Unauthorized-2147483135513
Bad_AccessDenied-2147483134514
Bad_Disabled-2147483133515
Bad_Stale-2147483132516
Bad_TrialExpired-2147483131517
Bad_LicenseExceeded-2147483130518
Bad_NotFound-2147483129519
Bad_ReferenceNotFound-2147483128520
Bad_AggregateNotFound-2147483127521
Bad_NotConnected-2147483126522
Bad_GatewayCommOff-2147483125523
Bad_OutOfRange-2147483124524
Bad_DatabaseNotConnected-2147483123525
Bad_ReadOnly-2147483122526
Bad_Failure-2147483121527
Bad_Unsupported-2147483120528
Error-1073741056768
Error_Configuration-1073741055769
Error_ExpressionEval-1073741054770
Error_TagExecution-1073741053771
Error_TypeConversion-1073741052772
Error_DatabaseQuery-1073741051773
Error_IO-1073741050774
Error_TimeoutExpired-1073741049775
Error_Exception-1073741048776
Error_InvalidPathSyntax-1073741047777
Error_Formatting-1073741046778
Error_ScriptEval-1073741045779
Error_CycleDetected-1073741044780


Cirrus Link provides these scripts as examples only, they are not supported or guaranteed to meet any particular functionality. Cirrus Link cannot provide any assistance to modify these scripts to meet a particular need.
# Cirrus Link provides these scripts as examples only, they are not supported or guaranteed to meet any particular functionality. Cirrus Link cannot provide any assistance to modify these scripts to meet a particular need.

from com.inductiveautomation.ignition.common.model.values import QualityCode

codesAsJson = QualityCode.getCodesJson()
print codesAsJson

for code in codesAsJson:
	print "%s, %s, %s" % (codesAsJson[code], code, int(code) & 0xFFFF)
  • No labels