background image

 

Power and productivity 

for a better world

TM

AC 800M

Library Object Style Guide
 

System Version 6.0

Summary of Contents for AC 800M

Page 1: ...Power and productivity for a better worldTM AC 800M Library Object Style Guide System Version 6 0...

Page 2: ......

Page 3: ...AC 800M Library Object Style Guide System Version 6 0...

Page 4: ...assumes no responsibility for any errors that may appear in this document In no event shall ABB be liable for direct indirect special incidental or consequential damages of any nature or kind arising...

Page 5: ...umentation 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 Sp...

Page 6: ...ial value 31 Description 31 Parameters with Special Purposes 33 Name 33 Description 34 InteractionPar 36 ParError 37 Connections 37 Parameters for Alarm Handling 39 Monitoring Continuous Execution 39...

Page 7: ...65 Window Appearance 66 Design 67 Interaction principles 69 Section 5 Operator Interface Introduction 71 Operator Workplace Interaction 72 Faceplates 72 Display Elements 74 National Language Support...

Page 8: ...nous Functions 95 Special functions 96 Handling of Input and Output Values 96 Error Handling 97 Alarm and Event Handling 97 Program Stop Complication 101 Power Failure Behavior 102 State algorithms an...

Page 9: ...lso describes the different parameter attributes Section 4 Engineering Interface describes the interface towards the application engineer It shows the requirement on how Control Modules Function Block...

Page 10: ...n corruption of software or damage to equipment property Information icon alerts the reader to pertinent facts and conditions Tip icon indicates advice on for example how to design your project or how...

Page 11: ...er s Dictionary of Computer Terms Related Documentation A complete list of all documents applicable to the 800xA IndustrialIT Extended Automation System is provided in Released User Documents 3BUA0002...

Page 12: ...Related Documentation About This User Manual 12 3BSE042835 600...

Page 13: ...internal code for CM and FB is created with the programming language Structured Text ST The suggestions regarding FB in Function Block Diagrams FBD are also applicable to Ladder Diagrams LD Purpose Th...

Page 14: ...ship between the library categories In Table 1 Agitator is an object which cannot be used as a stand alone object in an application In order to function it needs to be part of a ready to use object in...

Page 15: ...Library Dependencies The separation of common functions into a separate library makes code reuse possible The complete functions algorithms and user interface objects can be placed in these common lib...

Page 16: ...rary can be flat or tree like A tree structure is created using dependencies within this family and it is recommended that this tree structure is reflected in the naming of the libraries For example c...

Page 17: ...sub category for example Advanced and ends with the suffix Lib For the support libraries the naming convention is that the word Support should be included between the main part of the name and the Li...

Page 18: ...Naming Convention Section 1 Libraries 18 3BSE042835 600...

Page 19: ...al Naming Object Types Object types and parameters shall comply with relevant standards and form a consistent name space The standard IEC 61131 3 shall be followed1 The standard IEC 61131 5 shall be f...

Page 20: ...d non hidden function block types control module types and diagram types should clearly describe the actual function of the object type and not be too short and general For example Add4Int not just Ad...

Page 21: ...Abbreviations The following usage order is recommended 1 Use the full name 2 Use the short name If it is a compound word try to use the following rules in the following order 1 A Word full name B Word...

Page 22: ...their abbreviations are presented The IEC 61131 3 and IEC 61131 5 the latter only for communication excluding FOUNDATION Fieldbus standards and guidelines shall be followed for naming of object types...

Page 23: ...M A control module type that has the same functionality as an existing function block type shall have the same name as that function block type plus the suffix M For example AlarmCond Function block t...

Page 24: ...in 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...

Page 25: ...nnect the right variables and use the correct control module without knowing the exact function of their respective types When designing an object type an excessive length of the name of one or a few...

Page 26: ...for example Enable but also be composed by several words InteractionPar In the latter case it is often necessary to abbreviate one or several of the words into a short form There are no strict rules o...

