117
GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment, nor to provide for every possible contingency to be met during installation, operation, and maintenance. The information is supplied for informational purposes only, and GE makes no warranty as to the accuracy of the information included herein. Changes, modifications, and/or improvements to equipment and specifications are made periodically and these changes may or may not be reflected herein. It is understood that GE may make changes, modifications, or improvements to the equipment referenced herein or to the document itself at any time. This document is intended for trained personnel familiar with the GE products referenced herein. Public Information – This document contains non-sensitive information approved for public disclosure. GE may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not provide any license whatsoever to any of these patents. GE provides the following document and the information included therein as is and without warranty of any kind, expressed or implied, including but not limited to any implied statutory warranty of merchantability or fitness for particular purpose. For further assistance or technical information, contact the nearest GE Sales or Service Office, or an authorized GE Sales Representative. Revised: June 2020 Issued: Aug 2006 © 2006 – 2020 General Electric Company. ___________________________________ * Indicates a trademark of General Electric Company and/or its subsidiaries. All other trademarks are the property of their respective owners. We would appreciate your feedback about our documentation. Please send comments or suggestions to [email protected] Public Information

Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

GEI-100691M

Mark* VIeS Safety ControllerBlock LibraryThese instructions do not purport to cover all details or variations in equipment, nor to provide for every possiblecontingency to be met during installation, operation, and maintenance. The information is supplied for informationalpurposes only, and GE makes no warranty as to the accuracy of the information included herein. Changes, modifications,and/or improvements to equipment and specifications are made periodically and these changes may or may not be reflectedherein. It is understood that GE may make changes, modifications, or improvements to the equipment referenced herein or tothe document itself at any time. This document is intended for trained personnel familiar with the GE products referencedherein.

Public Information – This document contains non-sensitive information approved for public disclosure.

GE may have patents or pending patent applications covering subject matter in this document. The furnishing of thisdocument does not provide any license whatsoever to any of these patents.

GE provides the following document and the information included therein as is and without warranty of any kind,expressed or implied, including but not limited to any implied statutory warranty of merchantability or fitness forparticular purpose.

For further assistance or technical information, contact the nearest GE Sales or Service Office, or an authorized GE SalesRepresentative.

Revised: June 2020Issued: Aug 2006

© 2006 – 2020 General Electric Company.___________________________________* Indicates a trademark of General Electric Company and/or its subsidiaries.All other trademarks are the property of their respective owners.

We would appreciate your feedback about our documentation.Please send comments or suggestions to [email protected]

Public Information

Page 2: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Document UpdatesRevision Location Description

M

Combine SD (COMBINE_SD)

New blocks

Combine SLR (COMBINE_SLR)

Combine SR (COMBINE_SR)

Combine SSD (COMBINE_SSD)

Integer to Word Conversion (I_TO_WD)

Modbus Master Read (MBUS_READ)

Modbus Master Write (MBUS_WRITE)

Split DS (SPLIT_DS)

Split LRS (SPLIT_LRS)

Split RS (SPLIT_RS)

Split SDS SPLIT_SDS)

Totalizer (TOTALIZER)

Variable Simulation (VARSIM)

Word to Integer Conversion (WD_TO_I)

Timer (TIMER)Updated MAX_TIME to MAXTIME. Added Note to clarify when AT_TIME goestrue.

Timer Version 2 (TIMER_V2)Updated MAX_TIME to MAXTIME and mCurTime to CURTIME. Added Noteto clarify when AT_TIME goes true.

L Data Type Ranges New section

K

IntroductionAdded a Note to notify users that the Mark VIeS control does not supportstatus options

Clamp (CLAMP)

New blocks

Dual Select Version 2 (DUALSEL_S2)

Function Generator (FUNGEN)

Interpolator Version 2 (INTERP_V2)

Median Select Version 2 (MEDSEL_S2)

Vote (VOTE)

JController Monitor (CTRLR_MON) Updated Mark VIeS Platforms table to include UCSC controller

Temperature Status (TEMP_STATUS)Updated TEMP_STATUS Inputs and TEMP_STATUS Outputs tables toinclude UCSC controller

H

Cause and Effect Matrix New special task

Counter This block is not in the legacy categoryBlack Channel Receiver (BLACK_RX)Black Channel Transmitter (BLACK_TX)Black Channel Example

New SIGNATURE2

G

Temperature Status (TEMP_STATUS) Updated to better explain functionality based on controller platformLegacy Category Blocks New sectionCapture Data (CAPTURE)

New blocks

Logic Builder State Change (LOGIC_BUILDER_SC)

On Off Delay (ON_OFF_DELAY)

Timer Version 2 (TIMER_V2)

2 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 3: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Contents1 Introduction............................................................................................................................................52 Black Channel Receiver (BLACK_RX) .......................................................................................................93 Black Channel Transmitter (BLACK_TX).................................................................................................. 104 Black Channel Example .......................................................................................................................... 115 Boolean Filter (BFILT) ........................................................................................................................... 186 Calculator (CALC) ................................................................................................................................ 197 Capture Data (CAPTURE) ...................................................................................................................... 208 Cause and Effect Matrix.......................................................................................................................... 269 Clamp (CLAMP)................................................................................................................................... 2610 Combine SD (COMBINE_SD)................................................................................................................. 2711 Combine SLR (COMBINE_SLR) ............................................................................................................. 2812 Combine SR (COMBINE_SR) ................................................................................................................. 2913 Combine SSD (COMBINE_SSD) ............................................................................................................. 3014 Comment (_COMMENT) ....................................................................................................................... 3115 Comment Block Functionality (_COMMENT_BF) ...................................................................................... 3116 Comment No Break (_COMMENT_NB) ................................................................................................... 3117 Compare (COMPARE) ........................................................................................................................... 3218 Compare with Hysteresis (COMPHYS) ..................................................................................................... 3619 Controller Monitor (CTRLR_MON).......................................................................................................... 3820 Counter (COUNTER)............................................................................................................................. 4221 Device Heartbeat (DEVICE_HB) ............................................................................................................. 4322 Dual Select Version 2 (DUALSEL_S2) ...................................................................................................... 4423 Expand Long Integer (EXPAND_UDI) ...................................................................................................... 5024 Function Generator (FUNGEN)................................................................................................................ 5125 Integer to Word Conversion (I_TO_WD).................................................................................................... 5326 Interpolator Version 2 (INTERP_V2)......................................................................................................... 5427 Latch (LATCH) ..................................................................................................................................... 5528 Logical AND (AND).............................................................................................................................. 5629 Logic Builder State Change (LOGIC_BUILDER_SC) .................................................................................. 5730 Logical NOT (NOT)............................................................................................................................... 6831 Logical OR (OR) ................................................................................................................................... 6932 Median Selector with Enable (MEDIAN) ................................................................................................... 7033 Median Select Version 2 (MEDSEL_S2) .................................................................................................... 7134 Modbus Master Read (MBUS_READ) ...................................................................................................... 7935 Modbus Master Write (MBUS_WRITE) .................................................................................................... 8636 Move (MOVE)...................................................................................................................................... 8737 On Off Delay (ON_OFF_DELAY)............................................................................................................ 8838 Prevote (PREVOTE) .............................................................................................................................. 8939 Pulse (PULSE)...................................................................................................................................... 9240 Relay Ladder Logic (RUNG) ................................................................................................................... 9341 Select (SELECT) ................................................................................................................................... 9442 Split DS (SPLIT_DS) ............................................................................................................................. 9543 Split LRS (SPLIT_LRS) ......................................................................................................................... 9644 Split RS (SPLIT_RS) ............................................................................................................................. 9745 Split SDS (SPLIT_SDS) ......................................................................................................................... 98

Instruction Guide GEI-100691M 3Public Information

Page 4: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

46 System Outputs (SYS_OUTPUTS) ........................................................................................................... 9947 Temperature Status (TEMP_STATUS) ......................................................................................................10048 Timer (TIMER)....................................................................................................................................10349 Timer Version 2 (TIMER_V2).................................................................................................................10550 Totalizer (TOTALIZER) ........................................................................................................................10751 Unit Delay (UNIT_DELAY)...................................................................................................................10952 Variable Health (VAR_HEALTH) ............................................................................................................11053 Variable Simulation (VARSIM) ...............................................................................................................11454 Vote (VOTE) .......................................................................................................................................11555 Word to Integer Conversion (WD_TO_I)...................................................................................................116

4 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 5: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

1 Introduction

Note The Mark VIeS Safety control does not support status options. For a description of status operations, refer to theMarkVIe Controller Standard Block Library (GEI-100682), the Status Monitoring (STATUS_ MONITORING) block.

Blocks are software subroutines that are included in the tasks to be run in the controller. Within the ToolboxST* application,the connections are accomplished graphically using pins and wires to form a data flow diagram. The blocks run in the orderlisted in the task. The connections between the blocks are RAM memory elements through which data is passed. Theseelements are referred to as variables. Each variable has a defined data type and must be connected to pins of the same datatype. Some block pins accept multiple data types and others are capable of converting from one data type to another.

Each block entry in the library consists of the following:

• Block name and category• Block description• Block diagram• Pin definitions• Application notes (optional)

Each block has a full name and a simple name. The full name is descriptive and too long to display in a block diagram. Forthis reason, all blocks have a simple name. The simple name is displayed in the ToolboxST application.

Floating point (REAL and LREAL) values conform to IEEE® 754. The standard defines certain computational exceptions thatmay produce non-standard results, such as divide by zero. These non-standard values include infinities and Not a Numbers(NaNs), which, if used in subsequent calculations, produce additional non-standard results. The software has been designed toprevent the production and proliferation of such values. Function block descriptions may include additional details concerningfloating point exception handling where needed.

Block Libraries also contain rubber blocks, which are sized according to the number of pins used. Within the library, theblocks are grouped functionally to simplify the task of converting ideas into blocks. For example, the Controller Monitor(CTRLR_MON) block is a member of the System category.

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 simpleblock name and block configuration pins and variable pins, which transfer data in and out of the block. The pins are locatedon the block diagram according to their usage. All input pins (pins read by the block) and block configuration pins are listedon the left. All output pins (pins written by the block) and state pins (pins read and written by the block) are listed on theright. The pin name is listed beside each pin inside the block diagram border.

Pin Name Modifiers Description^ prefixed with a carat (^ONREQ) Pin is rising-edge sensitive

[ ] suffixed with square brackets (STATE[4]) Pin expects a variable that is an array of the size indicatedwithin the brackets

Instruction Guide GEI-100691M 5Public Information

Page 6: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

1.1 Block Data TypeThe pin data type identifier is listed beside the pin outside of the block diagram border. The basic data types used in the blocklibraries are BOOL, INT, UINT, REAL, LREAL, DINT and UDINT. Blocks with data types ANY_NUM and ANY must havethe 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 andthe 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.

Data Type Identifier Basic Data Type DescriptionA Any (ANY) Any data typeB Boolean (BOOL) 8-bit BooleanI Integer (INT) 16-bit (Short) Signed IntegerDI Double Integer (DINT) 32-bit (Long) Signed Integer

R Real (REAL) 32-bit Floating Point

LR Long Real (LREAL) 64-bit (Long) Floating PointUI Unsigned Integer (UINT) 16-bit (Short) Unsigned IntegerUDI Unsigned Double Integer (UDINT) 32-bit (Long) Unsigned IntegerN Numeric (ANY_NUM) Any data type except BooleanS Analog or Boolean (Simple) Any simple data type

Data Type Identifier Type Definition Modifier Description# m Build time constant

Note The Block Data Type is set in the block Property Editor.

1.2 Change Data Type of Variant BlockThere are few blocks that support more than one data type as an input and/or output.

➢➢ To change the block data type

1. Select the block for which to change the data type.

2. From the Block Properties window, expand the General section.

3. From the Property Editor, select the Block Data Type.

4. From the Block Data Type drop-down box, select a valid data type for the block.

6 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 7: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

From the Block Data Typedrop down list , select a valid data type for the block.

Instruction Guide GEI-100691M 7Public Information

Page 8: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

1.3 Data Type RangesThe calculated output value for a block cannot exceed the range limits for the respective data type. If this occurs, the outputvalue is replaced by the maximum or minimum value for the data type. For example, if the output value for an INT data typeis computed as 100,000, the actual output value will be limited to 32,767.

Type Minimum Value Maximum ValueINT -32768 32767DINT -2147483648 2147483647UINT 0 65535UDINT 0 4294967295REAL -3.4E+38 3.4E+38LREAL -1.7E+308 1.7E+308BOOLEAN False True

1.4 Legacy Category BlocksSome of the controller software blocks have been put into the Legacy Category (this is the category that is used by theToolboxST Block Diagram Editor). This category is different than the blocks that reside in the Legacy Block Library. Legacycategory blocks are supported but not recommended for use in any new controller applications (ControlST V05.02 or later).They are in the LEGACY category because no new development is to be done to add any new functionality to these blocks. Inmany cases, there is a newer block that is preferred for use as a replacement for these blocks, as listed in the following table.

Legacy Category Rationale

Legacy CategoryBlock

ReplacementBlock Reason

_COMMENT_BF _COMMENT_COMMENT is equivalent to the current functionality of _COMMENT_BF_COMMENT_BF used to provided a carriage-return/page-feed in the Mark VI and earlyversions of Mark VIe controllers

TIMER TIMER_V2 TIMER_V2 supports AT_TIME output to RESET input

BFILT ON_OFF_DELAY Allows the Mark VIeS controller to have similar functionality as the Mark VIe controller

COMPHYS COMPARE Allows the Mark VIeS controller to have similar functionality as the Mark VIe controller

Note LEGACY category blocks are hidden by default in the ToolboxST application. Refer to the ToolboxST User Guide forMark Controls Platform (GEH-6700) for steps to display these blocks if needed for legacy support.

8 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 9: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

2 Black Channel Receiver (BLACK_RX)Block Category: Communications

The Black Channel Receiver (BLACK_RX) blockis a rubber block that allows for the connection ofup to 32 input variables of heterogeneous datatypes with rubber pins. By default, the block isdisplayed with only one variable input but may beexpanded as necessary for the application. If morethan 32 variables are required, the user may addadditional BLACK_RX blocks to the application.

The BLACK_RX block validates the integrity of the Mark VIeS Safety controller data signed by a corresponding BlackChannel Transmitter (BLACK_TX) block running in the transmitting device. The user configures the running rate of theBLACK_RX block on the receiving device to greater than or equal to the rate of the incoming Black Channel EGD page fromthe referenced transmitting device. The BLACK_RX block receives the Connection ID (CONN_ID), Sequence number(SEQ), Signature (SIGNATURE and SIGNATURE2), and variable data consumed from the referenced EGD page as inputs.The block also receives an Expected Connection ID (CONN_ID_EXP) input value used to validate the transmitted CONN_IDvalue. The user configures a corresponding CONN_ID input on the BLACK_TX block and the CONN_ID_EXP constantinput on the matching BLACK_RX block.

InputsName Data Type DescriptionCONN_ID_EXP Constant UDINT Expected connection IDCONN_ID UDINT Connection IDSEQ UDINT Sequence number

STALE_CNT Constant UDINT

The Stale Count (STALE_CNT) input is a Constant pin used to configure the number times theblock can run without the SEQ input value changing. If the number of times the block ran withoutthe SEQ value incrementing exceeds the STALE_CNT value, LINK_OK is driven to False andthe STALE_CNT pin defaults to 1. The value zero may be applied to the STALE_CNT pin todisable driving LINK_OK False due to stale sequence number transmission completely. Thisprovides the flexibility to monitor for stale data externally in the application code if necessary.

SIGNATURE UDINT Signature

SIGNATURE2 UDINT Second Signature

VAR01 ANY Input variable 1↓ ANY ↓

VAR32 ANY Input variable 32

OutputName Data Type Description

LINK_OK BOOL

The output pin, LINK_OK, is a single Boolean value that denotes the integrity of the control datareceived from the Black Channel. If any of the inputs from the Black Channel are corrupt, theSignature calculation will not match the SIGNATURE and SIGNATURE2 input values from thetransmitter (BLACK_TX) and LINK_OK will be driven False.If the CONN_ID value from the Black Channel does not match the CONN_ID_EXP value, LINK_OK output will also be driven False.

The BLACK_RX block also checks for out-of-order reception of SEQ values. If the sequence number does not monotonicallyincrease, LINK_OK will be driven False until the sequence number resumes increasing from the point at which theout-of-order reception was encountered. The block takes sequence number roll-over into account during run time.

Instruction Guide GEI-100691M 9Public Information

Page 10: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

3 Black Channel Transmitter (BLACK_TX)Block Category: Communications

The Black Channel Transmitter (BLACK_TX) block is arubber block that allows for the connection of up to 32input variables of heterogeneous data types. By default,the block is displayed with only one variable input butmay be expanded as necessary for the application. If morethan 32 variables are required, the user may add additionalBLACK_TX blocks to the application.

The block receives a Connection ID (CONN_ID) input used to uniquely identify a Black Channel connection between aspecific BLACK_TX block in the transmitting device and a specific Black Channel Receiver (BLACK_RX) block configuredin the receiving device. The Sequence Number (SEQ) output of the block monotonically increases each time the block runs.The BLACK_TX block creates a Signature that the BLACK_RX block uses for a data integrity check. The Signature output(SIGNATURE and SIGNATURE2) is calculated using the values of the CONN_ID, Sequence number (SEQ), and input dataof the variables connected to the block and transmitted to the receiver (BLACK_RX).

Each of the variables connected to the BLACK_TX block must be placed on a dedicated Black Channel EGD dedicated pagethat is configured for production at a rate tuned for the application. All of these variables should not only exist on the sameEGD page but must also exist on the same EGD exchange to provide coherency on the receiving end of the Black Channel. Ifthe number of the variables required by the application exceeds the length of the EGD exchange, additional BLACK_TXblocks, EGD pages, and exchanges may be used to scale the application.

Inputs

Name Data Type DescriptionCONN_ID UDINT Connection IDVAR01 ANY Input variable 1↓ ANY ↓VAR32 ANY Input variable 32

Outputs

Name Data Type DescriptionSEQ UDINT Sequence number

SIGNATURE UDINT Signature

SIGNATURE2 UDINT Second Signature

10 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 11: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

4 Black Channel ExampleThe black channel feature enables the transfer of safety control data between two separate Mark VIeS Safety controllerdevices over the UDH network, using a new EGD page and unicast configuration. A matching pair of transmitter and receiverblocks, BLACK_TX and BLACK_RX, are configured for the two Mark VIeS Safety control devices in the application. Theseblocks run a data integrity check on each side of the black channel. The following figure displays an overview of the blackchannel setup.

This example uses two simplex Mark VIeS safety controllers installed and set up on the same UDH network, as displayedfrom the ToolboxST System Editor.

Instruction Guide GEI-100691M 11Public Information

Page 12: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

HMI with ToolboxST application

MarkVIeS_1 Device MarkVIeS_2 Device

New EGD Page

VAR## pins must be connected to the same global variables , in the same order , in both black channel blocks .

EGD Referenced Device

Black Channel Example

12 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 13: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Open both Mark VIeS Component Editors, and select the General tab, Network Adapter 0, Adapter Settings. Verify thatthe IP addresses are properly configured to be on the same network. The Black Channel uses UDH EGD Pages to send databetween each of the controllers. Routable EGD or controllers in the same subnet are the available options in the Mark VIeSsystem, however any network topology that allows UDH EGD communication between the controllers would be consideredvalid.

