Page 1
AC 800M Library Object Style Guide System Version 6.0 Power and productivity for a better world...
Page 3
AC 800M Library Object Style Guide System Version 6.0...
Page 4
In no event shall ABB be liable for direct, indirect, special, incidental or consequential damages of any nature or kind arising from the use of this document, nor shall ABB be liable for incidental or consequential damages arising from use of any software or hard- ware described in this document.
TABLE OF CONTENTS About This User Manual General ..........................9 Document Conventions ....................10 Warning, Caution, Information, and Tip Icons..............10 Terminology........................11 Related Documentation ....................11 Section 1 - Libraries Introduction ........................13 Purpose ......................13 Library Categories ......................14 Standard Libraries ....................14 User Defined Libraries ..................15 Object Libraries....................15 Library Dependencies......................15 Connected Libraries .....................15...
Page 6
Table of Contents Section 3 - Parameter Interface Naming Convention ......................25 Compound Words and Abbreviations ..............25 Parameter Properties ....................... 26 Data Type ......................27 Attributes ......................27 Parameter for Control Modules and Diagrams ............ 28 Parameter for Function Blocks ................30 FD Port ......................
Page 7
Table of Contents Data Flow Order....................58 Execution order ....................60 Reverse and Display value attribute on data types in diagrams ......61 Reverse attribute on data types in Diagram types ..........61 Variable and Parameter..................62 Interaction Windows in Online Mode ................63 Introduction ......................63 Interaction Windows ....................65 Information Windows...................65 When to use Interaction Windows ...............65...
Page 8
Table of Contents Protection and Scope ................... 88 Re-use of Code..................... 89 Control Module Types ..................91 Function Block Types ..................93 Diagram Types ..................... 93 Data Types ......................93 Templates ......................94 Task Considerations ..................... 94 Parameter Dependency on Tasks and Controllers..........95 Calls to Asynchronous Functions ................
About This User Manual General This manual is primarily a style guide for building object types and data types in application libraries. It describes a concept for enhancing consistency and readability in a library. The manual is organized in this manner: •...
Document Conventions About This User Manual Document Conventions Microsoft Windows conventions are normally used for the standard presentation of material when entering text, key sequences, prompts, messages, menu items, screen elements, etc. Warning, Caution, Information, and Tip Icons This publication includes Warning, Caution, and Information where appropriate to point out safety related or other important information.
About This User Manual Terminology Terminology A complete and comprehensive list of Terms is included in the Industrial Extended Automation System 800xA, Engineering Concepts instruction (3BDS100972*). The listing included in Engineering Concepts includes terms and definitions as they apply to the 800xA system where the usage is different from commonly accepted industry standard definitions and definitions given in standard dictionaries such as Webster’s Dictionary of Computer Terms.
Page 12
Related Documentation About This User Manual 3BSE042835-600...
Section 1 Libraries Introduction The libraries used in the control project must have a consistent appearance. The names of libraries, object types, data types, parameters, and variables must be used consistently. In addition to this, there must be well-defined color schemes, and a standard methodology for user interaction on the interface.
BUXSupportLib). Standard Libraries The Standard libraries are included as AC 800M system extensions for 800xA. They contain extended functionality designed by ABB. Almost all object types in the standard libraries are protected. This means that these types cannot be modified and cannot be copied to another library.
Section 1 Libraries User Defined Libraries User Defined Libraries User defined libraries should be used for customer or solution specific objects. For these libraries, it is recommended to include a prefix, which designates the origin of the library. For example, the name for the Business Unit X's library can be BUXVesselLib. Object Libraries Object libraries contain templates or ready to use objects such as data types, function block types, control module types, and diagram types that can be used in...
Split Libraries Section 1 Libraries Split Libraries In many cases, dividing a library into several libraries has advantages. Split libraries can be defined as: • A specific set of libraries where some libraries are common to all applications, and they are complemented by more specialized libraries. •...
Section 1 Libraries Naming Convention Naming Convention The name of a library shall describe its purpose. The name of a library shall consist of a mix of uppercase and lowercase letters forming the structure "LibNameLib". That is, the different parts of the name shall be separated with uppercase letters and the name string shall always end with "Lib".
Section 2 Types The choice of object type depends on the functionality that surrounds the object (that is, the overall plant design). For more information, refer to the Basic Control Software, Introduction and Configuration manual and also the Application Programming, Introduction and Design manual. Naming Object Types Object types and parameters shall comply with relevant standards and form a...
Page 20
Object Types Section 2 Types The length of object type names shall not exceed twelve characters, when this is not possible up to 20 characters are allowed. However, the use of short names is not as critical for control module types as for Function Blocks types. The following reasons are: •...
Section 2 Types Compound Words and Abbreviations Compound Words and Abbreviations The following usage order is recommended: Use the full name Use the short name If it is a compound word, try to use the following rules in the following order: A.
Suffixes Section 2 Types There are no strict rules on how to build a short name, but the following methods should be considered: Rule Example Use only a part of a whole word. Acceleration Limiter -> AccelerationLimCC Remove all vowels (and some consonants). Square root ->...
Page 23
Section 2 Types Suffixes The following suffixes shall be recognized: Table 3. Object Name Suffixes Short Name Remark Real, Bool, Dint, CC Used as suffix on function blocks that have same or similar function, but the data type of the main signal parameter differs.
Name Space Section 2 Types Name Space The object type name should be unique, not only within a library, but among all libraries. Object types with the same name but belonging to different libraries can be accessed via dot notation, for example MyLib1.MyFunctionBlock and MyLib2.MyFunctionBlock.
Section 3 Parameter Interface The parameters of Control Modules and Function Blocks should follow the naming and usage convention described in this section. It will be easier for the application programmer to understand the purpose of the different parameters found in each object’s connection list.
Parameter Properties Section 3 Parameter Interface If it is a compound word, try to use the following rules which was described in Compound Words and Abbreviations on page 21. Names can consist of only one name, for example Enable, but also be composed by several words, InteractionPar.
Section 3 Parameter Interface Data Type Recommendations for the following properties will be presented: • Name on page 33 • Data Type on page 27 • Attributes on page 27 • Parameter for Control Modules and Diagrams on page 28 •...
Parameter for Control Modules and Diagrams Section 3 Parameter Interface • hidden • by_ref • constant • Reverse attribute on data types in diagrams • Display value attribute on data types in diagrams Retain shall be used for In and Out parameters in Function Block Types. Whereas ColdRetain is the normal attribute for operator-settings parameters, such as operating time measurements, and parameters for operator interaction.
Page 29
Section 3 Parameter Interface Parameter for Control Modules and Diagrams The differences between the four types include the different access rules from the code inside the control module and the limitations for connecting the parameters: • In parameters can only be read, where as Out, In_Out and Unspecified parameters can be both read and written.
Parameter for Function Blocks Section 3 Parameter Interface Parameter for Function Blocks In function block types, a parameter can have the direction In, Out or In_Out. Use the direction In or Out whenever possible. Parameters of direction In_Out must be connected for function blocks.
Section 3 Parameter Interface Initial value • No Right - Not visible as a port. The parameter will be placed on the right side of the object if the user decides to show it later on. • Yes - Visible as a port on the left side of the object. •...
Page 32
Description Section 3 Parameter Interface Type Description Keyword The description field can hold a keyword before the actual description. This keyword holds information about its usage for the application engineer. All parameters in Control Module types, Diagram types, and IN_OUT parameters should have at least one of the first four comments in Table Table 4.
Section 3 Parameter Interface Parameters with Special Purposes Parameter description starts with “IN” --> IN port Parameter description starts with “OUT” --> OUT port Parameter description starts with any other string --> INOUT port Changing the first characters containing keywords of the parameter description should be considered an incompatible change.
Description Section 3 Parameter Interface • If the object is an alarm owner, its Name should be used as source name when alarms are generated, and must therefore be unique. The Name parameter will then appear in the alarm list as the Source Name of an alarm. In such cases the Name parameter of the type should not have any initial value to force the application engineer to enter a name.
Page 35
Section 3 Parameter Interface Description The example object in Figure 3, is part of a standard PID controller with the Name parameter displayed in the Windows title bar and the Description parameter displayed in the control builder faceplate. Figure 3. Example of usage and location of the Name and the Description parameter.
InteractionPar Section 3 Parameter Interface InteractionPar The InteractionPar parameter is a structured data type where the components are all the parameters that can be changed via interaction objects. Note that it is only values that are written to/from the interaction objects that should be placed in this parameter.
Section 3 Parameter Interface ParError ParError The ParError parameter is set true if any input parameter is out of range. This type of check is mandatory for SIL classified object. For non-SIL objects or SIL marked objects running in a non-SIL environment, the EnableParError parameter may be used.
Page 38
Connections Section 3 Parameter Interface Point-to-Point Connection using ControlConnection Data Type A natural way to represent the main signal flow of Control Modules is by structured connections. In this way a single connection, which preferably is done graphically, handles the main signal flow between two adjacent objects. Bidirectional connections should have components for each direction.
Section 3 Parameter Interface Parameters for Alarm Handling The reverse attribute can be used for components in the data types used in communication variables for point-to-point communication. If there is any reverse component in a communication variable, it is communicated from out backwards to in (opposite direction to the normal data flow).
Page 40
Monitoring Continuous Execution Section 3 Parameter Interface Table 7. Parameters for continuous functionality in FB and CM Parameter Name Type Direction Comment Enable bool Activates/deactivates continuous functionality. Valid bool Indicates that there is no error status and that the function is active. Warning status does not affect Valid.
Section 4 Engineering Interface The engineering interface is the front-end towards the application engineer. In a library there are Control Module (CM), Function Block (FB) and Diagram (D) types that are ready to use, but also types which are intended to be modified before usage, so called templates.
General Section 4 Engineering Interface Language name Description Sequential Flow Chart. In steps and transitions is ST used. FD code block This is used in the single graphical code block that only exist in the first tab of a diagram. Other code blocks in the diagram may be of any language.
Section 4 Engineering Interface Template Design Template Design Templates can be divided into two categories; types that can be edited and types that must be edited. To enable code editing in a template the application engineer must first make a copy of the type. Templates enable the application engineer to customize a common solution.
Page 44
Graphical Layers Section 4 Engineering Interface Icons shall be put in layer 1, and the instance name of the icon type should be Icon. When the “surrounding” control module type lacks graphical connections, the icon should not be zoomable. This means the icon inherits the zooming properties of layer 1, that is, it disappears at a zoom level of 0.95 (which means that the type covers more than 95% of the whole screen).
Page 45
Section 4 Engineering Interface Graphical Layers Figure 5. Recommended visibility of layers and icon at different zoom levels. 3BSE042835-600...
Grid and Coordinate System Section 4 Engineering Interface Grid and Coordinate System A basic control module type should typically have four connection nodes and an internal coordinate system extending from (-1,-1) to (1,1). When working with the graphics inside control module type, it is advisable to check Show Grid. The default grid size of 0.02 should normally be used, but other sizes may be used as well.
Section 4 Engineering Interface Layers and Interaction Windows Layers and Interaction Windows Control modules in layer 2 When a control module contains other modules, so called sub modules, it is recommended that they are placed in layer 2. Zooming in on the module will reveal the sub-modules, which gives a good overview and also fast access to the modules.
Icons Section 4 Engineering Interface A control module type that represents the interaction window should contain a rectangle with the following properties: • Line color: -3 (Foreground color) • Area color: -1 (Transparent) This means that the area in the window will have window background color. It also means that the window border is visible in layer 2 of the control module.
Page 49
Icons Icons in Control Software for AC 800M Control Software for AC 800M recognizes two kinds of icons: the basic icons of IconLib and the control module type icons. The basic icons are typically used for building up the latter, which may contain dynamics. For example, if the control module type is inhibited, a cross should cover the icon, or if the control module type malfunctions, an ErrorIcon should be visible in the control module type icon.
Page 50
Icons Section 4 Engineering Interface If the icon is in a template type, the icon must be a public control module type. The name of the type should be NameIcon. For all icons, the control module instance name should be Icon. Size of the ErrorIcon If the symbol in the module icon is not large the ErrorIcon should be in the background of the module, and cover almost the whole icon.
Section 4 Engineering Interface Function Block Design Function Block Design When programming using function block diagrams the layout of a function block is important. The layout of a function block is determined by the order of the parameters, the length of their name, and their direction. The parameters of a function block type can be divided into groups reflecting their usage, for example alarm handling, or group start handling.
Function Block Example Section 4 Engineering Interface ManMode is better than MANMODE. The POU editors allow use of upper and lower case letters for declaration of parameter names, and that the user refers to the name in any form, as long as the letters are the same (for example entering ManMode is the same as entering MANMODE).
Page 53
Section 4 Engineering Interface Function Block Example An IN_OUT parameter has connections on both side of the function block, see Figure 7. A graphical consequence of this is that parameters of the direction IN and OUT will be grouped, between IN_OUT parameters, see Table 3BSE042835-600...
Page 54
Function Block Example Section 4 Engineering Interface IN and OUT Parameters declared in sequence of 1 to 16. IN_OUT Parameters declared as number 17. Separates parameters into a new group with start from 18. IN and OUT Parameters declared in sequence of 18 to 42.
Page 55
Section 4 Engineering Interface Function Block Example Table 8. Parameter list Name Data Type Direction Name Data Type Direction Enable bool PriorityMode bool Name string[30] PriorityStart bool Description string[40] PriorityStop1 bool Interlock bool PriorityStop2 bool SetAuto bool PriorityStop2Txt string AutoMode bool PriorityStop3 bool...
Page 56
Function Block Example Section 4 Engineering Interface Table 8. Parameter list (Continued) Name Data Type Direction Name Data Type Direction ActTorque DintIO in_out TrippedStat bool Command DintIO in_out ALStateFault dint SpdRef DintIO in_out AEConfigFault dint TrqRef DintIO in_out AESeverityFault dint TrqSelectorOut DintIO in_out...
Section 4 Engineering Interface Diagram Design Diagram Design Using the Diagram editor allows mixing of functions, function blocks, diagram instances and control modules in the same diagram. The diagram is based on manual layout. This means the user can freely position blocks on the page. The graphical connections are drawn using auto-routing.
Data Flow Order Section 4 Engineering Interface Figure 8. Diagram Example Containing Different Invocations Data Flow Order In the diagram all invocations are sorted in to a data flow order. The data flow order of the invocations are decided by the connections which depends on the data flow order they are connected to each other.
Page 59
Section 4 Engineering Interface Data Flow Order Figure 9. Flow Order Determined by Graphical Placement 3BSE042835-600...
Execution order Section 4 Engineering Interface Execution order For control modules the execution order is determined by the normal code sorting. The numeric execution order indication (after the instance name) indicates the execution order of the forward code blocks. Figure 10. Flow Order and Control Module Code Sorting In the Figure 10 the code sorting is done in two ways.
Section 4 Engineering Interface Reverse and Display value attribute on data types in diagrams Reverse and Display value attribute on data types in diagrams As an result of the execution order described in Execution order on page 60, the reverse attribute will work for control modules in diagrams. Split and Join functions shall not to be used with structured data types containing components with the reverse attribute.
Variable and Parameter Section 4 Engineering Interface code block, but the backward signal flow must be implemented in a separate code block. Figure 12. Diagram Type with Control Diagram (Forward) and Structured Text (Backward and Set_Output) code blocks Figure 12, the control diagram code represents the forward data flow and the ST code represents the backward data flow.
Section 4 Engineering Interface Interaction Windows in Online Mode invoked object, or it is possible to insert a variable or parameter object in the diagram as in the lower example in the figure. Figure 13. Connecting Parameters and Variables in Diagrams If the parameters and variables are inserted in the diagram as objects, instead of just textual connections, then the load increases in the editor, but the controller load is not affected.
Page 64
Introduction Section 4 Engineering Interface Figure 14. (left) Example of an Interaction window and (right) an Information window. The instance name on the Interaction window (left image on Figure 14) is called Faceplate. The instance name on the Information window (right image on Figure 14), where interaction parameters are assigned, is called InfoPar.
Section 4 Engineering Interface Interaction Windows Interaction Windows The interaction window contains the most important and frequent (mode changes, etc.) user interactions. There is also a sub window or a part of the interaction window which is called an Information window. When the object type is selected, an interaction window shall be displayed.
Window Appearance Section 4 Engineering Interface Typically, Control Module types are more complex than Function Block Types. Therefore, interaction windows are more often necessary for Control Module types (normally to facilitate configuring). Otherwise, the same rules as for function blocks apply.
Section 4 Engineering Interface Design In exceptional cases there may be parameters to determine where the window should appear. There may also be a parameter, which determines if the position is relative to the module or to the screen. Window positioning should be as follows: parameters to the right, trim curve to the left, and bar graph beneath the interaction window.
Page 68
Design Section 4 Engineering Interface possible to have separate buttons (for example, pairs Apply/Undo) for the different logical groups. Figure 15. Grouping of option buttons. The following rules should be used in the control module for the interaction window: • Grid size = 0.02 •...
Section 4 Engineering Interface Interaction principles Figure 16. Interaction window design. Interaction principles Synchronization of data write Sometimes several values should be applied simultaneously, for example the tuning parameters for a PID-controller. There is a built in solution for this in the Control Builder graphics.
Page 70
Interaction principles Section 4 Engineering Interface Dimming of objects Texts are dimmed by changing the color of the text. Normally the text has foreground color (-3). The alternative color, that is the dimmed color should be 4. The condition for using the alternative color should be NOT EnableName. The project constant cColors.Disable function can be used for dimming the objects.
Section 5 Operator Interface Operator refers to a user that is interacting with the system via a graphical interface in online mode. This includes actions during testing, commissioning, tuning, maintenance and daily operation via an operator‘s Workplace. Introduction Graphic interfaces fetch data via parameters and variables in the object type. In the sub-section InteractionPar on page 36, the concept of InteractionPar, a parameter of...
Operator Workplace Interaction Section 5 Operator Interface Operator Workplace Interaction It has to be decided for each object type if it should have operator graphics in the Workplace (Process Portal). Examples of object types that should have Operator Workplace graphics are high level objects such as Motors, Valves, PID-controllers etc.
Page 73
Section 5 Operator Interface Faceplates Figure 18. Example of (left) Reduced faceplate and Normal faceplate. The Extended view is optional and should be used for additional information that does not fit in a Normal view and is not so often used during normal operation. Figure 19.
Display Elements Section 5 Operator Interface Display Elements The Display Elements are used for graphic displays. The following Display Elements aspects are mandatory for objects with Operator Workplace graphics: • Reduced Icon • Icon • Reduced Icon Icon Figure 20. The mandatory display elements; (left) Reduced Icon, (middle) Icon and (right) Tag.
Section 5 Operator Interface National Language Support (NLS) National Language Support (NLS) All texts in the faceplates shall be NLS-strings. The NLS-translator is common for all standard libraries so that the total number of NLS-strings is limited. The NLS- translator should further be placed outside the libraries since there is no easy way to have version handled NLS-strings.
Interaction principles Section 5 Operator Interface Permissions for Variables that are not Hidden All parameters and variables that are not hidden are assumed to be read by everyone. Therefore, no read permissions are assigned. Table 10 describes the write permissions that can be used. These are restricted. Table 10.
Section 5 Operator Interface SIL considerations SIL considerations Access Level The Access Level defines the rules for changing online values of a running SIL application. Access Level shall be configured on parameters used for interaction in faceplates of SIL1-2 and SIL 3 marked types. For variables and parameters of simple data type the Access Level shall be configured on the variable/parameter (configured in the object type).
Support for Confirm Operation Dialog Section 5 Operator Interface Support for Confirm Operation Dialog The faceplate shall be designed so that it is possible to recognize Operation, Object, Property, and Value in the Confirm Operation dialog. Figure 23. Confirm Operation dialog For properties that can be changed through the faceplate (SIL marked types), a separate NLS string shall be defined for confirm write support in the NLS Manager for Access Management.
Page 79
Section 5 Operator Interface Support for Confirm Operation Dialog Example: Table 11. Property: SignalErrorMode (dint) Value Description Through Freeze Pre-determined For other data types, for example: real and time, no Value text is necessary. It is the value itself that is displayed in the Confirm Write dialog. The mapping between the value and the Confirm Value NLS string is made in the Confirm Write Support aspect on the type.
Page 80
Support for Confirm Operation Dialog Section 5 Operator Interface Figure 24. Relation between Faceplate information and Confirm Operation dialog The Faceplate button in Figure 24 is configured in the Main Faceplate aspect with a Property name and Property Value to which it is set, see Figure 3BSE042835-600...
Page 81
Section 5 Operator Interface Support for Confirm Operation Dialog Figure 25. Faceplate button configuration showing associated Property Name and Property Value In the Confirmed Write Support aspect on the type, the property is associated with a Confirm Name, Confirm Value(s), and Operation, which is displayed in the Confirm Operation dialog.
Page 82
Support for Confirm Operation Dialog Section 5 Operator Interface Figure 26. Configuration of the aspect Confirmed Write Support for the Confirm Operation dialog shown in Figure 24 3BSE042835-600...
Section 5 Operator Interface Graphical Indication of ParError Graphical Indication of ParError The ParError parameter, introduced in the sub-section ParError on page 37, indicates when an input parameter of an object is out of range. In that case the erroneous value is not used in the code. Instead a documented 'safe' value is used. The graphics, Operator Workplace and Control Builder, shall always show how the object works.
Page 84
The Operator Workplace Graphics Section 5 Operator Interface Figure 27. ParError indication on a Graphic Element Reduced Icon (left) and in Workplace faceplates (right). The CB Graphics Control Builder graphics have the corresponding red triangle displayed in the upper left corner of the interaction window Figure Figure 28.
Section 6 Program Code Issues Program Code Structured Text shall be used for all program code in the library types. The only exception is the use of SFC in template types, see Templates on page 94. The most important general requirement on the code is that it should be efficient. This means that it should use few local variables, execute fast and generate little communication.
Descriptions Section 6 Program Code Issues Figure 29. A code block using a sequence token variable called PrgStep. Descriptions A description should be provided wherever possible. This means that all object types, and data types shall have a brief (three to four short rows) and clear description to be shown under the Description tab in the lower pane of Project Explorer when the object is selected.
Section 6 Program Code Issues Variables and Project Constants A structured data type component shall have a line of text briefly describing its purpose/function. Parameters in object types should be described similarly. Do not write any reference to the online help in a parameter description in an object type.
Object Sub-Structures Section 6 Program Code Issues Project Constants Project constants can be read in libraries and be changed project wide with a single operation. They are suitable for library items that the user may want to change. Examples are date and time formats, logical colors and names, alarm condition texts, and alarm and event texts.
Section 6 Program Code Issues Re-use of Code Re-use of Code Code re-use requires more variables and execution time, but facilitates maintenance. Internal (hidden) function block types should be used to improve the structuring of object types. It is also possible to implement functions by means of placing sub control module types within both Control Module- and Function Block types.
Page 90
Re-use of Code Section 6 Program Code Issues It is possible to address sub function block parameters using dot notation. This can be used in order to save memory and execution time. One way to use the dot notation is for access of Out parameters. See the example in Figure 30, where the variable x can be omitted by using dot notation.
Section 6 Program Code Issues Control Module Types Control Module Types Code Sorting and Algebraic Loops The code block sorting is a powerful tool that can be used to minimize delay between input and output signals. This is achieved by dividing the code into different code blocks in Control Builder.
Page 92
Control Module Types Section 6 Program Code Issues The code in the control module type should not be divided in code blocks for any other reasons than taking advantage of the code sorting. Unnecessary code blocks will cost extra execution time, especially in SIL-applications, and might danger the code sorting.
Section 6 Program Code Issues Function Block Types Function Block Types Even though there are no code sorting of code blocks within a function block type, the code might be split into more than one code block. This make the code more readable, especially for objects that implements different, non dependant functions.
Templates Section 6 Program Code Issues components in them. The data type should have attribute Protected and have a complete description of all components as well as the type itself. All other data types are presumed to be Public data types. All the Public data types are important for the user.
Section 6 Program Code Issues Parameter Dependency on Tasks and Controllers feature of sub function blocks executing in another task than its parent is that it will not be executed at function block calls in structured text code. Parameter Dependency on Tasks and Controllers The tasks within a controller are recommended to have interval times that are multiples of each other, for scheduling purposes.
Special functions Section 6 Program Code Issues Special functions Handling of Input and Output Values The code shall handle its input and output values in the following way: The code shall have a predictable and reasonable behavior for all input values. Input values, which are considered invalid, shall be mapped to valid input values.
Section 6 Program Code Issues Error Handling Error Handling If there is any risk that the type may end up in an error state or have a malfunction, it should have error handling. If case of error, an ErrorIcon should appear in layer 1 of the module. An ErrorIcon should also appear in all operator windows.
Page 98
Alarm and Event Handling Section 6 Program Code Issues Table 13 summarizes the Alarm and Event parameters for the Standard Library Objects and Figure 32 illustrates the alarm and event logic. Table 13. Summary of Alarm and Event parameters Parameter Direction Data type Function AEClass...
Page 99
Section 6 Program Code Issues Alarm and Event Handling Table 13. Summary of Alarm and Event parameters (Continued) Parameter Direction Data type Function InteractionPar.InhXAct In Bool Same as InhXAct but controlled from faceplate. Only introduced for a selection of objects. When declaring the data type for InteractionPar, the InhXAct component must be declared with...
Page 100
Alarm and Event Handling Section 6 Program Code Issues Table 13. Summary of Alarm and Event parameters (Continued) Parameter Direction Data type Function AlStateX Dint The alarm state for condition X. Valid if AEConfigX = 1 EnableSupOut Bool Default true. When false, out parameter X is false when XEnabled is false.
Section 6 Program Code Issues Program Stop Complication Source name The source name parameter of the AlarmCondBasic instance shall not be connected to a parameter. By doing so, the Name parameter of the closest alarm owner will be used as source name. It is therefore important that all objects with alarms have a Name parameter.
Power Failure Behavior Section 6 Program Code Issues into consideration, when constructing the code of a control module or Function Block. Three alternatives exist: Accept the error code and return failure back to the caller. Ignore the -15 error code and return success back to the caller. Retry the asynchronous procedure when error code is -15 until success or another error emerges.
Section 6 Program Code Issues Range Check Range Check A real, integer, data type, or time input parameter may have a range. This means that it may be required to have a relation (for example > or <) to one or several constants or other parameters.
Page 104
Range Check Section 6 Program Code Issues Example of range test on AEConfig: (* Parameter range test *) ParError := false; IF AEConfig < 0 or AEConfig > 4 THEN AEConfigInt := 1; ParError := true; ELSE AEConfigInt := AEConfig; END_IF;...
Section 6 Program Code Issues Conditional Range Check Conditional Range Check If a conditional range check is applied, the execution time can be reduced in Non-SIL applications. Table 16. Parameter interface for an example type with conditional range check and last good value Data Initial Name...
Page 106
Conditional Range Check Section 6 Program Code Issues if MyPar > MyLimit then (* No assignment, use last good value *) ParErrorInt := true; else MyParInt := MyPar; end; (* More range checked assignments ... *) else (* Assignment without range checks *) MyParInt := MyPar;...
Section 6 Program Code Issues Overflow handling Overflow handling The object must have a predictable behavior when calculating output parameter values. Situations like divide by zero and sqrt() of negative numbers shall be prevented or handled in the code. Example: Create a function Y := (1/T)*G, where T and G are parameters to a function block.
Page 108
SIL Mark Restrictions Section 6 Program Code Issues 3BSE042835-600...
Appendix A Names and Abbreviations Suggested Names The recommendations consist of the following: • Recommended Names and Abbreviations on page 109 lists recommended names and abbreviations for a number of common types and parameters. • Standard Library Parameters on page 113 lists common parameters used in standard libraries.
Page 110
Recommended Names and Abbreviations Appendix A Names and Abbreviations Table 17. Names and recommended abbreviations of type and parameter names. Full name Short name Remarks Automatic Auto Boolean Bool Busy Busy Cascade Casc Channel Chan Command Communication Comm Condition Cond Connect Conn Connected...
Page 111
Appendix A Names and Abbreviations Recommended Names and Abbreviations Table 17. Names and recommended abbreviations of type and parameter names. Full name Short name Remarks Enable Error External Feed back Feed forward Fieldbus Foundation Filter Filt Force Force Do not abbreviate Function block Gain Scheduling Hysteresis...
Page 112
Recommended Names and Abbreviations Appendix A Names and Abbreviations Table 17. Names and recommended abbreviations of type and parameter names. Full name Short name Remarks Memory Message Mode Mode Do not abbreviate Negative Number Of NoOf Object Occurrence Do not abbreviate Panel Parameter Periodic...
Appendix A Names and Abbreviations Standard Library Parameters Table 17. Names and recommended abbreviations of type and parameter names. Full name Short name Remarks Select Setpoint Signal Simple Simulate Slave Source Start Start Do not abbreviate Status Stat Stop Stop Do not abbreviate String Supervision...
Standard Library Parameters Appendix A Names and Abbreviations Table 18. Certain parameters and their descriptions used in standard libraries. Parameter name Description Name The name of the object. This name should appear in the window title of all the operator windows. It should also appear when the module is zoomed to layer 2.
Page 115
Appendix A Names and Abbreviations Standard Library Parameters Table 18. Certain parameters and their descriptions used in standard libraries. InteractionPar A parameter of type ObjectNamePar. The components are all the parameters that the operator can interact with via interaction objects. Via this parameter, all operator parameters are available in the surrounding program.
Page 116
Standard Library Parameters Appendix A Names and Abbreviations 3BSE042835-600...