1. Home
  2. Controller
  3. Controller Overview

Controller Overview

The controller table defines each physical controller along with controller scoped options.

An S88 Builder Solution must contain at least one Process Controller, PRC, and one Equipment Controller, EQC, or a combination controller, PREQC.

The process controller controls process objects such as Phases, Units and EMs.

The equipment controller controls real world equipment such as CMs, Instruments and Vessels.

A combination controller combines the logic of the other two types to control all objects.


Watch and Listen: Controller (coming soon)


Name A unique name to identify this controller from other tables.
Class Select the class of controller based on one of the 3 classes just described.
Studio Alias A unique RSLinx Classic OPC Topic name for S88Builder Studio to use to communicate with this controller.

This name must be unique for all S88 Builder solutions because it will be used for all team members that may be working on multiple S88 Builder solutions.

HMI Alias Similar to the Studio Alias except for use by the HMI. This is downloaded into the controller tags so the HMI knows where to access child elements of an object.
Equipment Controllers List of subordinate EQC controllers that this process controller depends on.

An EQC may belong to multiple PRCs.  A combination controller doesn’t require but may have equipment controllers.

{object} Max Every group of objects has a maximum setting which specifies how many elements to reserve for objects of that type.  All objects are shared with all controllers so this settings insures a spot for each object in each controller.  Any object defined outside this range will not be scanned.

It is very important that this value be large enough to hold all existing and future objects.  Changing this after the project is started will require stopping all equipment and re-downloading this table.  Since there is only 1 controller in this example these maximums may be changed without affecting any running equipment.

CM Classes CMs are unique as compared to other objects in that they require unique arrays and logic for each class of CM so you must specify how much of the CM Max will be used for each class.

This column allows the CMs to be designated for each class by specifying the array size of each.  Only the classes expected to be used by this controller are required although new classes may be added to the end without affecting running logic as long as it falls within the CM Max count.   The sum of all CM Classes must be less than the CM Max.  It is a good idea to leave 20% or more spare room in each class and undefined CMs for future expansion.  Changing any of these sizes other than the last will require stopping all equipment and re-downloading all Controllers, CMs, Instruments, Vessels, Units, EMs, and Process Conditions.  It is also critical that the array size for each class in the controller be larger than the size specified here.  It is good to set the controller size to at least 20% larger than this size since that cannot be changed without re-downloading the program.

Expressions All expressions are downloaded from the controller table so this column shows how many expressions currently exists as defined in the entire solution.  It is critical that this table be downloaded if expressions are edited from anywhere.  The maximum number of expressions are limited by the size of the Exprs array in the controller.
Slot Specifies the Rack and Slot number that holds this controller.  This setting is not currently used but will be used to automatically setup the communications between controllers and abnormal conditions.
ID A unique ID for each controller.  ID 1 is the first controller and should be a process controller.  It is good practice not to skip any IDs but you can to preserve room for future controllers.

Note: This first row should never be deleted because other tables depend on it.  If this controller is no longer used than either comment it as obsolete or redefine it.

Options Controller scoped options (see below)


Controller Options

Scanning Objects in S88 Builder are not scanned continuously because that would take too much processing time.  Instead they are scanned at a rate specified on each object.   For example on the 1st controller scan perhaps only 20% of the CMs are scanned.  On the next scan the next another 20% are scanned and so on.  The scan decisions are based on specified scan rates and overall scan times and activity around the object.
Max Scan Sets the maximum allowed controller overall scan time.  Once the overall scan time exceeds this value then individual object scans will switch to their max rates.  This helps keep the controller scan time from going to long.  If a system is sized right by delegating the control to multiple controllers then the max scan time will not come into play.
{object} Max Scan Time (ms) Most objects also have a max scan time which refers to the time the controller overall scan spends on that object type.  For example the CM Max Scan time is 150ms which means once the controller has spent 150ms processing CMs it will switch to using the CMs max scan rate to determine which CMs to scan to help reduce the overall scan time.
{object} Sleep Rate Most object will fall asleep after a few seconds of inactivity which means they will be scanned at a much reduced rate.  All objects of a type share the same sleep rate but each object defines its own active scan rate.  These values should be left at defaults until all equipment has been configured so the effects of faster scanning can be realized.  It is also important to set this after the active scan times have been set at full production rates to know what time is available to sleeping objects.
{object} Sleep Max Rate If the overall scan time has exceeded the specified limit then the sleep max rate will be used instead of the sleep rate.
Updated on December 11, 2018

Related Articles

Password Protected