Instruction Guide GEI-100691M 13Public Information

Page 14: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

➢➢ To configure the Mark VIeS safety controllers for Black Channel communications

1. Verify that the controllers have been properly installed and configured for UDH network IP addresses.

2. From the first Mark VIeS Component Editor, EGD tab, right-click Produced Pages and select Add Page. Enter aname for this page (for example blackTx).

3. Set the Destination to be the IP address of the second Mark VIeS controller and set theMode to be Unicast.

4. From the Software tab of the first Mark VIeS device, create a Program and Task, then insert the Black_TX block.

5. From the Software tab Tree View, select the Variables for the Task. From the Data Grid, create global variables for allBlack_TX block pins.

a. Create up to 32 VAR## variables as needed for the data to be transmitted from the first controller to the secondcontroller.

Note Use another pair of transmitter and receiver blocks if more than 32 variables are needed.

b. Select data types as are needed for the data to be transmitted or as are required for the block pins.

c. Select the EGD Page for each of these variables to be the black channel page created in step 2.

14 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 15: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

d. Use this example to verify that the data types for the Black_TX pins match the data types of the created variables.

e. Notice that the Initial Value for the CONN_ID is 1 in this example (BlackConnectionID). This Connection ID must be a unique number to represent this particularBlack_TX block (important when using more than one Black_TX transmitter block). This ID is used by the Black_RX receiver block to identify which transmitter block itis receiving.

GEI-100691M Instruction Guide 15Public Information

Page 16: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

6. To connect the global variables to the block pins, from the Block Diagram Editor, double-click the Black_TX block andselect Browse Globals.

7. Select the appropriate global variable created from step 5.

8. From the second Mark VIeS Component Editor, EGD tab, select Referenced Devices and select the first Mark VIeScontroller (MarkVIeS_1) in this example.

Under Referenced Devices, select the new device (MarkVIeS_1 in this example), and verify that the available globalvariables display.

9. From the Software tab, create a Program and Task, then insert the Black_RX block.

10. From the Software tab Tree View, select the Variables for the Task. From the Data Grid, create a Boolean globalvariable for the Link_OK pin.

11. From the Block Diagram Editor, and the Black_RX block, double-click the CONN_ID_EXP pin. Set the ImmediateValue to be the same as the Black_TX CONN_ID value (in this example it is 1). This value is especially important whenusing more than one set of blocks (to identify which Black_TX data values should be received by this particular Black_RX block).

12. Double-click the Black_RX block, select Browse Globals.

13. Select the global variables created in the first Mark VIeS controller, and connect them to the appropriate pins.

a. From the Select a Variable dialog box, select the folder with the name of the first controller device, then select theappropriate variable.

b. Attach the VAR## data variables in exactly the same order as they appear in the Black_TX block.

14. Build and Download both controllers (this can be done simultaneously).

15. Click each controller’s Status tab and wait for the controller to be in the Controlling state.

16 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 17: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

➢➢ To test the communication

1. Unlock the first controller.

2. From the Black_TX block, double-click a value for one of the VAR## pins (tiny green value).

3. From the Set Value dialog, change the Next Value and click Send & Close.

4. From the second controller’s Black_RX, notice that the data value of the matching VAR## pin has changed to match thesent value from the first controller.

5. Disconnect the UDH cable from the transmitter end (Mark VIeS controller).

6. From the Black_RX block, notice that the LINK_OK pin connected variable changes to False.

Instruction Guide GEI-100691M 17Public Information

Page 18: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

5 Boolean Filter (BFILT)Block Category: Boolean Operations

Note This block is not recommended for use in any new controller applications (ControlST V05.02 or later). Refer to thesection Legacy Category Blocks.

The Boolean Filter (BFILT) block passes a rising True value on the IN pin to the OUT pin if IN remains True for PU_DEL (inmilliseconds) time. The block passes a falling False value on the IN pin to the OUT pin if IN remains False for DO_DEL (inmilliseconds).

BFILT Block

Inputs

Name Data Type DescriptionPU_DEL UDINT Pick-up delay in millisecondsIN BOOL Identifies the variable to filterDO_DEL UDINT Drop-out delay in milliseconds

Output

Name Data Type DescriptionOUT BOOL Filtered output

StateName Data Type DescriptionPREVOUT BOOL Last filtered output (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.

18 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 19: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

6 Calculator (CALC)Block Category: Math

The Calculator (CALC) block is an expandable block that performs mathematical operations,defined by the equation string, on up to 8 inputs, A, B, C, D, E, F, G, and H, and places theresult in the output variable, OUT. The data type of the inputs and output is implied by the blockdata type selected in the Block Properties panel in the ToolboxST application. Any modificationto the equation string EQUAT requires a re-download to the controller.

The following operators are supported within EQUAT:+ (add), - (subtract), * (multiply), / (divide), ^ (power), % (modulus), ABS() (absolute value), NEG() (negate), LOG()(logarithm, base 10), LN() (natural logarithm), EXP() (Exponential e^x), RECIP (1/x), RND() (round to nearest integer), SQR() (square root), COS() (cosine), SIN() (sine), TAN() (tangent), ACS() (arccosine), ASN() (arcsine), ATN() (arctangent).

The equation must be stated in terms of the operators and the A through H operands. The trigonometric functions expect angleoperands to be expressed in units of radians.

There is a limit of 64 elements (Operands and Operators) that may be specified in the equation string. For example, anequation to ADD two input variables A+B, has two Operands (A and B) and one Operator (+): a total of three elements.

When using the division operator (/), if the denominator = 0, the denominator will be replaced by 3.4e-38.

When using the modulus operator (%), if the divisor = 0, the divisor will be replaced by 3.4e-38.

When using the RECIP() function, if the input operand A = 0, it will be replaced by 3.4e-38.

When using the SQR() function, if the input is negative, the output will be the square root of the absolute value of the input.

When using the TAN() function, if the input operand A is equal to np + p/2 (where n is an integer), then OUT = 0.

When using the LOG() function, if the input operand A is less than or equal to zero, then the output value is set to 0.

When using the LN() function, if the input operand A is less than or equal to zero, then the output value is set to 0.

When using the power operator (^), if the input operand A = 0 and operand B is not an integer, the calculation is done with therounded value of operand B.

Note This is a variant block which supports any one the following block data types: INT, DINT, REAL, LREAL, UINT, andUDINT. The default data type is REAL. Refer to the section Change Data Type of Variant Block.

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)A ANY_NUM Operand used in equationB ANY_NUM Operand used in equationC ANY_NUM Operand used in equation↓ ↓ ↓H ANY_NUM Operand used in equation

EQUAT StringEquation string to be executed using operands: + - * / ^ %ABS NEG RND SQR COS SIN TAN ACS ASN ATN LOGLN EXP RECIP

Output

Name Data Type DescriptionOUT ANY_NUM Output of equation

Instruction Guide GEI-100691M 19Public Information

Page 20: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

7 Capture Data (CAPTURE)Block Category: System

The Capture Data (CAPTURE) block collects multiple samples of 1 to 32 variables in a buffer that can be uploaded toToolboxST application or the Data Historian for display and analysis. Multiple clients may upload the same buffer. The blocksupports a variety of triggering and sampling options. Changes to the configuration can only be accomplished by a download.An optional, automatic re-enable feature allows the collector to re-arm for the next collection following a specified timeoutfrom the last upload.

CAPTURE Block

CAPTURE Block Expanded

20 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 21: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

InputsName Data Type Function Description

TR_TYPEConstantTr_Type_T

Trigger Type

The sensitivity applied to the trigger condition for trigger evaluation (default is Level).

Edge (1) – If the current trigger condition is True and the previous trigger condition is False, thetrigger is True.

Level (2) – If the current trigger condition is True, the trigger is True.

AUTOENAConstantBoolean

AutomaticEnable

If True, the block is automatically re-enabled for a new capture after the buffer is uploaded. Notethat if automatic enabling is selected, all manual enable inputs are ignored (default is False).

ATOUTConstantUDINT

AutomaticEnableTimeout

The number of seconds after the last upload before capturing is re-enabled (only applicable ifAUTOENA is True) (default is 60 seconds).

BUF_CTLConstantBuf_Ctl_T

BufferControl

Buffer Control – Controls how and when the data is collected (default is NORMAL).

NORMAL (1) – PRE_SAM samples are collected before a trigger event. POSTSAM samples arecollected after the trigger event. Samples are collected every FMULTscans. Capturing stops whenthe specified samples have been collected, an upload command is received, or when the ENA_CAP pin transitions to False if automatic re-enabling is not selected.

CIRCULAR (2) – Samples are collected indefinitely every FMULTscans. The buffer contains thenewest PRE_SAM + POSTSAM samples unless capturing is stopped prior to filling the buffer.Capturing stops when an upload command is received, or when the ENA_CAP pin transitions toFalse if automatic re-enabling is not selected.

ONLY (3) – The trigger condition is evaluated each scan. Samples are only collected when thetrigger event is valid. The buffer contains PRE_SAM + POSTSAM samples unless capturing isstopped prior to filling the buffer. Capturing stops when the specified samples have been collected,an upload command is received, or when the ENA_CAP pin transitions to False if automaticre-enabling is not selected.

ENA_CAP BOOLManualEnable

If True and the AUTOENA pin is False, enable the block for capture. This pin gives the applicationcode the ability to enable and disable data collection. This is an edge-triggered pin. Once a capturehas been stopped the pin must be toggled False and then True again to re-enable the next capture(default is False).

FMULTConstantUINT

SamplePeriodMultiplier

Allows data to be collected slower than the performance rate of the block (scan period) byspecifying a multiple of the scan period for samples to be taken (only applies to Normal andCircular buffer control) (default is 1).

If a zero value is given, then the block will treat it as one Frame multiple.

POSTSAMConstantUDINT

Post TriggerSample Size

Number of samples to collect after and including the trigger event (default is 100)

PRE_SAMConstantUDINT

Pre TriggerSample Size

Number of samples to collect prior to the trigger event (default is 10)

Instruction Guide GEI-100691M 21Public Information

Page 22: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Inputs (continued)Name Data Type Function Description

TR_CONDConstantTr_Cond_T

TriggerCondition

Relational comparison between the trigger variable (TR_VAR) and the trigger value (TR_VAL), tobe evaluated by the triggering logic each scan (default is NE)

EQ (1) – TR_VAR must equal to TR_VAL

GT (2) – TR_VAR must be greater than TR_VAL

GE (3) – TR_VAR must be greater than or equal to TR_VAL

LT (4) – TR_VAR must be less than TR_VAL

LE (5) – TR_VAR must be less than or equal to TR_VAL

NE (6) – TR_VAR must not be equal to TR_VAL

TR_VALConstantLREAL

TriggerValue

Value compared against the trigger variable for trigger evaluation (default is 0)

TR_VAR ANYTriggerVariable

Variable against which the trigger condition is evaluated (default is 0)

TSTAMPConstantBOOL

Time StampEnable

If True, the UTC time of each sample is collected with the sample (default is False)

VAR1 ANYCollectedVariables

One to thirty-two variables to be collected each sample. The trigger variable is not required to beone of the captured variables, but including it in the variable list normally adds value to thecollection.

↓ ↓ ↓ ↓

VAR32 ANYCollectedVariables

One to thirty-two variables to be collected each sample. The trigger variable is not required to beone of the captured variables, but including it in the variable list normally adds value to thecollection.

UPL_TYPE Upl_Type_T

Manual (1) – Captured data must be manually uploaded by the user.

Automatic (2) – Captured data is automatically uploaded by the data collection system.

Trip (3) – Captured data is automatically uploaded by the data collection system and isincorporated as part of the trip log.

With the Mark VIe controller (not the Mark VIeS Safety controller): Flash (4) – Captured data iswritten to flash disk on the Mark VIe controller. The last three samples are preserved after whichthe oldest one is overwritten. This works only when the BUF_CTL is set to NORMAL, and is notavailable with the Mark VIeS Safety controller.

Outputs

Name Data Type Function Description

STATUS UINT Capture Status

The current status of the capture:DISABLED (0) – Not runningWAITING FOR TRIGGER (1) – Collecting pre-trigger samplesCAPTURING (2) – Collecting post-trigger samplesCAPTURE COMPLETE (3) – Data ready to be uploadedLOCKED (8003H) – The buffer is locked by an upload to another clientFLASH WRITING (4) – The captured samples are being written to flash.

DONE BOOL Capture Done Set to True when a buffer is ready to be loaded

22 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 23: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Capture Block Theory of Operation

The Capture block is a software function used to collect application variables in real-time for offline display and analysis. Thecore software is shared between the Capture block and Dynamic Data Recorders (DDRs). The main differences between themare:

• Capture blocks require an application code download to configure, while DDRs are configured by an independentdownload mechanism.

• Capture blocks are embedded in the application code and can be used to catch events that occur between application codeblocks. DDRs perform outside of the application code and can only sample data after all of the application code hasperformed in a particular frame.

• Capture blocks perform at the same priority as the other application code and so insure the highest data fidelity. DDRsperform at a lower priority than the application code and are not guaranteed to catch data transitioning at frame rate.

The Capture block collects data sets of variables, known as samples and stores them in a local buffer. The buffer may beuploaded to one or more client devices. Once uploaded the block may be re-armed to take another collection. Typically, forclients other than ToolboxST application the status pin must be mapped to EGD so that it can be monitored outside thecontroller. Once an upload is in progress, the buffer is locked to prevent it from being re-armed during the data transfer.Multiple clients may upload the buffer simultaneously. The block ignores the transitions of its ENA_CAP pin until all clientshave been serviced.

Data collection is managed by specifying a buffer control mode and a trigger event. There are three buffer control modes. ANORMAL collection is one where a specified number of samples are collected prior to a trigger event and a specified numberof samples are collected after the trigger event. Once the trigger event has been found to be satisfied it is no longer evaluated.A CIRCULAR collection is one where no trigger event is specified and samples are taken indefinitely until the collection ishalted by requesting an upload or disabling the block. An ONLY collection is one where samples are only collected if thespecified trigger event is True each opportunity the block has to collect a sample. This is useful when collecting data aroundan event that occurs sporadically.

A trigger event is completely specified by selecting a trigger condition, a trigger type, a trigger variable, and a trigger value.The trigger variable is an application variable that the block monitors. It is compared against a trigger value using therelational specifications of the trigger condition, and the sensitivity of the trigger type. Acceptable trigger conditions includeEQUALTO, NOT EQUALTO, GREATER THAN, GREATER THAN OR EQUALTO, LESS THAN, and LESS THAN OREQUALTO. Acceptable trigger types include LEVEL or EDGE. A level trigger is one that is satisfied at present, regardlessof past values. An edge trigger is one that is satisfied at present but was not satisfied at the previous evaluation.

Capture Block Configuration

The Capture block may be re-configured by either an offline or online download. Downloading causes the states of ALLCapture blocks in the controller to be re-initialized, invalidating any data that may be in the process of being collected.Therefore, if external blockware is used to sequence to collection of data, it must be sufficiently robust to recover from such are-initialization. This may be accomplished by examining the DONE and STATUS pins or through timeouts.

Capture Block Enabling Collections

Note Avariable needs to be connected to the Status pin to enable the automatic upload functionality of the CAPTURE blockin the WorkstationST* application.

A new collection may be enabled manually through blockware, or automatically, if so configured. If manual enabling isselected, the application code must toggle the ENA_CAP to False for at least one frame then back to True to re-enable acollection. Additionally, the block ignores all transitions of the ENA_CAP pin while the buffer is locked for uploading so thistoggling must occur when the buffer is unlocked. If automatic enabling is selected, the block is initially enabled and alltransitions of the ENA_CAP pin are ignored. The block will re-enable a capture after at least one upload occurs, and no newupload requests are received within ATOUT seconds following the completion of the last upload. Uploading a collection thatis not complete automatically changes the block status to complete. Another upload is not necessary to re-enable the nextcollection.

Instruction Guide GEI-100691M 23Public Information

Page 24: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Capture Block Triggering Issues

The trigger event is evaluated differently for each of the buffer control modes. For the NORMAL and CIRCULAR modes thesample period multiplier pin, FMULT allows the block to collect samples at rates slower than the block performs, therebyextending its range. A sample is only collected every FMULT scans. Using the NORMAL mode, the trigger event is evaluatedevery scan regardless of the value of FMULT. When the event occurs, the sample is collected and post-trigger samples arecollected every FMULT scans away from the trigger sample. Note that because the trigger sample may not occur on anFMULT boundary, the time between the last pre-trigger sample and the trigger sample may not be the same when FMULT isnot equal to one.

Capture Block NORMAL

NORMAL mode is used to collect samples before and after a specified trigger event.

Once enabled, the block begins collecting pre-trigger samples, retaining the most recent PRE_SAM samples before a triggerevent occurs. Once the trigger occurs, the block collects POSTSAM more samples before changing the STATUS pin toComplete. The trigger sample is included in the post sample count. Typically the buffer will contain PRE_SAM + POSTSAMtotal samples. If the trigger occurs prior to collecting all of the pre-trigger samples, or the collection is halted prior tocapturing all of the post trigger samples this may not be the case.

Capture Block CIRCULAR

CIRCULAR mode is used to collect samples continuously until the buffer is manually stopped. Specifying a trigger event ismeaningless in this mode.

Once enabled, the block begins collecting samples, retaining the most recent PRE_SAM + POSTSAM total samples. It ispossible for the buffer to contain fewer samples if the collection is halted prematurely.

Capture Block ONLY

ONLY mode is used to collect samples only when the trigger event is True. The FMULT pin is ignored in this mode.

Once enabled, the block begins looking for trigger events every scan but only collects samples on the scans where the triggerevent is True. The block collects the first PRE_SAM + POSTSAM trigger samples before changing the STATUS pin toComplete. It is possible for the buffer to contain fewer samples if the collection is halted prematurely.

Capture Block Time Stamping

The TSTAMP pin specifies whether wall clock time (in UTC format) is collected with each sample, or whether it is collectedonly at the trigger event and all other sample times are extrapolated from the block performance period modified by FMULT.

It is recommended that TSTAMP always be left True, to insure that trends are displayed with the most accurate timestampinformation.

24 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 25: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Capture Block Status

The state of each collection is expressed through the DONE and STATUS output pins. The DONE pin may be monitored byapplication code to drive manual reset algorithms. The STATUS pin provides more detailed state information and is usuallypublished on EGD for use by external clients. The definition of the states is affected by the specified buffer control mode andis provided in the following table.

Buffer Control Mode Affected StatesStatus BUF_CTL DescriptionDISABLED All Prior to being enabled for the first time (manual enable mode only)

WAITINGNORMAL Collecting pre-trigger samples while looking for a triggerCIRCULAR Does not occurONLY Waiting for a trigger to occur

CAPTURINGNORMAL Collecting post-trigger samples

CIRCULAR Collecting samples

ONLY Collecting a trigger sample

COMPLETE All No longer collecting, ready to be uploaded, ready to be re-enabled

FLASHWRITINGNORMAL Writing the pre-trigger and post-trigger samples to flash.CIRCULAR Does not occurONLY Does not occur

Capture Block Redundancy Issues