Page 27: ...r is connected to another Function Block in FBDs this must be made via a local variable However this kind of connections between two function blocks will not appear graphically even though they are in...

Page 28: ...must be given the attribute hidden The by_ref attribute can only be set for function block parameters with direction In or Out This attribute specifies that the parameter value will be passed by refer...

Page 29: ...ontaining a reverse attribute In_Out must be connected to a variable on any level These rules also apply to connecting parameters to communication variables The in communication variable should be con...

Page 30: ...e is Yes or No The value specifies if the parameter shall be visible when the function block type control module type or diagram type is instantiated in an FD code block The configured value represent...

Page 31: ...le to it and the parameter then receives this parameter s initial value Parameters marked default receives the initial value of its type For simple data type it is advisable to use default only for ou...

Page 32: ...Function Designer dependent of the first characters in the parameter description Table 4 Type Description Keywords Keyword Description IN The parameter is only read OUT The parameter is only written I...

Page 33: ...k Type Name Data type Attributes Direction Initial value Description AEConfig dint retain IN 1 Config 0 None 1 Alarm 2 Event 3 Event1 4 Indication Else Alarm ParErr A real integer or word input parame...

Page 34: ...aving graphical connections and a Name parameter should have the name visible in layer 1 together with the node names Figure 5 in Point to Point Connection using ControlConnection Data Type on page 38...

Page 35: ...e 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 E...

Page 36: ...owever this will require logic inside the type in order to handle the priority between the InteractionPar component and the parameter The interaction parameter data type shall be named by concatenatin...

Page 37: ...arameter interface is defined by IEC 61131 3 for example TOn Connections A special sort of data types are the ones representing connections These are used to connect control modules function blocks an...

Page 38: ...t components are sent in each direction Figure 4 Point to point connection between two objects The node names reflect the main direction of the signal The blow up shows in principle data flow In each...

Page 39: ...lication ISP value must be defined for all components in a data type and for safe MMS it is on the user responsibility to arrange for safe values if the communication is broken Parameters for Alarm Ha...

Page 40: ...no error status and that the function is active Warning status does not affect Valid Enabled bool Out Indicates that the function is activated This is not affected by error status or warning status Er...

Page 41: ...ces available for editing in Control Builder The Diagram D editor The Control Module Diagram CMD editor The text based editor is called the POU editor or just editor The POU editor is used to create c...

Page 42: ...ates have suffix template must be changed by the user to function These kinds are not possible to execute without any changes Protection attribute has to be set to False Function block types control m...

Page 43: ...ol Module Diagram editor The graphic layers the grid and the coordinate system all affect how a control module behaves appears and is positioned on the screen and therefore the major issues of concern...

Page 44: ...instance should be zoomable and MaxSize of the icon instance set to 0 85 If such a type is zoomed in on the icon is visible until the zoom level 0 85 is reached Between zoom level 0 85 and 0 95 the g...

Page 45: ...Section 4 Engineering Interface Graphical Layers 3BSE042835 600 45 Figure 5 Recommended visibility of layers and icon at different zoom levels...

Page 46: ...ible to put graphical nodes on the clipping border It is then easy to combine it graphically with other modules The reason is that all of its four corners always will appear on grid points in the exte...

Page 47: ...f the windows belonging to the object 2 Internal code structure some internal control modules may be related to the connections of a module By placing the control module close to its corresponding con...

Page 48: ...e text box should be made wide enough for the text size to be determined by the height of the text box It is then easier to combine it with text in other text boxes Texts that are too long will cause...

Page 49: ...nd of the icon and all operator windows Example The control module types for analog control loops The Difference between basic Icons and Control Module Type Icons The icons in IconLib basic icons do n...

Page 50: ...r and must not be covered by the other sub icons The interior of a closed symbol in an icon should however not be transparent It is important that these icons are used in the same way in all the libra...

