Safety Considerations Guide, Tricon v9
Safety Considerations Guide, Tricon v9
October 2004
Information in this document is subject to change without notice. Companies, names and data used in
examples herein are fictitious unless otherwise noted. No part of this document may be reproduced or
transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express
written permission of Triconex.
Triconex, Tricon, Trident, TriStation 1131, TriStation MSW, and CEMPLE are trademarks of Invensys plc,
its subsidiaries and affiliates. All other brands may be trademarks of their respective owners.
Acknowledgement
Preface vii
Summary of Sections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii
Abbreviations Used. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Product and Training Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
SIL3/AK6 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Project Change and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Maintenance Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Index 85
This guide provides information about safety concepts and standards that apply to the Tricon
controller. This document replaces all previous versions of the Tricon Systems Safety
Considerations Guide.
Summary of Sections
• Chapter 1, Safety Concepts—Describes safety issues, safety standards, and
implementation of safety measures.
• Chapter 2, Application Guidelines—Provides information on industry guidelines and
recommendations.
• Chapter 3, Fault Management—Discusses fault tolerance and fault detection.
• Chapter 4, Application Development—Discusses methods for developing applications
properly to avoid application faults.
• Appendix A, Triconex Peer-to-Peer Communication—Provides examples of using
Triconex Peer-to-Peer function blocks to transfer data between applications.
• Appendix B, Safety-Critical Function Blocks—Describes the function blocks intended
for use in safety-critical applications and shows their Structured Text code.
Related Documentation
These Triconex books contain related information.
• Planning & Installation Guide for Tricon Systems
• Communication Guide for Tricon Systems
• Field Terminations Guide for Tricon Systems
• Advanced Communication Module (ACM) User’s Guide
• Enhanced Intelligent Communication Module (EICM) User’s Guide
• Network Communication Module (NCM) User’s Guide
• Safety Manager Module User’s Guide
• Hiway Interface Module (HIM) User’s Guide
• Tricon System Access Application (TSAA) Quick Guide
• TriStation 1131 Developer’s Guide
• TriStation 1131 Triconex Libraries Reference
Abbreviations Used
The controller is hereafter called Tricon, except in cases where the full name must be used to
ensure clarity. The TriStation 1131 Developer’s Workbench is hereafter called TriStation.
The following list provides full names for abbreviations of safety terms used in this guide.
Web Site
[Link]
Technical Support
Customers in the U.S. and Canada can obtain technical support from the Customer Support
Center (CSC) at the numbers below. International customers should contact their regional
support center.
Requests for support are prioritized as follows:
• Emergency requests are given the highest priority
• Requests from participants in the System Watch Agreement (SWA) and customers with
purchase order or charge card authorization are given next priority
• All other requests are handled on a time-available basis
If you require emergency or immediate response and are not an SWA participant, you may
incur a charge. Please have a purchase order or credit card available for billing.
Telephone
Toll-free number 866-746-6477, or
Toll number 508-549-2424 (outside U.S.)
Fax
Toll number 508-549-4999
E-mail
[Link]@[Link]
Overview 2
Hazard and Risk Analysis 5
Safety Standards 12
Application-Specific Standards 13
Overview
Modern industrial processes tend to be technically complex, involve substantial energies, and
have the potential to inflict serious harm to persons or property during a mishap.
The IEC 61508 standard defines safety as “freedom from unacceptable risk.” In other words,
absolute safety can never be achieved; risk can only be reduced to an acceptable level.
Safety methods to mitigate harm and reduce risk include:
• Changing the process or mechanical design, including plant or equipment layout
• Increasing the mechanical integrity of equipment
• Improving the basic process control system (BPCS)
• Developing additional or more detailed training procedures for operations and
maintenance
• Increasing the testing frequency of critical components
• Using a SIS (safety-instrumented system)
• Installing mitigating equipment to reduce harmful consequences; for example,
explosion walls, foams, impoundments, and pressure relief systems
Protection Layers
Methods that provide layers of protection should be:
• Independent
• Verifiable
• Dependable
• Designed for the specific safety risk
This figure shows how layers of protection can be used to reduce unacceptable risk to an
acceptable level. The amount of risk reduction for each layer is dependent on the specific nature
of the safety risk and the impact of the layer on the risk. Economic analysis should be used to
determine the appropriate combination of layers for mitigating safety risks.
SV SIS BPCS*
Process
0
Lower Risk Higher Risk
SIS Factors
According to the ANSI/ISA S84.01 and IEC 61508 standards, the scope of an SIS is restricted to
the instrumentation or controls that are responsible for bringing a process to a safe state in the
event of a failure. The availability of an SIS is dependent upon:
• Failure rates and modes of components
• Installed instrumentation
• Redundancy
• Voting
• Diagnostic coverage
• Testing frequency
SIL Factors
An SIL can be considered a statistical representation of the availability of an SIS at the time of a
process demand. A process demand is defined as the occurrence of a process deviation that causes
an SIS to transition a process to a safe state.
An SIL is the litmus test of acceptable SIS design and includes the following factors:
• Device integrity
• Diagnostics
• Systematic and common cause failures
• Testing
• Operation
• Maintenance
In modern applications, a programmable electronic system (PES) is used as the core of an SIS.
The Tricon controller is a state-of-the-art PES optimized for safety-critical applications.
R
I
S 99.999 0.00001 AK 8
K
99.99 0.0001 >10,000 SIL 4 AK 7
R
E AK 6
99.90 0.001 10,000– SIL 3 SIL 3
D 1,000 AK 5
U
C 1,000– AK 4
99.00 0.01 SIL 2 SIL 2
T 100 AK 3
I 100– AK 2
90.00 0.1 SIL 1 SIL 1
O 10 AK 1
N
The relationship between AK class (see page 12) and SIL is extremely important and should not
be overlooked. These designations were developed in response to serious incidents that
resulted in the loss of life, and are intended to serve as a foundation for the effective selection
and appropriate design of safety-instrumented systems.
99.9999 0.000001
Tricon PES*
R
I 99.999 0.00001
S
K
99.99 0.0001
R
E SIL 3 SIS
99.90 0.001
D
U
C 99.00 0.01
T
I
O 90.00 0.1
N
Percent PFD
Availability
Risk Measures
* Tricon controller module failure rates, PFDavg, Spurious Trip Rate, and Safe Failure Fraction
(SFF) calculation methods have been independently calculated and/or reviewed by Factory
Mutual Research and TÜV Rheinland. The numbers presented here (and in the following tables)
are typical. Exact numbers should be calculated for each specific system configuration. Contact
Triconex/Invensys Systems for details on calculation methods and options related to the Tricon
controller.
3 Pressure
Transmitters (2oo3) TMR Controller 2 Block Valves
(2oo3) in Series (1oo2)
Sensors
PES/Logic Solver Final Elements
3 Temperature
Transmitters (2oo3)
This table provides simplified equations for calculating the PDFavg for the key elements in an
SIS. Once the PDFavg for each element is known, an SIL can be determined.
To determine the SIL, compare the calculated PFDavg to the figure on page 5. In this example,
the system is acceptable as an SIS for use in SIL3 applications.
For additional information on SIL assignment and SIL verification, visit the Premier Consulting
Services web site at [Link].
START
Establish operation
and maintenance
Design procedure
conceptual process (Step 5)
Develop safety
requirements
document Pre-start-up
Perform process (Step 1) safety review
hazard analysis assessment
and risk (Step 6)
assessment Perform SIS
conceptual
SIS start-up
design and verify
operation,
Apply non-SIS it meets the SRS maintenance,
(Step 2)
protection layers to periodic functional
prevent identified testing
hazards or reduce Perform SIS (Steps 7 and 8)
risk detail design
(Step 3)
Modify Modify or
No SIS decommission
SIS installation,
EXIT required? SIS?
commissioning,
and pre-startup
Yes acceptance test Decommission
(Step 4)
Define target SIL
SIS
decommissioning
Conceptual process design (Step 9)
S84.01 Concern
(Step 3)
• Each individual field device shall have its own dedicated wiring to the system I/O.
Using a field bus is not allowed!
• A control valve from the BPCS shall not be used as a single final element for SIL3.
• The operator interface may not be allowed to change the SIS application software.
• Maintenance overrides shall not be used as a part of application software or
operating procedures.
• When online testing is required, test facilities shall be an integral part of the SIS
design.
4 Develop a pre-start-up acceptance test procedure that provides a fully functional test of
the SIS to verify conformance with the SRS.
5 Before startup, establish operational and maintenance procedures to ensure that the SIS
functions comply with the SRS throughout the SIS operational life, including:
• Training
• Documentation
• Operating procedures
• Maintenance program
• Testing and preventive maintenance
• Functional testing
• Documentation of functional testing
6 Before start-up, complete a safety review.
7 Define procedures for the following:
• Start-up
• Operations
• Maintenance, including administrative controls and written procedures that ensure
safety if a process is hazardous while an SIS function is being bypassed
• Training that complies with national regulations (such as OSHA 29 CFR 1910.119)
• Functional testing to detect covert faults that prevent the SIS from operating
according to the SRS
• SIS testing, including sensors, logic solver, and final elements (such as shutdown
valves, motors, etc.)
8 Follow management of change (MOC) procedures to ensure that no unauthorized
changes are made to an application, as mandated by OSHA 29 CFR 1910.119.
9 Decommission an SIS before its permanent retirement from active service, to ensure
proper review.
Safety Standards
Over the past several years, there has been rapid movement in many countries to develop
standards and regulations to minimize the impact of industrial accidents on citizens. The
standards described in this section apply to typical applications.
DIN V 19250
In Germany, the methodology of defining the risk to individuals is established in DIN V 19250,
“Control Technology; Fundamental Safety Aspects to Be Considered for Measurement and
Control Equipment.” DIN V 19250 establishes the concept that safety systems should be
designed to meet designated classes, Class 1 (AK1) through Class 8 (AK8). The choice of the
class is dependent on the level of risk posed by the process. DIN V 19250 attempts to force users
to consider the hazards involved in their processes and to determine the integrity of the
required safety-related system.
ANSI/ISA S84.01
ANSI/ISA S84.01-1996 is the United States standard for safety systems in the process industry.
The SIL classes from IEC 61508 are used and the DIN V 19250 relationships are maintained.
ANSI/ISA S84.01-1996 does not include the highest SIL class, SIL 4. The S84 Committee
determined that SIL 4 is applicable for medical and transit systems in which the only layer of
protection is the safety-instrumented layer. In contrast, the process industry can integrate many
layers of protection in the process design. The overall risk reduction from these layers of
protection is equal to or greater than that of other industries.
Application-Specific Standards
EN 54, Part 3
EN 54, Part 3, “Components of Automatic Fire Detection System: Control and Indicating
Equipment,” outlines the European requirements for fire detection systems.
NFPA 72
NFPA 72, “National Fire Alarm Code,” outlines the United States requirements for fire alarm
systems.
NFPA 8501
NFPA 8501, “Standard for Single Burner Boiler Operation,” outlines the United States
requirements for operations using single burner boilers.
NFPA 8502
NFPA 8502, “Standard for the Prevention of Furnace Explosions/Implosions in Multiple Burner
Boilers,” outlines the United States requirements for operations using multiple burner boilers.
Overview 16
TÜV Rheinland Certification 17
General Guidelines 18
Guidelines for Tricon Controllers 20
Overview
This chapter provides information about the industry-standard guidelines applicable to safety
applications. These guidelines include those that apply to all safety systems, as well as those that
apply only to specific industries, such as burner management or fire and gas systems.
Guidelines that apply specifically to the Tricon controller, including SIL3/AK5 and SIL3/AK6
guidelines, are also provided. Project change control guidelines and maintenance override
considerations can be found at the end of this chapter.
Be sure to thoroughly read and understand these guidelines before you write your safety
application and procedures.
When used as a PES in an SIS, the Tricon controller and its companion programming
workstation, the TriStation 1131 Developer’s Workbench, have been certified by TÜV
Rheinland/Berlin-Brandenburg to meet the requirements of DIN 19250 AK5-AK6 and IEC
61508 SIL3.
If these standards apply to your application, compliance with the guidelines described in this
chapter is highly recommended.
General Guidelines
This section describes standard industry guidelines that apply to:
• All safety systems
• Emergency shutdown (ESD) systems
• Fire and gas systems
• Burner management systems
Safety-Critical Modules
It is recommended that only the following modules be used for safety-critical applications:
• Main Processor Modules, all models
• Communication Modules (only when using protocols defined for safety-critical
applications)
• Digital Input Modules, all models
• Digital Output Modules, all models
• Analog Input Modules, all models
• Analog Output Module, Model #3805E only
• Pulse Input Module
• Pulse Totalizer Input Module
The Relay Output Module is recommended for non-safety-critical points only.
Safety-Shutdown
A safety application should include a network that initiates a safe shutdown of the process
being controlled when a controller operates in a degraded mode for a specified maximum time.
The Triconex Library provides two function blocks to simplify programming a safety-shutdown
application: TR_SHUTDOWN and TR_CRITICAL_IO. To see the Structured Text code for these
function blocks, see Appendix B, Safety-Critical Function Blocks. For more information on
safety-shutdown networks, see Sample Safety-Shutdown Programs on page 47.
Sending Node
Actions typically required in the logic of the sending application are:
• The sending node must set the SENDFLG parameter in the send call to true (1) so that
the sending node sends new data as soon as the acknowledgment for the last data is
received from the receiving node.
• The SEND function block (TR_USEND) must include a diagnostic integer variable that
is incremented with each new send initiation so that the receiving node can check this
variable for changes every time it receives new data. This new variable should have a
range of 1 to 65,565 where the value 1 is sent with the first sample of data. When this
variable reaches the limit of 65,565, the sending node should set this variable back to 1
for the next data transfer. This diagnostic variable is required because the
communication path is not triplicated like the I/O system.
• The number of SEND functions in an application must be less than or equal to five
because the controller only initiates five SEND functions per scan. To send data as fast
as possible, the SEND function must be initiated as soon as the acknowledgment for the
last data is received from the receiving node.
• The sending application must monitor the status of the RECEIVE (TR_URCV) and
TR_PORT_STATUS functions to determine whether there is a network problem that
requires operator intervention.
Receiving Node
Actions typically required in the logic of the receiving application are:
• To transfer safety-critical data, the basic rule is that the receiving node must receive at
least one sample of new data within the maximum time-out limit. If this does not
happen, the application for the receiving node must take one or more of the following
actions, depending on requirements:
— Use the last data received for safety-related decisions.
— Use default values for safety-related decisions in the application.
— Check the status of the TR_URCV and TR_PORT_STATUS functions to see whether
there is a network problem that requires operator intervention.
• The receiving node must monitor the diagnostic integer variable every time it receives
new data to determine whether this variable has changed from last time.
• The receiving program must monitor the status of the TR_URCV and
TR_PORT_STATUS functions to determine if there is a network problem that requires
operator intervention.
For information on data transfer time and examples of how to use Peer-to-Peer functions to
transfer safety-critical data, see Appendix A, Triconex Peer-to-Peer Communication.
SIL3/AK5 Guidelines
For SIL3/AK5 applications, these guidelines should be followed:
• If non-approved modules are used, the inputs and outputs should be checked to verify
that they do not affect safety-critical functions of the controller.
• Two modes control write operations from external hosts:
— Remote Mode—When the keyswitch setting is REMOTE, external hosts, such as
Modbus Master, DCS, etc., can write to aliased variables in the controller. When
false, writes are prohibited.
— Program Mode—When the keyswitch setting is PROGRAM, TriStation can make
program changes, including operations that modify the behavior of the currently
running application. For example, Download All, Download Change, declaring
variables, enabling/disabling variables, changing values of variables and scan time,
etc.
Remote mode and program mode are independent of each other. In safety applications,
operation in these modes is not recommended. In other words, write operations to the
controller from external hosts should be prohibited. If remote mode or program mode
becomes true, the application program should include the following safeguards:
— When remote mode is true, the application should turn on an alarm. For example, if
using the TR_SHUTDOWN function block, the ALARM_REMOTE_ACCESS
output could be used. Verify that aliased variables adhere to the guidelines
described in Maintenance Overrides on page 27.
— When program mode is true, the application should turn on an alarm. For example,
if using the TR_SHUTDOWN function block, the
ALARM_PROGRAMMING_PERMITTED output could be used.
• Wiring and grounding procedures outlined in the Tricon Planning & Installation Guide
should be followed.
• Maintenance instructions outlined in the Tricon Planning & Installation Guide should be
followed.
• If degradation to dual mode occurs, continued operation without repair should be
limited to 1500 hours (two months).
• If degradation to single mode occurs, continued operation without repair should be
limited to 72 hours (three days).
• The GATENB function allows external hosts to write selected aliased variables even
when the remote mode is false. A network using the GATENB function should be
thoroughly validated to ensure that only the intended aliased variable range is used.
SIL3/AK6 Guidelines
For SIL3/ AK6 applications, the following guidelines should be followed:
• DIN V VDE 19250/AK6 applications that require continued operation after detecting
an output failure must have a secondary means of operating the output. A secondary
means may be an external group relay or a single point on an independent output
module that controls a group of outputs. If a relay is used, it should be checked at least
every six months, manually or automatically.
• If non-approved modules are used, the inputs and outputs should be checked to verify
that they do not affect safety-critical functions of the controller.
• Two modes control write operations from external hosts:
— Remote Mode—When the keyswitch setting is REMOTE, external hosts, such as
Modbus Master, DCS, etc., can write to aliased variables in the controller. When
false, writes are prohibited.
— Program Mode—When the keyswitch setting is PROGRAM, TriStation can make
program changes, including operations that modify the behavior of the currently
running application. For example, Download All, Download Change, declaring
variables, enabling/disabling variables, changing values of variables and scan time,
etc.
Remote mode and program mode are independent of each other. In safety applications,
operation in these modes is not recommended. In other words, write operations to the
controller from external hosts should be prohibited. If remote mode or program mode
becomes true, the application program should include the following safeguards:
— When remote mode is true, the application should turn on an alarm. For example, if
using the TR_SHUTDOWN function block, the ALARM_REMOTE_ACCESS
output could be used. Verify that aliased variables adhere to the guidelines
described in Maintenance Overrides on page 27.
— When program mode is true, the application should turn on an alarm. For example,
if using the TR_SHUTDOWN function block, the
ALARM_PROGRAMMING_PERMITTED output could be used.
• Wiring and grounding procedures outlined in the Tricon Planning & Installation Guide
should be followed.
• Maintenance instructions outlined in the Tricon Planning & Installation Guide should be
followed.
• If degradation to dual mode occurs, continued operation without repair should be
limited to 1500 hours (two months).
• If degradation to single mode occurs, continued operation without repair should be
limited to one hour.
• The GATENB function allows external hosts to write selected aliased variables even
when the remote mode is false. A network using the GATENB function should be
thoroughly validated to ensure that only the intended aliased variable range is used.
• Peer-to-Peer communication must be programmed according to the recommendations
in Appendix A, Triconex Peer-to-Peer Communication.
Change Procedure
1 Generate a change request defining all changes and the reasons for the changes, then
obtain approval for the changes from the SCCC.
2 Develop a specification for the changes, including a test specification, then obtain
approval for the specification from the SCCC.
3 Make the appropriate changes to the project, including those related to design,
operation, or maintenance documentation.
4 To verify that the configuration in the controller matches the last downloaded
configuration, use the Verify Last Download to the Controller command on the
Controller Panel. For details, see the TriStation 1131 Developer’s Guide.
5 Compare the configuration in your project with the configuration that was last
downloaded to the controller by printing the Compare Project to Last Download report
from the Controller Panel. For details, see the TriStation 1131 Developer’s Guide.
6 Print all logic elements and verify that the changes to networks within each element do
not affect other sections of the application.
7 Test the changes according to the test specification using the Emulator Panel. For details,
see the TriStation 1131 Developer’s Guide.
8 Write a test report.
9 Review and audit all changes and test results with the SCCC.
10 When approved by the SCCC, download the changes to the controller.
• You may make minor changes online only if the changes are absolutely necessary
and are tested thoroughly.
Maintenance Overrides
Three methods can be used to check safety-critical devices connected to controllers:
• Special switches are connected to the inputs on a controller that deactivate the actuators
and sensors undergoing maintenance. The maintenance condition is handled in the
logic of the control application.
• Sensors and actuators are electrically disconnected from a controller and manually
checked using special measures.
• Serial communication to a controller activates the maintenance override condition. This
method is useful when space is limited; the maintenance console should be integrated
with the operator display.
TÜV strongly recommends that the workstation used for programming is not also used for
maintenance.
Table 4 describes the operating requirements for handling maintenance overrides when using
serial communication.
Additional Recommendations
These procedures are recommended in addition to the recommendations described in the tables
on page 28 and page 29:
• A DCS program should regularly verify that no discrepancies exist between the
override command signals issued by a DCS and override-activated signals received by
a DCS from a PES. This figure shows the procedure:
Safety-Instrumented System
Controller
Sensors Actuators
Safeguarding
Application
Program
Hard- Maintenance
Override Handling Operator
Wired
(Application Program) Warning
Switch
Distributed
Engineering
Control System
Workstation
Inputs
Overview 32
System Diagnostics 33
Types of Faults 34
Operating Modes 35
Module Diagnostics 36
Overview
The Tricon controller has been designed from its inception with self-diagnostics as a primary
feature. Triple-Modular Redundant (TMR) architecture (shown in Figure 7) ensures fault
tolerance and provides error-free, uninterrupted control in the event of hard failures of
components or transient faults from internal or external sources.
Each I/O module houses the circuitry for three independent channels. Each channel on the
input modules reads the process data and passes that information to its respective main
processor. The three Main Processor (MP) modules communicate with each other using a
proprietary, high-speed bus system called the TriBus.
Extensive diagnostics on each channel, module, and functional circuit quickly detect and report
operational faults by means of indicators or alarms. This fault information is available to an
application. It is critical that an application properly manage fault information to avoid an
unnecessary shutdown of a process or plant.
This section discusses the methods for properly handling faults.
Auto Spare Auto Spare
Main TriBus
Input Output
Channel Processor I/O Bus Voter
B Channel
B B
Input Output
Termination TriBus Main Termination
Processor
Input I/O Bus Output
C
Channel Channel
C C
System Diagnostics
To improve system availability and safety, a safety system must be able to detect failures and
provide the means for managing failures properly. The controller’s diagnostics may be
categorized as:
• Reference diagnostics: Comparing an operating value to a predetermined reference,
such as a system specification.
• Comparison diagnostics: Comparing one component to another, such as one
independent channel with two other independent channels.
• Field device diagnostics: Diagnostics are extended to a system’s field devices and
wiring.
Types of Faults
A controller is subject to external faults and internal faults, which are reported by:
• The status indicators on a module’s front panels
• The Triconex Diagnostic Monitor
• System attributes on the Controller Panel in TriStation
External Faults
A controller may experience the following types of external faults:
• Logic power faults
• Field power faults
• Load or fuse faults
When an external fault occurs, the controller asserts an alarm. How the alarm is communicated
is module-specific. In some cases, a yellow alarm indicator is provided on the module. For
example, a Load/Fuse alarm is provided on digital output modules. In most cases, the System
alarm is asserted, and the System alarm indicators on the main chassis power modules are lit.
The Triconex Diagnostic Monitor identifies the faulting module by displaying a red frame
around it. For instructions on responding to specific alarm conditions, see the Tricon Planning
and Installation Guide.
Internal Faults
Internal faults are usually isolated to one of the controller’s three channels (A, B, or C). When an
internal fault occurs on one of the three channels, the remaining two healthy channels maintain
full control. Depending on the type of fault, the controller either remains in TMR mode or
degrades to dual mode for the system component that is affected by the fault. For more
information about operating modes, see Operating Modes on page 35.
When an internal fault occurs, the controller lights the red Fault indicator on the faulting
module and the System alarm on the main chassis power modules to alert the operator to
replace the faulting module.
Operating Modes
Each input or output point is considered to operate in one of three modes:
The current mode indicates the number of channels controlling a point; in other words, the
number of channels controlling the output or having confidence in the input. For safety reasons,
system mode is defined as the mode of the point controlled by the fewest number of channels.
System variables summarize the status of input and output points. When a safety-critical point
is in dual or single mode, the application may need to shut down the controlled process within
a pre-determined time.
You can further simplify and customize shutdown logic by using special function blocks
provided by Triconex. By considering only faults in safety-critical modules, system availability
can be improved. Using shutdown function blocks is essential to preventing potential false trips
in dual mode and to guaranteeing fail-safe operation in single mode. For more information, see
Appendix B, Safety-Critical Function Blocks.
While operating in TMR mode, during each scan the process is protected from the effect of a
single safety-critical system fault. The system can also tolerate multiple faults and continue to
operate correctly unless the combined effects of multiple faults affects the same point on
multiple channels.
If a system fault occurs, the loss of redundancy causes an increased probability-of-failure-on-
demand. To keep the PFD within industry-acceptable guidelines, adherence with the
recommended maximum operating period of 1500 hours in dual mode and 72 hours
(SIL3/AK5) or one hour (SIL3/AK6) in single mode should be observed.
A safety-critical fault is defined as a fault that can affect the ability of the system to correctly
control outputs. Safety-critical faults include:
• Inability to detect a change of state on a digital input point
• Inability to detect a change of value on an analog input point
• Inability to change the state of a digital output point
• Inability of the system to:
— Read each input point
— Vote the correct value of each input
— Execute the control program
— Determine the state of each output point correctly
Also, during each execution of the control application, each channel independently verifies the:
• Integrity of the data path between the MPs
• Proper voting of all input values
• Proper evaluation of the control application
• Calculated value of each output point
Module Diagnostics
Each system component detects and reports operational faults.
compared its against internal references. A channel that has detected a fault on an analog input
point votes that point to be zero. Using these diagnostics, each channel can be verified
independently, thus assuring nearly 100 percent fault coverage and fail-safe operation under all
single-fault scenarios and most common multiple-fault scenarios.
Input/Output Processing
Each processor on an I/O module is protected by an independent watchdog that verifies the
timely execution of the I/O module firmware and diagnostics. If an I/O processor fails to
execute correctly, the I/O processor enters the fail-safe state. The I/O bus transceiver and all
outputs for the faulting channel are disabled, leaving all outputs under control of the remaining
healthy channels.
The integrity of the I/O bus is continuously monitored and verified independently by each
channel of the system. A catastrophic bus fault results in affected I/O module channels
reverting to the fail-safe state in less than 500 milliseconds (0.5 seconds), worst case.
• Each digital input point is reported to the control program as de-energized.
• Each analog input point is reported to the control program as zero.
• Each digital output point goes to the de-energized state.
• Each analog output point goes to 0.0 mA.
• Each relay output point goes to the normally open (NO) position.
An independent watchdog ensures that the control program and diagnostics execute within 500
milliseconds (the watchdog period). If an MP fails to execute the scan, the watchdog forces the
MP to the fail-safe state. The I/O processor adds a sequential element to the MP watchdog. If an
MP fails to report the proper sequence of execution, the I/O processor causes the MP to enter
the fail-safe state.
External Communication
Loss of external communication is not indicated by a system alarm. However, alarms can be
generated by using semaphore flags and system attributes.
Semaphore Flags
Establish a semaphore between a controller and an external device by using a timer function
block to evaluate the changing state of semaphore flags.
System Attributes
System attributes can be used to generate an alarm when a communication link is lost.
For more information about communication alarms, see the TriStation 1131 Developer’s Guide
and the following manuals:
• Advanced Communication Module (ACM) User's Guide
• Enhanced Intelligent Communication Module (EICM) User's Guide
• Network Communication Module (NCM) User's Guide
• Safety Manager Module User's Guide
• Hiway Interface Module (HIM) User's Guide
• Tricon System Access Application (TSAA) Quick Guide
• Tricon Planning & Installation Guide
• TriStation 1131 Triconex Libraries
Development Guidelines 42
Important TriStation Commands 44
Setting Scan Time 46
Sample Safety-Shutdown Programs 47
Alarm Usage 58
Development Guidelines
To avoid corruption of project files while developing an application (also known as a control
program), you should:
• Use a dedicated PC that is not connected to a network.
• Use a good virus checker.
• Use dependable media, such as a CD-ROM instead of a floppy disk.
• Not use battery power if using a notebook computer.
• Not copy a project file while it is open in TriStation.
• Not e-mail project files.
• Not use a system prone to crashing.
• Verify proper installation of TriStation 1131 using TriStation Install Check.
You should run the TriStation Install Check program to verify that TriStation is correctly
installed on your PC and that no associated files are corrupted. This is especially helpful
if applications besides TriStation 1131 reside on your PC. See the TriStation 1131
Developer's Guide for instructions on using the TriStation Install Check program.
VAR_IN_OUT Variables
You should not use the VAR_IN_OUT variable in a safety application. Safety standards (such
as IEC 61508) recommend limiting the use of pointers in safety applications; VAR_IN_OUT is
used as a pointer in TriStation 1131. To automatically check for the use of VAR_IN_OUT in your
safety application, set the safety attribute (as described above).
Infinite Loops
If the actual scan time exceeds the maximum allowable scan time for the Tricon, the main
processors will reset, causing the Tricon to go to the safe state, with all outputs de-energized.
The maximum allowable scan time for the Tricon is 450 milliseconds.
Although it is not possible to program an endless loop with TriStation 1131, it is possible to
create a loop with a very long time, enough to increase the actual scan time beyond the
controller’s maximum allowable scan time.
See Setting Scan Time on page 46 for more information about actual and maximum scan times.
Download Changes
The Download Changes command is a convenient means of making simple modifications to an
offline system during application development.
Before a Download Change, use the Triconex Diagnostic Monitor to verify that the Scan Surplus
is sufficient for the application and changes being made. As a rule, the value for Scan Surplus
should be at least 10 percent of Scan Time to accommodate newly added elements. For more
information on scan time, see Setting Scan Time on page 46.
For more information on the Download Changes command, see the TriStation 1131 Developer's
Guide.
For more information on the Verify Last Download to the Controller command, see the
TriStation 1131 Developer's Guide.
Scan Time
Scan time is the interval required for evaluations (in other words, scans) of an application as it
executes in the controller. The time it actually takes to do an evaluation may be less than the
requested scan time. To prevent scan-time overruns, a scan time must be set that includes
sufficient time for all executable elements in an application—including print statements,
conditional statements, and future download changes.
Use the Scan Time parameter in the TriStation Program Execution List to suggest the desired
scan time before downloading an application—this is the Requested Scan Time. Upon
downloading, the controller determines the minimum and maximum allowable scan times for
your application and uses your requested scan time if it falls within the acceptable limits. The
default scan time is 200 milliseconds. The maximum allowable scan time is 450 milliseconds and
the minimum allowable scan time is 20 milliseconds (Tricon v9.5 and earlier) or 10 milliseconds
(Tricon v9.6 and later). Actual Scan Time is the actual time of the last scan. Actual scan time is
always equal to or greater than the requested scan time.
Note To guarantee that the controller provides a deterministic repsonse time, the scan time
should always be set to a value greater than the I/O poll time (the maximum time
needed by the controller to obtain data from the input modules). You can view the I/O
poll time on the System Overview screen in the TriStation Diagnostic Monitor.
Scan Surplus
Scan Surplus is the scan time remaining after application elements have been executed. Scan
Surplus must be positive—if it is negative, the Scan Time parameter must be adjusted (using the
Set Scan Time command on the Commands menu in the Controller Panel) to set the surplus
value to greater than or equal to zero. The Scan Time parameter in the TriStation Program
Execution List applies only when you perform a Download All.
Scan Overruns
If Scan Surplus becomes negative and a scan overrun
SCAN_STATUS
occurs, the relevant status attributes are set as follows:
TR_SCAN_STATUS
• SCAN_OVERRUNS is incremented once for 1 C1 CO
Program EX01_SHUTDOWN
CRITICAL_MODULES
TR_SHUTDOWN
CI CO
IO_CO OPERATIING CRITICAL_MODULES_OPERATING
IO_TMR TMR
IO_GE_DUAL DUAL
IO_GE_SINGLE SINGL
IO_NO_VOTER_FLTS ZERO
IO_ERROR TIMER_RUNNING
T#1500h MAX_TIME_DUAL TIME_LEFT
T#3d MAX_TIME_SINGLE ALARM_PROGRAMMING_PERMITTED ALARM_PROGRAMMING_PERMITTED
T#400ms MAX_SCAN_TIME ALARM_REMOTE_ACCESS ALARM_REMOTE_ACCESS
ALARM_RESPONSE_TIME ALARM_RESPONSE_TIME
ALARM_DISABLED_POINTS ALARM_DISABLED_POINTS
ERROR
001
Parameter Description
CI Do not connect when all I/O modules are system-critical
IO_CO Do not connect when all I/O modules are system-critical
IO_TMR Do not connect when all I/O modules are system-critical
IO_GE_DUAL Do not connect when all I/O modules are system-critical
IO_GE_SINGLE Do not connect when all I/O modules are system-critical
IO_NO_VOTER_FLTS Do not connect when all I/O modules are system-critical
IO_ERROR Do not connect when all I/O modules are system-critical
MAX_TIME_DUAL Maximum time with only two channels operating
MAX_TIME_SINGLE Maximum time with only one channel operating
MAX_SCAN_TIME 50 percent of the maximum response time
Parameter Description
CO Control out
OPERATING When true, all safety-critical modules are operating
properly
When false, the time in degraded operation exceeds
the specified limits; therefore, the control program
should shut down the process
TMR System is operating in triple modular redundant
mode
DUAL At least one safety-critical point is controlled by two
channels
SINGL At least one safety-critical point is controlled by one
channel
ZERO At least one safety-critical point is not controlled by
any channel
TIMER_RUNNING Time left to shutdown is decreasing
TIME_LEFT Time remaining before shutdown
ALARM_PROGRAMMING_PERMITTED True if application changes are permitted
ALARM_REMOTE_ACCESS True if remote-host writes are enabled
ALARM_RESPONSE_TIME True if actual scan time is greater than
MAX_SCAN_TIME
ALARM_DISABLED_POINTS True if one or more points are disabled.
ERROR_NUM Error Number:
0 = No error
1 = Error in maximum time
2 = I/O function block error—IO_ERROR is non-zero
3 = Function block error—system status or MP Status
Program EX02_SHUTDOWN
CRITICAL_MODULES
CRITICAL_IO TR_SHUTDOWN
EX02_CRITICAL_IO
CI CO
CI CO IO_CO OPERATING CRITICAL_MODULES_OPERATING
RELAY1_OK TMR IO_TMR TMR
GE_DUAL IO_GE_DUAL DUAL
GE_SINGLE IO_GE_SINGLE SINGL
NO_VOTER_FLTS IO_NO_VOTER_FLTS ZERO
Procedure
1 Copy the example EX02_CRITICAL_IO function block in the ExTUV.pt2 sample project
provided with the TriStation 1131 Developer’s Workbench.
2 Edit the lines following the comment “Include here all safety-critical I/O modules.”
Each line calls the safety-critical I/O (SCIO) function block for one safety-critical I/O
module.
Example
**************************************************************)
(* Include here all safety-critical I/O modules: *)
SCIO( CHASSIS:=1,SLOT:=1, APP:=DE_ENERGIZED,RELAY_OK:=FALSE):(*DI*)
SCIO( CHASSIS:=1,SLOT:=2, APP:=RELAY, RELAY_OK:=RELAY1_OK);(*DO*)
SCIO( CHASSIS:=1,SLOT:=3, APP:=RELAY, RELAY_OK:=RELAY1_OK);(*DO*)
(* ( CHASSIS:=1,SLOT:=4, NOT CRITICAL) *)(*RO*)
3 Enter the correct CHASSIS number, SLOT number, APP (application), and RELAY_OK
parameters for the safety-critical I/O module.
Partitioned Processes
You can achieve greater system availability if you can allocate modules to processes that do not
affect each other. For example, you could have two processes with:
• Outputs for one process on one DO module
• Outputs for another process on a second DO module
• Inputs from a shared DI module
You do this by partitioning processes.
Procedure
1 Partition the safety-critical I/O modules into three function blocks:
• SHARED_IO for the shared safety-critical I/O modules
• PROCESS_1_IO for safety-critical I/O modules that do not affect process 2
• PROCESS_2_IO for safety-critical I/O modules that do not affect process 1
2 Connect the function blocks as shown in the EX03_SHUTDOWN example on page 57.
Program EX03_SHUTDOWN
SHARED
SHARED_IO TR_SHUTDOWN
EX03_SHARED_IO CI CO
CI CO IO_CO OPERATING
RELAY1_OK TMR IO_TMR TMR
GE_DUAL IO_GE_DUAL DUAL
GE_SINGLE IO_GE_SINGLE SINGL
NO_VOTER_FLTS IO_NO_VOTER_FLTS ZERO
PROCESS_1
PROCESS_1_IO TR_SHUTDOWN
EX03_PROCESS_1_IO
CI CO
AND PROCESS_1_
CI CO IO_CO OPERATING OPERATING
005
RELAY1_OK TMR IO_TMR TMR
GE_DUAL IO_GE_DUAL DUAL If PROCESS_1_OPERATING
GE_SINGLE IO_GE_SINGLE SINGL = FALSE, shut down
NO_VOTER_FLTS IO_NO_VOTER_FLTS ZERO process 1 because the
time in degraded mode
003 ERROR IO_ERROR TIMER_RUNNING
exceeds the specified limit
MAX_TIME_DUAL TIME_LEFT for safety-critical modules
T#1500h
MAX_TIME_SINGLE ALARM_PROGRAMMING_PERMITTED that affect process 1.
T#3d
MAX_SCAN_TIME ALARM_REMOTE_ACCESS
T#400ms
ALARM_RESPONSE_TIME
ALARM_DISABLED_POINTS
ERROR
004
PROCESS_2
PROCESS_2_IO TR_SHUTDOWN
EX03_PROCESS_2_IO
CI CO
AND PROCESS_2_
CI CO IO_CO OPERATING OPERATING
006
RELAY1_OK TMR IO_TMR TMR
GE_DUAL IO_GE_DUAL DUAL If PROCESS_2_OPERATING
GE_SINGLE IO_GE_SINGLE SINGL = FALSE, shut down
NO_VOTER_FLTS IO_NO_VOTER_FLTS ZERO process 2 because the
time in degraded mode
005 ERROR IO_ERROR TIMER_RUNNING
exceeds the specified limit
MAX_TIME_DUAL TIME_LEFT for safety-critical modules
T#1500h
MAX_TIME_SINGLE ALARM_PROGRAMMING_PERMITTED that affect process 2.
T#3d
MAX_SCAN_TIME ALARM_REMOTE_ACCESS
T#400ms
ALARM_RESPONSE_TIME
ALARM_DISABLED_POINTS
ERROR
006
Alarm Usage
To implement the guidelines, the alarms described below are provided with TriStation 1131.
Overview 60
Data Transfer Time 61
Examples of Peer-to-Peer Applications 64
Overview
Triconex Peer-to-Peer protocol is designed to allow multiple Tricon and Trident controllers in a
closed network to exchange safety-critical data. (If you plan to implement a complex Peer-to-
Peer network, please contact Triconex Technical Support.) To enable Peer-to-Peer
communication, you must connect each controller (also referred to as a node) to an Ethernet
network by means of a NET1 (Ethernet) port on the NCM. The controllers exchange data by
using Send and Receive function blocks in their TriStation
Peer-to-Peer Network
CM CM
Tricon
Controller
NN
MMM CC
P P P MM
A B C 1 2
MP MP
Trident Controller Trident Controller
applications.
Figure 11 Basic Triconex Peer-to-Peer Network
Procedure
1 In TriStation, on the sending controller, expand the Controller tree, and double-click
Configuration. On the Configuration tree, click Memory Allocation.
2 Find the bytes allocated for BOOL, DINT, and REAL points by doing this:
• On the Configuration tree, click Memory Points, Input Points, or Output Points.
Double-click the graphic for the point type.
• Add the number of bytes allocated for all BOOL input, output, and aliased memory
points. Enter the number on step 1 of the following worksheet. Enter the number for
DINT and REAL points on step 1.
3 On the receiving controller, get the BOOL, DINT, and REAL points and enter the
numbers on step 3 of the Data Transfer Time worksheet.
Procedure
1 Use the instructions in the following worksheet to estimate the transfer time.
Point Allocated
Steps Operation Result
Type Bytes
1. Enter the number of bytes for each BOOL _________ ÷8= _________
point type on the sending controller and
divide or multiply as indicated. Add the DINT _________ x4= _________
results. REAL _________ x4= _________
Total bytes of aliased points TBS = _________
2. Multiple total bytes sending TBS (step 1) by 0.01 TS = _________
3. Enter the number of bytes for each BOOL _________ ÷8= _________
point type on the receiving controller and
DINT _________ x4= _________
divide or multiply as indicated. Add the
results. REAL _________ x4= _________
Total bytes of aliased points TBR = _________
4. Multiple total bytes receiving TBR (step 3) by 0.01 TR = _________
5. Get the scan time of sending node in milliseconds by viewing _________
SS =
the Scan Time in the Execution List.
6. Get the scan time of receiving node in milliseconds by viewing _________
SR =
the Scan Period in the Execution List.
7. Multiply the larger of TS or SS by 2. _________
8. Multiply the larger of TR or SR by 2. _________
9. Add the results of step 7 and 8 to get the data transfer time = DT _________
10. If the number of pending send requests in the application is
greater than 10, divide the number of send requests by 10. _________
11. Multiply the results of steps 9 and 10 to get the adjusted data Adjusted
transfer time. DT _________
12. Compare the adjusted DT to the process-tolerance time to determine if it is
acceptable.
A typical data transfer time (based on a typical scan time) is 1 to 2 seconds, and the time-out
limit for a Peer-to-Peer send (including three retries) is 5 seconds. Consequently, the process-
tolerance time of the receiving controller must be greater than 5 seconds. Process-tolerance time
is the maximum length of time that can elapse before your control algorithms fail to operate
correctly. If these limitations are not acceptable, further analysis of your process is required.
For an example that shows how to measure the maximum data transfer time and use
SEND/RECEIVE function blocks to transfer-safety critical data, see Example 4: Using
SEND/RECEIVE Function Blocks for Safety-Critical Data on page 65. While testing your
system, you should measure the actual maximum time it takes to transfer data to ensure the
validity of your calculations.
As Table 12 shows, it takes from two to 30 seconds to detect and report time-out and
communication errors. This is why a receiving node that uses the received data to make safety-
critical decisions must include logic to verify that new data is received within the specified time
period. If the data is not received within the specified process-tolerance time, the application
must take appropriate actions depending on requirements.
For an example that shows how to use SEND and RECEIVE function blocks for transferring
safety critical data, see Example 4: Using SEND/RECEIVE Function Blocks for Safety-Critical
Data on page 65.
Refer to the TriStation 1131 Libraries Reference for additional information.
This example packs 32 BOOL values into a DWORD and sends the DWORD and a diagnostic
variable to a receiving node as fast as possible by setting the sendflag parameter to 1 all the time.
The diagnostic variable is incremented every time a new SEND is initiated. The receiving node
checks the diagnostic variable to verify that it has changed from the previous value received.
The receiving node also determines whether it has received at least one data transfer within the
process-tolerance time. If not, the application takes appropriate action, such as using the last
data received or using default data to make safety-critical decisions.
This example uses the following project elements:
• PEER_EX4_SEND_FBD (for sending Node #1)
• PEER_EX4_RCV_FBD (for receiving Node #3)
TR_CRITICAL_IO 69
TR_SHUTDOWN 75
TR_VOTE_MODE 81
Overview
This appendix describes the function blocks intended for use in safety-critical applications and
shows the Structured Text code for the following function blocks:
• TR_CRITICAL_IO on page 69
• TR_SHUTDOWN on page 75
• TR_VOTE_MODE on page 81
TR_CRITICAL_IO
Accumulates the status of safety-critical I/O modules in a Tricon controller.
Syntax
MY_TR_CRITICAL_IO( CI:=b1, INIT:=b2, CHASSIS:=n1, SLOT:=n2, APP:=n3,
RELAY_OK:=b3 ) ;
Input Parameters
Name Data Type Description
CI BOOL Enables TR_CRITICAL_IO.
INIT BOOL Initializes TR_CRITICAL_IO.
CHASSIS DINT The chassis number (1–15).
SLOT DINT The physical slot number.
APP DINT The application number (1-2).
RELAY_OK BOOL The relay is energized and not stuck.
Output Parameters
Name Data Type Description
CO BOOL True if TR_CRITICAL_IO executes successfully.
TMR BOOL Three channels are operating without fatal faults on critical I/O
modules detected.
GE_DUAL BOOL Two channels are operating without fatal faults on critical I/O
modules detected.
GE_SINGLE BOOL At least one channel is operating without faults on critical I/O
modules detected.
NO_VOTER_FLTS BOOL No voter faults on critical I/O modules detected.
ERROR DINT Error Number:
0 = No error.
–1 The slot is not odd or not numbered 1–15.
–2 = Invalid chassis or slot.
–3 = The module is not configured.
–4 = An invalid application number is used.
–5 = Not initialized.
Description
The TR_CRITICAL_IO function block accumulates the status of all safety-critical I/O modules
in a Tricon controller.
Example
For shutdown examples, see this sample project:
My Documents\Triconex\TriStation 1131 4.0\Projects\ExTUV.pt2
Runtime Errors
Upon detection of a runtime error condition, the function block returns the indicated values and
sets the error flags to true. For more information about error flags and runtime errors, see the
CHK_ERR function block in the Triconex Libraries Reference.
Application Notes
• Can be used in Safety or Control applications.
Library
Tricon (TR1LIB/TX1LIB)
Structured Text
FUNCTION_BLOCK TR_CRITICAL_IO
VAR_INPUT
CI : BOOL := TRUE ; (* Control in. *)
INIT : BOOL ; (* Initialize *)
CHASSIS : DINT ; (* Chassis number 1-15 *)
SLOT : DINT ; (* Physical SLOT odd number 1,3..15 *)
APP : DINT ; (* Application number 1-2 *)
RELAY_OK : BOOL := TRUE ; (* Relay is energized and not stuck. *)
END_VAR
VAR_OUTPUT
CO : BOOL ; (* Critical IO Control out. *)
TMR : BOOL := TRUE ; (* Critical IO 3 channels operating. *)
GE_DUAL : BOOL ; (* Critical IO 2 or more channels operating. *)
GE_SINGLE : BOOL ; (* Critical IO 1 or more channels operating. *)
NO_VOTER_FLTS : BOOL ; (* No voter faults on critical modules. *)
ERROR : DINT ; (* Error number. *)
(*
* Error number:
* 0 = No error.
* -1 = Slot is not odd or not in 1..15.
* -2 = Chassis or slot is invalid.
* -3 = Module not configured.
* -4 = Reserved (not used).
* -5 = Application number is invalid.
* -6 = Not initialized.
*)
END_VAR
VAR
PREVIOUS_INIT : BOOL ; (* INIT on previous evaluation. *)
MP : TR_MP_STATUS ; (* MP status. *)
LEFT_SLOT : TR_SLOT_STATUS ; (* Left slot status. *)
RIGHT_SLOT : TR_SLOT_STATUS ; (* Right slot status. *)
RELAY : DINT := 1 ; (* De-energized to trip with relay *)
DE_ENERGIZED : DINT := 2 ; (* De-energized to trip with no relay *)
U : BOOL ; (* Unused value. *)
LEFT_GE_SINGLE : BOOL ; (* Left slot, mode >= single. *)
(*
*=F===============================================================================
* FUNCTION_BLOCK: TR_CRITICAL_IO
* Purpose: Calculate status of critical IO modules.
*
* Return: none
*
* Remarks:
* Usage
* 1. Invoke once with INIT := TRUE, to initialize.
* 2. Invoke again with INIT := FALSE, CI := TRUE, APP := DE_ENERGIZED, and
* RELAY_OK := FALSE to complete initialization.
* 3. Invoke repeatedly, once for each critical IO module.
* 4. Read outputs CO, TMR, GE_DUAL, and GE_SINGLE for safety critical results.
*
* In step 3, invoke with the CHASSIS and SLOT of the critical IO module,
* the module application, and the relay status.
* For example, if CHASSIS 1 SLOT 5 is a critical DO module with a relay,
* and SCIO is the function block instance name:
* SCIO( CHASSIS:=1, SLOT:= 5, APP:=RELAY, RELAY_OK:=RELAY1_OK );
*
* Slot Number
* Each logical IO slot consists of two physical slots,
* a left slot and a right slot. By convention,
* the physical slot number of the left slot is always odd.
* The SLOT parameter is the physical slot number of the left slot.
*
* Application
* The APP parameter for a module selects the effect of a fault
* on the vote mode outputs of the shutdown function blocks.
* APP:=RELAY with RELAY_OK:=true
* A single fault (even a voter fault) degrades the mode to DUAL.
* The relay provides a third channel for shutdown,
* so if an output voter fails, there are still
* two independent channels that can de-energize the output,
* i.e., the relay and the other output voter channel.
* APP:=RELAY with RELAY_OK:=false, or
* APP:=DE_ENERGIZED
* A voter fault degrades the mode to SINGLE.
* A non-voter fault degrades the mode to DUAL.
*
* Runtime Errors
* EBADPARAM Bad parameter
* CO=FALSE indicates a programming error.
* See ERROR number parameter for details.
*=F===============================================================================
*)
IF INIT THEN
MP( CI := TRUE ) ;
CO := [Link] ;
TMR := TRUE ;
GE_DUAL := TRUE ;
GE_SINGLE := TRUE ;
NO_VOTER_FLTS := TRUE ;
ELSIF PREVIOUS_INIT THEN
; (* No operation. *)
ELSIF CI AND CO THEN
IF (DINT_TO_DWORD(SLOT) AND 1) <> 1 OR SLOT<1 OR 15<SLOT THEN
ERROR := -1 ; (* Slot is not odd or not in 1..15. *)
U := ReportBadParam(0) ;
CO := FALSE ;
END_IF ;
IF CO THEN
LEFT_SLOT( CI := CI, CHASSIS := CHASSIS, SLOT := SLOT ) ;
RIGHT_SLOT( CI := CI, CHASSIS := CHASSIS, SLOT := SLOT+1 ) ;
IF NOT (LEFT_SLOT.CO AND RIGHT_SLOT.CO) THEN
ERROR := -2 ; (* Chassis or slot is invalid. *)
U := ReportBadParam(0) ;
CO := FALSE ;
END_IF ;
END_IF ;
IF CO THEN
IF NOT ( LEFT_SLOT.PASS OR LEFT_SLOT.FAIL
OR LEFT_SLOT.ACTIVE OR LEFT_SLOT.INSTALLED
OR RIGHT_SLOT.PASS OR RIGHT_SLOT.FAIL
OR RIGHT_SLOT.ACTIVE OR RIGHT_SLOT.INSTALLED ) THEN
ERROR := -3 ; (* Module not configured. *)
U := ReportBadParam(0) ;
CO := FALSE ;
END_IF ;
END_IF ;
IF CO THEN
END_IF ;
IF ERROR = 0 AND NOT CO THEN
ERROR := -6 ; (* Not initialized *)
U := ReportBadParam(0) ;
END_IF ;
IF NOT CO THEN
TMR := FALSE ;
GE_DUAL := FALSE ;
GE_SINGLE := FALSE ;
NO_VOTER_FLTS := FALSE ;
END_IF ;
PREVIOUS_INIT := INIT ;
END_FUNCTION_BLOCK
TR_SHUTDOWN
Enables a Tricon system shutdown according to industry guidelines.
Syntax
MY_TR_SHUTDOWN( CI:=b1, IO_CO:=b2, IO_TMR:=b3, IO_GE_DUAL:=b4,
IO_GE_SINGLE:=b5, IO_NO_VOTER_FLTS:=b6, IO_ERROR:=n1, MAX_TIME_DUAL:=t1,
MAX_TIME_SINGLE:=t2, MAX_SCAN_TIME:=t3 ) ;
Input Parameters
Name Data Type Description
CI BOOL Enables TR_SHUTDOWN.
IO_CO BOOL True if TR_SHUTDOWN executes successfully.
IO_TMR BOOL Three channels are operating without fatal faults detected.
IO_GE_DUAL BOOL Two channels are operating without fatal faults detected.
IO_GE_SINGLE BOOL One channel is operating without fatal faults detected.
IO_NO_VOTER_FLTS BOOL No failed critical modules detected.
IO_ERROR DINT Zero = no error.
Non-zero = programming or configuration error.
MAX_TIME_DUAL TIME The maximum time of continuous operation in dual mode
(two channels operating).
MAX_TIME_SINGLE TIME The maximum time of continuous operation in single mode
(one channel operating).
MAX_SCAN_TIME TIME 50% of the maximum response time.
Output Parameters
Name Data Type Description
CO BOOL True if TR_SHUTDOWN executes
successfully.
OPERATING BOOL If false, shut down.
TMR BOOL Three channels are operating.
DUAL BOOL Two channels are operating.
SINGL BOOL One channel is operating.
ZERO BOOL No channels are operating.
TIMER_RUNNING BOOL The shutdown timer is running
TIME_LEFT TIME The time remaining to shutdown.
ALARM_PROGRAMMING_PERMITTED BOOL True if application changes are permitted.
ALARM_REMOTE_ACCESS BOOL True if remote-host writes are enabled.
Description
The TR_SHUTDOWN function block enables a Tricon system shutdown according to industry
guidelines.
Example
For shutdown examples, see this sample project:
My Documents\Triconex\TriStation 1131 4.0\Projects\ExTUV.pt2
Runtime Errors
Upon detection of a runtime error condition, the function block returns the indicated values and
sets the error flags to true. For more information about error flags and runtime errors, see the
CHK_ERR function block.
If a programming error or configuration error occurs, then CO is false and the error number is
non-zero. For error numbers, see the description of the ERROR output.
Application Notes
• Can be used in Safety or Control applications.
Library
Tricon (TR1LIB/TX1LIB)
Structured Text
FUNCTION_BLOCK TR_SHUTDOWN
VAR_INPUT
CI : BOOL := TRUE ; (* Control in. *)
IO_CO : BOOL ; (* Critical IO Control out. *)
IO_TMR : BOOL ; (* Critical IO 3 channels operating. *)
IO_GE_DUAL : BOOL ; (* Critical IO 2 or more channels operating. *)
IO_GE_SINGLE : BOOL ; (* Critical IO 1 or more channels operating. *)
IO_NO_VOTER_FLTS : BOOL ; (* No voter faults on critical modules. *)
IO_ERROR : DINT ; (* Error number, 0 = no error. *)
MAX_TIME_DUAL : TIME := T#40000d ; (* Max Time with only 2 channels. *)
MAX_TIME_SINGLE : TIME := T#40000d ; (* Max Time with only 1 channel. *)
MAX_SCAN_TIME : TIME := T#400ms ; (* 50% of Max Response Time. *)
END_VAR
VAR_OUTPUT
CO : BOOL ; (* Control out. *)
OPERATING : BOOL ; (* Shutdown if OPERATING=FALSE. *)
TMR : BOOL ; (* Three channels operating. *)
DUAL : BOOL ; (* Dual mode. *)
SINGL : BOOL ; (* Single mode. *)
ZERO : BOOL ; (* Zero mode. *)
TIMER_RUNNING : BOOL ; (* Shutdown timer is running. *)
TIME_LEFT : TIME ; (* Time remaining to shutdown. *)
ALARM_PROGRAMMING_PERMITTED : BOOL ; (* Alarm -- download change. *)
ALARM_REMOTE_ACCESS : BOOL ; (* Alarm -- remote host writes. *)
ALARM_RESPONSE_TIME : BOOL ; (* Alarm -- exceed response time. *)
ALARM_DISABLED_POINTS : BOOL ; (* Alarm -- some points disabled. *)
ERROR : DINT ; (* Error number. *)
(*
* Error number:
* 0 = No error.
* 1 = Error in maximum time.
* 2 = IO function block error - IO_ERROR is non-zero.
* 3 = Status function block error.
*)
END_VAR
VAR
GE_DUAL : BOOL ; (* Two or more channels operating. *)
GE_SINGLE : BOOL ; (* One or more channels operating. *)
MP : TR_MP_STATUS ; (* MP status. *)
PROG : TR_PROGRAM_STATUS ; (* Program status. *)
SCAN : TR_SCAN_STATUS ; (* Scan status. *)
DUAL_TIME : TON ; (* Dual mode timer. *)
SINGLE_TIME : TON ; (* Single mode timer. *)
U : BOOL ; (* Unused Value. *)
END_VAR
(*
*=F===============================================================================
* FUNCTION_BLOCK: TR_SHUTDOWN
* Purpose: Implement TUV restrictions.
*
* Return: none
*
* Remarks:
*
* Example EX01_SHUTDOWN shows one way to check that
* the safety system is operating within spec when
IF CI THEN
(* Get Status *)
MP( CI := TRUE ) ;
PROG( CI := TRUE ) ;
SCAN( CI := TRUE ) ;
(* Check for programming errors. *)
ERROR := 0 ;
IF
MAX_TIME_DUAL < MAX_TIME_SINGLE OR
MAX_TIME_DUAL < T#0S OR
MAX_TIME_SINGLE < T#0S OR
MAX_SCAN_TIME < T#0S
THEN
ERROR := 1 ;
ELSIF IO_ERROR <> 0 THEN
ERROR := 2 ;
ELSIF NOT ([Link] AND [Link] AND [Link]) THEN
ERROR := 3 ;
END_IF ;
CO := ERROR = 0 ;
IF CO THEN
(* Summarize redundancy. *)
TMR := NOT [Link] AND
(
NOT IO_CO AND NOT [Link]
OR IO_CO AND IO_TMR
);
GE_SINGLE :=
(
NOT IO_CO
OR IO_CO AND IO_GE_SINGLE
);
(* Update timers. *)
DUAL_TIME( IN := NOT TMR, PT := MAX_TIME_DUAL ) ;
SINGLE_TIME( IN := NOT GE_DUAL, PT := MAX_TIME_SINGLE ) ;
TIME_LEFT := T#0s ;
ELSIF TMR THEN
TIME_LEFT := T#999999d ;
ELSIF GE_DUAL OR
MAX_TIME_DUAL-DUAL_TIME.ET <= MAX_TIME_SINGLE-SINGLE_TIME.ET THEN
TIME_LEFT := MAX_TIME_DUAL - DUAL_TIME.ET ;
ELSE
TIME_LEFT := MAX_TIME_SINGLE - SINGLE_TIME.ET ;
END_IF ;
(* Output alarms. *)
ALARM_PROGRAMMING_PERMITTED := [Link] = 1 (*1=PROGRAM*) ;
ALARM_REMOTE_ACCESS := [Link] <> 2 ; (*2=RUN*)
ALARM_RESPONSE_TIME := T#1ms * [Link] > MAX_SCAN_TIME ;
ALARM_DISABLED_POINTS := PROG.POINTS_DISABLED > 0 ;
ELSE
(* Programming error. *)
U := ReportBadParam(0) ;
OPERATING := FALSE ;
TMR := FALSE ;
GE_DUAL := FALSE ;
GE_SINGLE := FALSE ;
DUAL := FALSE ;
SINGL := FALSE ;
ZERO := FALSE ;
TIMER_RUNNING := FALSE ;
TIME_LEFT := T#0S;
ALARM_PROGRAMMING_PERMITTED := TRUE ;
ALARM_REMOTE_ACCESS := TRUE ;
ALARM_RESPONSE_TIME := TRUE ;
ALARM_DISABLED_POINTS := TRUE ;
END_IF ;
END_IF ;
END_FUNCTION_BLOCK
TR_VOTE_MODE
Converts redundancy status.
Syntax
MY_TR_VOTE_MODE( CI:=b1, IN_TMR:=b2, GE_DUAL:=b3, GE_SINGLE:=b4 ) ;
Input Parameters
Name Data Type Description
CI BOOL Enables TR_VOTE_MODE.
IN_TMR BOOL Three channels are operating.
GE_DUAL BOOL Two or more channels are operating.
GE_SINGLE BOOL One or more channels are operating.
Output Parameters
Name Data Type Description
CO BOOL True if TR_VOTE_MODE executes successfully.
TMR BOOL Three channels are operating.
DUAL BOOL Two or more channels are operating.
SINGL BOOL One or more channels are operating.
ZERO BOOL No channels are operating.
Description
The TR_VOTE_MODE function block converts redundancy status, as shown in this truth table.
Truth Table
TMR GE_DUAL GE_SINGLE TMR DUAL SINGL ZERO
T T T T F F F
F T T F T F F
F F T F F T F
F F F F F F T
Other1 F F F F
Example
For shutdown examples, see this sample project:
My Documents\Triconex\TriStation 1131 4.0\Projects\ExTUV.pt2
Runtime Errors
Upon detection of a runtime error condition, the function block returns the indicated values and
sets the error flags to true. For more information about error flags and runtime errors, see the
CHK_ERR function block in the Triconex Libraries Reference.
Application Notes
• Can be used in Safety or Control applications.
• Space Saver: a single instance can be executed more than once per scan to reduce
memory usage and increase performance. For directions, see the Triconex Libraries
Reference.
Library
Tricon (TR1LIB/TX1LIB)
Structured Text
FUNCTION_BLOCK TR_VOTE_MODE
VAR_INPUT
CI : BOOL := TRUE ; (* Control in. *)
IN_TMR : BOOL ; (* 3 channels operating. *)
GE_DUAL : BOOL ; (* 2 or more channels operating. *)
GE_SINGLE : BOOL ; (* 1 or more channels operating. *)
END_VAR
VAR_OUTPUT
CO : BOOL ; (* Control out. *)
TMR : BOOL ; (* Triple Modular Redundant. *)
DUAL : BOOL ; (* Dual mode. *)
SINGL : BOOL ; (* Single mode. *)
ZERO : BOOL ; (* Zero mode. *)
END_VAR
VAR
U : BOOL ; (* Unused Value. *)
END_VAR
(*
*=F===============================================================================
* FUNCTION_BLOCK: TR_VOTE_MODE
* Purpose: Convert redundancy status.
*
* Return: none
*
* Remarks:
* 1. Convert redundancy status (TMR, GE_DUAL, GE_SINGLE)
* to (TMR, DUAL, SINGL, ZERO).
* 2. "GE_" denotes "greater than or equal to".
* 3. CO is true if CI is true and there is no programming error.
*
* Runtime Errors
* EBADPARAM Bad parameter
* CO=false indicates a programming error if CI=true.
* The outputs are all false if there is a programming error.
*=F==============================================================================
*)
CO := CI ;
IF CI THEN
CO := GE_DUAL AND GE_SINGLE OR NOT GE_DUAL AND NOT IN_TMR;
IF CO THEN
TMR := IN_TMR ;
DUAL := GE_DUAL AND NOT IN_TMR ;
SINGL := GE_SINGLE AND NOT GE_DUAL ;
ZERO := NOT GE_SINGLE ;
ELSE
U := ReportBadParam(0) ;
TMR := FALSE ;
DUAL := FALSE ;
SINGL := FALSE ;
ZERO := FALSE ;
END_IF ;
END_IF ;
END_FUNCTION_BLOCK
A communication
abbreviations, list of viii external 39
actual scan time 46 serial 27
alarms Compare to Last Download command 45
analog input module 37 CSA C22.2 NO 199 14
analog output module 37 customer support ix
digital input module 36
digital output modules 36 D
disabled points 21, 58 data transfer time 61–66
I/O modules 38 DCS programs, recommendations 29
output operation 53
design requirements 28
programming permitted 58
development guidelines 42
pulse input module 37
relay output module 38 diagnostics
remote access 58 analog input module 36
semaphore flags 39 analog output module 37
system attributes 39 digital input module 36
digital output module 36
analog input module
disable output voter 21
alarms 37
pulse input module 37
diagnostics 36
relay output module 38
analog output module
system 33
alarms 37
digital input module
diagnostics 37
alarms 36
analysis, hazard and risk 5
diagnostics 36
ANSI/ISA S84.01 13
digital output module
application-specific standards 13, 14 alarms 36
architecture, system 32 diagnostics 36
array index errors 43 DIN V 19250 12
DIN V VDE 0801 12
B DIN VDE 0116 13
burner management systems, guidelines 19 disable output voter diagnostics 21
bus, Tribus 32 disabled points alarms 21, 58
Download All command 21
C Download Change command 44
calculating PFDavg , equation for sensors 7
calculations, SIL examples 7 E
certification, TÜV Rheinland 17 emergency shutdown systems, guidelines 19
change control 26 EN 54, part 3 13
commands equations, calculating PFDavg for sensors 7
Compare to Last Download 45 EX01_shutdown program 48
Download All 21 EX02_shutdown program 52
Download Change 44 EX03_shutdown program 57
Verify Last Download to Controller 44
external communication 39
shutdown (continued) W
TR_CRITICAL_IO function block 69 watchdog period 38
TR_SHUTDOWN function block 75
TR_VOTE_MODE 81
SILs
calculation examples 7
determining 6, 8
factors 4
fire and gas guidelines 24, 26
guidelines 23–26
SIS factors 4, 5
specifications, safety requirements 10
standards
application-specific 13, 14
general safety 12–13
relation to SILs 6
status, critical I/O modules 69
surplus, scan 46
system
architecture 32
attributes as alarms 39
availability 6
burner management 19
diagnostics 33
emergency shutdown 19
fire and gas 19
system-critical I/O modules
safety-shutdown program for all 47
safety-shutdown program for some 51
T
technical support ix
time, scan 46
TMR architecture 32
TR_CRITICAL_IO function block 69
TR_SHUTDOWN function block 75
TR_URCV function blocks 64–66
TR_USEND function blocks 64–66
TR_VOTE_MODE function block 81
training viii
Tribus
Main Processor 38
system architecture 32
Triconex contact information viii
Triconex Peer-to-Peer function blocks 64–66
TÜV Rheinland certification 17
types of faults 34
V
VAR_IN_OUT variables 42
Verify Last Download to Controller command 44
voter diagnostics, disable output 21