Like all application code blocks configured in a redundant controller system, the Capture block is replicated faithfully in eachcontroller. However, unlike other blocks, the Capture block maintains un-voted internal state information in each controller.This independence allows the block to trigger on and capture data that may be different in each controller (for example,anti-voted data). Likewise the communication channel established between the block and an external client (for example,ToolboxST application) for an upload is not replicated to any redundant controllers. The STATUS and DONE pins are notvoted and as a result may not always track between controllers. This is normal if a capture is terminated early by an uploadrequest or anti-voted data is used in the trigger specification. Application writers who want to monitor these pins throughblockware should be aware of this discrepancy.

Capture Block Memory Use

Capture blocks consume RAM memory from the system memory pool to create the capture buffers. The allocation of memoryin the controller is a compromise that must be made considering the amount of real RAM available, the amount required forapplication code, the amount needed for data collection (for example, Capture blocks and DDRs), and a free pool necessaryfor support services, such as ToolboxST application and HMI connections.

The amount of memory required for a particular CAPTURE block may be calculated as the number of samples times the sumof the size of each collected variable. If time-stamping is enabled add 8 bytes times the number of samples. For example, if aCAPTURE block is configured to collect 1000 total samples where each sample contains two REAL, three INT, and fiveBOOL data types, and time-stamping is enabled, the amount of memory required for the captured data is:1000 x ((2 x 4) + (3 x 2) + (5 x 1) + 8) = 27,000 bytes

Data Type Size (Bytes)BOOL 1INT 2UINT 2DINT 4UDINT 4REAL 4LREAL 8

Instruction Guide GEI-100691M 25Public Information

Page 26: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

8 Cause and Effect MatrixThe Cause and Effect Matrix is a new special task for the Mark VIeS Safety controller. This feature requires ToolboxSTV06.02 or later with the Mark VIeS Safety controller firmware V05.03 or later. Refer to the ToolboxST User Guide for MarkControls Platform (GEH-6700) for detailed instructions.

9 Clamp (CLAMP)Block Category: Math

The Clamp (CLAMP) block restricts the output to values defined by MIN and MAX. Outputs IN_MIN or IN_MAX becomeTrue to indicate a low or high limitation active.

Note This is a variant block that supports any one the following block data types: Integer, Double Integer, Real, Long Real,Unsigned Integer, Unsigned Double Integer. The default data type is Real. Refer to the section Change Data Type of VariantBlock.

CLAMP Block

Inputs

Name Data Type DescriptionENABLE BOOL Enables the block to runMAX ANY_NUM Maximum limitIN ANY_NUM Value to be clampedMIN ANY_NUM Minimum limit

Outputs

Name Data Type DescriptionOUT ANY_NUM Clamped outputIN_MAX BOOL Output is clamped at maximum limitIN_MIN BOOL Output is clamped at minimum limit

26 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 27: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

10 Combine SD (COMBINE_SD)Block Category: Type Conversion

The Combine blocks concatenate smaller variables into larger variables. They perform the reverse function of the Splitblocks. The COMBINE_SD block is used to combine two 16-bit WORD values to a single unsigned double integer (32-bit).

The DATA_SWAP input on the block is used to decide whether to do a byte swap on the input WORD values whilecalculating the output.

The reverse of the COMBINE_SD block is the SPLIT_DS block.

COMBINE_SD Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)LOWORD UINT Low word inputHIWORD UINT High word inputDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionOUTPUT UDINT The combined unsigned double integer output

Instruction Guide GEI-100691M 27Public Information

Page 28: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

11 Combine SLR (COMBINE_SLR)Block Category: Type Conversion

The Combine blocks concatenate smaller variables into larger variables. They perform the reverse function of the Splitblocks. The COMBINE_SLR block is used to combine four 16-bit WORD values to a single long real value (64-bit). Thisblock performs NaN protection by setting OUTPUT to the respective minimum or maximum value if the combined inputproduces a NaN.

The DATA_SWAP input on the block is used to decide whether to do a byte swap on the input WORD values whilecalculating the output.

The reverse of the COMBINE_SLR block is the SPLIT_LRS block.

COMBINE_SLR Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)WORD0 UINT Input to represent bits 0-15 of OUTPUTWORD1 UINT Input to represent bits 16-31 of OUTPUTWORD2 UINT Input to represent bits 32-47 of OUTPUTWORD3 UINT Input to represent bits 48-63 of OUTPUTDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionOUTPUT LREAL The combined long real output

28 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 29: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

12 Combine SR (COMBINE_SR)Block Category: Type Conversion

The Combine blocks concatenate smaller variables into larger variables. They perform the reverse function of the Splitblocks. The COMBINE_SR block is used to combine two 16-bit WORD values to a single real value (32-bit). This blockperforms NaN protection by setting OUTPUT to the respective minimum or maximum value if the combined input produces aNaN.

The DATA_SWAP input on the block is used to decide whether to do a byte swap on the input WORD values whilecalculating the output.

The reverse of the COMBINE_SR block is the SPLIT_RS block.

COMBINE_SR Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)LOWORD UINT Low word inputHIWORD UINT High word inputDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionOUTPUT REAL The combined real output

Instruction Guide GEI-100691M 29Public Information

Page 30: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

13 Combine SSD (COMBINE_SSD)Block Category: Type Conversion

The Combine blocks concatenate smaller variables into larger variables. They perform the reverse function of the Splitblocks. The COMBINE_SSD block is used to combine two 16-bit WORD values to a signed double integer (32-bit).

The DATA_SWAP input on the block is used to decide whether to do a byte swap on the input WORD values whilecalculating the output.

The reverse of the COMBINE_SSD block is the SPLIT_SDS block.

COMBINE_SSD Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)LOWORD UINT Low word inputHIWORD UINT High word inputDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionOUTPUT DINT The combined signed long integer output

30 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 31: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

14 Comment (_COMMENT)Block Category: System

The Comment (_COMMENT) block adds comment text in the block diagram. The _COMMENT block inserts a page breakas viewed from the tool and on the printed page. The comment will appear on the left side of the page on the next line afterthe previous block. The text of the comment is added in the Property View on the lower left side of the screen. The ShowDescription property must be True to display the entire text of the comment.

The _COMMENT block also controls the mode (flow mode or list mode) of the diagram to the next comment block (or endof the code if there are no subsequent comment blocks).

15 Comment Block Functionality (_COMMENT_BF)Block Category: System

Note This block is not recommended for use in any new controller applications (ControlST V05.02 or later). Refer to thesection Legacy Category Blocks.

The Comment Block Functionality (_COMMENT_BF) block adds comment text in the block diagram. The block inserts aline break as viewed from the tool and on the printed page. The comment will display on the left side of the page on the nextline after the previous block. The text of the comment is added in the Property View on the lower left side of the screen. TheShow Description property must be set to True to display the entire text of the comment.

The COMMENT_BF block also controls the mode (Flow or List mode) of the diagram to the next comment block (or end ofthe code if there are no subsequent comment blocks).

16 Comment No Break (_COMMENT_NB)Block Category: System

The Comment No Break (_COMMENT_NB) block adds comment text in the block diagram without causing a page break.The comment will appear after the next break in connected blocks. The text of the comment is added in the Property View onthe lower left side of the screen. The Show Description property must be True to display the entire text of the comment.

The _COMMENT_NB block also controls the mode (flow mode or list mode) of the diagram to the next Comment block (orend of the code if there are no subsequent comment blocks).

Instruction Guide GEI-100691M 31Public Information

Page 32: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

17 Compare (COMPARE)Block Category: Comparison

The Compare (COMPARE) block compares two input values and sets an output Boolean as the result. The input variable datatype is implied by the block data type.

Note This is a variant block which supports any one the following block data types: INT, DINT, REAL, LREAL, UINT, andUDINT. The default data type is REAL. Refer to the section .

Inputs

Name Data Type DescriptionIN1 ANY_NUM Input to compare

IN2 ANY_NUM Input to compare against

FUNC ENUM (INT) Comparison function (gt, ge, eq, ne, le, or lt) (default is gt)

HYST ANY_NUM Hysteresis value

SENS ANY_NUM Sensitivity value

Output

Name Data Type DescriptionOUT BOOL Result of the comparison

Comparison Functions

FUNC DescriptionGt Greater thanGe Greater than or equalEq Equal

Ne Not equalLe Less thanLt Less than or equal

Hysteresis and sensitivity settings are provided to prevent toggling around a boundary condition. Sensitivity refers to thetolerance band of the equality relationship. That is, IN1 is equal to IN2 if it is numerically within the band defined by IN2 ±SENS. Hysteresis applies for all relationships. Once any relationship evaluates to True, it must exceed the normalspecification by the value of HYST amount before it evaluates to False.

32 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 33: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Greater Than

Greater Than or Equal To

Instruction Guide GEI-100691M 33Public Information

Page 34: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Equal To

Not Equal

34 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 35: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Less Than or Equal To

Less Than

Instruction Guide GEI-100691M 35Public Information

Page 36: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

18 Compare with Hysteresis (COMPHYS)Block Category: Comparison

Note This block is not recommended for use in any new controller applications (ControlST V05.02 or later). Refer to thesection Legacy Category Blocks.

The Compare with Hysteresis (COMPHYS) block compares two floating point values and sets an output Boolean reflectingthe result. Hysteresis. Sensitivity settings are provided to prevent toggling around a boundary condition. The supportedfunctions include: greater than (gt), greater than or equal to (ge), equal to (eq), less than (lt), or less than or equal to (le).

Sensitivity refers to the thickness of the equality relationship. That is, IN1 is equal to IN2 if it is numerically within the banddefined by IN2 ± SENS. Hysteresis applies for all relationships. Once any relationship evaluates to True it must exceed thenormal specification by the HYST amount before it evaluates to False.

Floating Point Exception Handling

If a NaN is present on an input pin, the COMPHYS block replaces it internally with the most positive or most negativerepresentable number based on its sign, for the purpose of the comparison.

Note This block is a variant block that supports the following block data types: Real and Long Real. To modify the datatype, refer to the section Change Data Type of Variant Block.

COMPHYS Block

36 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 37: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Inputs

Name Data Type DescriptionIN1 REAL, LREAL Input to compareFUNC Constant CompFnL_T Comparison function (gt, lt, ge, le, eq) (default is gt)IN2 REAL, LREAL Value to compare againstHYST REAL, LREAL Hysteresis valueSENS REAL, LREAL Sensitivity value

Output

Name Data Type Description

OUT BOOL Result of the comparison

Instruction Guide GEI-100691M 37Public Information

Page 38: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

19 Controller Monitor (CTRLR_MON)Block Category: System

Note Only one instance of this block is allowed per controller.

The Controller Monitor (CTRLR_MON) block is used for various purposes. The Block has a POWER_UP output thattransitions to True 5 sec after the controller is in control mode. SIG_FORCED turns on if there are any forced variables in thecontroller, SIG_FORCED is set to False for 2 s every time the number of forced variables are increased. SIG_FORCED_NUM indicates the number of forced variables in the controller.

The block detects the current controller configuration (Simplex, Dual, or TMR). According to this configuration overtemperature alarms OVERTEMP_R, OVERTEMP_S, OVERTEMP_T (not applicable for all platforms, refer to the table,Platforms) and controller online variables ONLINE_R, ONLINE_S, and ONLINE_T are generated for R, S and Trespectively.

The input ONLINE_FL_TMR is used to delay the controller online variables change from True to False in the event thecontroller heartbeat stops.

Note CTRLR_MON creates global variables that can be used throughout the controller application software.

The outputs, HW_ALARM_R, HW_ALARM_S, HW_ALARM_T, become True any time a hardware failure diagnostic isgenerated for R, S and T controllers, respectively. The outputs, FAN1_FAIL_R, FAN1_FAIL_S and FAN1_FAIL_T, becomeTrue any time a FAN 1 failure is detected for R, S and T controllers, respectively (not applicable for all platforms; refer to thetable Platforms). The outputs, FAN2_FAIL_R, FAN2_FAIL_S and FAN2_FAIL_T, become True any time a FAN 2 failure isdetected for R, S and T controllers, respectively (applicable to UCSB only). Fans 1 and 2 are available only in the UCSB andthe corresponding failure outputs will be False for other platforms.

Note In the Virtual Controller, the OVERTEMP_R, OVERTEMP_S and OVERTEMP_T are all False because there is notemperature measurement functionality. ONLINE_S and ONLINE_T are always False irrespective of the controllerconfiguration (Simplex, Dual or TMR).

CTRLR_MON Block

38 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 39: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

InputsName Description Type Initial

ValueVisibility Usage

ONLINE_FL_TMR Online Fail Triple Modular Redundancy UDINT 5000 ms Parameter Input

OutputsName Description Type Initial

ValueVisibility Usage

HW_ALARM_R R controller hardware failure alarm BOOL False Always OutputHW_ALARM_S † S controller hardware failure alarm BOOL False Always OutputHW_ALARM_T †† Tcontroller hardware failure alarm BOOL False Always OutputFAN1_FAIL_R R controller Fan1 failure BOOL False Always OutputFAN1_FAIL_S † S controller Fan1 failure BOOL False Always OutputFAN1_FAIL_T †† Tcontroller Fan1 failure BOOL False Always OutputFAN2_FAIL_R R controller Fan2 failure BOOL False Always OutputFAN2_FAIL_S † S controller Fan2 failure BOOL False Always OutputFAN2_FAIL_T †† Tcontroller Fan2 failure BOOL False Always OutputPOWER_UP Controller powered up BOOL 0 Always OutputSIG_FORCED Signal forced in controller BOOL False Always OutputSIG_FORCED_NUM Number of forced signals INT 0 Always OutputOVERTEMP_R R controller over temperature BOOL False Always OutputOVERTEMP_S † S controller over temperature BOOL False Always OutputOVERTEMP_T †† Tcontroller over temperature BOOL False Always OutputONLINE_S † R controller online BOOL False Always OutputONLINE_R S controller online BOOL False Always OutputONLINE_T †† Tcontroller online BOOL False Always Output† Exists only when the controller’s redundancy is DUAL or TMR†† Exists only when the controller’s redundancy is TMR

Instruction Guide GEI-100691M 39Public Information

Page 40: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Global VariablesGlobal Pin Name Description Alarm Alarm

ClassEvent EGD Default

PageExternalAccess

HW_ALARM_R R controller hardware failure alarm Alarmed Diag False $Default Read OnlyHW_ALARM_S† S controller hardware failure alarm Alarmed Diag False $Default Read OnlyHW_ALARM_T †† Tcontroller hardware failure alarm Alarmed Diag False $Default Read OnlyFAN1_FAIL_R R controller Fan1 failure Alarmed Diag False $Default Read OnlyFAN1_FAIL_S† S controller Fan1 failure Alarmed Diag False $Default Read OnlyFAN1_FAIL_T †† Tcontroller Fan1 failure Alarmed Diag False $Default Read OnlyFAN2_FAIL_R R controller Fan2 failure Alarmed Diag False $Default Read OnlyFAN2_FAIL_S† S controller Fan2 failure Alarmed Diag False $Default Read OnlyFAN2_FAIL_T †† Tcontroller Fan2 failure Alarmed Diag False $Default Read OnlyPOWER_UP Controller powered up Not Alarmed N/A False N/A Read OnlySIG_FORCED Signal forced in controller Alarmed Diag False N/A Read OnlySIG_FORCED_NUM

Number of forced signals Not Alarmed N/A False N/A Read Only

OVERTEMP_R R controller over temperature Alarmed Diag False $Default Read OnlyOVERTEMP_S† S controller over temperature Alarmed Diag False $Default Read OnlyOVERTEMP_T †† Tcontroller over temperature Alarmed Diag False $Default Read OnlyONLINE_R R controller online Not Alarmed N/A False $Default Read OnlyONLINE_S† S controller online Not Alarmed N/A False $Default Read OnlyONLINE_T †† Tcontroller online Not Alarmed N/A False $Default Read Only† Exists only when the controller’s redundancy is DUAL or TMR†† Exists only when the controller’s redundancy is TMR

40 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 41: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Mark VIeS PlatformsOutput Pins UCCC UCSB UCSC

POWER_UPTrue: Controller has been powered up and is controllingFalse: Controller not reached controlling state

SIG_FORCEDTrue: At least one signal is forcedFalse: No forced signals or set to False for 2 sec every time the number of forced variables areincreased

SIG_FORCED_NUM Number of forced signals in the application

OVERTEMP_RTrue: CPU temperature too highFalse: CPU temperature normal

OVERTEMP_STrue: CPU temperature too highFalse: CPU temperature normal

OVERTEMP_TTrue: CPU temperature too highFalse: CPU temperature normal

ONLINE_R True: R controller is onlineFalse: R controller is not online

ONLINE_S True: S controller is onlineFalse: S controller is not online

ONLINE_T True: Tcontroller is onlineFalse: Tcontroller is not online

HW_ALARM_R True: R controller hardware failure has occurredFalse: No R controller hardware failure

HW_ALARM_S True: S controller hardware failure has occurredFalse: No S controller hardware failure

HW_ALARM_T True: Tcontroller hardware failure has occurredFalse: No Tcontroller hardware failure

FAN1_FAIL_R Not Applicable (False)FAN1_FAIL_S Not Applicable (False)FAN1_FAIL_T Not Applicable (False)FAN2_FAIL_R Not Applicable (False)FAN2_FAIL_S Not Applicable (False)FAN2_FAIL_T Not Applicable (False)

Instruction Guide GEI-100691M 41Public Information

Page 42: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

20 Counter (COUNTER)Block Category: Timers and Counters

The Counter (COUNTER) block accumulates rising edges of the INC pin into CUR_CNTwhile the RUN is True and CUR_CNT is less than MAX_CNT. When CUR_CNT is equal to MAX_CNT, AT_CNT transitions to True. If RUN is False thencounting is suspended, but CUR_CNT holds its value. If RESET is True then CUR_CNT is set to zero and counting issuspended. If MAX_CNT is less than one, each rising edge of INC sets AT_CNT True and increments CUR_CNT.

COUNTER Block

Inputs

Name Data Type DescriptionINC BOOL Triggers another count on its rising edgeMAX_CNT DINT The maximum count valueRESET BOOL Zeros the counterRUN BOOL Enables the counter

Outputs

Name Data Type DescriptionAT_CNT BOOL Indicates the counter has reached the maximum count valueCUR_CNT DINT Current count value (always ≤ MAX_CNT)

StatesName Data Type Description

LAST_CURCNT DINT

This is the variable that holds the current count. It is a hidden pin thatcan be viewed or changed by right-clicking the block and selecting EditBlock Pins. Writing to this variable is not recommended, but can beused to preset block states.

LAST_ATCNT BOOL

This is the variable that holds the state, indicating the counter hasreached the maximum count value. This is a hidden pin. It can beviewed or changed by right-clicking the block and selecting Edit BlockPins. Writing to this variable is not recommended, but can be used topreset block states.

42 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 43: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

21 Device Heartbeat (DEVICE_HB)Block Category: System

The Device Heartbeat (DEVICE_HB) block outputs an incrementing value to drive the heartbeat signal on a protection I/Omodule, such as PPRO. This block follows the internal frame counter, which is synchronized in the three controllers of aTMR system.