Page 51: ...e FBD programming language For all functions or function block types in the diagram editor it is recommended to always connect true to the EN port For SIL1 2 and SIL 3 diagrams it is mandatory to do s...

Page 52: ...on of InteractionPar see further Section 5 Operator Interface the length of parameter names in functions and Function Block types shall not exceed eight characters When this is not possible up to twel...

Page 53: ...k Example 3BSE042835 600 53 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 g...

Page 54: ...ameters declared in sequence of 18 to 42 IN_OUT Parameters declared as number 17 Separates parameters into a new group with start from 18 Function Block Example Section 4 Engineering Interface 54 3BSE...

Page 55: ...32 PriorityStopMan bool in 10 ManMode bool out 33 PriorityStopManTxt string in 11 ManModeInit bool in 34 PrioritySP1 real in 12 PanMode bool out 35 OutOfServiceMode bool out 13 SetPan bool in 36 LocM...

Page 56: ...t 81 AEConfigWarning dint in 58 AtSetpoint bool out 82 AESeverityWarning dint in 59 AboveLimit bool out 83 EnableWarning bool in 60 SP2Used bool out 84 CondNameObjectError string 15 in 61 TorqueSP rea...

Page 57: ...ed the line will automatically be drawn in a free area so that blocks and labels are not crossed When objects are moved the affected graphical connections will be re drawn In a single diagram it is po...

Page 58: ...s on the data flow order they are connected to each other If it cannot be determined by the connection in what data flow order the invocations shall be sorted for example if an invocation has two outp...

Page 59: ...Section 4 Engineering Interface Data Flow Order 3BSE042835 600 59 Figure 9 Flow Order Determined by Graphical Placement...

Page 60: ...arked with the red rectangle will be code sorted as normal for control modules This means that for example a PID loop that are dependent on the code sorting for control modules to operate optimally wi...

Page 61: ...structured data types containing components with the reverse attribute Functions and function blocks cannot handle reverse attributes For diagrams there are also a attribute Display value for datatype...

Page 62: ...represents the backward data flow The execution order of the code blocks will sorted according to the code sorting and algebraic loops for control modules Variable and Parameter There are two ways of...

Page 63: ...rameters 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 Interaction Windows in O...

Page 64: ...are activated from the Interaction window Control modules Function Blocks and Diagrams designed for engineering interaction shall have one or more interaction windows The engineer may then control th...

Page 65: ...be possible to re open it from any of the secondary information windows via a button labeled with the ManoeuvreIcon Information Windows A control module that is displayed as an information window shou...

Page 66: ...a default value of 0 6 The property Owner of interaction windows should normally not be used The property should only be set if the operator window is a full size window XSize 1 00 that contains smal...

Page 67: ...additional information or with long texts 0 50 WSF 2 0 history graphs 1 00 WSF 4 0 configuration of large functions for example fuzzy batch All interaction windows shall have equally high texts regar...

Page 68: ...be used for distinct indications It is also permitted to use check boxes and option buttons in the same way as a dynamic input field Apply Undo buttons when two or more interdependent input fields Th...

Page 69: ...here is a built in solution for this in the Control Builder graphics It is possible to assign OK Cancel buttons that are associated with several input fields Another solution is that the values are st...

Page 70: ...If the operator window has an input field interaction object for a physical value this input field usually is preceded by a text presenting the name of the quantity and succeeded by a text presenting...

Page 71: ...ng 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 Intera...

Page 72: ...reuse of graphic elements in combination with Library version handling a specific method has been developed The main idea is to put the reuse elements in a special support library from which they are...

Page 73: ...ure 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 du...

Page 74: ...ag Figure 20 The mandatory display elements left Reduced Icon middle Icon and right Tag In addition the following Display Element aspects can be used if suitable Value Bar Value Bar Figure 21 The addi...

Page 75: ...ia an Alarm and Event translator The Alarm and Event translator shall be common for all standard libraries and placed outside the libraries Figure 22 Example of NLS treated default value of Condition...

