After exporting some quarantined tags from the 'Store & Forward', fixing the issues that were causing them to not be committed to the Historian DB (was due to 0x00 bytes in strings that the UTF-8 postgres DB didn't like, fixed by removing the badly behaving tags) and then reimporting the fixed XML I noticed some issues with "corrupted" tag values that would momentarily spike to extremely high values in exported tag data.
Inspecting the original exported quarantine.xml more in detail, I noticed that the issue is that the export is in US locale, but the import seems to expect EU locale, which lead to issues in the deserialization since it expects comma as decimal separator and period as thousands separator, e.g:
- integer values like '1,455' are deserialized and committed as '1' in the DB.
- float values like '0.4000000059604645' are deserialized and committed as '4000000059604645.0' in the DB.
To fix this corrupted data I had to create a script to manually go through all the problematic rows in the DB and replace the corrupted values with the correct ones from the original export after fixing the locale because the normal import doesn't allow (tagid, t_stamp) duplicates.
Searching other threads, I found mention of this locale issue in other parts of Ignition, but this specific case may have been missed.
Gateway version: 8.1.41
Tag Historian version: 4.1.41
Edit: mixed up the import and export, it's the export that is in US locale and the import that expects EU locale. Fixed that now.