The DEVICE_HB block provides a voted variable representation of the controller scheduler frame number (anotherfree-running counter). It is normally used to drive the heartbeat input into the protection I/O packs. Because the variable is thesame in all controllers in a redundant set. It does not cause a potential voter disagreement diagnostic in the packs (couldhappen with ControllerStateHeartbeat_R/S/T). The protection I/O pack trips the unit after five frames if no updates aredetected. After the unit trips, it must detect 60 frames of incrementing heartbeat before it allows the unit to go back online.

Note The OUT value freezes if the associated task/user block stops running.

DEVICE_HB Block

Output

Name Data Type DescriptionOUT DINT Device heartbeat

Instruction Guide GEI-100691M 43Public Information

Page 44: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

22 Dual Select Version 2 (DUALSEL_S2)Block Category: Analog Operations

The Dual Select Version 2 (DUALSEL_S2) block transfers the average, minimum, or maximum of two analog signals tooutput ({Device}). The user has the option to disable one transmitter. If one transmitter is disabled, the output will be the valueof the remaining transmitter.

This block is similar to the Mark VIe DUALSEL_V2 block but functionality differs in the following ways:

• The DUALSEL_S2 block does not support the status option.• The Auto Enable (AU_EN_P) feature is not supported.• Control commands for disabling and enabling transmitters are supported in the DUALSEL_S2 bock; however, the

push-button reset functionality must be implemented in another device. For further details, refer to the description ofcontrol word (CTL_EXT) in the section Control Word.

Block Configuration

Disabling Transmitters

When the quality status of transmitter A (IN_ABQ) is BAD (False), ABQ and AD become True and transmitter A isautomatically disabled. Once the quality status of transmitter A becomes GOOD (True), ABQ becomes False. If the qualitystatus of transmitter A becomes GOOD (True) and the value of input A is within the deviation limits set by the user, ADbecomes False and A is automatically enabled. This concept also applies to input B.

A transmitter can be manually disabled using the CTL_EXT input. If input A and B are both enabled and have a GOODquality status and A is manually disabled, then the corresponding output, AD, becomes True to indicate that input A isdisabled. If input A is enabled and B is disabled, then BD is True.

Output Bad Quality Indication (OBQ)

When two transmitters are disabled and/or in a BAD quality state, OBQ becomes True, the default value, DF, is automaticallytransferred to output, and MODE is set to DEFAULT. OBQ becomes False when the quality status of either input becomesGOOD. The GOOD quality input will be enabled and transferred to the output.

Control Word

Control word (CTL_EXT) is used by the HMI operator for manual control. The manual commands from the HMI allow eachinput to be enabled or disabled. A manually disabled transmitter can be manually enabled, regardless of its deviation status.The command enumerations are defined in the following table.

CTL_EXT Enumerations

Enumeration CommandNO_CMD No CommandEN_A_CMD Enable Input A CommandDIS_A_CMD Disable Input A CommandEN_B_CMD Enable Input B CommandDIS_B_CMD Disable Input B Command

Note Operation of the CTL_EXT pin in the Mark VIeS control differs from that in other Mark VIe control products. In theMark VIeS control, the variable attached to the CTL_EXT pin must be from a consumed EGD page. The EGD producerdevice driving the variable must implement the necessary push-button reset logic.

44 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 45: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Commands are only accepted by the block if a transition from NO_CMD to a command value is detected while the CTL_EXT input is healthy. After a command is accepted by the block, the CTL_EXT pin is ignored for a period of two secondsafter which a valid transition from NO_CMD must be detected to accept another command. An example configuration is asfollows:

Example Configuration

An HMI faceplate is created to display data from the DUALSEL_S2 block from a Mark VIeS control. EGD signals areconsumed by the HMI from the Mark VIeS control and are used to drive the faceplate. The control word from the MarkVIeS control is used for feedback. Control commands are sent to an EGD signal driven from a Mark VIe device. Forexample, after adding the DUALSEL_S2 block to the Mark VIeS control system and attaching the EGD signals to thefaceplate, the following configuration is required:

In a Mark VIe device:• Create a control word variable.• Add the control word variable to a produced EGD page.• Add push-button reset logic in the blockware to reset the control word value to NO_CMD (0). The control word should

be reset after one second of it being non-zero.

In the HMI:• Attach the control word variable from the Mark VIe control to the control word logic in the appropriate DUALSEL_S2

faceplate.

In the Mark VIeS device:• Attach the control word variable from the Mark VIe control to the CTL_EXT pin of the appropriate DUALSEL_S2

block.

Block Function Enumerations

Dual Select (DS) mode defines the block function mode. The function mode enumerations are defined in the following table.

DS Mode EnumerationsEnumeration FunctionAVG Average of A and BMIN Minimum of A and BMAX Maximum of A and B

Operating mode (MODE) is a block-operating mode that depends on DS and the quality status of the inputs. The operatingmode enumerations are defined in the following table.

MODE EnumerationsEnumeration Operating ModeAVG Average of A and BMIN_A-B Minimum of A and BMAX_A-B Maximum of A and BA Input AB Input BDEFAULT Input DF

Instruction Guide GEI-100691M 45Public Information

Page 46: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Examples

• AVG,MIN_A-B, orMAX_A-B is the operating mode when both transmitters are not BAD quality and are enabled.• A mode is selected when transmitter B is manually disabled or determined to be BAD quality.• B mode is selected when transmitter A is manually disabled or determined to be BAD quality.• DEFAULT is the operating mode selected automatically when both transmitters are determined to be bad quality and/or

disabled.

Deviation Alarms

A and B values are compared to determine if the absolute value of their difference is greater than or equal to the deviationlimit, DL. If so, the deviation high alarm, ODH, becomes True, delayed by the deviation time delay, DT. The deviation alarmwill not become False until the absolute difference between A and B is less than the value of DL minus DLDB (deviationlimit dead band)or either input is disabled.

Note The deviation high output, ODH, becomes True when at least one transmitter is in deviation. Also, if a transmitterinput is disabled, the deviation alarm for that transmitter is disabled.

In general, the deviation alarm only sets Boolean outputs and has no influence on the functionality of the block (that is, thetransmitter in deviation with the output is not automatically disabled, and the block mode does not change).

Note Refer to the section Alarm and Event Configuration for more information.

Rate of Change Restriction

The rate of change of OUT is only restricted by the value of RATE when the block operating mode changes.

RATE is in engineering units per second. For example, if RATE = 1, A = 10 (enabled), and B = 25 (disabled), so MODE = A,and the mode of the block is changed by enabling input B and disabling input A. Now, MODE = B and output will increasefrom 10 to 25 engineering units in 15 seconds. At this point, output equals B, the block operating mode transition from A to Bis complete and the rate of change restriction on output is removed until the block operating mode changes, again.

ToolboxST Configuration

Inserting this block into the application program will generate the window displayed in the following figure. This prompts theuser to Enter Device Description, Enter Device Name, and Enter Format Specification in the Values column.

Changing Default Attributes

46 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 47: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

When the user clicks OK, the block will automatically set the appropriate attributes for each variable (for example, Type andFormat Specification). Any variables that need to be on EGD will be automatically placed on the $Default EGD page.

Note Each Device Name used in a controller must be unique.

The block and pin connections are configured automatically. The object will display in the ToolboxST application.

DUALSEL_S2 Block

Pin names are in the form Device Value.Pin Name, where Device Value has the attribute value 00DUALSEL_S21000 and pinName is the block input/output pin name. (Refer to the table Global Variables.) The description, DUALSEL_S2 Description,becomes the prefix of the block input/output descriptions. The FormatSp Attribute Name Value, TempFS, is the formatspecification of the block output. The DLFormatSp Attribute Name Value, TempDiffFS, is the format specification of theblock DL pin output.

Note The only exception to the rule is the output pin ({Device}) where the global pin name is in the form Device Value pinname without the " ".

Inputs

Name Global Description Data Type Initial Value VisibilityA Yes {Desc} Trans A input REAL 0 Always

B Yes {Desc} Trans B input REAL 0 AlwaysCTL_EXT Yes {Desc} Control word UINT (ENUM) NO_CMD Always

DF NoDefault output if bothtransmitters are bad

REAL 0 Parameter

DL No Deviation alarm limit REAL 5 Parameter

DLDB NoDeviation alarm limitdeadband

REAL 2 Parameter

DS No Dual Select Mode property UINT (ENUM) AVG ParameterDT No Deviation alarm delay UDINT 1000 ParameterIN_ABQ No Trans A bad quality BOOL False AlwaysIN_BBQ No Trans B bad quality BOOL False Always

RATE No Selection change rate limit REAL 1 Parameter

Instruction Guide GEI-100691M 47Public Information

Page 48: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Outputs

Name Global Description Data Type Initial Value Visibility{Device} Yes {Desc} REAL 0 AlwaysABQ Yes {Desc} Trans A bad quality BOOL False Always

AD Yes {Desc} Trans A disabled BOOL False AlwaysBBQ Yes {Desc} Trans B bad quality BOOL False Always

BD Yes {Desc} Trans B disabled BOOL False Always

MODE Yes {Desc} Block mode UINT (ENUM) AVG_AB AlwaysOBQ Yes {Desc} Bad quality BOOL False Always

ODH Yes {Desc} High deviation BOOL False AlwaysSEL_P Yes {Desc} Select type property UINT (ENUM) DUAL Internal

Global VariablesPin Name Description Alarm Alarm

ClassEvent EGD Page External

AccessDUALSEL_S21001 DUALSEL_S2 1001 Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.ADUALSEL_S2 1001Trans A input Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.ABQDUALSEL_S2 1001Trans A bad quality Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.AD DUALSEL_S2 1001Trans A deselected

Not Alarmed — True $Default ReadOnly

DUALSEL1001.BDUALSEL_S2 1001Trans B input Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.BBQDUALSEL_S2 1001Trans B bad quality Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.BD DUALSEL_S2 1001Trans B deselected

Not Alarmed — True $Default ReadOnly

DUALSEL_S21001.CTL_EXT DUALSEL_S2 1001Control word

Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.MODE DUALSEL_S2 1001Block mode

Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.OBQDUALSEL_S2 1001Bad quality Not Alarmed — False $Default ReadOnly

DUALSEL_S21001.ODHDUALSEL_S2 1001High deviation Alarmed Alert False $Default ReadOnly

DUALSEL_S21001.SEL_PDUALSEL_S2 1001Select type property Not Alarmed — False $Default ReadOnly

48 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 49: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Alarm and Event Configuration

The following guidelines apply to DUALSEL_S2 alarm and event configuration:

• The ODH variable is configured as an alarm.• AD and BD variables are configured as events.• Only Boolean variables can be configured as alarms.

Enabling Alarms on Signal

Instruction Guide GEI-100691M 49Public Information

Page 50: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

23 Expand Long Integer (EXPAND_UDI)Block Category: Boolean Operations

The Expand Long Integer (EXPAND_UDI) block moves each bit of the input into 32 individual Boolean outputs. The leastsignificant input bit is placed in OUT0 and the most significant bit is placed in OUT31.

EXPAND_UDI Block

Input

Name Data Type DescriptionIN UDINT Input 32 bit integer to expand

Outputs

Name Data Type DescriptionOUT0 BOOL Contains the results of the expansion process (least significant binary digit)↓ ↓ ↓OUT31 BOOL Contains the results of the expansion process (most significant binary digit)

50 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 51: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

24 Function Generator (FUNGEN)Block Category: Math

The Function Generator (FUNGEN) block creates common variable functions for test and verification. The function and/orany of its parameters may be dynamically changed to generate the wave forms, STEP, SQUARE, RAMP, TRIANGLE andSINE. Only a subset of the pins are required to configure each function type.

Pin Usage Combination for Generating Respective Functions

Function MAX_VAL MIN_VAL PERIOD1 PERIOD2 A_RATE D_RATE

Step

Square

Sine

Ramp

Triangular

FUNGEN Block

Instruction Guide GEI-100691M 51Public Information

Page 52: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default value is False)

FUNC Fungen_T

Function to generate the following:

• Step (1) drives the output to MAX_VAL in one sweep• Square wave (2) oscillates between MAX_VAL and MIN_VAL, holding MAX_VAL for

PERIOD1 and MIN_VAL for PERIOD2. The sequence always begins with MAX_VAL• Ramp (3) ramps the output to MAX_VAL. If the output is less than MAX_VAL the

ascending ramp rate, A_RATE is used. If the output is greater than MAX_VAL thedescending ramp rate D_RATE is used.

• Triangle wave (4) repetitively ramps from MAX_VAL to MIN_VAL at D_RATE andback to MAX_VAL at A_RATE. At startup if the output is greater than MAX_VAL thedescending cycle will commence first. Otherwise the ascending cycle will commencefirst

• Sine wave (5) generates a sinusoidal wave between the amplitudes of MAX_VALand MIN_VAL with a period of PERIOD1. The waveform commences at 0 degreesregardless of the initial output value (default value is Step.

MAX_VAL REALMaximum value of the output (unless the initial value of the output is already greater thanMAX_VAL). For proper operation MAX_VAL should be greater than or equal to MIN_VAL

PERIOD1 REALTime period in seconds for the sine wave function, or for the MAX_VAL portion of thesquare wave function

MIN_VAL REALMinimum value of the output. For proper operation MIN_VAL should be less than or equalto MAX_VAL

PERIOD2 REAL Time period in seconds for the MIN_VAL portion of the square wave functionA_RATE REAL Ascending ramp rate in units/secondD_RATE REAL Descending ramp rate in units/second

Output

Name Data Type DescriptionOUTPUT REAL Output of the function

52 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 53: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

25 Integer to Word Conversion (I_TO_WD)Block Category: Type Conversion

The Integer to Word Conversion (I_TO_WD) block moves a signed integer (16-bit) to a 16-bit WORD. The conversion isstrictly mechanical. That is, there is no attempt to interpret the data, or to perform any clamping, scaling, data typeconversion, or sign extension.

I_TO_WD Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)INPUT INT Integer input

Outputs

Name Data Type DescriptionOUTPUT UINT Unsigned integer (16-bit WORD) output

Instruction Guide GEI-100691M 53Public Information

Page 54: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

26 Interpolator Version 2 (INTERP_V2)Block Category: Controls (Basic)

The Interpolator Version 2 (INTERP_V2) block generates an output as a function of IN by linear interpolation. The argumenttable X[N] is searched using IN as the key. OUT is calculated from the function table Y[N] using the search index from theargument table and interpolating between the values:

OUT = Y[i] + ((Y[i+1] - Y[i]) x ((IN - X[i]) / (X[i+1] - X[i]))),where i is the index resulting from the binary search of the argument table.

The array sizes of the variables attached to X[ ] and Y[ ] must be equal to or greater than the table size specified by N and thetable size must be greater than or equal to 2. If either of these conditions is not met, a build error is generated. OUT isclamped to either the first or last element in the function table if IN is not within the range of the argument table elements.When IN is within the limits of the argument table, the slope, M, is calculated as follows; otherwise, M is defined to be theslope of a line between the nearest function table end point element and the element next to it:

ERROR is False under normal operation but is set to True if an error is detected. If the value of IN is a NaN or if the elementsof X[] are not monotonically increasing, ERROR is set to True. If ERROR is True, OUT is not updated.

INTERP_V2 Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)IN REAL Input valueN UDINT Number of elements in argument and function tables (must be ≥ 2)X[ ] REAL Argument table (values must be monotonically increasing)Y[ ] REAL Function table

Outputs

Name Data Type DescriptionOUT REAL Interpolated outputM REAL Slope of output functionERROR BOOL Error detected in input value or argument table

54 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 55: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

27 Latch (LATCH)Block Category: Sequencing

The Latch (LATCH) block emulates an SR flip-flop; it sets or resets OUT based on the current values of SET and RESET, andthe previous value of OUT according to the following Truth table:

where X = either state, t = current state, and t+1 = next state

RDOM SET(t) RESET(t) OUT(t) OUT(t+1)X 0 0 0 0X 0 0 1 1X 0 1 0 0X 0 1 1 0X 1 0 0 1X 1 0 1 11 1 1 X 00 1 1 X 1

LATCH Block

Inputs

Name Data Type Description

SET BOOL Set inputRESET BOOL Reset input (default is False)

RDOM BOOLIf True, RESET dominates the latch, else SET dominates (default is False, SETdominates).

Output

Name Data Type DescriptionOUT BOOL Output of the latch

State

Name Data Type Description

STATUS BOOLThis is the status variable for storing the trigger status, a hidden pin. It can be viewed orchanged by right-clicking the block and selecting Edit Block Pins. Writing to this variableis not recommended but can be used to preset block states.

Instruction Guide GEI-100691M 55Public Information

Page 56: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

28 Logical AND (AND)Block Category: Boolean Operations

The Logical AND (AND) block is an expandable block that performs a logical AND of up to 16 inputs.

AND Block

LogicINPUT01 INPUT02 OUT1 1 11 0 00 1 00 0 0OUTwill be 1 only if all inputs are 1. Otherwise, OUTwill be 0.

Inputs

Name Data Type DescriptionINPUT01 BOOL First input↓ ↓ ↓INPUTnm BOOL N’th input

Output

Name Data Type DescriptionOUT BOOL Output

56 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 57: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

29 Logic Builder State Change (LOGIC_BUILDER_SC)Block Category: Permits and Overrides

This block allows up to 32 inputs to be configured with the AND, OR, and NOT blocks to create a PERMIT, OVERRIDE,FORCE, or TRACK type block. Unlike the normal PERMIT, OVERRIDE, FORCE, or TRACK blocks that essentiallyfunction as either an AND or OR block, this block allows the user to create unique logic scenarios that can contain up to 32individual inputs and up to six logic blocks in series of depth using any combination of AND, OR, and NOT blocks.

The LOGIC_BUILDER_SC block provides a simple, versatile, and effective solution to provide FORCE, OVERRIDE orPERMIT applications for complex situations. Each of the 32 inputs has a corresponding attribute set by the programmer,which, when changed, must be downloaded to the controller. The input attribute either permits or does not permit theoperator’s ability to enable or disable the associated input using the CIMPLICITY graphical interface. The LOGIC_BUILDER_SC block type, PERMIT, OVERRIDE, FORCE, or TRACK is controlled by an enumerated input, TYP, which isset by the programmer. The enumeration selected for the TYP input determines the enumerations the block will output fromthe OUT block output. The output enumerations will correspond to the type of block specified by the TYP input enumeration.

