I have a historical transaction group that records data from a MODBUS interface. If that device is not on or communication is problematic I would like the data to record as ‘null’ in the database. I see the null value in the tag browser however the value shows ‘bad quality’ in the transaction group but gets recorded as zero in the db. Is ther a way to force it to record null as the value?
The reason I would need the null values is because a 3rd party tool will be using the data and we would like to know when there were was no data vs zero values which is a legal value for quality purposes. Is my only option to rely on the quality code for that particular group meaning I should partition per device\comm channel.
Did Ignition create your database table? If not, does your table allow NULLs for each column?
Ignition did create the db tables and all of the columns allow for nulls which is the default value except for the auto increment index (also created by ignition).
Right now there is no way to force the group to right a null value when a tag’s quality is bad. I’ll add this as a feature request and see if we can get an option added to the groups that allow you to choose whether a 0 or null is logged in cases of bad quality.
You might try an expression item to the group that checked the quality of the tag in question and then either returned the tag value if the quality was good or null if it was bad. You could then log the expression item instead of the actual tag. The only problem with this is that you’d essentially have double the items in your groups which could lead to confusion.