CitectSCADA uses numeric index values to uniquely identify the variable tags in a project. They are used as a reference point when requesting data from the I/O Server for a tag-based driver.
These index values are automatically generated when a project is compiled. Circumstances may arise where a distributed project has index values that represent different tag addresses on different computers. For this reason, CitectSCADA has a number of automatic checks in place that validate a project's tag index values and flag any discrepancies.
An initial security check takes place on client machines at a unit level, allowing a tag index mismatch to be isolated to a particular client before any requests are sent to the I/O Server. This confirms that the unit address, the unit type, the raw data type and the tag address match for index values across the client and server machines. Any discrepancies found are flagged by a hardware alarm on the client machine.
Each page is also checked to confirm that it was compiled against the current version of the variables database. There is also a check performed whenever a tag-based driver loads the variable database to test whether it matches the current tag addresses. The parameter TagAddressNoCase allows you to adjust the case-sensitivity of these checks.
In addition, CitectSCADA will also check if a project is currently running on the local machine when a compile is attempted, as this is one of the circumstances that may lead to mismatched index values.
If the project uses a tag-based driver and is currently in runtime, CitectSCADA will stop the compiler and generate an error in the error database noting that Citect32.exe was still running. The .ini parameter [General]CitectRunningCheck allows you to override this feature, however it is recommended that you leave it enabled so that your tag index values are assigned as intended.