Each input has the capability of inheriting the description of a connected global variable or a global variable connectedthrough a NOT block. When a connection is made to one of the input pins, the description of the global variable is inheritedby default. If this description is undesirable, it must be disabled by setting the Inherit Description option to False in the inputvariable properties. The description can be replaced with a desirable description by entering an appropriate description in thedescription field of the input variable of the LOGIC_BUILDER_SC block (replace LOGIC_BUILDER_SC #1 with thedesired override description for the source connected to IN1). The description is not copied from the connected variableimmediately; the input’s description is set when the library or device containing the input is validated or built.

Instruction Guide GEI-100691M 57Public Information

Page 58: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

TYP Input Enumerations

Name DescriptionAU_PMT Auto PermitCL_PMT Close PermitOP_PMT Open PermitINT_PMT Intermediate PermitON_PMT On PermitOFF_PMT Off PermitSTR_PMT Start PermitSTP_PMT Stop PermitHI_PMT High PermitLO_PMT Low Permit

REV_PMT Reverse Permit

RDY1 Ready 1 Permit

RDY2 Ready 2 Permit

RDY3 Ready 3 Permit

RDY4 Ready 4 Permit

RDY5 Ready 5 Permit

SFC_TRANS_PMTSFC Transition Permit is only available in the Mark VIecontroller (not in the Mark VIeS)

MOD_PMT Modulate Permit

CMD_FRC Command Force

CL_FRC Close Force

OP_FRC Open Force

INT_FRC Intermediate Force

ON_FRC On Force

OFF_FRC Off Force

STR_FRC Start Force

STP_FRC Stop Force

HI_FRC High Force

LO_FRC Low Force

REV_FRC Reverse Force

CMD_OVR Command Override

CL_OVR Close Override

OP_OVR Open Override

INT_OVR Intermediate Override

TRP_OVR Trip Override

STP_OVR Stop Override

MN_REJ Manual Reject

CMD_TRK Command Track

58 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 59: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Permit Type Enumerations and Use

Enumeration When UsedAU_PMT Auto permit enumeration output is requiredCL_PMT Close permit enumeration output is requiredOP_PMT Open permit enumeration output is requiredINT_PMT Intermediate permit enumeration output is required.ON_PMT On permit enumeration output is requiredOFF_PMT Off permit enumeration output is requiredSTR_PMT Start permit enumeration output is requiredSTP_PMT Stop permit enumeration output is requiredHI_PMT High permit enumeration output is requiredLO_PMT Low permit enumeration output is requiredREV_PMT Reverse permit enumeration output is requiredRDY1 Ready 1 permit enumeration output is requiredRDY2 Ready 2 permit enumeration output is requiredRDY3 Ready 3 permit enumeration output is requiredRDY4 Ready 4 permit enumeration output is requiredRDY5 Ready 5 permit enumeration output is required

SFC_TRANS_PMTSEQUENTIAL FUNCTION CHART TRANSITION permit enumeration output is requiredThis is only available with the Mark VIe controller (not the Mark VIeS Safety controller)

MOD_PMT Modulate permit enumeration output is required

Force Type Enumerations and Use

Enumeration When UsedCMD_OVR Command override enumeration output is requiredCL_OVR Close override enumeration output is requiredOP_OVR Open override enumeration output is requiredINT_OVR Intermediate override enumeration output is requiredTRP_OVR Trip override enumeration output is requiredSTP_OVR Stop override enumeration output is requiredMN_REJ Manual Reject enumeration output is required

Track Type enumeration, CMD_TRK is used when a Command track enumeration output is required.

Instruction Guide GEI-100691M 59Public Information

Page 60: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Equation (EQN) Input

The equation input, EQN, is a string equation that is equivalent to the graphical AND, OR, and NOT blocks used to representthe logic required to provide the correct block output (* = AND, + = OR, ~ = NOT, () are grouping characters). The stringequation can be entered directly into the input EQN, or it can be generated automatically from the graphical representation ofthe logic created using AND, OR, and NOT blocks. If the equation is entered manually into the EQN input, the logic isautomatically configured correctly in the logic building template and visa versa.

Example: EQN input; (IN1+IN2)*(~(IN3))

Example EQN Input

Logic Building Template

60 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 61: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

IN1, IN1TP, IN1TE, and IN1T (1-32) Inputs

Inputs IN1 through IN32 are manipulated by AND, OR, and NOT logic to create the desired output.

Input toggle permits, IN1TP through IN32TP , are set by the programmer and can only be changed in the controller byperforming a Build and Download of the modified code. If the toggle permit input for a corresponding input is True, theoperator is able to toggle the value of the associated logical input, IN1TE through IN32TE, using the CIMPLICITY graphicalinterface.

Inputs IN1TE through IN32TE are toggle enable inputs that are controlled by the operator using the CIMPLICITY graphicalinterface. The operator can toggle each permitted input from True to False, or False to True.

The toggle input values, IN1T through IN32T, track the values of IN1 through IN32, respectively, when toggle mode is notenabled for its input. The toggle input value, IN1T through IN32T, is the actual value that is used in the AND, OR, and NOTprogrammed logic. The toggle value, IN1T, for the IN1 input is defined as a combination of the toggle input permit, IN1TPbeing equal to True, and the toggle enable input from the CIMPLICITY graphical interface, IN1TE being equal to True. Thistoggle value concept is True for all 32 inputs, IN1 through IN32.

Output (OUT) Enumerations

The output, OUT, is an enumerated output. The enumerations for OUT are based on the block type dictated by the inputenumeration assigned to the input TYP, and will be a PERMIT, OVERRIDE, FORCE, or TRACK type enumerations. OUToutput enumerations are defined by type, either PERMIT, FORCE, OVERRIDE or TRACK.

OUT Permit Type Output Enumerations

Name DescriptionNO_PERM-NO_BYPASS No Permit and no Permit is bypassedPERM-NO_BYPASS Permit OK and no Permit is bypassedNO_PERM-BYPASS No Permit and a Permit is bypassedPERM-BYPASS Permit OK and a Permit is bypassed

NO_PERM— indicates all permits have not been met.

PERM— indicates all permits have been met.

NO-BYPASS— indicates the operator has not invoked a toggle of any of the associated logic driven inputs to the permit typeblock.

BYPASS— indicates the operator has invoked a toggle of at least one of the associated logic driven inputs to the permit typeblock.

OUT Force Type Output Enumerations

Name DescriptionNO_FORCE-NO_BLOCK No Force and no Force is blockedFORCE-NO_BLOCK Force active and no Force is blockedNO_FORCE-BLOCK No Force and a Force is blockedFORCE-BLOCK Force active and a Force is blocked

NO_FORCE— indicates no force command is active.

FORCE— indicates a force command is active.

NO-BLOCK— indicates the operator has not invoked a toggle of any of the associated logic driven inputs to the force typeblock.

BLOCK— indicates the operator has invoked a toggle of at least one of the associated logic driven inputs to the force typeblock.

Instruction Guide GEI-100691M 61Public Information

Page 62: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

OUT Override Type Output Enumerations

Name DescriptionNO_OVR-NO_BLOCK No Override and no Override is blockedOVR-NO_BLOCK Override active and no Override is blockedNO_OVR-BLOCK No Override and an Override is blockedOVR-BLOCK Override active and an Override is blocked

NO_OVR— indicates no override command is active.

OVR— indicates an override command is active.

NO-BLOCK— indicates the operator has not invoked a toggle of any of the associated logic driven inputs to the overridetype block.

BLOCK— indicates the operator has invoked a toggle of at least one of the associated logic driven inputs to the overridetype block.

OUT Track Command Type Enumerations

Name DescriptionNO_TRACK-NO_BLOCK No Track and no Track is blockedTRACK-NO_BLOCK Track active and no Track is blockedNO_TRACK-BLOCK No Track and a Track is blockedTRACK-BLOCK Track active and a Track is blocked

NO_TRACK— indicates no track command is active.

TRACK— indicates a track command is active.

NO-BLOCK— indicates the operator has not invoked a toggle of any of the associated logic driven inputs to the track typeblock.

BLOCK— indicates the operator has invoked a toggle of at least one of the associated logic driven inputs to the track typeblock.

Outputs OUT_TGL and OUT_VAL

The output, OUT_TGL, indicates one or more of the inputs are in toggle-enabled mode. OUT_TGL is True when at least oneIN1TP and IN1TE through IN32TP and IN32TE pair is True. When OUT_TGL is True, the OUT enumeration containsBYPASS or BLOCK based on the enumeration chosen for the block by the input TYP.

OUT_VAL, the Boolean output status, is driven by the logical output of the user-defined equation input, EQN. When OUT_VAL is True, the OUT enumeration contains either PERM, OVR, FORCE or TRACK based on the enumeration chosen forthe block input TYP.

62 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 63: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

ToolboxST Configuration

When a block is inserted into the ToolboxST application code, it generates a window prompting the user to enter the DeviceName and the Block Type that will be assigned to the TYP input. The block automatically creates the variables associatedwith the block and provides the appropriate attributes for each variable (for example Type, Scope, variables that need to be onEGD will be automatically placed on the $Default EGD page).

Note Each Device Name used in a controller must be unique.

LOGIC_BUILDERWindow Example

Inputs

Name Description Type Array Initial Value Visibility UsageEQN Logic equation STRING 0 IN1 Always ConstTYP Logic type UINT 0 {Type} Always Input

IN1 Input 1 BOOL 0 False Always Input

IN1TInput 1 togglevalue

BOOL 0 False Always State

IN1TEInput 1 toggleenable from HMI

BOOL 0 False Always Input

IN1TPInput 1 togglepermitted

BOOL 0 False Always Const

IN2 Input 2 BOOL 0 False Always Input

IN2TInput 2 togglevalue

BOOL 0 False Always State

IN2TEInput 2 toggleenable from HMI

BOOL 0 False Always Input

IN2TPInput 2 togglepermitted

BOOL 0 False Always Const

↓ ↓ ↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓ ↓IN32 Input 32 BOOL 0 False Always Input

IN32TInput 32 togglevalue

BOOL 0 False Always State

IN32TEInput 32 toggleenable from HMI

BOOL 0 False Always Input

IN32TPInput 32 togglepermitted

BOOL 0 False Always Const

Outputs

Name Description Type Array Initial Value Visibility Usage

{Device}{Type}Test string forequation

BOOL 0 False Always Output

OUTOutputenumeration

UINT 0 NO_PERM -NO_BYPASS Always Output

Instruction Guide GEI-100691M 63Public Information

Page 64: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Outputs (continued)

Name Description Type Array Initial Value Visibility Usage

OUT_VALBoolean outputstatus

BOOL 0 False Always Output

OUT_TGLInputs in toggleenabled mode

BOOL 0 False Always Output

Global Pins (Automatically Created for an Auto Permit Type Block)

Global Pin Name Description Alarm Event EGD Page ExternalAccess

00LOG_BLD1000AU_PMT Test string for equation Not Alarmed False $DEFAULT Read Only00LOG_BLD1000AU_PMT.IN1 Input 1 Not Alarmed False $DEFAULT Read Only00LOG_BLD1000AU_PMT.IN1T Input 1 toggle value Not Alarmed False $DEFAULT Read Only

00LOG_BLD1000AU_PMT.IN1TEInput 1 toggle enable fromHMI

Not Alarmed *IN1TP $DEFAULT Read Only

00LOG_BLD1000AU_PMT.IN1TP Input 1 toggle permitted Not Alarmed False $DEFAULT Read Only00LOG_BLD1000AU_PMT.IN2 Input 2 Not Alarmed False $DEFAULT Read Only00LOG_BLD1000AU_PMT.IN2T Input 2 toggle value Not Alarmed False $DEFAULT Read Only

00LOG_BLD1000AU_PMT.IN2TEInput 2 toggle enable fromHMI

Not Alarmed *IN2TP $DEFAULT Read Only

00LOG_BLD1000AU_PMT.IN2TP Input 2 toggle permitted Not Alarmed False $DEFAULT Read Only↓ ↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓00LOG_BLD1000AU_PMT.IN32 Input 32 Not Alarmed False $DEFAULT Read Only00LOG_BLD1000AU_PMT.IN32T Input 32 toggle value Not Alarmed False $DEFAULT Read Only

00LOG_BLD1000AU_PMT.IN32TEInput 32 toggle enable fromHMI

Not Alarmed *IN32TP $DEFAULT Read Only

00LOG_BLD1000AU_PMT.IN32TP Input 32 toggle permitted Not Alarmed False $DEFAULT Read Only00LOG_BLD1000AU_PMT.OUT Output enumeration Not Alarmed False — Read Only00LOG_BLD1000AU_PMT.OUT_VAL Boolean output status Not Alarmed False — Read Only

00LOG_BLD1000AU_PMT.OUT_TGLInputs in toggle enabledmode

Not Alarmed False — Read Only

64 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 65: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

HMI Configuration (CIMPLICITY)

The following figure is an example of the CIMPLICITY graphical interface with a permit type block, with six permit enabledinputs and input 2 is toggled.

Typical HMI Object for LOGIC_BUILDER with a Permit Type Block

The following figure is an example of the common usage of a LOGIC_BUILDER block. This example displays the LOGIC_BUILDER block sharing the same name as the M_O_V block that it is controlling. The ToolboxST application requires thatall blocks have unique names. The LOGIC_BUILDER blocks avoid this by adding the block type to the block name. Thismakes them unique, links them to the block they control in the HMI, and indicates their function.

Instruction Guide GEI-100691M 65Public Information

Page 66: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Connection and Naming

66 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 67: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

State Change

The State Change feature performs a First In-First Out (FIFO) operation for all 32 inputs. It latches input values for thecurrent and previous frames when the output transitions to a Not Permitted, Forced, Override, or Track state. Indication isprovided that a State Change has occurred and acts as a reset dominant latch.

Each input has the capability of inheriting the description of a connected global variable or a global variable connectedthrough a NOT block. When a connection is made to one of the input pins, the description of the global variable is inheritedby default. If this description is undesirable, it must be disabled by setting the Inherit Description option to False in the inputvariable properties. The description can be replaced with a desirable description by entering an appropriate description in thedescription field of the input variable of the LOGIC_BUILDER_SC block (replace LOGIC_BUILDER_SC #1 with thedesired override description for the source connected to IN1). The description is not copied from the connected variableimmediately; the input’s description is set when the library or device containing the input is validated or built.

The State Change feature adds the input pins SCA_ENABLE, RESET, and RESET_PB. The SCA_ENABLE pin must beTrue for the State Change feature to operate. This would typically be connected to device I/O to prevent recording a StateChange while the equipment is not operating. For example, it may not be desired to record a process trip to a pump if thepump was already off when the trip signal was sent.

The RESET pin is available for control logic to reset the SCA pin. While the RESET pin is held True, the SCA pin willremain False. It might be desirable to set this input True for one frame when a sequence or system is initially started.

The RESET_PB pin is intended for use by the CIMPLICITY graphical interface. When the RESET_PB pin is set to True theSCA pin is set to False, then RESET_PB is set to False by the LOGIC_BUILDER_SC block.

The State Change feature adds the outputs pins SCA, SCA_CUR, and SCA_PRV. The SCA pin changes from False to Truewhen the OUT pin transitions to a Not Permitted, Forced, Override, or Track state. The SCA pin acts as a reset dominantlatch. The RESET and RESET_PB pins reset the SCA latch. The SCA_ENABLE pin prevents the SCA latch from being set,but will not reset the SCA latch.

The SCA_CUR pin holds a 32-bit un-signed integer. The value of each bit of this integer represents the value of thecorresponding input, for the frame the OUT pin transitioned to a Not Permitted, Forced, Override, or Track state.

The SCA_PRV pin holds a 32-bit un-signed integer. The value of each bit of this integer represents the value of thecorresponding input, one frame before the OUT pin transitioned to a Not Permitted, Forced, Override, or Track state.

Instruction Guide GEI-100691M 67Public Information

Page 68: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

30 Logical NOT (NOT)Block Category: Boolean Operations

The Logical NOT (NOT) block performs a logical inversion of the input and provides the mutually exclusive pair as anoutput.

NOT Block

Input

Name Data Type DescriptionA BOOL Input value

Outputs

Name Data Type DescriptionOUT_A BOOL Non-inverted value of input ANOT_A BOOL Inverted value of input A

68 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 69: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

31 Logical OR (OR)Block Category: Boolean Operations

The Logical OR (OR) block is an expandable block that performs a logical OR of up to 32 inputs.

OR Block

LogicINPUT01 INPUT02 OUT0 0 00 1 11 0 11 1 1OUTwill be 0 only if all inputs are 0. Otherwise, OUTwill be 1.

Inputs

Name Data Type DescriptionINPUT01 BOOL First input↓ ↓ ↓INPUTnm BOOL N’th input

Output

Name Data Type DescriptionOUT BOOL Output

Instruction Guide GEI-100691M 69Public Information

Page 70: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

32 Median Selector with Enable (MEDIAN)Block Category: Selection

The Median Selector with Enable (MEDIAN) block selects the median of three analog variables and outputs the result.LDIFLMT is driven True if the difference between the maximum and the minimum values of the three variables is ≥ theanalog variable DIFLMT.

Floating Point Exception Handling

If a NaN is present on an input pin, the MEDIAN block replaces it internally with the most positive or most negativerepresentable number based on its sign, for the purpose of the comparison.

MEDIAN Block

Inputs

Name Data Type DescriptionINPUT1 REAL Input variable 1INPUT2 REAL Input variable 2INPUT3 REAL Input variable 3DIFLMT REAL Maximum to minimum difference limitLENABLE BOOL Block enable logical

Outputs

Name Data Type DescriptionMEDIAN REAL Median selected output valueLDIFLMT BOOL Maximum to minimum difference limit exceeded logical

70 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 71: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

33 Median Select Version 2 (MEDSEL_S2)Block Category: Analog Operations

The Median Select Version 2 (MEDSEL_S2) block selects the median or average of three analog signals based on theenumerated value of the input TS and transfers the selection to the output ({Device}). The user has the option to disable up totwo transmitters. If one transmitter is disabled, the output will be either the minimum, maximum, or average of the tworemaining transmitters based on the enumerated value of the input, DS. If the one transmitter allowed property, 1XMTR_P, isTrue, two transmitters can be disabled and the output will be the value of the remaining transmitter.

This block is similar to the Mark VIe block MEDSEL_V2 but functionality differs in the following ways:

• The MEDSEL_S2 block does not support the status option.• The Auto Enable (AU_EN_P) feature is not supported.• Control commands for disabling and enabling transmitters are supported in the MEDSEL_S2 bock; however, the

push-button reset functionality must be implemented in another device. For further details, refer to the description ofcontrol word (CTL_EXT) in the section Control Word.

Block Configuration

Disabling Transmitters

When the quality status of transmitter A is BAD (False), then ABQ and AD become True and transmitter A is automaticallydisabled. Also, depending on the DS enumeration selected, the average, minimum, or maximum of inputs B and C istransferred to OUT. Once the quality status of transmitter A becomes GOOD (True), ABQ becomes False. If the quality statusof transmitter A becomes GOOD (True) and the value of input A is within the deviation limits set by the user, AD becomesFalse and A is automatically enabled. This concept also applies to inputs B and C.

A transmitter can be manually disabled through the CTL_EXT input. If input A, B, and C are all enabled and have a GOODquality status, and A is manually disabled, then the corresponding output, AD, becomes True to indicate that input A isdisabled. If input A is enabled and B is disabled, then BD is True. If input B is enabled and C is disabled, then CD is True.

Output Bad Quality Indication (OBQ) functionality is as follows:

If 1XMTR_P is True, when three transmitters are disabled and/or in a BAD quality state, OBQ becomes True, the defaultvalue, DF, is automatically transferred to the output, and MODE is set to DEFAULT.

OBQ becomes False when the quality status of any input becomes GOOD. The GOOD quality input will be enabled andtransferred to the output.

If 1XMTR_P is False, when two or three transmitters are disabled and/or in a BAD quality state, OBQ becomes True, thedefault value, DF, is automatically transferred to output, and MODE is set to DEFAULT.

OBQ becomes False when the quality status of two inputs become GOOD. The GOOD quality inputs will be enabled andbased on the DS enumeration selected, the average, minimum, or maximum of the GOOD quality inputs is transferred to theoutput.

Control Word

Control word (CTL_EXT) is used by the HMI operator for manual control. The manual commands from the HMI allow eachinput to be enabled or disabled. A manually disabled transmitter can be manually enabled, regardless of its deviation status.The command enumerations are defined in the following table.

Note A manually disabled transmitter may be manually enabled, regardless of its deviation status, unless the block is inAverage mode. For further details, refer to the section Deviation Alarms.

Instruction Guide GEI-100691M 71Public Information

Page 72: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

CTL_EXT Enumerations

Enumeration CommandNO_CMD No Command

EN_A_CMD Enable Input A Command

DIS_A_CMD Disable Input A Command

EN_B_CMD Enable Input B Command

DIS_B_CMD Disable Input B Command

EN_C_CMD Enable Input C Command

DIS_C_CMD Disable Input C Command

Note Operation of the CTL_EXT pin in the Mark VIeS control differs from that in other Mark VIe control products. In theMark VIeS control, the variable attached to the CTL_EXT pin must be from a consumed EGD page. The EGD producerdevice driving the variable must implement the necessary push-button reset logic.

Commands are only accepted by the block if a transition from NO_CMD to a command value is detected while the CTL_EXT input is healthy. After a command is accepted by the block, the CTL_EXT pin is ignored for a period of two secondsafter which a valid transition from NO_CMD must be detected to accept another command. An example configuration is asfollows:

Example Configuration

An HMI faceplate is created to display data from the MEDSEL_S2 block from a Mark VIeS control. EGD signals areconsumed by the HMI from the Mark VIeS control and are used to drive the faceplate. The control word from the MarkVIeS control is used for feedback. Control commands are sent to an EGD signal driven from a Mark VIe device. Forexample, after adding the MEDSEL_S2 block to the Mark VIeS control system and attaching the EGD signals to thefaceplate, the following configuration is required:

In a Mark VIe device:• Create a control word variable.• Add the control word variable to a produced EGD page.• Add push-button reset logic in the blockware to reset the control word value to NO_CMD (0). The control word should

be reset after one second of it being non-zero.

In the HMI:• Attach the control word variable from the Mark VIe control to the control word logic in the appropriate MEDSEL_S2

faceplate.

In the Mark VIeS device:• Attach the control word variable from the Mark VIe control to the CTL_EXT pin of the appropriate MEDSEL_S2

block.

72 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 73: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Block Function Enumerations

Function is defined by two modes:

• Dual Select (DS) mode• Three Select (TS) mode

DS Enumerations

Enumeration FunctionAVG Average of A and B

MIN Minimum of A and B

MAX Maximum of A and B

TS Mode Enumerations

Enumeration FunctionAVG Average of A, B and C

MEDIAN Median of A, B and C

Operating mode (MODE) is the block-operating mode that depends on DS, TS, and the quality status of the inputs. Theoperating mode enumerations are defined in the following table.

MODE Enumerations

Enumeration Operating Mode

MIN_B-C Minimum of B and C

MIN_A-B Minimum of A and B

MIN_A-C Minimum of A and C

MAX_B-C Maximum of B and C

MAX_A-B Maximum of A and B

MAX_A-C Maximum of A and C

AVG_A-B Average of A and B

AVG_A-C Average of A and C

AVG_B-C Average of B and C

AVG_ABC Average of A, B, and C

MEDIAN Median of A, B, and C

A Input A

B Input B

C Input C

DEFAULT Input DF

Instruction Guide GEI-100691M 73Public Information

Page 74: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Examples

• MEDIAN or AVG_ABC mode is selected when none of the transmitters have a BAD quality status.• AVG_A-B mode is selected when a BAD quality is detected on transmitter C or when C is manually disabled, and the DS

enumeration is AVG.• MIN_A-B mode is selected when a BAD quality is detected on transmitter C or when C is manually disabled, and the DS

enumeration is MIN.• MAX_A-B mode is selected when a BAD quality is detected on transmitter C or when C is manually disabled, and the

DS enumeration is MAX.• A mode is selected when 1XMTR_P is True and B and C transmitters are disabled.• DEFAULT mode is selected when all transmitters are BAD quality and/or disabled or 1XMTR_P is False, and two

transmitters are BAD quality and/or disabled.

Deviation Alarms

Each transmitter value is compared with the output to determine if it is outside of the deviation limit, DL. If so, the deviationhigh alarm for the deviant input DA, DB, or DC, for transmitters A, B, or C respectively, and ODH become True, delayed bythe deviation time delay, DT.

The deviation alarms will not become False until the absolute difference between the deviant input and the output is less thanthe value of DL minus Deviation Limit Deadband (DLDB), or the deviant input is disabled.

Note The Deviation High output, ODH, becomes True when at least one transmitter is in deviation. Also, if a transmitterinput is disabled, the deviation alarm for that transmitter is disabled.

In general, the deviation alarm only sets Boolean outputs and has no influence on the functionality of the block (for example,the transmitter in deviation with the output is not automatically disabled, and the block mode does not change).

However, if the block is calculating the average of all three transmitters (all three transmitters are enabled and TS = AVG), atransmitter that gets a high deviation will be automatically disabled immediately (ignoring the value of DT). The highdeviation alarm will be True for a single block execution. It will be enabled when the absolute difference between the deviantinput and the output is less than the value of DL minus DLDB.

Rate of Change Restriction

The rate of change of the output is only restricted by the value of RATE when the block operating mode changes.

RATE is in engineering units per second. For example, if 1XMTR_P = True, RATE = 1, A = 10 (enabled), B = 25 (disabled),and C = 50 (disabled), so MODE = A, and the mode of the block is changed by enabling input B and disabling input A. Now,MODE = B and the output increases from 10 to 25 engineering units in 15 seconds. At this point, the output equals B, theblock operating mode transition from A to B is complete and the rate of change restriction on the output is removed until theblock operating mode changes again.

ToolboxST Configuration

Inserting the MEDSEL_S2 block in the application program displays the Enter the Attribute Instance Values window,prompting the user to enter the device description, device name, and format specification in the Values column. The blockthen automatically creates the variables associated with the block and provide the appropriate attributes for each variable (forexample, Type and Format Spec variables that need to be on EGD will automatically be placed on the $Default EGD page,and so forth).

Note Each Device Name used in a controller must be unique.

74 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 75: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Enter the Attribute Instance Values Window

For this example, accept the default options for these attributes. The Device Name is 00MEDSEL_S21000, the description isMEDSEL_S2 Description, and the format specification is TempFS.

When the user clicks OK, the block and pin connections are automatically configured and Global pins are generated. Pinnames are in the form Device Value.pin Name, where Device Value has the attribute value 00MEDSEL_S21000 and Input_Name is the block input/output name. (Refer to the table Global Variables.) For this example, the descriptionMEDSEL_S2Description becomes the prefix of the block input/output descriptions. The FormatSp Attribute Name Value in the previousexample, TempFS, is the format specification of the block output. The DLFormatSp Attribute Name Value, TempDiffFS, is theformat specification of the block DL pin output.

Note The only exception to this rule is the output pin ({Device}), where the global pin name is in the form Device Value.pinName without the " ".

Once the object has been added successfully, the block displays in the ToolboxST application as displayed in the followingfigure.

MEDSEL_S2 Block

Instruction Guide GEI-100691M 75Public Information

Page 76: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Inputs

Name Global Description Data Type Initial Value Visibility1XMTR_P — Allow one transmitter operation BOOL False ParameterA Yes {Desc} Trans A input REAL 0 Always

B Yes {Desc} Trans B input REAL 0 Always

C Yes {Desc} Trans C input REAL 0 AlwaysCTL_EXT Yes {Desc} Control Word UINT (ENUM) NO_CMD Always

DF — Default output if all transmittersare bad

REAL 0 Parameter

DL — Deviation alarm limit REAL 5 ParameterDLDB — Deviation alarm limit deadband REAL 2 ParameterDS — Dual Select mode property UINT (ENUM) AVG ParameterDT — Deviation alarm delay UDINT 1000 ParameterIN_ABQ — Trans A Bad quality BOOL False AlwaysIN_BBQ — Trans B Bad quality BOOL False AlwaysIN_CBQ — Trans C Bad quality BOOL False AlwaysRATE — Selection change rate limit REAL 1 InternalTS — 3-XMTR Select mode property UINT (ENUM) MEDIAN Parameter

Outputs

Name Global Description Data Type Initial Value Visibility{Device} Yes {Desc} REAL 0 AlwaysABQ Yes {Desc} Trans A Bad quality BOOL False Always

AD Yes {Desc} Trans A disabled BOOL False AlwaysBBQ Yes {Desc} Trans B Bad quality BOOL False Always

BD Yes {Desc} Trans B disabled BOOL False AlwaysCBQ Yes {Desc} Trans C Bad quality BOOL False Always

CD Yes {Desc} Trans C disabled BOOL False Always

DA Yes {Desc} Trans A high deviation BOOL False Always

DB Yes {Desc} Trans B high deviation BOOL False Always

DC Yes {Desc} Trans C high deviation BOOL False Always

MODE Yes {Desc} Block mode UINT (ENUM) MEDIAN AlwaysOBQ Yes {Desc} Bad quality BOOL False Always

ODH Yes {Desc} High deviation BOOL False AlwaysSEL_P Yes {Desc} Select Type property UINT (ENUM) MEDIAN Internal

76 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 77: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Global Variables

Pin Name Description Alarm AlarmClass Event EGD Page External

AccessMEDSEL_S21001 MEDSEL_S2 1001 Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.AMEDSEL_S2 1001 Trans Ainput Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.ABQMEDSEL_S2 1001 Trans Abad quality Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.AD MEDSEL_S2 1001 Trans Adeselected

Not Alarmed — True $Default ReadOnly

MEDSEL_S21001.BMEDSEL_S2 1001 Trans Binput Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.BBQMEDSEL_S2 1001 Trans Bbad quality Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.BD MEDSEL_S2 1001 Trans Bdeselected

Not Alarmed — True $Default ReadOnly

MEDSEL_S21001.CMEDSEL_S2 1001 Trans Cinput Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.CBQMEDSEL_S2 1001 Trans Cbad quality Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.CD MEDSEL_S2 1001 Trans Cdeselected

Not Alarmed — True $Default ReadOnly

MEDSEL_S21001.CTL_EXT

MEDSEL_S2 1001 ControlWord

Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.DAMEDSEL_S2 1001 Trans Ahigh deviation Alarmed Alert False $Default ReadOnly

MEDSEL_S21001.DBMEDSEL_S2 1001 Trans Bhigh deviation Alarmed Alert False $Default ReadOnly

MEDSEL_S21001.DCMEDSEL_S2 1001 Trans Chigh deviation Alarmed Alert False $Default ReadOnly

MEDSEL_S21001.MODE MEDSEL_S2 1001 Blockmode

Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.OBQMEDSEL_S2 1001 Badquality Not Alarmed — False $Default ReadOnly

MEDSEL_S21001.ODH MEDSEL_S2 1001 Highdeviation

Alarmed Alert False $Default ReadOnly

MEDSEL_S21001.SEL_PMEDSEL_S2 1001 Selecttype property Not Alarmed — False $Default ReadOnly

Instruction Guide GEI-100691M 77Public Information

Page 78: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Alarm and Event Configuration

The following guidelines apply to MEDSEL_S2 alarm and event configuration:

• DA, DB, and DC variables are configured as alarms.• AD, BD, and CD variables are configured as events.• Only Boolean variables can be configured as alarms.

Enabling AD Variable Alarm

78 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 79: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

34 Modbus Master Read (MBUS_READ)Block Category: Communications

Attention

In the Mark VIeS the MBUS_READ and MBUS_WRITE blocks are not approved foruse in Safety Instrumented Functions (SIFs).

Note This block is supported in all Mark VIeS platforms and in all redundancy configurations.

The Modbus master blocks, MBUS_READ and MBUS_WRITE, are used to Read and Write data to Modbus slave devices.Only TCP Modbus slaves are supported by the MBUS_READ and MBUS_WRITE blocks.

Modbus Read and Modbus Write Blocks

When the REQUEST pin transitions to True, the Modbus block initiates a Read or Write request, depending on which block isbeing used. Modbus Read/Write communication occurs sequentially for all blocks configured to an individual Modbus slave.If a Modbus block Read/Write request is in progress with a Modbus slave, another Modbus block request will not start untilthe communication already in progress has completed or timed out. However, communication to two different Modbus slavedevices can occur simultaneously.

When the block’s REQUEST pin is triggered, the output BUSYpin is immediately set to True. The BUSYpin resets to Falseonly when the Modbus Read or Write communication has completed or timed out.

The COMM_STARTED output pin is set to True when communication to the Modbus slave requested by this block starts andresets to False when block communication has completed. COMM_STARTED becoming True may be delayed from BUSYbecoming True in the event another Modbus block is already communicating with the Modbus slave.

When the Modbus Read or Write communication has completed or timed out, the DONE output pin is set to True.

Instruction Guide GEI-100691M 79Public Information

Page 80: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Note The inputs listed in the following table are shared by the MBUS_READ block and the MBUS_WRITE block.

MBUS_READ and MBUS_WRITE Common Block Inputs

Name Data Type DescriptionENABLE BOOL When set to True, the block is enabled (default is True). The block must be enabled

to start Modbus Read or Write communications. If the ENABLE pin is False, alloutputs are reset and all other inputs are ignored.

REQUEST BOOL Must be toggled from False to True for the block to send a command to the Modbusslave. Upon triggering, Modbus data is Read or Written one time.

CONN_ID UINT This represents the connection identifier of the Modbus slave. This value is definedfor the Modbus slave in the Modbus master configuration. When not set properly,the block does not function and times out. Refer to the ToolboxST User Guide forMark Controls Platform (GEH-6700), the section Modbus Master.

SLAVE_ID UINT The Modbus slave identifier. Usually set to 1 in case of TCP Modbus slaves.FUNC_CODE UINT The following are the supported Modbus function codes:

MBUS_READ block:MODBUS_READ_COILS (1),MODBUS_INPUT_DISCRETES (2),MODBUS_READ_HOLDING_REGS (3),MODBUS_READ_INPUT_REGISTERS (4),MODBUS_READ_EXCEPTION_STATUS (7)MBUS_WRITE block:MODBUS_WRITE_COIL (5),MODBUS_WRITE_SINGLE_REGISTER (6),MODBUS_FORCE_MULTIPLE_COILS (15),MODBUS_WRITE_MULTIPLE_HOLDING_REGS (16)

FIRST_REG UINT First coil/register value to read from/write to the Modbus slave coil/register page.The minimum coil/register value is 1. A value of 0 will result in an error.

NUM_REGS UINT Number of coils/registers to read from/write to the Modbus slave coil/register pageTIMEOUT UINT The time in milliseconds after which the block times out the communication and

does not consume the Modbus response even if the response comes after timeout.The timeout is calculated once the block is triggered by the REQUEST pin and afterthe COMM_STARTED output transitions to true. The default value of this pin is 200milliseconds.

80 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 81: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Note The outputs listed in the following table are shared by the MBUS_READ block and the MBUS_WRITE block.

MBUS_READ and MBUS_WRITE Common Block Outputs

Name Data Type DescriptionBUSY BOOL A value of True indicates that the block is currently processing a request to the

Modbus slave device.COMM_STARTED BOOL Start of communication flag for the block. This pin transitions to True, when

communication to the slave starts.DONE BOOL Done status for the blockSTATUS UINT Execution status for the block

0: Block disabled1: Waiting for REQUEST trigger2: Request queued, waiting to send (Blocked on communication from other blocks)3: Request sent, waiting for response4: Request completed successfully5: Request completed with error

ERROR_CODE UINT Error status for the block. These errors can come directly from the Modbus slave orgenerated from the block during block execution. Refer to the table Error Codes fora description of values.

EXEC_TIME UDINT This is the amount of time elapsed between the COMM_STARTED outputtransitioning to True and the block completing execution (DONE pin becomesTrue).

Specific MBUS_WRITE Block Inputs

Name Data Type DescriptionWR_DATA UINTArray Data to be written to the slave. Refer to the section Various Data Type Support for a

description of writing data other than 16-bit unsigned values.

Specific MBUS_READ Block Outputs

Name Data Type DescriptionRD_LEN UINT Number of bytes read from the Modbus slave deviceRD_DATA UINTArray Data read from the Modbus slave device. Each element of the array represents 2

bytes of data as it comes from the Modbus slave. Refer to the section Various DataType Support for a description of reading data other than 16-bit unsigned values.

Instruction Guide GEI-100691M 81Public Information

Page 82: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Various Data Type Support

RD_DATA output pin on MBUS_READ block

The Modbus data read from the Modbus slave is stored in the RD_DATA array. This array is a UINT array. If the data fromthe slave is not of type UINT then array elements either need to be combined for larger sized types (like UDINT, DINT,REAL, LREAL) or converted to signed 2-byte data (INT). Refer to the various COMBINE_* blocks and WD_TO_I convertblocks.

Examples

Combining array elements into a REAL

Converting an array element to an INT

82 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 83: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

WR_DATA input pin on MBUS_WRITE block

Data to be written to the Modbus slave is stored in an unsigned array, WR_DATA. If the data to be written to the slave is ofdata types other than the UINT, then the write data needs to be split from larger sized data types (like UDINT, DINT, REAL,LREAL) or to be converted from signed 2-byte data (INT). Refer to the various SPLIT_* blocks and I_TO_WD convertblocks.

Examples

Splitting a REAL value into array elements

Converting a value from an INT

Instruction Guide GEI-100691M 83Public Information

Page 84: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Error Codes

Error Codes Generated by the Block

ErrorNumber

Text Description

0 No error No error7000 Timed out Block timed out while waiting for the Modbus command response. Refer to the table Timeout

Error Cases for various timeout cases.7001 Invalid function

codeInvalid function code given to the block input pin FUNC_CODE

7002 Wrong timeoutvalue

Invalid timeout value given to the block input pin TIMEOUT. Minimum value should be 200milliseconds.

7003 Wrong calculatedwrite length

Applicable for MBUS_WRITE block:This error is generated if the calculated write length (from function code and NumRegs), isgreater than WR_DATA array length in bytes.Function code Write lengthMODBUS_WRITE_COIL(5)

2

MODBUS_FORCE_MULTIPLE_COILS (15)

NumRegs multiple of 8 Length = NumRegs / 8

MODBUS_FORCE_MULTIPLE_COILS (15)

NumRegs not multiple of 8 Length = (NumRegs / 8) + 1

MODBUS_WRITE_SINGLE_REGISTER (6)

NumRegs * 2

MODBUS_WRITE_MULTIPLE_HOLDING_REGS (16)

NumRegs * 2

7004 Insufficient readbuffer

Applicable for MBUS_READ block. If the RD_DATA array length multiplied by 2 is less thanthe data read by the Modbus response.

7005 Invalid firstregister

If the FIRST_REG input value is 0, then this error is generated by the block

7006 Invalid number ofregisters

1) If FUNC_CODE equal to MODBUS_READ_COILS or MODBUS_INPUT_DISCRETES orMODBUS_FORCE_MULTIPLE_COILS, then NUM_REGS should not be greater than 250multiplied by 8.2) If FUNC_CODE equal to MODBUS_READ_HOLDING_REGS or MODBUS_READ_INPUT_REGISTERS or MODBUS_WRITE_MULTIPLE_HOLDING_REGS, then NUM_REGSshould not be greater than 125.3) If FUNC_CODE is not equal to MODBUS_WRITE_COIL and is not equal to MODBUS_WRITE_SINGLE_REGISTER and then NUM_REGS should not be equal to 0.4) If FUNC_CODE is equal to MODBUS_WRITE_SINGLE_REGISTER and then NUM_REGSshould be equal to 1.

