Clustering allows you to group different sets of the runtime components within a single project, allowing multiple independent systems to be monitored and controlled. Many Citect SCADA items require a cluster to be specified in order for them to work correctly. There are countless variations in how a clustered system can be configured. An appropriate configuration will depend on the requirements for the solution to be deployed and the environment in which it is being deployed. For more information see Typical System Scenarios.
When configuring Citect SCADA the following clustering rules apply:
The diagram below is an example of a system running with two clusters across three machines. Every server and client component have been deployed in accordance with the clustering rules.
The next diagram demonstrates circumstances where clustering is not configured correctly.
The Citect SCADA compiler or the Citect SCADA Runtime Manager detects when the rules of clustering are not being observed and advises the user accordingly.
The Cluster Name can either be explicitly specified when the item is called or displayed, or an item can use the default cluster context of the calling process or page. If your system has only one cluster, you don't need to specify a cluster name. Single cluster systems always use that cluster and will not require the use of cluster prefixes.
Cluster context, therefore, is the default cluster used for tag resolution and execution of expressions and Cicode functions. Citect SCADA will automatically resolve tags without a cluster context if every tag name in the project is unique.
In the case of tags and tag references, a cluster is explicitly supplied by prefixing the tag name or tag reference with the cluster name. For built-in Cicode functions ClusterName is usually an optional parameter. Variable Tags referenced in an Alarms, Reports or Trends Server context are implicitly resolved to that cluster unless explicitly stated otherwise using a cluster prefix such as ClusterName.TagName.
Server processes (Alarm, Trend, Report) have their default cluster context set to their own cluster, so that, for example, Alarm definitions that contain variable tags without clusters explicitly supplied will attempt to resolve those tags to their own cluster. Cicode tasks started from server code will inherit the servers cluster unless one is explicitly given. For built-in Cicode functions ClusterName is usually an optional parameter.
Graphics pages have no cluster context by default. A page's cluster can be supplied statically in the page appearance properties, can be inherited from a previous context, or can be applied dynamically using an optional parameter in the Cicode function that displayed the page. Any Cicode tasks started from a page will inherit the cluster context of that page. Graphics pages have no default cluster and will not inherit context in multi-cluster systems by default.
The TaskNew Cicode function inherits the caller's (either page or task) cluster context unless explicitly overridden.
Citect SCADA will allow tags or tag references without a cluster context specified to be automatically resolved if every tag name in the project is unique. This means if you use a unique naming convention for your tags, you will be able to configure a multi-clustered system without having to specify cluster context. For any tags that are not unique, #COM will be displayed if cluster context cannot be determined.
Note: This capability is enabled by default via the parameter
See Also
Published June 2018