Page 76: ...800xA process graphic principles Use of buttons and check boxes in faceplates Check boxes shall be used to enable or disable functions and signals Buttons in the button row of the faceplate framework...

Page 77: ...typically InteractionPar the Access Level shall be configured on the variable parameter and on the data type components Only variables parameters or their components used for interaction shall be conf...

Page 78: ...tely from what is displayed in the faceplate for example using different NLS managers in order to avoid systematic errors In the Confirmed Write Support aspect on the type all changeable properties ar...

Page 79: ...log shall be named as the identifiers for the faceplate but with a _AM suffix For Control Builder standard libraries the NLS identifiers for the Confirm Write dialog shall be configured in the NLS Res...

Page 80: ...firm Operation dialog Support for Confirm Operation Dialog Section 5 Operator Interface 80 3BSE042835 600 The Faceplate button in Figure 24 is configured in the Main Faceplate aspect with a Property n...

Page 81: ...Property Value Section 5 Operator Interface Support for Confirm Operation Dialog 3BSE042835 600 81 In the Confirmed Write Support aspect on the type the property is associated with a Confirm Name Con...

Page 82: ...Figure 26 Configuration of the aspect Confirmed Write Support for the Confirm Operation dialog shown in Figure 24 Support for Confirm Operation Dialog Section 5 Operator Interface 82 3BSE042835 600...

Page 83: ...his case an alarm icon and button shall be displayed as they are when AEConfig 1 An exception from this rule is how the components of InteractionPar are displayed The values are entered from the graph...

Page 84: ...Error 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 corne...

Page 85: ...ply comments that clearly describe the different parts of the code Do not forget that the identifiers of variables and parameters should be descriptive as well In addition logical indents of loops etc...

Page 86: ...ible 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...

Page 87: ...value Add Loc or Int to the Avoid the use of the Retain attribute on a variable when it is not necessary For example when the variable obtains its initial value at warm restart and when it is written...

Page 88: ...y versions Project constants shall begin with a lowercase c followed by an uppercase letter For structured project constants this rule applies to the main name only not to the individual components fo...

Page 89: ...ges including variable names Object type instances that can appear in loop messages should always have a descriptive name Simple data types should be used for parameters as far as possible in internal...

Page 90: ...e 31 where both memory and execution time is saved by the use of dot notation Another variant of this solution can be used when the same function block is called several times The fact that parameter...

Page 91: ...the attribute nosort to avoid loops In order to secure that the output parameters are updated correctly each of these internal variables must be assigned in one code block only If an output parameter...

Page 92: ...me especially in SIL applications and might danger the code sorting A compiler switch exists to rule the code sorting loop detection Code sorting loops may hazard the object functionality at code modi...

Page 93: ...trol modules are sorted according to the data flow order The actual execution order is indicated on each instance in the diagram The code sorting of the diagram has to be considered when designing a d...

Page 94: ...e EquipProcedureTemplate Code intended to be changed by the user shall be put in templates All other functional code should be placed in protected object types This strategy promotes safe future updat...

Page 95: ...part of For example some parameters like Done are only set during one scan This is the reason why an object in a slower task reading this parameter may not receive it The passing of parameters to and...

Page 96: ...eter description which values are considered invalid and which valid values these are mapped to For further details see Range Check on page 103 The object must have a predictable behavior when calcula...

Page 97: ...m a failed procedure call or from the code itself Number range 5000 to 6000 for standard library objects It may also contain information about where the error has occurred in the code Alarm and Event...

Page 98: ...ation parameter AESeverityX In Dint Severity for alarm condition X CondNameX In String 15 Name of the condition X Shall have a NLS treated default value EnableX In Bool If false the XStat and XAct out...

Page 99: ...s active condition X This output can be controlled via Enable XEnabled Out Bool Indicates that the XStat and XAct parameters are enabled This parameter can be used when additional actions should be pe...