7007 Invalid out datalength

Applicable for MBUS_READ block. If the Modbus command response length is greater than252, then this error is generated.

7008 Block identifierrolled back

If the block’s unique identifier has been rolled back due to state exchange voting, then thiserror is generated

7009 Controller inDATA_INITIALIZATIONstate

In a redundant controller configuration, if any controller is in DATA_INITIALIZATION state,then the block gives this error

7010 Internal error Block internal error. The user has no control over it. The block will recover itself.

84 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 85: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Error codes by the Modbus slave: In this case the ERROR_CODE pin is updated with the error number.

Error Codes by the Modbus Slave

ErrorNumber

Text Description

1 Illegal Function The received function code cannot be processed2 Illegal Data

AddressThe data address specified in the request is not available

3 Illegal Data Value The value contained in the query data field is an invalid value4 Slave Device

FailureUnrecoverable error occurred while slave was attempting to perform requested action

5 Acknowledge Slave has accepted request and is processing it, but a long duration of time is required. In thiscase, the read/write request size has to be reduced or the block TIMEOUT has to beincreased to complete the operation.

6 Slave DeviceBusy

Slave is engaged in processing a long-duration command. Master should retry later

Timeout error cases: Since this is timeout, the ERROR_CODE is updated with Timeout error (7000). The cases defined inthe table below are the various scenarios for timeout.

