Applies To:
  • CitectSCADA 7.00

When trying to read tag information, a blank string is returned and an undocumented error is set (read by the IsError function). 

These error codes can be found in hardalm.dbf in the System project:
423 Subscription value is pending
424 Tag not found
432 Property not ready

The TagGetProperty, TagGetScale, and AssGetProperty functions request tag information from the I/O server instead of reading it directly from the project files like the deprecated TagInfo function did. They can either return the locally cached value or wait for the server to return the latest value (recommended). When calling these functions from foreground Cicode, the cached value must be used to avoid blocking the thread. However, if the value has not been read and cached locally yet, the value will be requested from the server asynchronously, error 432 will be set, and a blank string will be returned. Once the server returns the value, it will be cached locally and will be available for subsequent requests. Individual properties are only read as needed. For example, subscribing to a tag will not cause all the properties of that tag to be cached.

These errors can be suppressed with the ErrSet(1) command. Or, use these as yet undocumented Cicode functions from the Include project:

TagGetPropertyForeground(STRING sName, STRING sProperty)
TagGetScaleForeground(STRING sName, INT iPercent, INT iEngUnits)
AssGetPropertyForeground(INT iArg, STRING sProperty)

These functions will suppress errors 423 and 432, simply returning a blank string if the property is not available.