Page 100: ...tate for condition X Valid if AEConfigX 1 EnableSupOut In Bool Default true When false out parameter X is false when XEnabled is false This parameter is earlier introduced for a selection of objects a...

Page 101: ...om the alarm list Doing so will however not influence the XStat or XAct outputs NLS for alarm and event The NLS translator for alarms is discussed in sub section National Language Support NLS on page...

Page 102: ...ure Behavior Outputs shall be ramped when the application is restarted after a power failure and if an OSP value has been used State algorithms and bumpless parameters changes Some parameter changes i...

Page 103: ...meters Generally the object must have a predictable behavior for out of range input values One example can be to use the closest range border value for internal calculations What action that is most r...

Page 104: ...ter is used in an internal FB the range check shall be made there as well In the main object the ParError should be calculated as the sum error of the ParError of the block itself if any and the ParEr...

Page 105: ...n Out Indicates parameter range error If a conditional range check is applied the execution time can be reduced in Non SIL applications In the example code the parameter EnableParError is copied durin...

Page 106: ...mit then No assignment use last good value ParErrorInt true else MyParInt MyPar end More range checked assignments else Assignment without range checks MyParInt MyPar More assignments end_if Note that...

Page 107: ...e IF T Ts THEN Y G Ts ELSE Y G T END_IF Where Ts is the selected sample time for the running task The requirement is that the library object shall not give an overflow output value if none of the inpu...

Page 108: ...SIL Mark Restrictions Section 6 Program Code Issues 108 3BSE042835 600...

Page 109: ...in standard libraries These are included for reference since it is necessary to know about them when naming additional types and parameters when creating self defined types Recommended Names and Abbr...

Page 110: ...Command Cmd Communication Comm Condition Cond Connect Conn Connected Conn Connection Conn Control Ctrl Cyclic Cyc Decrement Decr Delay Delay Description Descr Detection Dct Deviation Dev Device Dev Di...

Page 111: ...t Force Force Do not abbreviate Function block FB Gain Scheduling GS Hysteresis Hyst In In Do not abbreviate Integer Int Inactive Inact Increment Incr Inhibit Inh Interaction Iact InteractionPar Inter...

Page 112: ...t Obj Occurrence Occ Out Out Do not abbreviate Panel Pan Parameter Par Periodic Periodic Do not abbreviate Positive Pos Preset value PV 61131 3 standard Print Prt Process value PV Pulse Pulse Ready Rd...

Page 113: ...ditional parameters for many Function Block and Control Module types Select Sel Setpoint Sp Signal Sig Simple Smp Simulate Sim Slave S Source Src Start Start Do not abbreviate Status Stat Stop Stop Do...

Page 114: ...Execute M D or Req FB The status can be set several scans after the command was set 0 means that the module is pending 1 means ready and OK 0 means error Warning True at a warning of unexpected operat...

Page 115: ...type ControlConnection For example PidCC Control Module M A control module type that has the same functionality as an existing function block type shall have the same name as that function block type...

Page 116: ...Standard Library Parameters Appendix A Names and Abbreviations 116 3BSE042835 600...

Page 117: ...e type graphical connections 44 layers 43 visible 43 zoomable 43 control module type icons 49 Core 23 cWindowSizeFactor 66 to 67 D D 23 Dimming 70 Dint 23 direction 38 Display Elements Icon 74 Reduced...

Page 118: ...o 34 NLS strings 75 nosort 27 P Project Constants 88 Protection 42 R range 37 Real 23 Reset Shape 46 retain 27 S Scope Private 88 Public 88 severity 39 Source Name 34 string literal 90 structured data...

Page 119: ......

Page 120: ...Power and productivity for a better worldTM Contact us Copyright 2003 2014 ABB All rights reserved 3BSE042835 600 www abb com 800xA www abb com controlsystems...

Reviews: