GEI - Mark VIe Control Legacy Block Library
GEI - Mark VIe Control Legacy Block Library
Updated Legacy Status to explain that these blocks are supported but not recommended for use in
any new controller applications. They are legacy because no new development is to be done to add
H Replacement Blocks any new functionality to these blocks. In many cases there is a newer block that is preferred for use
as a replacement for these blocks, as listed in the table. Updated this table to explain why there are
or are not replacement blocks.
Contents
Introduction......................................................................................................................................................3
Changing Variant Block Data Types ...................................................................................................................5
Replacement Blocks .......................................................................................................................................6
Analog to Word Conversion (ANA_TO_WD) .........................................................................................................8
Bit Counter (BIT_CNTR_UDI) ............................................................................................................................9
Boolean Filter (BFILT) ..................................................................................................................................... 10
Combine (COMBINE_SD)................................................................................................................................ 11
Combine (COMBINE_SR) ................................................................................................................................ 12
Compare with Hysteresis (COMPHYS) ............................................................................................................... 13
Count to Boolean (CNT_TO_BOOL) .................................................................................................................. 14
Counter (COUNTER)....................................................................................................................................... 15
Display State Generator for Unsigned Long (DPYSTAT1_UDI) ............................................................................... 16
Double Analog Linear Interpolation (DALIP00) .................................................................................................... 17
Exit Macro (EX_MAC) .................................................................................................................................... 18
Exit Task (EX_TSK) ........................................................................................................................................ 19
Input Conversion (IN_CVRT) ............................................................................................................................ 20
Mark VIe Monitor (MKVIE_MON) .................................................................................................................... 22
Output Conversion (OUT_CVRT)....................................................................................................................... 24
Output Transfer (OUTXFER)............................................................................................................................. 26
Override Station (OVR_ST)............................................................................................................................... 27
Permissive Toggle Action Engine (PE_Toggle)...................................................................................................... 37
PID (PID_MA) ............................................................................................................................................... 39
Preset Counter (PRESET_CNTR) ....................................................................................................................... 73
Ramp (RAMP)................................................................................................................................................ 74
Ramp with Hold (RAMPH) ............................................................................................................................... 76
Split (SPLIT_DS) ............................................................................................................................................ 78
Split (SPLIT_RS) ............................................................................................................................................ 79
Timer Unsigned Short (TIMER_UI) .................................................................................................................... 80
Word to Analog Conversion (WD_TO_ANA) ....................................................................................................... 81
Note Pin names are given modifiers that provide additional information about the pin.
A graphical representation of the software for each block is provided in the form of a block diagram that includes the simple
block name and block configuration pins and variable pins, which transfer data in and out of the block. The pins are located
on the block diagram according to their usage. All input pins (pins read by the block) and block configuration pins are listed
on the left. All output pins (pins written by the block) and state pins (pins read and written by the block) are listed on the
right. The pin name is listed beside each pin inside the block diagram border.
Note The Block Data Type is set in the block Property Editor.
The pin data type identifier is listed beside the pin outside of the block diagram border. The basic data types used in the block
libraries are BOOL, INT, UINT, REAL, LREAL, DINT and UDINT. Blocks with data types ANY_NUM and ANY must have
the Block Data Type set to match the intended data type of the block output.
Note The default value of Boolean inputs is False unless the input is a block Enable, in which case the default is True and
the default value of inputs with data types INT, UINT, DINT, UDINT, REAL and LREAL is 0, until otherwise specified.
The block content provides tables to define the input and output pins. Each entry includes the block name for the variable,
basic data type, typical scaling units, and a description of the variable. Typical scaling units are supplied for reference only;
specific applications may use other scaling units as appropriate.
Replacement
Legacy Block Description Reason for No Replacement
Block
Concatenates two unsigned integers to This block was intended to process special I/O
COMBINE_SD None
make an unsigned double integer types. I/O packs perform this function if needed.
DALIP00 None Double analog linear interpolation INTERP_DL performs a similar function.
EX_MAC None Exit macro It exists (for upgrades only) in the Mark VIe
controller. The block cannot be added from the
ToolboxST application after V03.06.09C. The
EX_TSK None Exit task
functionality is provided by Enable pins.
Convert coded (BCD,GRAY,BINARY) This block was intended to process special I/O
IN_CVRT None
decimal booleans to a long integer types. I/O packs perform this function if needed.
Convert coded (BCD,GRAY,BINARY) This block was intended to process special I/O
OUT_CVRT None
long integer into booleans types. I/O packs perform this function if needed.
Replacement
Legacy Block Description Reason for No Replacement
Block
Split one unsigned double integer into two This block was intended to process special I/O
SPLIT_DS None
unsigned integers types. I/O packs perform this function if needed.
Convert one real input into two unsigned This block was intended to process special I/O
SPLIT_RS None
integers types. I/O packs perform this function if needed.
Converts up to 32 unsigned integer inputs This block was intended to process special I/O
WD_TO_ANA None
to analog type outputs types. I/O packs perform this function if needed.
ANA_TO_WD Block
Inputs
Name Data Type Description
ENABLE Boolean Enables block execution
IN1 Numeric Analog input value1
↓ ↓ ↓
IN32 Numeric Analog input value2
Outputs
Name Data Type Description
OUT1 Unsigned integer Converted output variable
↓ ↓ ↓
OUT32 Unsigned integer Converted output variable
BIT_CNTR_UDI Block
Inputs
Name Data Type Description
IN1 Boolean Boolean signal 1
↓ ↓ ↓
IN32 Boolean Boolean signal 32
Output
Name Data Type Description
OUT Unsigned Double Integer Number of Boolean bits set to True
BFILT Block
Inputs
Name Data Type Description
PU_DEL Unsigned Double Integer Pick-up delay in milliseconds
IN Boolean Identifies the variable to filter
DO_DEL Unsigned Double Integer Drop-out delay in milliseconds
Output
Name Data Type Description
OUT Boolean The filtered output
State
Name Data Type Description
PREVOUT Boolean This is the last filtered output, a hidden pin, It can be viewed or
changed by right-clicking the block and selecting Edit Block Pins.
Writing to this variable is not recommended, but can be used to
preset block states.
COMBINE_SD Block
Inputs
Name Data Type Description
ENABLE Boolean Block enable - Default is True
HIWORD Unsigned Integer The high order 16 bits of data to be concatenated
Output
Name Data Type Description
OUTPUT Unsigned Double Integer The combined unsigned double integer output
COMBINE_SR Block
Inputs
Name Data Type Description
ENABLE Boolean Block enable - Default is True
HIWORD Unsigned Integer The high order 16 bits of data to be concatenated
Output
Name Data Type Description
OUTPUT Real The combined real output
Note This block is a variant block that supports the following block data types: Real and Long Real. To modify the data
type, refer to the section, Changing Variant Block Data Types.
COMPHYS Block
Inputs
Name Data Type Description
IN1 REAL, LREAL The input to compare
FUNC Constant CompFnL_T The comparison function (gt, lt, ge, le, eq). The default value is gt.
IN2 REAL, LREAL The value to compare against
HYST REAL, LREAL The hysteresis value
SENS REAL, LREAL The sensitivity value
Output
Name Data Type Description
CNT_TO_BOOL Block
Input
Name Data Type Description
IN Unsigned Integer Selects a particular output Boolean
Outputs
Name Data Type Description
OUT1 Boolean Contains the results of the selection process
↓ ↓ ↓
COUNTER Block
Inputs
Name Data Type Description
INC Boolean Triggers another count on its rising edge
MAX_CNT Double Integer The maximum count value
RESET Boolean Zeros the counter
RUN Boolean Enables the counter
Outputs
Name Data Type Description
AT_CNT Boolean Indicates the counter has reached the maximum count value
CUR_CNT Double Integer The current count value (always ≤ MAX_CNT)
States
Name Data Type Description
LAST_CURCNT† Double Integer This is the variable that holds the current count. It is a hidden pin that
can be viewed or changed by right-clicking the block and selecting Edit
Block Pins. Writing to this variable is not recommended, but can be
used to preset block states.
LAST_ATCNT Boolean This is the variable that holds the state, indicating the counter has
reached the maximum count value. This is a hidden pin. It can be
viewed or changed by right-clicking the block and selecting Edit Block
Pins. Writing to this variable is not recommended, but can be used to
preset block states.
† Connect the LAST_CURCNT state variable to a NOVRAM variable to retain the counter value through a reboot.
DPYSTAT1_UDI Block
Inputs
Name Data Type Description
INPUT1 Boolean Input Logical 1
↓ ↓ ↓
Output
Name Data Type Description
OUTPUT Unsigned Double Integer Integer Output Value
DALIP00 Block
X Real Input X
Y Real Input Y
XTBL Real Beginning address of X table
YTBL Real Beginning address of Y table
FTBL Real Beginning address of F table
FTBL[0] = f(XTBL[0], YTBL[0]), FTBL[1] = f(XTBL[0], YTBL[1]), FTBL[2] = f(XTBL[0], YTBL[2], …, FTBL
[nYTBL – 1] = f(XTBL[0], YTBL[nYTBL – 1], FTBL[nYTBL] = f(XTBL[1], YTBL[0], …, where nYTBL = the
number of elements in YTBL.
FMIN Real Minimum function table value
FMAX Real Maximum function table value
Output
Name Data Type Description
F Real Function output
EX_MAC Block
Input
Name Data Type Description
ENABLE Boolean Enable the block to exit.
EX_TSK Block
Input
Name Data Type Description
ENABLE Boolean Enable the block to exit.
IN_CVRT Block
Outputs
Name Data Type Description
ERR Boolean True if an invalid coding is detected or if unknown conversion is output
OUT Double Integer The numerical value of the coded Booleans
Legacy Status — this block is not recommended for use in any new controller
applications (ControlST V05.02 or later). Refer to the section Replacement Blocks
for additional information.
Note In the Virtual Controller, the OVERTEMP_R, OVERTEMP_S and OVERTEMP_T are all False because there is no
temperature measurement functionality.
The block detects the current controller configuration (Simplex, Dual, or TMR). According to this configuration, over
temperature alarms OVERTEMP_R, OVERTEMP_S, OVERTEMP_T and controller online variables ONLINE_R, ONLINE_
S, and ONLINE_T are generated for R, S and T respectively. The input ONLINE_FL_T is used to delay the controller online
variables change from True to False in the event the controller heartbeat stops. MKVIE_MON creates global variables that
can be used throughout the controller application software.
Inputs
Name Description Type Initial Value Visibility Usage Interface Type
ONLINE_FL_T Online Fail Time UDINT 5000 Parameter Input Value only
Outputs
Name Description Type Initial Value Visibility Usage Interface
Type
POWER_UP Controller BOOL 0 Always Output Value Only
Powered Up
SIG_FORCED Signal Forced In BOOL False Always Output Value Only
Controller
SIG_FORCED_ Number of Forced INT 0 Always Output Value Only
NUM Signals
OVERTEMP_R R Controller Over BOOL False Always Output Value Only
Temperature
OVERTEMP_S † S Controller Over BOOL False Always Output Value Only
Temperature
OVERTEMP_T †† T Controller Over BOOL False Always Output Value Only
Temperature
† Exists only when the controller’s redundancy is DUAL or TMR.
†† Exists only when the controller’s redundancy is TMR.
Global Variables
Global Pin Name Description Alarm Alarm Event EGD External
Class Page Access
POWER_UP Controller Powered Up Not Alarmed False Read Only
SIG_FORCED Signal Forced In Controller Alarmed Diag False Read Only
OUT_CVRT) Block
Inputs
Name Data Type Description
OUTXFER Block
Inputs
Name Data Type Description
SRCVAR Simple Input variable to be transferred
ENABLE Boolean Block enable pin
Output
Name Data Type Description
DESTVAR Simple Output value
The Override Station (OVR_ST) block controls the output function of PID controllers used in an override control scheme. It
takes inputs from two PID controllers and sets and produces CVO as a control variable output. CVO is determined by the
selection type and/or value of control variable inputs in automatic mode and by the HMI operator in manual mode. Automatic
and manual modes are superseded by override, priority, and inhibit commands with overrides having the highest priority, then
priority commands, followed by inhibit commands. The value of CVO cannot exceed the user specified limits of high (H) and
low (L).
ToolboxST Configuration
OBQ is True when either AO_BQ is True, status of CVI1 is in the BAD range, or status of CVI2 is in the BAD range.
This block propagates quality status. Status option cannot be disabled on this block.
Modes of Operation (MODE_OPT) enumerations control the mode of operation of the OVR_ST block when it is in auto
mode.
MODE_OPT Enumerations
Name Description
SELECT Application code select
MIN Minimum
MAX Maximum
SELECT mode — CVI1 or CVI2 inputs are selected by user-defined logic using SEL1 and SEL2. If CVI1 is selected,
NSEL2 becomes True, and if CVI2 is selected, NSEL1 becomes True. If SEL1 and SEL2 are both False or both True, then
the value of CVI1 is written to CVO, NSEL2 becomes True, and NSEL1 becomes False.
MIN mode — the minimum value of CVI1 and CVI2 is written to CVO. If CVI1 is selected, NSEL2 becomes True, and if
CVI2 is selected, NSEL1 becomes True. If CVI1 and CVI2 are equal, then the value of CVI1 is written to CVO, NSEL2
becomes True, and NSEL1 becomes False.
MAX mode — the maximum value of CVI1 and CVI2 is written to CVO. If CVI1 is selected, NSEL2 becomes True, and if
CVI2 is selected, NSEL1 becomes True. If CVI1 and CVI2 are equal, the value of CVI1 is written to CVO, NSEL2 becomes
True, and NSEL1 becomes False.
BLOCK_OPT Enumerations
Name Description
NONE None
LOCK Lock mode
POS Position feedback
LOCK-POS Lock mode and position feedback
NONE — the valve operates normally by the HMI operator. The options to not effect the normal operation of the block.
Note The lockout indication is provided for indication only. This action will not lockout the equipment, it will only indicate
lockout status. The Owner's lockout procedures must be followed to safely lock equipment out.
LOCK — provides software lock-out capability for the valve. Selecting the LOCK mode property will set LOCK_P to True,
and enable the LOCK_PB and UNLOCK_PB to control the lockout mode functionality. The valve output CVO must be equal
to LOCK_SC (safe condition) before the block can be set to lockout mode. Feedback to the HMI operator of this mode is
provided by LOCK. The HMI operator is prevented from energizing the solenoid operated valve from the control faceplate
when LOCK is True, and auto mode is disabled.
Note The Lock button can also be set up to use the WorkStationST Lock function. Refer to GEI-100697,
WorkstationST/CIMPLICITY Advanced Viewer Integration, the section, HMI Tagout.
POS — select for valves that provide an analog position feedback, which is used by the HMI objects and faceplates to display
the valve open percentage. When the POS enumeration is selected, the output POSFB_P is True.
Override Control
The block provides an override input enumeration, CMD_OVR and a manual reject input enumeration, MJ. When CMD_
OVR indicates Override Active, the value of CVO will be the value assigned to the OV input. The OVR_ST is rejected to
manual when either CMD_OVR or MJ indicate Override Active and the manual reject alarm, MN_REJ_A, will be activated
(delayed by 2 sec).
CMD_OVR and MJ (if used) are driven from an OVERRIDE block. Each connected input of the OVERRIDE block has the
ability (when enabled) to be blocked by the HMI operator, which is accessed from associated tab of the permit HMI screen
display. When CMD_OVR or MJ enumeration contains BLOCK, the HMI operator has blocked at least one override. OVR_
ST does not use the block information, but passes it to the HMI for display. The possible enumerations values are provided in
the following table.
Force Control
The block provides a force enumeration force command input, CMD_FRC. When CMD_FRC indicates Force Active, the
value of CVO will be the value assigned to the FV input except when CMD_OVR indicate Override Active. The OVR_ST
does not reject to manual if a force occurs. CMD_FRC (if used) is driven from a FORCE block. Each connected input of the
FORCE block has the ability (when enabled) to be blocked by the HMI operator, which is accessed from associated tab of the
permit HMI screen display. When CMD_FRC enumeration contains BLOCK, the HMI operator has blocked at least one
force. OVR_ST does not use the block information, but passes it to the HMI for display. The enumeration has the possible
values provided in the following table.
Track
The track command TK is True when a priority command, override, inhibiting condition, output bad quality, or manual mode
occurs. This output is used on all PIDs connected to the OVR_ST block as a track input.
Tuning Mode
Note For tuning interface details, refer to the section, PID (PID_MA).
When the PID_MA blocks are configured with OVR_ST, the user should connect TUN_OUT of PID_MA1 and PID_MA2 to
TUN1 and TUN2 of OVR_ST, respectively. It forces the OVR_ST to select the corresponding PID_MA/CVI input while it is
in tuning mode.
Note The description (OVR_ST Description in this example) becomes the prefix of the block input/output descriptions.
OVR_ST Block
Global Pins
Global Pin Name Description Alarm Alarm Event EGD Page External
Class Access
00OVR_ST1000 OVR_ST Description Not Alarmed False $Default ReadOnly
00OVR_ST1000.AUTO OVR_ST Description AUTO Not Alarmed False $Default ReadOnly
00OVR_ST1000.CVI1_BQ OVR_ST Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE INPUT
1 BQ
00OVR_ST1000.CVI2_BQ OVR_ST Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE INPUT
2 BQ
00OVR_ST1000.CVO OVR_ST Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE
OUTPUT
00OVR_ST1000.CVO.Status OVR_ST Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE
OUTPUT STATUS
00OVR_ST1000.FRC_CMD OVR_ST Description FORCE Not Alarmed False $Default ReadOnly
COMMAND
00OVR_ST1000.FRC_CMDB OVR_ST Description FORCE Not Alarmed False $Default ReadOnly
COMMAND BLOCK STS
00OVR_ST1000.H OVR_ST Description Not Alarmed False $Default ReadOnly
OUTPUT UPR LIMIT
00OVR_ST1000.INH_DEC OVR_ST Description INHIBIT Not Alarmed False $Default ReadOnly
DEC
00OVR_ST1000.INH_INC OVR_ST Description INHIBIT Not Alarmed False $Default ReadOnly
INC
PE_Toggle Block
The PE_TOGGLE will also turn on if the FDBK input becomes True, as long as the run permissive input is True and the
OFFREQ input is False. The FDBK input indicates to the PE_Toggle block that the actions that are supposed to happen when
the PE_Toggle turns on actually happened. If the FDBK does not become True within the time defined by the FBTIME input
then the PE_Toggle will turn off. The State variable CTIME contains the time since the PE_Toggle turned on. If the FBTIME
is set to negative, the PE_Toggle block will consider the FBTIME to be infinite, in which case the FDBK input never has to
become True and CTIME remains 0.
Provided the OFFPRM is high, the PE_Toggle block is turned off by setting the OFFREQ to high or by the TOGGLE input
going high after the engine has turned on. When the PE_Toggle block turns off, the ON output goes low. The PE_Toggle is
also turned off through the FDBK input going low or the RPRM signal going low. If the OFFPRM permissive is low, the PE_
Toggle block will not turn off except by loss of the run permissive, RPRPM.
Inputs
Name Data Type Description
ENABLE Boolean Enable block execution input
ONREQ Boolean Edge sensitive input used to turn engine on
TOGREQ Boolean Edge sensitive input used to turn engine on or off
OFFREQ Boolean Edge sensitive input used to turn engine off
SPRM Boolean Start permissive input
States
Bit Description
7 Permission to turn off is present
2 Request to turn off is received
1 Request to turn on is received
0 Request to toggle on state is received
Status
Bit Description
12 Feedback has been received before FBTIME
11 Feedback has been received
10 Run permissive received
9 Start permissive received
8 PE_Toggle block is ON
7–0 The lower 8 bits specify a code representing the current state of the PE_Toggle block
6 = ON and OK for off state
4 = ON with feedback received
3 = ON without feedback received
2 = Ready to start
1 = Not ready to start
0 = Undefined
This block propagates quality status. Status option cannot be disabled on this block.
Block Options (BLOCK_OPT) enumerations selects the options of the OVR_ST block.
BLOCK_OPT Enumerations
Name Description
NONE None
LOCK Lock mode
POS Position feedback
LOCK-POS Lock mode and position feedback
NONE — the valve operates normally by the HMI operator. The options to not effect the normal operation of the block.
Note The lockout indication is provided for indication only. This action will not lockout the equipment, it will only indicate
lockout status. The Owner's lockout procedures must be followed to safely lock equipment out.
LOCK — provides software lock-out capability for the valve. Selecting the LOCK mode property will setLOCK_P to True,
and enable the LOCK_PB and UNLOCK_PB to control the lockout mode functionality. The valve output CVO must be equal
to LOCK_SC (safe condition) before the block can be set to lockout mode. Feedback to the HMI operator of this mode is
provided by LOCK. The HMI operator is prevented from energizing the solenoid operated valve from the control faceplate
when LOCK is True, and auto mode is disabled.
Note The Lock button can also be set up to use the Workstation Lock function. Refer to GEI-100697,
WorkstationST/CIMPLICITY Advanced Viewer Integration, the section, HMI Tagout.
POS — select for valves that provide an analog position feedback, which is used by the HMI objects and faceplates to display
the valve open percentage. When the POS enumeration is selected, the output POSFB_P is True.
When priority increase PR_INC or priority decrease PR_DEC signal is True, CVO goes toward H or L value at a rate set by
PR_INC_RT and PR_DEC_RT as long as the priority signal is True. In addition, the block also provides inhibit function using
INH_INC and INH_DEC inputs. When either of these inputs is True, they restrict any increase or decrease of CVO. Upon the
reset of the priority and inhibit commands, the block is released to control, provided the block is in auto mode. In manual
mode, when these commands reset, CVO remains at last value.
Alarms
When OBQ, CVI_BQ, EV_BQ, PV_BQ, RSP_BQ, TV_BQ, OVR_CMD, LOCK, RSP_OV, or MJ becomes True and AUTO
is True, the manual reject alarm MN_REJ_A is activated for two seconds and the block reverts to manual mode.
When position feedback is used (POS mode option selected), a POS_DH alarm is generated for deviations between the
position feedback (signal attached to POS input pin) and the controller output CVO. Use the parameter POS_DH_SP to enter
the maximum acceptable deviation and POS_DH_T to set a delay time before generating an alarm.
Note If POS_DH_T is set to 0, no alarm will be generated. If the position feedback has a bad status, the alarm POS_BQ is
generated. POS_BQ and POS_DH will only be generated if POSFB_P is True.
CTRL_ACT Enumerations
Name Description
DIRECT Direct action (PV-SP)
REVERSE Reverse action (SP-PV)
Controller Type (CTRL_TYPE) provides a selection of either series or parallel type of PID control implementation. This
enumeration is used with all block modes except MA (M/A station only).
CTRL_TYPE Enumerations
Name Description
SERIES Series control
PARALLEL Parallel control
Parallel:
Series:
• HMI operator output command in manual mode (MC) is only allowed to change at a maximum rate specified by MR.
The manual output is limited by H and L parameters as well as override, priority and inhibit commands.
• All controller enabled functions require the setting of the scale factor (SF). SF is used to scale the PV and SP into output
units. For example, a PV and SP in RPM of 0 – 3600 would require an SF of 0.0277 to convert the output to 0 – 100%.
External tracking is enabled by setting TK to True.
• The block output follows the track value TV while TK is True. Normal control functions resume with TV as the starting
point upon the reset of TK.
• The block provides a feed forward input (FF), which is added directly to the output in a controller enabled mode.
• The PID_MA block uses an anti-reset windup feature that is transparent to the user. When the block output reaches its
high or low limit (user defined H or L) or when a inhibit signal (INH_DEC, INH_INC) is present, the integral action is
prevented to move further in the same direction. When the direction of error signal changes or inhibit signal goes away,
the integral action is resumed for normal operation. With anti-reset windup, PID_MA block provides improved control
by decreasing delays due to reset winding.
• Setpoint control is accomplished using a few different parameters. There are two sources for the setpoint, SC (HMI
Operator Setpoint) and RSP (Logic Driven Setpoint when RS is True). SH and SL establish the high and low limits of the
setpoint regardless of source. SR sets the maximum allowed rate of change of the setpoint inputs. This rate limiter is
bypassed when RS is True and when RSP_SR_DSBL is True. The rate and value limited setpoint that is used in the PID
calculation is SP. This setpoint monitoring is disabled when the block is accepting the remote setpoint, RS is True. In
addition, SP_TRACK is used force the operator setpoint, SC, to track PV in manual mode and RSP in remote setpoint
mode.
• When set to True, the parameter INH_PDG will inhibit proportional and derivative action on setpoint change.
Note When using any modes that accept a Remote Setpoint, care should be taken in the setting of the INH_PDG
parameter (default initial value of True) to obtain the desired controller response. When INH_PDG is set to True,
continuously changing setpoints will make the controller an integral only controller. Conversely, when INH_PDG is set
to False, continuously changing setpoints will have the proportional, integral and derivative action applied to the output
based on the gains and the error generated between the moving setpoint and the process variable. This feature only
applies to parallel controllers! INH_PDG has no effect on series type controllers. The user must account for proportional
and derivative action of both the series type controller and the parallel type controller with the INH_PDG set to False by
limiting the ramp rate of the setpoint.
• PG (%/%), IG (repeats/min), (minutes) are the proportional, integral and derivative gains that are used in the PID
calculations.
• SQR_ERR allows the user to square the error which creates a faster controller response when the actual error is greater
than one and a slower controller response when the actual error is less than one.
• ERR_C enables the use of error deadband equality processing. When the absolute value of the error is less than The
controller error deadband (ERR_CDB) assumes the error is zero.
• PG_C and PG_CDB inputs to the PID_MA block are provided for a bumpless transition whenever a change to the
proportional gain is made. When PG_C is True, rate of change of PG is compared to the value set by PG_CDB
(maximum change allowed in one scan). If this value is exceeded, the controller aligns the values for that scan to remain
constant and begin controller action on the next scan without a bump in the output. PG_CDB must be set so that normal
changes in PG are ignored (variable gain) and this parameter only initiates during abrupt changes in PG. Similarly,
changes made to IG are governed by IG_CDB when IG_C is True.
• Output Bad Quality (OBQ) is designed to reject the block to manual mode when output bad quality is detected and keep
it in manual mode as long as OBQ is True.
• External Reset (ER) is used in an override control scheme. When ER is True, the PID calculation uses EV as a reset value
to begin the next calculation. This is typically used when you have two PIDs with different PVs controlling the same
output based on which one has the minimum or maximum output.
• When the block is in PID_MA_EXT_CASC or PID_MA_REM_CASC mode, RSP status is monitored to detect an
override condition in the upstream PID_MA block. If an override condition is detected, RSP_OV is set to True and the
block is rejected to manual mode.
• If PV_SP_LIM_TRK is True when the controller output reaches either the high or low limit, H or L, the controller will
track the limit value until PV crosses SP. Once PV crosses SP, the controller will resume the controlling action. The
following graph displays PV, SP, and CVO for a PID_MA block with PV_SP_LIM_TRK both True and False. Notice
that with PV_SP_LIM_TRK set to True (left of the black vertical line) CVO remains at the limit until PV crosses SP.
MA mode is a MA (Manual/Auto) station (no PID action). There is no PID action. In this mode, the HMI operator is allowed
to adjust both the automatic mode setpoint and output. A remote setpoint is not allowed in this configuration. Refer to the
section, Additional Controller Enabled Functions.
Note The PV bar graph visibility can be changed with an option on the graphic object.
MA_MAN mode is a MA (Manual/Auto) station (no PID action). There is no PID action. In this mode, the HMI operator is
only allowed to adjust the output. Refer to the section, Additional Controller Enabled Functions.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note The PV bar graph visibility can be changed with an option on the graphic object.
Note Refer to GEI-100679, Mark VIe Controller DCS Block Library, the section, Proportional Gain (PROP_GAIN).
The PROP_GAIN block may be used with the PID_MA block to automatically adjust a gain value on the PID_MA block.
The following figure is a typical configuration of a PROP_GAIN block with the PID_MA block.
Note For this example, the PROP_GAIN output is driving the proportional gain (PG), but it may also be used to drive the
integral gain (IG).
Note The FF value is added directly to the control output to form CVO.
The PID_MA block has feedforward capability using the FF pin. The following figure is a typical configuration of the PID_
MA block with an interpolation block providing the feedforward value. A separate PID controller block could also be used
instead of a derivative block.
Note The user has full control of the output in this mode and must take care to know the upstream and downstream effects of
their actions.
Each PID_MA faceplate has a TUNE button that opens a screen with an embedded trend containing all variables necessary to
perform tuning functions. Tuning is enabled and disabled from this screen. Once enabled, the user can change tuning
parameters as well as control the modes of the station to allow output and setpoint changes to aid in tuning. This button is
only made visible when the proper security login is entered. The TUNE button is not visible when the block is in MA mode.
The mode of the block is not effected, if it is PID_MA, PID_MA_REM or PID_REM_CASC. The following mode changes
take place when TUN is True to allow output and setpoint changes while in tuning mode:
When a PID_MA block is inserted into application code, it generates a pop-up window prompting user to enter Device Name,
Device Description, Format Specification and HMI Screen Name. The block automatically creates the variables associated
with the block and provides the appropriate attributes for each variable (for example Type, Format Spec, variables that need to
be on EGD will be automatically placed on the $Default EGD page, and so forth). The HMI screen name is used as an Alarm
attribute.
Global Pins
Global Pin Name Description Alarm Alarm Event EGD Page External
Class Access
00PID_MA1000 PID_MA Description Not Alarmed False $Default ReadOnly
00PID_MA1000.AUTO PID_MA Description AUTO Not Alarmed False $Default ReadOnly
00PID_MA1000.CVI PID_MA Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE INPUT
00PID_MA1000.CVI. PID_MA Description Not Alarmed False $Default ReadOnly
Status CONTROL VARIABLE INPUT
STATUS
00PID_MA1000.CVI_BQ PID_MA Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE INPUT
BQ
00PID_MA1000.CVO PID_MA Description Not Alarmed False $Default ReadOnly
CONTROL VARIABLE
OUTPUT
00PID_MA1000.CVO. PID_MA Description Not Alarmed False $Default ReadOnly
Status CONTROL VARIABLE
OUTPUT STATUS
00PID_MA1000.DG PID DERIVATIVE GAIN Not Alarmed False $Default ReadWrite
(MINUTES)
00PID_MA1000.ER PID EXTERNAL RESET Not Alarmed False $Default ReadOnly
ENABLED
00PID_MA1000.EV_BQ PID_MA Description PID Not Alarmed False $Default ReadOnly
EXTERNAL RESET VALUE BQ
00PID_MA1000.FRC_ PID_MA Description FORCE Not Alarmed False $Default ReadOnly
CMD COMMAND
00PID_MA1000.FRC_ PID_MA Description FORCE Not Alarmed False $Default ReadOnly
CMDB COMMAND BLOCK STS
00PID_MA1000.H PID_MA Description PID UPR Not Alarmed False $Default ReadOnly
LIMIT
00PID_MA1000.IG PID INTEGRAL GAIN Not Alarmed False $Default ReadWrite
(REPEATS/MINUTE)
00PID_MA1000.INH_ PID_MA Description INHIBIT Not Alarmed False $Default ReadOnly
DEC DEC
00PID_MA1000.INH_ PID_MA Description INHIBIT Not Alarmed False $Default ReadOnly
INC INC
00PID_MA1000.L PID_MA Description PID LWR Not Alarmed False $Default ReadOnly
LIMIT
00PID_MA1000.LOCK PID_MA Description LOCKED Not Alarmed True $Default ReadOnly
00PID_MA1000.LOCK_ PID_MA Description LOCK Not Alarmed False $Default ReadOnly
P PROPERTY
00PID_MA1000.LOCK_ PID_MA Description LOCK Not Alarmed False $Default ReadWrite
PB PUSHBUTTON
00PID_MA1000.LOCK_ PID_MA Description LOCK Not Alarmed False $Default ReadOnly
SC SAFE CONDITION
00PID_MA1000.LS PID_MA Description IN LOW Not Alarmed False $Default ReadOnly
LIMIT
PID_MA Faceplate
PRESET_CNTR Block
Inputs
Name Data Type Description
CNT_IN Double Integer Signal attached to device counter input point
PRESET Double Integer Preset value in counts
PRE_EN** Boolean Level activating signal enabling a preset operation
**The preset enable (PRE_EN) input is active as a level (as opposed to a rising edge) signal. Therefore, as long as it is True,
the preset value is maintained on the output counts.
Output
Name Data Type Description
CNT_OUT Double Integer Preset output counts (Raw input counts 'normalized' by the PRESET
pin's value)
RAMP Block
Note Resolution errors can occur when adding large and small REAL numbers. The RAMP block uses REAL variables,
which are IEEE single-precision floating-point numbers. Values should be scaled properly to avoid resolution issues. For
example, ramping over a range of 180 in 2 minutes is done with ACCEL set to 1.5, and this results in an increment of 0.015
per 10 ms frame. Ramping from 0 to 180 has less errors than ramping from 10000 to 10180 due to the floating point
co-processor.
Outputs
Name Data Type Description
CURRAMP Real Current output, ramped
ATFINAL Boolean Ramp status, True when CURRAMP=FINAL
RAMPH Block
Outputs
Name Data Type Description
CURRAMP Real Current output, ramped
ATFINAL Boolean Ramp status, True when CURRAMP=FINAL or when CURRAMP = PR_VAL
and PRESET is True
SPLIT_DS Block
Inputs
Name Data Type Description
ENABLE Boolean Block enable - default is True
INPUT Unsigned Double Integer Variable to split
Outputs
Name Data Type Description
LOWORD Unsigned Integer Low order 16 bits of the INPUT variable
HIWORD Unsigned Integer High order 16 bits of the INPUT variable
SPLIT_RS Block
Inputs
Name Data Type Description
ENABLE Boolean True
INPUT Real Real input to split
Outputs
Name Data Type Description
LOWORD Unsigned Integer Low order 16 bits of the INPUT variable
HIWORD Unsigned Integer High order 16 bits of the INPUT variable
TIMER_UI
Inputs
Name Data Type Description
MAXTIME Unsigned Integer Maximum time value in milliseconds
RESET Boolean Re-zeros the timer
AUTO_RS Boolean Automatically zeros the timer when AT_TIME is set. Maintains residual count. The
default value is False
RUN Boolean Enables the timer
Outputs
Name Data Type Description
AT_TIME Boolean Indicates whether the timer has timed out
CURTIME Unsigned Integer The current time accumulated
WD_TO_ANA Block
Inputs
Name Data Type Description
ENABLE Boolean Enables block execution
IN1 Unsigned Integer Unsigned input value 1
↓ ↓ ↓
IN32 Unsigned Integer Unsigned input value 32
Outputs
Name Data Type Description
OUT1 Numeric Converted output value 1
↓ ↓ ↓
OUT32 Numeric Converted output value 32