Timeout Error CasesCaseNumber

Description

1 Modbus slave not available to the UDH/CDH communicator2 Writing to holes in Modbus register map3 Writing to Mark VIeS Modbus slave4 If number of Modbus blocks queued for a Modbus slave is more than 645 Writing to more than the number of Modbus command limit of the Modbus slave6 The number of Modbus connections made by the Modbus slave is out of limit7 Modbus response received from the slave is more than 260 bytes8 If the Modbus master process is restarted, then the block might timeout during this period

MBUS_READ and MBUS_WRITE Block Performance

Modbus communications take about 3 frames to execute, from the time communications starts. For example, the COMM_STARTED output becomes True until the communication is complete (the DONE pin is True). Times could be longerdepending on the speed of the slave.

Instruction Guide GEI-100691M 85Public Information

Page 86: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

35 Modbus Master Write (MBUS_WRITE)Block Category: Communications

Attention

In the Mark VIeS the MBUS_READ and MBUS_WRITE blocks are not approved foruse in Safety Instrumented Functions (SIFs).

Note This block is supported in all Mark VIeS platforms and in all redundancy configurations.

The Modbus master block, MBUS_WRITE, is used to Write data to Modbus slave devices. Only TCP Modbus slaves aresupported by the MBUS_WRITE block.

Note The functionality of this block is described in detail in the documentation for the Modbus Master Read (MBUS_READ)block.

MBUS_WRITE Block

86 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 87: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

36 Move (MOVE)Block Category: Type Conversion

The Move (MOVE) block transfers the value of the input variable, SRC, into the output variable, DEST. The data transferoccurs each time the block runs and the ENABLE pin is True. The analog variants of the block can be used to perform datatype conversions, as well as memory move operations. The Boolean variant of MOVE is used to move only a logical state andcannot convert the data type.

The MOVE blocks are useful for taking snapshots of data that are shared between tasks in separate modules. Moving thevariable to local copies guarantees that a high priority task cannot change the shared data while the low priority task isprocessing it.

Floating Point Exception Handling

The MOVE block does not allow a NaN to pass through it. If a NaN is encountered on an input pin, it is replaced at the outputwith either the most positive or most negative representable number, based on the sign of the NaN.

Note This is a variant block that supports any one the following block data types: BOOL, INT, DINT, REAL, LREAL,UINT, and UDINT. The data type of the DEST pin must match the selected data type of the block. Refer to the section .

MOVE Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)SRC ANY Source variable

Output

Name Data Type DescriptionDEST ANY Destination variable (data type enforced by the block type)

Instruction Guide GEI-100691M 87Public Information

Page 88: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

37 On Off Delay (ON_OFF_DELAY)Block Category: Timers and Counters

The On Off Delay (ON_OFF_DELAY) block behaves as a switch with a delayed response, whether being turned on or off.The block passes a rising True value on the IN pin to the OUT pin if IN remains True for PU_DEL milliseconds. The blockpasses a falling False value on the IN pin to the OUT pin if IN remains False for DO_DEL ms.

ON_OFF_DELAY Block Response

ON_OFF_DELAY Block

Inputs

Name Data Type DescriptionIN BOOL Boolean input signalPU_DEL UDINT Pickup delay (ms)DO_DEL UDINT Dropout delay (ms)

Output

Name Data Type DescriptionOUT BOOL Delayed filtered output

88 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 89: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

38 Prevote (PREVOTE)Block Category: System

The Prevote (PREVOTE) block allows a user to transfer prevoted input values to blockware. The block prevotes any analogvariable into the block data type rounding any fractional value to the nearest integer (if block data type is INT) or into asingle/double precision floating point variable (if block data type is REAL). The boundary check and conversion is doneautomatically.

Note This block is a variant block that supports any one of the following block data types: BOOL, INT, DINT, REAL,LREAL, UINT, and UDINT. To modify the data type, refer to the section Change Data Type of Variant Block.

PREVOTE Block

PREVOTE Block Expanded

Instruction Guide GEI-100691M 89Public Information

Page 90: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Prevote data is available from I/O Nets (R, S, TA, TB) marked with a 1 for the system configurations displayed in thefollowing table.

Prevote Buffer Usage

Redundancy Prevote buffers NotesController Network I/O pack R S TA TB 0Simplex Simplex Simplex 1 0 0 0 0Simplex Simplex Dual Not supported 0Simplex Simplex TMR Not supported 0Simplex Dual Simplex Not supported 0Simplex Dual Dual Not supported 0Simplex Dual TMR Not supported 0Simplex TMR Simplex 1 0 0 0 Note 1Simplex TMR Dual 0 0 1 1 Note 2Simplex TMR TMR 1 1 1 0 0Dual Simplex Simplex Not supported 0Dual Simplex Dual Not supported 0Dual Simplex TMR Not supported 0Dual Dual Simplex 1 0 0 0 Note 1Dual Dual Dual 0 0 1 1 Note 2Dual Dual TMR 1 1 1 1 0Dual TMR Simplex Not supported 0Dual TMR Dual Not supported 0Dual TMR TMR Not supported 0TMR Simplex Simplex Not supported 0TMR Simplex Dual Not supported 0TMR Simplex TMR Not supported 0TMR Dual Simplex Not supported 0TMR Dual Dual Not supported 0TMR Dual TMR Not supported 0TMR TMR Simplex 1 0 0 0 Note 1TMR TMR Dual 0 0 1 1 Note 2TMR TMR TMR 1 1 1 0 0Note 1 The I/O could be on any network.Note 2 The I/O is not limited to R and T It could be R and T, or S and T.

90 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 91: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Input

Name Data Type DescriptionVAR ANY Source variable

Outputs

Name Data Type DescriptionRHLT BOOL R prevote variable healthSHLT BOOL S prevote variable healthTAHLT BOOL TA prevote variable healthTBHLT BOOL TB prevote variable healthR ANY R prevote destination variableS ANY S prevote destination variableTA ANY TA prevote destination variableTB ANY TB prevote destination variable

Instruction Guide GEI-100691M 91Public Information

Page 92: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

39 Pulse (PULSE)Block Category: Sequencing

The Pulse (PULSE) block generates a Boolean one-shot of the specified width (WIDTH in milliseconds) at the output pin onthe rising edge of the trigger. Once the pulse is initiated, it persists until it times out regardless of the value of the trigger. Theprevious state of the trigger is stored with each execution sweep so the falling edge of the next trigger may be seen prior to theend of the pulse. A specified pulse width of 0 results in a one sweep pulse. The Pulse width is always a multiple of the frameexecution period set in the ToolboxST application. For accurate execution of the block, set WIDTH as a multiple of the frameexecution period.

PULSE Block

Inputs

Name Data Type DescriptionTRIG BOOL Triggers a new pulse on its rising edgeWIDTH UDINT Period of the pulse in milliseconds (default is 0, 1 sweep)

Output

Name Data Type DescriptionOUT BOOL Pulse output

State

Name Data Type Description

CWIDTH UDINT Elapsed time since the pulse began in milliseconds

ISTRIGGERED BOOL

This is the state pin for storing the trigger status of the block, a hidden pin, It canbe 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 blockstates.

92 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 93: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

40 Relay Ladder Logic (RUNG)Block Category: Boolean Operations

The Relay Ladder Logic (RUNG) block solves a Boolean equation of up to 16 inputs. The equation is specified as a characterstring or can it be configured through the Relay Ladder Logic editor in the ToolboxST application. The equation may consistof up to 64 elements, or combinations of operators and operands. For example, the equation A + B contains two operands andone operator for a total of three elements.

Supported Operators

Operation OperatorParenthesis ( )NOT ~OR +AND *

RUNG Block

Inputs

Name Data Type DescriptionEQN Constant String Boolean equationA BOOL Required Boolean input used in equation↓ ↓ ↓P BOOL Boolean input used in the equation

Output

Name Data Type DescriptionOUT BOOL The result of the equation

Instruction Guide GEI-100691M 93Public Information

Page 94: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

41 Select (SELECT)Block Category: Selection

The Select (SELECT) block is an expandable block that moves one of the 8 inputs, or the CASC into the output, based on theprioritized evaluation of the selection pins. Working in ascending order from SEL1 the first True value encountered causes thecorresponding input to be moved to the output. If none of the selection pins are True then the CASC is moved to the output.

Floating Point Exception Handling

If a NaN (Not a Number) is encountered on an input pin it is replaced at the output by either the most positive or negativerepresentable number, based on the sign of the NaN.

Note This is a variant block that supports any one the following block data types: BOOL, INT, DINT, REAL, LREAL,UINT, and UDINT. The default data type is REAL. To modify the data type, refer to the section Change Data Type of VariantBlock.

SELECT Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)CASC ANY Default (cascade) selectionIN1 ANY First input variableSEL1 BOOL First selection input↓ ↓ ↓INn ANY N'th input variableSELn BOOL N'th selection input

Output

Name Data Type DescriptionOUT ANY Selected output

94 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 95: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

42 Split DS (SPLIT_DS)Block Category: Type Conversion

The Split blocks break apart large variables into smaller variables. They perform the reverse function of the Combine blocks.The SPLIT_DS block is used to split an unsigned double integer (32-bit) to two 16-bit WORD values. The splitting of thesignals is strictly mechanical. That is, there is no attempt to interpret the data, or to perform any clamping, scaling, data typeconversion, or sign extension.

The DATA_SWAP input on the block is used to decide whether a byte swap is required on the output words. If the DATA_SWAP input is set, then the individual bytes in a single WORD output is swapped.

The reverse of the SPLIT_DS block is the COMBINE_SD block.

SPLIT_DS Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)INPUT UDINT Input value to splitDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionLOWORD UINT Lower order 16 bits of the input variableHIWORD UINT Higher order 16 bits of the input variable

Instruction Guide GEI-100691M 95Public Information

Page 96: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

43 Split LRS (SPLIT_LRS)Block Category: Type Conversion

The Split blocks break apart large variables into smaller variables. They perform the reverse function of the Combine blocks.The SPLIT_LRS block is used to split a long real (64-bit) to four 16-bit WORD values. The splitting of the signals is strictlymechanical. That is, there is no attempt to interpret the data, or to perform any clamping, scaling, data type conversion, orsign extension.

The DATA_SWAP input on the block is used to decide whether a byte swap is required on the output words. If the DATA_SWAP input is set, then the individual bytes in a single WORD output is swapped.

The reverse of the SPLIT_LRS block is the COMBINE_SLR block.

SPLIT_LRS Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)INPUT LREAL Input value to splitDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionWORD0 UINT Lowest order 16 bits of the input variableWORD1 UINT Bits 16 to 31 of the input variableWORD2 UINT Bits 32 to 47 of the input variableWORD3 UINT Higher order 16 bits of the input variable

96 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 97: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

44 Split RS (SPLIT_RS)Block Category: Type Conversion

The Split blocks break apart large variables into smaller variables. They perform the reverse function of the Combine blocks.The SPLIT_RS block is used to split a real (32-bit) to two 16-bit WORD values. The splitting of the signals is strictlymechanical. That is, there is no attempt to interpret the data, or to perform any clamping, scaling, data type conversion, orsign extension.

The DATA_SWAP input on the block is used to decide whether a byte swap is required on the output words. If the DATA_SWAP input is set, then the individual bytes in a single WORD output is swapped.

The reverse of the SPLIT_RS block is the COMBINE_SR block.

SPLIT_RS Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)INPUT REAL Input value to splitDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionLOWORD UINT Lower order 16 bits of the input variableHIWORD UINT Higher order 16 bits of the input variable

Instruction Guide GEI-100691M 97Public Information

Page 98: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

45 Split SDS (SPLIT_SDS)Block Category: Type Conversion

The Split blocks break apart large variables into smaller variables. They perform the reverse function of the Combine blocks.The SPLIT_SDS block is used to split a signed double integer (32-bit) to two 16-bit WORD values. The splitting of thesignals is strictly mechanical. That is, there is no attempt to interpret the data, or to perform any clamping, scaling, data typeconversion, or sign extension.

The DATA_SWAP input on the block is used to decide whether a byte swap is required on the output words. If the DATA_SWAP input is set, then the individual bytes in a single WORD output is swapped.

The reverse of the SPLIT_SDS block is the COMBINE_SSD block.

SPLIT_SDS Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)INPUT DINT Input value to splitDATA_SWAP DataSwap_T Byte swap input for the individual outputs: NO_SWAP (0) or BYTE_SWAP (1) (default is

NO_SWAP)

Outputs

Name Data Type DescriptionLOWORD UINT Lower order 16 bits of the input variableHIWORD UINT Higher order 16 bits of the input variable

98 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 99: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

46 System Outputs (SYS_OUTPUTS)Block Category: System

Note Only one instance of this block is allowed per controller.

The System Outputs (SYS_OUTPUTS) block provides a command interface between the application code and the I/Osubsystem (that is, I/O packs). The command input Booleans are synchronously transmitted to every I/O pack. The commandsare interpreted as level values by the I/O packs and so should not be kept in the True state, but rather pulsed for a few framesand then reset.

SYS_OUTPUTS Block

Inputs

Name Data Type DescriptionMRESET BOOL Application Reset: Directs all I/O packs to reset any latched conditions resulting from

previous tripsRSTSUIC BOOL Reset Suicide: Directs all I/O packs to unsuicide any closed loop regulators. Suiciding a

regulator forces it into a safe state. Closed loop operation may not be re-started withoutlifting the suicide

RSTDIAG BOOL Reset Diagnostics: Directs all I/O packs and the controller to clear from the queue alldiagnostics in the normal state

RSTSYS BOOL Reset System Limits: Directs all I/O packs to clear all latched system limit logicals

Instruction Guide GEI-100691M 99Public Information

Page 100: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

47 Temperature Status (TEMP_STATUS)Block Category: System

The Temperature Status (TEMP_STATUS) block is a temperature-sensing block for the Mark VIeS Safety controllers. Alltemperatures are in degrees C. The outputs from this block are dependent on controller platform. TEMP_STATUS is notsupported in the Virtual Controller, where all the outputs default to a value of zero and ALARM defaults to False. TEMP_STATUS does not generate any diagnostic alarms.

TEMP_STATUS Block Functional Diagram

TEMP_STATUS Block

100 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 101: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

TEMP_STATUS Inputs

Input Pin Data Type Platform Functionality

ID UINT All

ID of the controller being monitored/controlled; 1 for R, 2 for S, and 3 for Tcontroller. 0 forLocal means the block monitors/controls the controller executing the block (backwardcompatibility)

OTPROT BOOL

UCSB, UCSC Not applicable

UCCCWhen True, forces the controller to reboot into a low power failure mode (in which theapplication will not run) when a temperature alarm condition is detected

THLD REALUCSB, UCSC Not applicable

UCCC Setpoint for declaring the alarm. Ignored unless USR_ENA is True

HYST REALUCSB, UCSC Not applicable

UCCCHysteresis value to be considered for clearing the alarm. Ignored unless USR_ENA isTrue

USR_ENA BOOLUCSB, UCSC Not applicable

UCCC Used to enable user supplied temperature limits

TEMP_STATUS Outputs

Output Pin Data Type Platform Functionality

ALARM BOOL

UCSB, UCSC Remains False, is not applicable

UCCC

Is False if CPU_TEMP is within limitsIf USR_ENA is False, then ALARM is True if CPU_TEMP is greater than or equal to DEF_THLD.If USR_ENA is True, then ALARM is True if CPU_TEMP is greater than or equal to THLD.If ALARM is True and if OTPROT is True, then the controller reboots to a lower powerstate

CPU_TEMP REALUCSB, UCSC Not Applicable; has a value of 0

UCCC Provides the CPU temperature in °C

BRD_TEMP REALUCSC Not Applicable; has a value of 0

UCSB Processor board hot spot temperature in °C

UCCC Motherboard temperature in °C

TEMP1 REALUCSC Temperature value of sensor on Carrier Board in °C

UCSB Processor board ambient temperature in °C

UCCC Temperature value of sensor #1 near resistor on EPMC in °C

TEMP2 REALUCSB, UCSC Not Applicable; has a value of 0

UCCC Temperature value of sensor #2 at bottom of EPMC in °C

DELTA REALUCSB, UCSC Not ApplicableUCCC TEMP1 - TEMP2 in °C

DEF_THLD REAL

UCSB, UCSC Not used

UCCC90°C (194 °F) is the default value of CPU temperature limit for alarm, °C.Used when USR_ENA is False.

DEF_HYST REAL

UCSB, UCSC Not used

UCCC5°C (9 °F) is the default value of CPU temperature hysteresis.Used to determine alarm reset value when USR_ENA is False.

Instruction Guide GEI-100691M 101Public Information

Page 102: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Notes on Legacy Controller Functionality

With UCCC controllers, the CPU_TEMP pin outputs the CPU core temperature. The BRD_TEMP pin outputs themotherboard temperature. two temperature sensors are embedded in the processor card as well, TEMP1 and TEMP2. Onesensor is placed near a resistor so that it is constantly warmed above the ambient temperature. The other is placed away fromany heat-producing elements. When the fan is on, the airflow provides cooling around both sensors and a relatively constanttemperature difference, DELTA, measures the difference between the two. When the fan is off the warmed sensor experiencesa much larger rise in temperature than does the ambient sensor. All three variables, TEMP1, TEMP2, and DELTA are outputfor diagnostic purposes and backward compatibility, but they no longer contribute to the alarm logic.

With UCCC controllers, the TEMP_STATUS block uses a default temperature, DEF_THLD, to determine an uppertemperature alarm limit. This limit can be replaced with a user configurable limit, THLD, if the user enables Boolean inputUSR_ENA. Once in ALARM, the Boolean condition will not reset until the CPU temperature falls below the uppertemperature alarm limit less a hysteresis value. This hysteresis value defaults to a supplied value DEF_HYST, unless theBoolean input USR_ENA overrides this value with the input HYST. Default temperature limits are determined by GE for theparticular platform. Current EPMC values are: DEF_THLD = 90, DEF_HYST = 5°C. The user is given another Booleaninput pin, OTPROT, to control action when an alarm condition is detected. If an alarm condition latches when OTPROT isTrue, the controller automatically reboots into a low power failure mode. The application will not run in this mode, but toolconnectivity is maintained. After a subsequent reboot, the application will run again.

102 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 103: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

48 Timer (TIMER)Block Category: LEGACY, Timers and Counters

Note This block is not recommended for use in any new controller applications (ControlST V05.02 or later). Refer to thesection Legacy Category Blocks.

The Timer (TIMER) block accumulates incremental time into CURTIME while RUN is True. When CURTIME is equal toMAXTIME, AT_TIME transitions to True. If RUN is False then timing is suspended but CURTIME holds its value. IfRESET is True then CURTIME is set to zero and counting is suspended. The AUTO_RS flag can reset the timer after itreaches MAXTIME. In this mode, AT_TIME will be True for one scan and the CURTIME will be set to the residual count sothat no time is lost.

The time period taken by the output pin AT_TIME to transition is always a multiple of the frame execution period set in theToolboxST application. For accurate execution of the block, set MAXTIME as a multiple of the frame execution period.

The maximum value of CURTIME in the TIMER block can be 4294967295ms (0xFFFFFFFF).

Note The AUTO_RS input pin will provide timing intervals equal to MAXTIME, except for the first timing interval whichwill be MAXTIME minus one execution period.

If the user wraps the AT_TIME output pin back to the RESET input pin, the timing interval will be equal to MAXTIME plusone execution period, except for the first timing interval which will be MAXTIME minus one execution period.

On the TIMER block, the AT_TIME output pin should never be connected directly to the RESET input pin, a MOVE blockshould be inserted between the pins. If the AT_TIME output pin is connected directly to the RESET input pin, the AT_TIMEoutput pin will never go true.

TIMER Block

Inputs

Name Data Type DescriptionMAXTIME UDINT Maximum time value in millisecondsRESET BOOL Zeros the timerAUTO_RS BOOL Automatically zeros the timer when AT_TIME is set. Maintains

residual count.RUN BOOL Enables the timer

Outputs

Name Data Type DescriptionAT_TIME BOOL Indicates the timer has reached the maximum time valueCURTIME UDINT Current time value in milliseconds

Instruction Guide GEI-100691M 103Public Information

Page 104: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

StateName Data Type DescriptionLAST_CURTIME UDINT This is the last current time value in milliseconds, a hidden pin. It can

be viewed or changed by right-clicking the block and selecting EditBlock Pins. Writing to this variable is not recommended, but can beused to preset block states.

104 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 105: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

49 Timer Version 2 (TIMER_V2)Block Category: Timers and Counters

The Timer Version 2 (TIMER_V2) block accumulates incremental time into CURTIME while RUN is True. WhenCURTIME is equal to MAXTIME, AT_TIME transitions to True. If RUN is False then timing is suspended but the value inCURTIME remains. If RESET is True then CURTIME is set to zero and counting is suspended. The AUTO_RS flag can resetthe timer after it reaches MAXTIME. In this mode, AT_TIME will be True for one scan and the CURTIME will be set to theresidual count so that no time is lost.

The time period taken by the output pin AT_TIME to transition is always a multiple of the frame performance period set inthe ToolboxST application. For accurate performance of the block, set MAXTIME as a multiple of the frame performanceperiod.

The maximum value of CURTIME in the TIMER_V2 block is 4294967295ms (0xFFFFFFFF).

Note The AUTO_RS input pin will provide timing intervals equal to MAXTIME, except for the first timing interval whichwill be MAXTIME minus one execution period.

If the user wraps the AT_TIME output pin back to the RESET input pin, the timing interval will be equal to MAXTIME plusone execution period, except for the first timing interval which will be MAXTIME minus one execution period.

TIMER_V2 Block

TIMER_V2 Example with AT_TIME output to RESET input

Instruction Guide GEI-100691M 105Public Information

Page 106: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Inputs

Name Data Type DescriptionMAXTIME UDINT Maximum time value in millisecondsRESET BOOL Zeros the timer

AUTO_RS BOOLAutomatically zeros the timer when AT_TIME is set. Maintains the residualcount.

RUN BOOL Enables the timer

Outputs

Name Data Type Description

AT_TIME BOOL

AT_TIME = True indicates that the timer has reached the maximum time value.In Timer Version 2, AT_TIME can be used as a signal for the RESET pin as wasthe case in many existing Mark VI controller applications. This logic results in aloss of residual time, whereas the use of AUTO_RS results in no loss of residualtime.

CURTIME UDINT Current time value in milliseconds

StateName Data Type Description

LAST_CURTIME

UDINTThis is the last current time value in milliseconds, a hidden pin. It can be viewedor changed by right-clicking the block and selecting Edit Block Pins. Writing tothis variable is not recommended, but can be used to preset block states.

106 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 107: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

50 Totalizer (TOTALIZER)Block Category: Timers and Counters

Attention

In the Mark VIeS the TOTALIZER block is not approved for use in SafetyInstrumental Functions (SIFs).

The Totalizer (TOTALIZER) block is a rubber block that can handle up to 128 sets of pins. The TOTALIZER block uses aspecial area of the NVRAM to maintain critical application code counter values. The Totalizer block has 128 totalizers(counters) that accumulate rising edges of the INCx pin in the TOTALx variable. When a rising edge of INCx is detected, 1 isadded to the value stored in TOTALx. When TOTALx reaches its maximum value (2^32–1), then, on the next rising edge ofINCx, ROLLx transitions to True and TOTALx is set to 0 until the next rising edge of INCx. TOTALx is never negative.

Attention

Only one instance of this block is allowed per controller in the application code.

Note Totalizer values are set in the ToolboxST application. For instructions, refer to the ToolboxST User Guide for MarkControls Platform (GEH-6700 or GEH-6703), the section Totalizers.

TOTALIZER Block

Instruction Guide GEI-100691M 107Public Information

Page 108: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Inputs

Name Data Type DescriptionINC1 BOOL Specified totalizer increments on the rising edge of this pin↓ ↓ ↓INC128 BOOL Specified totalizer increments on the rising edge of this pin

Outputs

Name Data Type DescriptionTOTAL1 UDINT Output value of the totalizer for use by other application code↓ ↓ ↓TOTAL128 UDINT Output value of the totalizer for use by other application codeROLL1 BOOL Set to True if the totalizer value has overflowed. The pin stays True until INCx

increments again.↓ ↓ ↓ROLL128 BOOL Set to True if the totalizer value has overflowed. The pin stays True until INCx

increments again.

108 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 109: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

51 Unit Delay (UNIT_DELAY)Block Category: Controls (Basic)

The Unit Delay (UNIT_DELAY) block performs a one-frame delayed copy of the input, IN, to the output, OUT. The timeperiod of the delay depends upon the Frame period with which the block is being executed.

Note This is a variant block which supports any one the following block data types: BOOL, INT, DINT, REAL, LREAL,UINT, and UDINT. The default data type is REAL. To modify the data type, refer to the section Change Data Type of VariantBlock.

UNIT_DELAY Block

Input

Name Data Type DescriptionIN ANY Input value to be delayed

Outputs

Name Data Type DescriptionOUT ANY Delayed valueSTATE ANY Current value of the input (for feedback)

Instruction Guide GEI-100691M 109Public Information

Page 110: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

52 Variable Health (VAR_HEALTH)Block Category: System

The Variable Health (VAR_HEALTH) block receives from 1 to 32 variable signals as input points to this block. For eachconfigured input, this block provides two corresponding output pins that provide both the health status (HEALTHnn) and linkstatus (LINKOKnn) of the corresponding input.

The available 32 input pins can be assigned to any of the following variables:

• Regular variable directly from an I/O board input signal• Variable from an external network, such as a variable assigned to a Unit Data Highway (UDH) EGD page• Regular variable directly from an I/O board output signal (not usually required)• Internal state variable (rarely needed)

Inputs

Name Data Type DescriptionVAR1 Simple Input variable to know the health status↓ ↓ ↓VAR32 Simple Input variable to know the health status

Outputs

Name Data Type Description

HEALTH1 BOOL Input 1 healthyLINKOK1 ↓ Link OK for EGD variable 1HEALTH32 ↓ Input 32 healthyLINKOK32 BOOL Link OK for EGD variable 32

When a variable VARnn is believed to be working properly, the corresponding output pins HEALTHnn and LINKOKnn areboth set to True. This happens when all tests defined for its source are completed successfully. This includes both variablesignal connectivity as well as any healthy/unhealthy determinations made by the specific I/O pack.

The HEALTHnn output provides an indication of the health of the corresponding variable VARnn. If the Ethernet cable isunplugged from a simplex analog input I/O pack, this causes a connectivity issue resulting in the HEALTHnn variable beingset to False to indicate an Unhealthy signal. The I/O pack can set the HEALTHnn variable to False for other conditions, suchas if an input configured as a 4–20 mA analog input has its input current out of range.

I/O points transition from Unhealthy to Healthy the first frame they are received Healthy from the I/O module.

Note For input health information to be viewable in a live data display, for example in Live View, Trender, or the blockwareeditor, the input must be connected to either a VAR_HEALTH or AI block. Refer to the table, Output Pin States.

If LINKOKnn is True, the controller has successfully received the EGD data packet from the I/O pack or other source. IfLINKOKnn is False, the EGD data packet has not been received and HEALTHnn will always be False as well.

Each configured VARnn input on the VAR_HEALTH block also has a separate output pin, LINKOKnn, even though it is acomponent of the overall health. The LINKOKnn output applies to all of the data from a particular device and may be used asan indication of electronic hardware health (for example, I/O pack health).

The HEALTHnn output for each variable provides the instantaneous status of the variable input. A healthy value on theHEALTHnn output implies a healthy input pin. However, any user application code should allow an appropriate time beforeresponding to a transition from healthy to unhealthy. All Ethernet communication links have a bit error rate, so occasional lossof a single EGD packet on an Ethernet network is considered normal and expected. The HEALTHnn output can go False afteronly a single period loss of communication. In most applications that monitor variable health, it will be necessary to add a (1)time delay or (2) period counter or (3) loss-counts-per-time-interval counter to the detected unhealthy transition based on thespecific needs of that I/O variable. Refer to the section Output Health Status Details for detailed timing.

110 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 111: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Note A period refers to the time between consecutive transmissions of the variable. For most variables from I/O packs, theperiod corresponds to the frame rate, although certain I/O packs such as PSCA do not always transmit at frame rate. Forvariables that derive their health from the health of a received EGD page from another controller, the period depends on theframe rate of the transmitting source and the associated page period multiplier. From the ToolboxST application, select theEGD tab to view the Period information.

Output Health Status Details

I/O pack variable sources— the VAR_HEALTH output status goes unhealthy during the first period in which the controllerdoes not receive a healthy indication from the source I/O pack.

• For a network with simplex redundancy, the VAR_HEALTH output status goes unhealthy after the loss of the only inputdata packet.

• For a network with dual redundancy, the VAR_HEALTH output status goes unhealthy after the loss of both input datapackets.

• For a network with TMR redundancy, the VAR_HEALTH output status goes unhealthy after the loss of the second inputdata packet.

This unhealthy status could be caused by a communication failure with the I/O pack or by the I/O pack's determination thatthe signal is unhealthy based on conditions specific to that type of I/O pack and input.

External network/EGD page sources— including variables received over the UDH or Control Data Highway (CDH) usingEGD pages, the corresponding HEALTHnn output on the VAR_HEALTH block for an input variable does not go unhealthyafter the loss of a single input data packet containing that variable. Instead, the corresponding HEALTHnn output goesunhealthy during the fourth unhealthy period. Since EGD pages can be configured to run at different rates, the health of thevariable is verified once each period as configured for that EGD exchange. Each time an EGD exchange is received, theassociated input variables in that exchange are set to healthy status and a timeout timer for that exchange is set to four. Thistimeout timer is then decremented each time the configured time interval occurs. If the timeout timer reaches zero, all inputvariables in that exchange are set with an unhealthy status and the counter remains at zero until the EGD exchange issuccessfully received again.

Note If the VAR_HEALTH block has an anti-voted variable connected as an input, the corresponding VAR_HEALTHoutput behaves the same as if the system has simplex redundancy, regardless of the actual redundancy of the system.

Single Network I/O Pack Input Response to Loss of Input

When an input on an I/O pack goes unhealthy, the input value holds the previous healthy input state for the first four periods.After this, the value is set to the default value.

Responses to Loss of Input

Loss of InputFRAME 1 2 3 4 5Health UnhealthyValues Hold last Default

Instruction Guide GEI-100691M 111Public Information

Page 112: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Dual Network I/O Pack Input Response to Loss of Input

When both network inputs on an I/O pack are unhealthy, the input value holds the previous healthy input state for the firstfour periods. After this, the input value is set to the default value. If only one input is unhealthy, the input value remainshealthy.

Responses to Loss of Input

Loss of 1st Input Loss of 2nd InputFRAME 1 2 3 4 5 1 2 3 4 5Health Healthy UnhealthyValues 2nd input Hold last Default

TMR Network I/O Pack Input Response to Loss of Input

The input value is always calculated from the voted value of the three network inputs. Thus, if more than one input goesunhealthy, the input value is voted to unhealthy. If only one input goes unhealthy, the input value remains healthy.

Responses to Loss of Input

Loss of 1st Input Loss of 2nd InputFRAME 1 2 3 4 5 1 2 3 4 5Health Healthy UnhealthyValues Voted Voted Default (from vote)

External Network/EGD Page Response to Loss of Input

When an EGD page is unhealthy, the input values remain healthy until the fourth period, and the previous healthy input stateis held.

Responses to Loss of Input

Loss of InputFRAME 1 2 3 4 5Health Healthy UnhealthyValues Hold last Hold last

Output Pin States

I/O Pack/NetworkRedundancy

Output Pins DescriptionHEALTHnn LINKOKnn

Simplex I/O pack,Simplex IONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received.0 1 Input is unhealthy, but the IONet EGD exchange is being received.1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received.

Simplex I/O pack, DualIONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received on eitherIONet.

0 1 Input is unhealthy, but the IONet EGD exchange is being received on at leastone IONet EGD exchange.

1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received on at least one

IONet

112 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 113: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Output Pin States (continued)

I/O Pack/NetworkRedundancy

Output Pins DescriptionHEALTHnn LINKOKnn

Simplex I/O pack, TMRIONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received on eitherIONet that connects to this pack

0 1 Input is unhealthy, but the IONet EGD exchange is being received on at leastone IONet EGD exchange

1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received on at least one

IONetDual I/O pack, SimplexIONet

1 0 Not applicable.

Dual I/O pack, DualIONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received on eitherIONet

0 1 Input is unhealthy, but the IONet EGD exchange is being received on at leastone IONet EGD exchange

1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received on at least one

IONetDual I/O Pack, TMRIONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received on anyIONet

0 1 Input is unhealthy, but the IONet EGD exchange is being received on at leastone IONet EGD exchange

1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received on at least two

IONetsTMR I/O pack, SimplexIONet

N/A N/A Not applicable

TMR I/O pack, DualIONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received on eitherIONet

0 1 Input is unhealthy, but the IONet EGD exchange is being received on at leastone IONet EGD exchange

1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received on at least one

IONet

Output Pin States — continued

I/O Pack/NetworkRedundancy

Output Pins DescriptionHEALTHnn LINKOKnn

TMR I/O pack, TMRIONet

0 0 Input is unhealthy and the IONet EGD exchange is not being received on anyIONet

0 1 Either the input is unhealthy or else the EGD is being received on only one ofthe three IONets

1 0 Not possible1 1 Input is healthy and the IONet EGD exchange is being received on at least tow

IONets

Instruction Guide GEI-100691M 113Public Information

Page 114: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

53 Variable Simulation (VARSIM)Block Category: System

Attention

Variable simulation is only supported in the Virtual Mark VIeS. In the Mark VIeS theVARSIM block may be downloaded, but will NOT modify outputs.

When enabled, the Variable Simulation (VARSIM) block writes the input values into the output variables and sets thesimulation flag in the variables quality field. When disabled the block removes the simulation flag from the variables quality.

The block is a rubber block that may service up to 32 variables. For any Boolean variables, the block uses the pick-up (PU_DLY) delay pin to specify how long to delay moving a transition from 0 to 1 from an input pin to the output variable. For anyBoolean variables, the block also uses the drop out (DO_DLY) delay pin to specify how long to delay moving a transitionfrom 1 to 0 from an input pin to the output variable.

VARSIM Block

Inputs

Name Data Type DescriptionENABLE BOOL Enable the block to runPU_DLY UINT Pickup Delay — milliseconds to delay a 0 to 1 Boolean transitionDO_DLY UINT Dropout Delay — milliseconds to delay a 1 to 0 Boolean transitionIN1 ANY The unscaled value to be written to the corresponding variable point↓ ↓ ↓IN32 ANY The unscaled value to be written to the corresponding variable point

Outputs

Name Data Type DescriptionOUT1 ANY A variable identifying the variable point to write↓ ↓ ↓OUT32 ANY A variable identifying the variable point to write

114 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 115: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

54 Vote (VOTE)Block Category: Boolean Operations

The Vote (VOTE) block is an expandable block with up to 32 inputs that performs an M-out-of-N voting, where N is thenumber of inputs. If at least M out of the N inputs are True, then the output voting result will be True. The value for M cannotbe greater than the number of inputs.

For example, if M=2 and N=3, this block will check if at least 2 out of 3 inputs are True. If so, OUTwill be True. Otherwise,OUTwill be False.

VOTE Block

Inputs

Name Description Data Type Initial Value VisibilityIN1 Input 1 BOOL False Always↓ ↓ ↓ ↓ ↓IN32 Input 32 BOOL False Always

M M value of M-out-of-N voting UINT 1 Parameter

Outputs

Name Description Data Type Initial Value VisibilityERR M value is out of range BOOL N/A Always

OUT Result of voting BOOL N/A Always

Instruction Guide GEI-100691M 115Public Information

Page 116: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

55 Word to Integer Conversion (WD_TO_I)Block Category: Type Conversion

The Word to Integer Conversion (WD_TO_I) block moves a 16-bit WORD to a signed integer (16-bit). The conversion isstrictly mechanical. That is, there is no attempt to interpret the data, or to perform any clamping, scaling, data typeconversion, or sign extension.

WD_TO_I Block

Inputs

Name Data Type DescriptionENABLE BOOL Block enable (default is True)INPUT UINT 16-bit Word input

Outputs

Name Data Type DescriptionOUTPUT INT Integer output

116 GEI-100691M Mark VIeS Safety Controller Block LibraryPublic Information

Page 117: Mark* VIeS Safety Controller · 2020. 9. 18. · GEI-100691M Mark* VIeS Safety Controller Block Library These instructions do not purport to cover all details or variations in equipment,

Public Information