View
215
Download
1
Category
Preview:
Citation preview
SCoD Editor 3.3 SP4
33002608 09/2014
3300
2608
.13
www.schneider-electric.com
SCoD Editor 3.3 SP4a SoCollaborative softwareUser Manual
09/2014
The information provided in this documentation contains general descriptions and/or technical characteristics of the performance of the products contained herein. This documentation is not intended as a substitute for and is not to be used for determining suitability or reliability of these products for specific user applications. It is the duty of any such user or integrator to perform the appropriate and complete risk analysis, evaluation and testing of the products with respect to the relevant specific application or use thereof. Neither Schneider Electric nor any of its affiliates or subsidiaries shall be responsible or liable for misuse of the information contained herein. If you have any suggestions for improvements or amendments or have found errors in this publication, please notify us.
No part of this document may be reproduced in any form or by any means, electronic or mechanical, including photocopying, without express written permission of Schneider Electric.
All pertinent state, regional, and local safety regulations must be observed when installing and using this product. For reasons of safety and to help ensure compliance with documented system data, only the manufacturer should perform repairs to components.
When devices are used for applications with technical safety requirements, the relevant instructions must be followed.
Failure to use Schneider Electric software or approved software with our hardware products may result in injury, harm, or improper operating results.
Failure to observe this information can result in injury or equipment damage.
© 2014 Schneider Electric. All rights reserved.
2 33002608 09/2014
Table of Contents
Safety Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7About the Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chapter 1 Introduction to the SCoD methodology . . . . . . . . . . . . 11General Safety Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Components of a SCoD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapter 2 Definition of a SCoD. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Defining a SCoD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Connection Type, Data Type and I/O Type . . . . . . . . . . . . . . . . . . . . . 26Other Properties of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Copy and Pasting of SCoD Properties . . . . . . . . . . . . . . . . . . . . . . . . 42Alarm Definition in the SCoD Editor . . . . . . . . . . . . . . . . . . . . . . . . . . 45Bit to Word Masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Configurable SCoD Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Inherited Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61General Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Free configured Enumeration List . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68System Enumerations, ProjectInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . 70System Enumerations, Unique Identifier (UID) . . . . . . . . . . . . . . . . . . 75
Chapter 3 Creating a SCoD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Creating a SCoD with the SCoD editor . . . . . . . . . . . . . . . . . . . . . . . . 78Creating a SCoD - Step-by-step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Pins and Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Property Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Analyze Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Automatic Report Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Export out of SCoD Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Chapter 4 SCoD Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101SCoD Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Commit a SCoD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103What can be modified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Handling SCoD Library Modifications . . . . . . . . . . . . . . . . . . . . . . . . . 106
33002608 09/2014 3
Chapter 5 Creating PLC Function Blocks . . . . . . . . . . . . . . . . . . . 109Creating PLC Function Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Chapter 6 Creating Vijeo Citect Compatible SCoDs. . . . . . . . . . . 113Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Distributing and Referencing HMI Symbols from SCoDs. . . . . . . . . . . 115Creating Genies for Control Module HMI Symbols . . . . . . . . . . . . . . . 116Creating Genies for Free Variable HMI Symbols . . . . . . . . . . . . . . . . . 122Compatible Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Chapter 7 Creating a Monitor Pro Symbol . . . . . . . . . . . . . . . . . . 125Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126What is a Monitor Pro Client Builder symbol within a SCoD object? . . 127Creating a Monitor Pro Client Builder Symbol . . . . . . . . . . . . . . . . . . . 128Integration of a new symbol within the SCoD editor . . . . . . . . . . . . . . 133Steps for creating a new SCoD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Chapter 8 Creating Microsoft ActiveX Objects . . . . . . . . . . . . . . . 137ActiveX Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138UserControl Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Program Structure and Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Public Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Form Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Program Structure and Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147iFIX Reminder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149exd Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150iFIX as an ActiveX Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Chapter 9 Creating Intellution Dynamos . . . . . . . . . . . . . . . . . . . . 153Intellution Dynamos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Dynamos and Unity Application Generator . . . . . . . . . . . . . . . . . . . . . 156General Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157iFIX Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158Geometric Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161VBA Code for the Dynamos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Workspace Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Helper Form for the Dynamo Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Dynamo-specific Helper Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
4 33002608 09/2014
Chapter 10 Additional information . . . . . . . . . . . . . . . . . . . . . . . . . . 175Read-only Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Commandline arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
33002608 09/2014 5
6 33002608 09/2014
Safety Information
Important Information
NOTICE
Read these instructions carefully, and look at the equipment to become familiar with the device before trying to install, operate, or maintain it. The following special messages may appear throughout this documentation or on the equipment to warn of potential hazards or to call attention to information that clarifies or simplifies a procedure.
33002608 09/2014 7
PLEASE NOTE
Electrical equipment should be installed, operated, serviced, and maintained only by qualified personnel. No responsibility is assumed by Schneider Electric for any consequences arising out of the use of this material.
A qualified person is one who has skills and knowledge related to the construction and operation of electrical equipment and its installation, and has received safety training to recognize and avoid the hazards involved.
8 33002608 09/2014
About the Book
At a Glance
Document Scope
This manual provides information about creating a Control Module (SCoD) for Unity Application Generator (UAG) with the SCoD Editor. Additionally the manual provides an example for the programming of a SCoD compatible Microsoft ActiveX object, a Monitor Pro symbol and an Intellution Dynamo.
Validity Note
This manual is valid for Unity Application Generator (UAG) 3.3 SP4.
Related Documents
You can download these technical publications and other technical information from our website at www.schneider-electric.com.
Product Related Information
Title of Documentation Reference Number
Unity Application Generator 3.3 SP4 Basics User Manual 33002830
Unity Application Generator 3.3 SP4 Extended User Manual 33003669
Unity Application Generator (UAG) Archestra Generator User Manual
33004144
Unity Pro Software Reference Manual 35006144
WARNINGUNINTENDED EQUIPMENT OPERATION
The application of this product requires expertise in the design and programming of control system.
This product also requires strong knowledge of UAG or Unity Pro and the programming of Microsoft Active X controls, Monitor Pro and Intellution Dynamo objects.
Only qualified persons should be allowed to install, alter, program and apply this product.
Failure to follow these instructions can result in death, serious injury, or equipment damage.
33002608 09/2014 9
10 33002608 09/2014
SCoD Editor 3.3 SP4
Introduction to the SCoD methodology
33002608 09/2014
Introduction to the SCoD methodology
Chapter 1Introduction to the SCoD methodology
Introduction
This chapter provides an overview of the SCoD methodology.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
General Safety Information 12
Introduction 14
Components of a SCoD 15
33002608 09/2014 11
Introduction to the SCoD methodology
General Safety Information
WARNINGUNINTENDED EQUIPMENT OPERATION
Test and verify the operation of applications before release.
Perform safety analysis and tests appropriate to the application. This software package provides a means to quickly design an application. System programming and interlocks are required to make sure the safety of the resulting applications.
Any applicable regulatory requirements must be met before releasing an application for general use.
Failure to follow these instructions can result in death, serious injury, or equipment damage.
WARNINGLOSS OF CONTROL
The designer of any control scheme must consider the potential detected failure modes of control paths and, for certain critical control functions, provide a means to achieve a safe state during and after a detected failure in the path. Examples of critical control functions are emergency stop and overtravel stop.
Separate or redundant control paths must be provided for critical control functions.
System control paths may include communication links. Consideration must be given to the implications of unanticipated transmission delays or detected failures of the link.
Each application must be individually and thoroughly tested for proper operation before being placed into service.
Failure to follow these instructions can result in death, serious injury, or equipment damage.
12 33002608 09/2014
Introduction to the SCoD methodology
CAUTIONUNPREDICTABLE APPLICATION
Do not use a tool such as Unity Pro to edit segments of the application generated by UAG. For communications links and properties to be correctly maintained, any changes to these segments must be made within the UAG environment.
Failure to follow these instructions can result in injury or equipment damage.
33002608 09/2014 13
Introduction to the SCoD methodology
Introduction
What is a SCoD
Control applications are PLC programs, HMI programs and all other information of a process. They may consist of many different parts including Control Modules. A Control Module may represent an object of the real process environment: For example valves, motors, temperature transmitters, etc. or they may represent a software object, which is used for regulatory control or other control functions, for example PID loop, timer, counter. From the control viewpoint a Control Module is usually a single entity and may consist of sensors, actuators and other control equipment.
The specific functionality of a Control Module is defined in the Control Module Type, the so-called Smart Control Device (SCoD). The SCoD describes one specific part of the process and contains all functional aspects of the technological object it represents.
It contains for the PLC:
The logic which controls the Control Module The logic which detects internal detected errors and alarms of the PLC The logic which detects process abnormalities and generates alarms The communication with the HMI system The attributes and process variables displayed by the HMI The I/O connected to the Control Module The variables of the Control Module logic The commands to control the Control Module by the PLC logic (e.g. reset, start, stop) The ability to optimize default values The logic to allow the operator to maintain his process
SCoDs are organized in libraries, which are either provided by Unity Application Generator or created by the user with the SCoD editor. A SCoD serves as a template and can be instantiated as a Control Module in an Unity Application Generator project many times. For each instance, the specific functionality can be parameterized, e.g. a valve can be defined if it works in the energize-to-open or energize-to-close mode.
14 33002608 09/2014
Introduction to the SCoD methodology
Components of a SCoD
Components of a SCoD
A SCoD library consists of the following parts
A database, which contains all information about the SCoDs to enable Unity Application Generator to use and generate the SCoDs in the PLC program and the HMI application.
A set of Monitor Pro symbols, ActiveX controls or Dynamos which are the graphical objects in the HMI for the SCoDs.
A set of EFBs or DFBs which are the function blocks in PLC programming tool (Unity Pro) for the SCoDs.
The figure shows the components of the SCoDs. The three different types of information will be used in different tools: The SCoD library is filled with information about the functionality of the SCoD with the help of the SCoD editor. The Monitor Pro symbols, ActiveX controls or Dynamos represent the HMI part. ActiveX controls have to be developed with programming tools like Microsoft’s Visual Basic (VB) and Monitor Pro symbols or Dynamos with Monitor Pro or iFIX. The third part is the representation of the SCoD functionality in the PLC program. This will be developed with Unity Pro. All these tools, except the SCoD editor, are not components of Unity Application Generator.
33002608 09/2014 15
Introduction to the SCoD methodology
16 33002608 09/2014
SCoD Editor 3.3 SP4
Definition of a SCoD
33002608 09/2014
Definition of a SCoD
Chapter 2Definition of a SCoD
Introduction
This chapter provides an overview of the SCoD definition.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
Defining a SCoD 18
Variables 22
Connection Type, Data Type and I/O Type 26
Other Properties of Variables 29
Copy and Pasting of SCoD Properties 42
Alarm Definition in the SCoD Editor 45
Bit to Word Masking 51
Pins 53
Configurable SCoD Properties 57
Inherited Properties 61
General Data 63
Free configured Enumeration List 68
System Enumerations, ProjectInfo 70
System Enumerations, Unique Identifier (UID) 75
33002608 09/2014 17
Definition of a SCoD
Defining a SCoD
Overview
The functionality of a SCoD is primarily defined by setting the properties of a SCoD.
It is possible to define a SCoD with a FFB (Function and Function Block) or without a FFB but only containing variables.
A FFB means an Elementary Function Block (EFB) or a Derived Function Block (DFB) in Unity Pro.
The same is possible for the graphical representation.
A SCoD may have a graphical representation (a Vijeo Citect genie, a Monitor Pro symbol, ActiveX or iFIX Dynamo) or not.
Representation
The following figure shows the SCoD Properties dialog.
18 33002608 09/2014
Definition of a SCoD
Item Description
Name Each SCoD is identified by a unique name within the library the SCoD belongs to. This name has a maximum length of 16 characters.This property can not be changed when the SCoD is committed.
Descrip-tion
User defined description for the SCoD. The maximum length is 64 characters.
FFB This is the Function Block name (EFB or DFB). This name has to follow the naming conventions of Unity Pro. If no name is specified, no EFB or DFB will be generated in Unity Pro. E.g. MSR01This property can not be changed when the SCoD is committed.
HMI Symbol list
List of HMI symbols where one symbol can be selected from for instances of the SCoD (control modules) in the UAG project.A checkmark in front of an HMI symbol defines the default symbol that will be assigned to an instance of the SCoD during its creation in the UAG project. Only one checkmark can be activated at the same time, but it is not mandatory to activate one. See sections below.The content of the list can be changed even if the SCoD is committed.
Visible Defines that the HMI Symbol property is displayed for a control module in the Unity Application Generator.
Change-able
Defines that the HMI Symbol property can be modified for a control module in the Unity Application Generator.
SCoD Icon
Selectable icon for the display of the SCoD in Physical Model view of the Unity Application Generator.The recommended size of the used icons is 16 x 16 pixel.Note: The SCoD Editor does not scale the icons automatically.The following graphic types are allowed: .BMP .JPG .JPEG .GIF .ICO
Help File Help file name (without any path specification) of the documentation file, which will be displayed in Unity Application Generator on clicking the Help on Type button in the Control Module property dialog. The extension of the file determines the application, which is used to open the file, e.g. *.doc for Microsoft Word.The path where Unity Application Generator is looking for the file is specified in Customization Editor under General → Paths → SCoD Help Files.To allow language specific help files, UAG looks first in a subfolder matching the language ID (LCID, i.e. 1031 for German, 1033 for English, or 1036 for French) as selected during installation or using the language selection tool, prior to looking in the specified help file path.For a .chm file, the help file can be entered as <filename,mapid>, e.g.: UAGProcessLibVijeoCitectLevel2.chm,12 in the SCoD properties dialog, which leads to hh.exe being called with the option -mapid 12 to directly jump to the specified topic.
Commit-ted Ver-sion
Date and time when the SCoD was committed. The SCoD Editor sets the version stamp after the commitment of the SCoD. If the SCoD is modified, the version will be changed automatically. NOTE: Only committed SCoDs can be used in Unity Application Generator.
33002608 09/2014 19
Definition of a SCoD
HMI Symbol Type
Defines the type of the graphical symbol, which will be generated by the Unity Application Generator for the HMI application. The symbol type can be left unassigned for Generic HMI.
HMI Symbol Name
Defines the name of the graphical symbol associated with the SCoD.
Multiple HMI Symbols
A SCoD can be associated with multiple HMI symbols during library creation.
Afterwards during project creation inside UAG you are allowed to select an HMI symbol from the associated list of symbols.
Thereby 2 control modules of the same type can be represented by 2 different symbols.
Add an HMI Symbol
HMI Symbol
Monitor Pro Monitor Pro symbol
iFIX ActiveX or Dynamo
Vijeo Citect Vijeo Citect Genie
HMI Name format
Monitor Pro SymbolName
iFIX ActiveXLibraryName.ActiveXControlName orDynamoSetName.DynamoName
Vijeo Citect GenieLibraryName.GenieName
Step Action
1 Click the Add button.Result:
2 Select Type from the type list.
20 33002608 09/2014
Definition of a SCoD
Modify an HMI Symbol
Remove an HMI Symbol
Select the respective row and click Remove.
3 Browse for the Name of the HMI symbol using the ... button.Depending on the symbol type set, the browse dialog helps you to locate an appropriate symbol file and allows selecting the symbol name. Alternatively, the symbol name can be entered directly.
4 Confirm with OK.Result: A new row is added to the list of HMI symbols.Cancel closes the dialog without any changes.
Step Action
Step Action
1 Select an HMI symbol in the list.
2 Click Modify.Result: The above displayed dialog is displayed.
3 Modify Type and Name.
4 Confirm with OK.
33002608 09/2014 21
Definition of a SCoD
Variables
Variables
Variables are used everywhere in the different tools for creating PLC or HMI applications. Usually these variables have to be defined in each tool separately. If a variable is used in both tools, the variable has to be defined twice. The manual synchronization of variables is a major reason for poor operation in control applications. With the SCoD editor however, all variables are defined only once and they are automatically generated by Unity Application Generator in all of the other systems where they are needed.
Therefore it is necessary to define the Connection Type (e.g. IO_PLC, PLC_HMI) and Data type of the variable. In general all Data types of the destination system are available, but the SCoD editor does not check whether all Data types used are supported by all destination systems. The SCoD editor also supports the structured Data types of Unity Pro.
General properties of a variable
Each variable has some general properties. These properties are used to identify a variable and its general function.
The properties are:
Property Description
Name Name of the variable, has to be unique within the SCoD.Only IEC names are allowed. The maximum length of a variable name is 32 characters for Unity Pro. The variable name should be consistent with the naming convention defined in the customization.This property can not be changed when the SCoD is committed. In Unity Pro and in the HMI this name is part of the variable name and will be composed as EquipmentModuleName_ControlModuleName_VariableName.
Description User defined description of a variable. The maximum length is 64 characters. In Unity Pro the variable description is generated as part of the variable comment. In the HMI system the variable description is part of the alarm text, by default.
Connection Type Defines the kind of connection of the variable, e.g. IO_PLC or PLC_HMI. Defines general usage and functionality of the variable.This property can not be changed when there are inheritance relations to other variables or when the SCoD is committed.
Data Type The following Data types are predefined: ANL_IN, ANL_OUT, BOOL, BYTE, DATE, DINT, DT, DWORD, INT, REAL, STRING, TIME, TOD, UDINT, UINT, WORD.The SCoD Editor allows adding user-defined Data types.Available Data Types are based on the Connection Type, e.g. no structured types are available for PLC_HMI, HMI, or PLC_NET variables.This property can not be changed when the variable is connected to a FFB pin, when there are inheritance relations to other variables or when the SCoD is committed.
22 33002608 09/2014
Definition of a SCoD
I/O Type Defines whether a variable is used as input, output or both.Depends on the Data Type and Connection Type. This property can not be changed when there are inheritance relations to other variables or when the SCoD is committed.
Order Defines in which order the variables are shown in Unity Application Generator.The variable with the lowest order will be displayed first.
Connected Pins Connection to a FFB pin.Usually a variable is connected to a pin, but not necessarily.The connections to pins can not be changed when the SCoD is committed.
Inheritance Relations to other Variables
Shows inheritance relations to other variables of the same or different ScoDs within this library.
Property Description
33002608 09/2014 23
Definition of a SCoD
The following figure shows the Variable Properties dialog
24 33002608 09/2014
Definition of a SCoD
Data Types of Unity Pro
You can use the Derived Data types of Unity Pro. You have to import a file that is part of the UAG DVD to use the Data types. You will find the file on your harddisk after the installation of UAG (<UAG Install Dir>\DB\UnityProLibset.dty).
You can import this file with File → Import Data Types. In the dialog the necessary Data types have to be selected.
Examples of Data types are: BoolArr32, INTARR8, WordArr5.
33002608 09/2014 25
Definition of a SCoD
Connection Type, Data Type and I/O Type
Connection Type, Data Type and I/O Type
Variables are used in the control system in different parts. E.g. a variable is connected to the physical I/O of the PLCs or it is used to communicate between a PLC and a HMI. If a variable is defined in the SCoD editor, it is necessary to define which part of the control system it belongs to. The required Connection Type depends on where and how the variable will be used.
The following figure shows the possible Connection Types.
NOTE: The PLC_HMI variables are used for the communication between HMI and PLC.
26 33002608 09/2014
Definition of a SCoD
The following table shows the Connection Types
Connection Type
Description Available Data Types and I/O Types
IO_PLC Used to define "process variables" in the meaning of actual values from / to the process. The IO_PLC variable will be generated only in the PLC. It can be mapped to an I/O point of a HW-module.NOTE: Only output variables (with simple Data types) can have initial values. The initial value can be used to get a defined cold start of the PLC.IO_PLC variables are generated as located (state RAM) variables in Unity Pro.
Data types:All Data types are available.Restrictions for iFix:BOOL, BYTE, INT, UINT, WORDThe structured Data type ANL_IN can be used for analog input and the structured Data type ANL_OUT for analog outputs.I/O Types:IN or OUT.
HMI Used to define internal HMI variables. The HMI variable will be generated only in the HMI application.
Data types:Only basic Data types are available like BOOL, BYTE, DINT, DWORD, INT, REAL, STRING, TIME, UDINT, UINT, WORD.Note: DWORD is for Unity Pro only.I/O Types:IN, OUT or IN/OUT.
Literal Used for setting input values for Unity Pro FFBs. The only purpose of these variables is to store the literal values.NOTE: Literals are constant Data types without a unit. This means that they will not be visible as variables in Unity Application Generator, neither is it possible to see the properties of these variables in Unity Application Generator. Only the initial value property of the Literal variables can be used. It is necessary to put this variable into the property dialog of the SCoD (see below) to be able to change the value of this variable.
Data types:BOOL, BYTE, DATE, DINT, DT, DWORD, INT, REAL, STRING, TIME, TOD, UDINT, UINT, WORDI/O Types:IN
PLC Used to define internal PLC variables, in the sense to set the input or to copy the output from a FFB to the variable. This variable can be used somewhere else in the PLC program. The PLC variable will be generated only in the PLC.NOTE: PLC variables are generated as unlocated variables in Unity Pro.
Data types:All Data types are available. PLC variables can also have structured Data types. But as mentioned above structures have no initial value. All other Data types can have an initial value.I/O Types:INIt is an input pin. OUTIt is an output pin.IN/OUTIt is an input/output pin. The following restrictions has to be noted by using the IN/OUT pins: No literals or constants can be
connected to IN/OUT pins.
33002608 09/2014 27
Definition of a SCoD
NOTE: The Data types can be extended by Derived Data types (DDTs).
PLC_HMI Used to define a variable that is needed in the PLC program and should be visualized in the HMI application. Thus this variable needs to be communicated between the PLC and the HMI.The PLC_HMI variable will be generated both in the PLC and in the HMI. Unity Application Generator will manage all necessary setups to communicate these variables.NOTE: If a PLC_HMI variable is IN or IN/OUT it is possible to write values from the HMI to the PLC. An OUT variable is view only and values can not be downloaded from the HMI. PLC_HMI variables are generated as located (state RAM) variables in Unity Pro.If OPC support is enabled, another option is available for treating PLC_HMI variables as located or unlocated variables. If OPC support is not enabled, PLC_HMI variables will be assigned to located PLC memory addresses.
Data types:All Data types are available.Restrictions for iFix:Only basic Data types like BOOL, BYTE, DINT, DWORD, INT, REAL, STRING, TIME, UDINT, UINT, WORD. Variables with the Data type BOOL will be generated as DI and other Data types as AI Data type blocks in the iFIX process database.I/O Types:IN, OUT or IN/OUT.
PLC_NET The PLC_NET Connection Type is used to define a variable that is used in the PLC program and should be visualized in the Panel.The PLC_NET variable will be generated in the PLC and can be exported to Panel via a *.CSV file. Unity Application Generator will manage the memory addresses to communicate these variables.NOTE: If a PLC_NET variable is IN or IN/OUT it is possible to write values from the Panel to the PLC. An OUT variable is view only and values can not be set from the Panel, but the programmer has to take care on management of the functionality of the PLC_NET variables.
Data types:Only basic Data types like BOOL, BYTE, DINT, DWORD, INT, REAL, STRING, TIME, UDINT, UINT, WORD.For Vijeo Citect and generic HMI:DATE, DT, TOD.I/O Types:IN, OUT or IN/OUT.
Connection Type
Description Available Data Types and I/O Types
28 33002608 09/2014
Definition of a SCoD
Other Properties of Variables
Overview
Each variable has a set of properties, depending on the connection type, data type and I/O type (or other properties) of the variable.
In general these properties define the overall functionality and management of a variable during runtime.
By setting the properties, the variable and therefore the functionality of the SCoD can be pre-configured.
Additionally, each property has options to specify whether you are allowed to change or view the pre-configured property values for the instances of a SCoD.
Obviously a good pre-configuration reduces the effort for instance-based adjustments in Unity Application Generator.
Connection Type
The following tables show the available properties depending on the variable´s Connection Type
Properties common for all data types
All variables have an Initial Value property, except structures and IO_PLC variables.
Property IO_PLC PLC, PLC_NET PLC_HMI HMI Literal
Initial Value - x x x x
Variable Used x - - - -
Communication Frame - - x - -
Failure State x x x - -
Failure Value x x x - -
Alarm - - x x -
Alarm Group - - x x -
Command - - x x -
Access level - - x x -
Update Initial Value - x x - -
Archive - - x x -
Archive Name - - x x -
Archive Sample Rate - - x x -
Free Properties - - x x -
33002608 09/2014 29
Definition of a SCoD
Properties for data type BOOL
Properties for other data types than BOOL, STRING, TIME, DATE, DT, TOD, without data structures
Property IO_PLC PLC, PLC_NET PLC_HMI HMI Literal
Invert x - - - -
Alarm 1 Priority - - x x -
Alarm 1 Text - - x x -
Alarm 1 Operator - - x x -
Alarm 1 Limit - - x x -
Alarm 1 Timer Mode - - x x -
Alarm 1 Timer - - x x -
State0 Text - - x x -
State1 Text - - x x -
Property IO_PLC PLC, PLC_NET PLC_HMI HMI Literal
DeadBand Mode - - x x -
DeadBand Value - - x x -
Alarm 1-n* Priority - - x x -
Alarm 1-n* Text - - x x -
Alarm 1-n* Operator - - x x -
Alarm 1-n* Limit - - x x -
Display Format - - x x -
Measurement Unit - - x x -
RawMin - - x x -
RawMax - - x x -
Scaling min - - x x -
Scaling max - - x x -
Boundary min - - x x -
Boundary max - - x x -
* = The number of alarms depends on the data type of the variable. Refer to Alarm Definition in the SCoD Editor (see page 45).
30 33002608 09/2014
Definition of a SCoD
Value Tab of Variable Properties
Value tab
Property Description
Initial Value Defines the initial value of the variable. The value has to match the variable’s Data type. Depending on the Data type of the variable there may be additional checks related to raw and scaling values (see below). The initial value is generated in Unity Pro and the HMI as initial value. Initial values can not be specified for structured Data types.
DeadBand Mode Defines the dead band mode of a variable (see DeadBand Value). Not_Assigned Absolute Percentage
(Not used for iFIX and Monitor Pro).
DeadBand Value
Dead band is an absolute or percental portion that a variable value can change without the variable value being updated in the system.If DeadBand Mode is set to Absolute
Enter a value matching the data type of the variable. Percentage
Enter any positive percentage value (for example, a REAL value).
Note: DeadBand Value corresponds with Scaling min and Scaling max. You are responsible to enter appropriate data.(Not used for iFIX and Monitor Pro).
Variable Used Only for IO_PLC variables. It defines if a variable is assigned to a physical I/O or if it is not used. Not used variables will not be generated for Unity Pro.A variable can be set to not used, for example, because a real object like a valve has no feedback limit switch, but the Control Module offers 1.
Invert Inverts the variable value. Can only be used for variables of Data type BOOL and IO_PLC variables. If set to Yes, Unity Application Generator generates an inversion circle on the assigned EFB / DFB pin in Unity Pro.Exception: when the property itself is connected to an EFB /DFB pin as a Literal, the value of Inverse (0 = No, 1= Yes) is connected to the related pin and no inversion circle is generated.
33002608 09/2014 31
Definition of a SCoD
Communication Tab of Variable Properties
Alarm Tab of Variable Properties
Property Description
Communication Frame
The data exchange variables for the communication with the HMI system are categorized according to their communication frames. The communication frame’s data type has to fit to that of the variable to allow an assignment.
Failure State Defines the timeout action of an output I/O variable. If a detected error is present in a PLC output module, you can define what happens to the output signals: Disable: The signal is set to 0 Last value: The signal is holding the last value before it timed out User defined: You can define the state of the signal
Failure Value Defines the value of the variable if a timeout occurs.Only available if Failure State is set to user defined.
Property Description
Alarm Defines whether the variable is an alarm in the HMI. This property is only available for a variable of the Connection Type PLC_HMI or HMI.
Alarm Group
Alarm variables can be segmented within Alarm Groups. All alarms of a variable (1 to 8 for non-Bool) are in one Alarm Group.
Alarm Priority
Defines the alarm priority of the variable in the HMI. This property is only available for a variable of the Connection Type PLC_HMI or HMI. iFIX supports three priorities: low, medium and high. Monitor Pro provides 1..9999 Alarm Priorities: For example: low, medium, high and urgent.For Vijeo Citect you can use the alarm priorities 0..99.
Alarm Text User defined text. If no text is specified, a default alarm text will be used. The default alarm text will be composed as variable Description - ControlModule Description - EquipmentModule Description. This property is only available for a variable of the Connection Type PLC_HMI or HMI.
Alarm Operator
There are 3 different kinds of possible values: Comparison operator for comparing the variable value against the respective Alarm
Limit.Possible operators are =, <>, >, <, >=, <= and
Free ExpressionAllows to enter arbitrary strings to be used by the HMI generator.For example, use Free Expression to enter any Cicode expression for an alarm.
Bit XSelects the bit of the variable value to be used for bit wise alarm definitions (Bit 0 ... Bit n-1The number of bit values listed depends on the data type of the variable (for example, for INT, Bit 0 to Bit 15 are listed).If Bit X is selected, the Alarm Limit for this alarm can either be 0 or 1. By default the alarm limit 1 is added to the Alarm Limit column automatically.
Alarm Limit
Defines the active value for the alarm. This property is only available for a variable of the Connection Type PLC_HMI or HMI.
32 33002608 09/2014
Definition of a SCoD
Refer to Alarm Definition in the SCoD Editor (see page 45).
Alarm Number
consecutive numbering of the defined alarms (automatic number)
Alarm Timer Mode
Defines the Alarm Timer Mode: No Timer Variable Free Expression
This property is only used for creating boolean, time stamped alarms for Vijeo Citect.
Alarm Timer
Depends on Alarm Timer Mode. If Variable is selected:
A variable can be entered directly or can be selected by using the ... button, which opens the Select Variable dialog. By means of this dialog you can either select an existing variable or create a new one.The variable providing PLC time has to be of Connection Type PLC_HMI . The data type of the variable can be TOD, DINT, UDINT or DWORD.The variable has to be of same SCoD as the alarm variable.The variable can be used for several alarms under the same SCoD.The Alarm Timer variable is displayed in the General tab of a variable under Connected To Alarm Timer Variables.
If Free Expression is selected:You can enter a string which can refer to variables in the same parent object as the alarm variable by enclosing the variable name in % characters, for example, %Var1%.The entered string will not be validated in SCoD Editor or UAG and Alarm Timer will be generated as Cicode in Vijeo Citect.
This property is only used for creating boolean, time stamped alarms for Vijeo Citect.
NOTE: Alarm Timer Mode will change from Variable to No Timer and Alarm Timer value will be cleared if the timer variable is deleted.
If a variable having time stamped alarm is copied from one SCoD to another then both Alarm Timer Mode and Alarm Timer properties will be cleared in target variable because the variable has to be of same SCoD. You have to configure time stamped alarm for target variable manually.
Modification of data type and connection type is not allowed for an Alarm Timer variable as long as it is used as a timer variable.
Property Description
33002608 09/2014 33
Definition of a SCoD
Command Tab of Variable Properties
Property Description
Command Defines the control usage of this variable, for example, if an operator or the logic is controlling this variable. It can only be assigned to PLC_HMI or HMI variables.Available values: View only
The value of the variable is displayed in the HMI but the operator cannot change it. Outputs are View only. The variable is read-only in the HMI.
LogicThe value of the variable is displayed in the HMI but the operator cannot change it (the generated code will be same as for View only, but setting this property indicates to the control engineer to add additional logic). The variable is read-only in the HMI.
OperatorThe value of the variable is displayed in the HMI and the operator can change it. The variable is read/ write in the HMI.
ParameterThe value of the variable is displayed in the HMI and the operator can change it. Data transfer between the PLC and HMI is slower than for the value Operator.
ConstantThe value of the variable is displayed in the HMI and the operator cannot change it. The variable is read-only in the HMI.
(Not used for Monitor Pro and Vijeo Citect).
Access Level Used to define access rights for a variable. The operator in the HMI system needs to have proper access rights to change a value of a variable. New Access Level values can be added in General Data.(Not used for Monitor Pro and Vijeo Citect).
State0 Text User defined text, which is displayed in the HMI when the variable value is FALSE.The text appears also in the SCoD editor and in Unity Application Generator, when a boolean value for this variable needs to be selected, for example, for the Initial Value property and for the Alarm State property.This property is only available for a variable of Connection Type PLC_HMI or HMI and Data type BOOL.
State1 Text User defined text, which is displayed in the HMI when the variable value is TRUE.The text appears also in the SCoD editor and in Unity Application Generator, when a boolean value for this variable needs to be selected, for example, for the Initial Value property and for the Alarm State property.This property is only available for a variable of Connection Type PLC_HMI or HMI and Data type BOOL.
Update Initial Value
Sets the save attribute in Unity Pro. For Unity Pro only.
34 33002608 09/2014
Definition of a SCoD
Archive Tab of Variable Properties
Display Tab of Variable Properties
Property Description
Archive The Archive property enables to archive the variable or not. It provides three different states: Not_Assigned, No or Historic.
Archive Name Archive Name stores a string that will be used in customization to define further details for archiving. With this property you are able to group which variables go to the same archive.
Archive Sample Rate
sample rate of a value used for the historical archiveUAG will not verify this value. You are responsible to enter a numeric value or a character string that is accepted by your HMI system.Example (Vijeo Citect):If Archive is set to Historic you can enter an integer value
An integer value will be interpreted by Vijeo Citect as number of seconds (for example, to sample a value each 5 seconds, enter 5).
a string valueA string value will be interpreted by Vijeo Citect as a period. The string value is specified in format hh:mm:ss (for example to sample a value each 5 seconds, enter 00:00:05).
(Not used for iFIX and Monitor Pro).
Property Description
Display Format Defines the format how a variable will be displayed in the HMI. This property is only available for analog variables of Connection Type PLC_HMI or HMI.
Measurement Unit Group
Defines the group of engineering units in the HMI, for example, Volume. This property is available for analog variables of type PLC_HMI or HMI. For more details, refer Measurement Unit Group (see page 67).
Measurement Unit Defines the engineering unit in the HMI, for example, meter/sec. This property is available for analog Data types and Connection Type PLC_HMI or HMI. New measurement units can be entered in General Data.
RawMin Defines the low limit of the not scaled value coming from the PLC system.The value has to match the variable’s Data type.The initial value has to lie in between the raw values.RawMin/Max (for example, 0/32,000) and Scaling min/max (for example, 0/100 V) are used in the HMI to calculate the actual value.)The RawMin property is only available for analog variables of Connection Type PLC_HMI or HMI.(Not used for iFIX and Monitor Pro).
33002608 09/2014 35
Definition of a SCoD
Free Tab of Variable Properties
RawMax Defines the high limit of the not scaled value coming from the PLC system.The value has to match the variable’s Data type.The initial value has to lie in between the raw values.RawMin/Max (for example, 0/32,000) and Scaling min/max (for example, 0/100 V) are used in the HMI to calculate the actual value.)The RawMax property is only available for analog variables of Connection Type PLC_HMI or HMI.(Not used for iFIX and Monitor Pro).
Scaling min Defines the low limit value in the HMI. This property is only available for analog variables of Connection Type PLC_HMI or HMI.The value does not need to match the variable’s Data type.ScalingMax < ScalingMin is also allowed for more flexibility.If no raw value is defined then the initial value has to lie in between the scaling values.The value has to correspond to the Data type of the variable. The Scaling Min has to be lower or equal to the Boundary Min value of the variable.
Scaling max Defines the high limit value in the HMI. This property is only available for analog variables of Connection Type PLC_HMI or HMI.The value does not need to match the variable’s Data type.ScalingMax < ScalingMin is also allowed for more flexibility.If no raw value is defined then the initial value has to lie in between the scaling values.The value has to correspond to the Data type of the variable. The Scaling Max has to be higher or equal to the Boundary Max value of the variable.
Boundary min Defines the low limit value in the HMI, which can be entered by an operator.This property is only available for analog variables of Connection Type PLC_HMI or HMI.The I/O type of the variable has to be IN or IN/OUT.The value does not need to match the variable’s Data type.The boundary values have to lie in between the scaling values.(Not used for Monitor Pro and Vijeo Citect).
Boundary max Defines the high limit value in the HMI, which can be entered by an operator.This property is only available for analog variables of Connection Type PLC_HMI or HMI.The I/O type of the variable has to be IN or IN/OUT.The value does not need to match the variable’s Data type.The boundary values have to lie in between the scaling values.(Not used for Monitor Pro and Vijeo Citect).
Property Description
Property Description
Free Variables and Control Modules have several properties that can be defined within the SCoD editor and used in UAG applications.
36 33002608 09/2014
Definition of a SCoD
Free Properties for Variables & Control Modules
Variables and Control Modules have several properties that can be defined within the SCoD editor and used in UAG applications.
Basic property types are for example Command, Initial Value, Alarm, Measurement Unit etc.
In specific cases you would like to describe the variables and Control Modules with other properties which are not predefined in UAG which can be seen in the whole system as regular property with inheritance possibility.
A valuable feature of free properties is concerning Generic HMI generation. The properties will be included in the XML and CSV files and in this way accessible for you to be imported into a HMI system.
The free properties are definable in SCoD editor as normal ones. The number of possible free properties is fixed by 20. You will see the properties as strings. No data type control will be done on UAG side.
For free properties you can use system enumeration ProjectInfo (refer System Enumerations, ProjectInfo (for Strings) (see page 70)).
How to Set a Variable
Each variable property can contain a specific value. Some of the properties have to be selected from a predefined value list. For example, the Alarm property can have the following values:
Not_Assigned Yes No
Other numerical property values can be entered freely, for example, an Initial Value of 3.14, but they have to be consistent with the Data type of the variable.
33002608 09/2014 37
Definition of a SCoD
The following figure shows how to set the alarm properties of a variable
When a SCoD is being instantiated in Unity Application Generator, the variables of the SCoD will be created with these property values as the defaults. Whenever there are Not_Assigned or empty property values and the variable option is visible or changeable, these values have to be specified in Unity Application Generator for each Control Module (this will be checked by Unity Application Generator’s analyzer).
38 33002608 09/2014
Definition of a SCoD
Variable Property Options
It is possible for each property to specify if this property will be shown in Unity Application Generator and if it is allowed to change the value. Therefore, each property has two options: Visible and Changeable.
If only the option Visible is checked, Unity Application Generator will show this property, but it is not possible to change the value. Therefore a property value has to be specified as part of the SCoD property definition.
If a property it set to Changeable the variable property is visible and changeable in the variable property dialog in Unity Application Generator. In this case it is not necessary to enter a property value, because this can be done on the instance level in Unity Application Generator.
If none of these options are checked, the variable property is neither Visible nor Changeable in Unity Application Generator, unless it is defined as a SCoD property or used in an inheritance relation.
Variable Value Propagation
This option enables you to update the variable property changes to all existing SCoD instances in a UAG project. UAG V3.3 SP4 supports propagation of SCoD variable changes to the new and existing instances.
Allowed variable properties for propagation:
The following list provides the set of rules for value propagation:1. The variable properties given in the table that are set as Visible and Changeable in the
SCoD editor is not allowed to propagate values to the UAG project on change.2. If you change the values of the listed variable properties that are a part of the Internal or External
inheritance, then they are not considered for value propagation.3. If the SCoD variable that is used as Alarm Timer and the properties listed in the table for this
variable are modified, then the value changes of this variable are allowed to propagate.4. If you change the values of the listed variable properties that are a part of Enumeration or
Enumeration Values, they are allowed for the value propagation.5. In Read-Only mode, the value changes made for any SCoD variable is not propagated to the
project.
You can select the Variable value propagation option from:
View → Options → General
Variable property tab name Properties for value propagation
Value Initial value
Alarm Alarm group, alarm priority, alarm text, alarm operator, alarm limit
Archive Archive, archive name, archive sample rate
Display Display format, measurement unit group, measurement unit, RawMin, RawMax.
33002608 09/2014 39
Definition of a SCoD
The following figure displays the Variable value propagation option:
The option for the Variable value propagation is not selected by default. When you check this option, it propagates any modification of the variable properties to all existing instances in a UAG project.
The Variable Properties window allows you to modify the attributes of an existing variable or set attributes of a newly created variable. After selecting the Variable value propagation option, when you open the Variable Properties window, a Variable value propagation enabled notification is displayed at the bottom of the screen.
40 33002608 09/2014
Definition of a SCoD
The following figure displays the Variable Properties window with the notification:
NOTE: If the value propagation option is not selected, the notification does not appear.
33002608 09/2014 41
Definition of a SCoD
Copy and Pasting of SCoD Properties
Overview
You can copy a single SCoD variable with its associated SCoD properties or without its associated SCoD properties.
Copy via main menu Edit → Copy (Copy with SCoD Properties)
Copy via context menu (right-click a SCoD variable)
Copy with SCoD Properties is enabled only if the variable has any associated SCoD properties.
You can use also the Ctrl+C keyboard shortcut to copy without properties or Ctrl+Shift+C to copy with properties.
42 33002608 09/2014
Definition of a SCoD
New Variable
The copied variable and its SCoD properties can be pasted into a SCoD of the same or a different SCoD library.
If there are no conflicts (see below) or after the conflicts have been resolved, a new variable is created.
If a variable with the same name already exists, the new variable will be named Varn, where n is the smallest integer that makes the name unique throughout the target SCoD.
You can modify the variable name afterwards.
In addition, the SCoD properties that are associated with the copied variable are also created for the target SCoD, now referring to the new variable.
Conflicts and their Resolution
The pasting operation will not be successful, if the target SCoD has fewer tab positions remaining than should be pasted.
For example, the target SCoD has already 40 properties and there are 30 new to paste (the limit is 5 tabs at 12 properties each).
When copying between different SCoD libraries, the pasting operation will not be successful, if the target library meets at least one of the following conditions: The variable’s data type is already used and has a different definition. The enumeration used for one of the variable’s properties is already used and has a different
data type. The description of an enumeration value is already used for a different value, and this other
value is in use.
If instead the variable’s communication frame is already used, but has a different data type or frame type, then the affected variable will be created, but with no communication frame assigned.
In any of the above cases, you are informed by a message in the message window.
In cases where the data indeed is defined differently but is not used in the target library, the existing definition is replaced by the definition used by the copied variable, i.e. that from the source library, with a message for you.
If the target SCoD meets at least one of the following conditions, a dialog box opens so that you can resolve the wrong condition: A SCoD property with the same Display Text exists. In this case the new display text is marked
in red and can be changed by clicking the cell and editing the original text. The position on the property tab is occupied. In this case the position is marked in red and can
be changed by selecting one of the free positions from the list that opens when clicking the cell. Or the tab can be changed as described next.
There are fewer positions remaining on the property tab than there are properties to be pasted onto the tab. For example there are already 10 properties and 3 to be pasted. In this case the tab is marked in red and can be changed by selecting one of the non-occupied tabs from the list that opens when clicking the cell. This list also contains an item New which can be used to create and name a new tab.
33002608 09/2014 43
Definition of a SCoD
Example
44 33002608 09/2014
Definition of a SCoD
Alarm Definition in the SCoD Editor
Overview
You can define alarms for a variable in the Alarm tab of the Variable Properties dialog.
Alarms for variables with a non-Bool elementary data type can be configured in the Show List or in the Show Details mode of the Alarm tab.
For boolean variables the Show Details mode is available only.
Connection Type
The connection type of the variable has to be PLC_HMI or HMI.
Maximum Number of Alarms
The number of alarms depends on the data type of the variable.
The maximum number of alarms (including value type and bit wise alarms) allowed per variable is
2^ (byte count of data type) *8.
For example the maximum number of alarms for data type INT is:
2^ 2 *8 = 65536
33002608 09/2014 45
Definition of a SCoD
Alarm Tab of Variable Properties
Alarm tab in Show List mode
46 33002608 09/2014
Definition of a SCoD
By default, no alarm is displayed in the Alarm List. To add or delete alarms, right-click in the Alarm List and select the respective item from the context menu.
New Alarm
Right-click in the Alarm List and select New from the context menu.
The Alarm tab in Show Details mode is displayed to configure the new alarm details.
You can not create a new alarm, if any of the alarms already created is empty (i.e. any of the alarms is not configured with at least 1 property).
New Alarms are always appended to the end of the alarm list.
Delete Alarm
Right-click an alarm in the Alarm List and select Delete from the context menu to remove an alarm from the list.
You can also select and delete several alarms at once.
You are asked to confirm the deleting operation.
In case an alarm is deleted from the middle of the list, the alarm numbers are reassigned to the remaining alarms in the list.
The alarm numbers are maintained from 1 to the current number of alarms without any missing alarm number in between.
Property Description
Alarm Number consecutive numbering of the defined alarms (automatic number)
Operator There are 3 different kinds of possible values: Comparison operator for comparing the variable value against the
respective Alarm Limit.Possible operators are =, <>, >, <, >=, <= and
Free ExpressionAllows to enter arbitrary strings to be used by the HMI generator.For example, use Free Expression to enter any Cicode expression for an alarm.
Bit XSelects the bit of the variable value to be used for bit wise alarm definitions (Bit 0 ... Bit n-1).The number of bit values listed depends on the data type of the variable (e.g. for INT Bit 0 to Bit 15 are listed).If Bit X is selected, the Alarm Limit for this alarm can either be 0 or 1.By default the alarm limit 1 is added to the Alarm Limit column automatically.You can also associate bit wise alarms using bitfield variables. Please refer to Bit to Word Masking (see page 51).
33002608 09/2014 47
Definition of a SCoD
Apply Button
Use the Apply to save the modifications made in the Variable Properties dialog.
The following restrictions exist: New alarm
Alarms without any change in the alarm properties will not be stored. Update alarm
If all the Properties are reset, then this alarm will be deleted after confirmation by the user. Delete alarm
If an alarm is deleted and this alarm is participated in inheritance or in a device property, then those relationships are deleted, too.
You are asked to confirm the deletion of alarms.
Move Up/Down Button
These 2 buttons are enabled only, if any alarm is selected in the Alarm List.
Moving an alarm just swaps the alarm values (but not the alarm number).
For example, if you move down a selected row, then all values of the 4 properties of the alarm (Operator, Alarm Limit, Alarm Text and Alarm Priority) of the selected alarm become the value for the alarm below and vice versa.
Automatic scroll mechanism is enabled while performing the move up/down operation, if you have defined more alarms than the window is capable to display.
You can not use drag-and-drop in the Alarm List.
During move up/down of an alarm, inheritances or SCoD properties which are associated with that alarm will not be moved.
The following confirmation dialog is displayed, if the alarm is participating in inheritances or SCoD properties:
Do you really want to move the alarm?
The SCoD properties and inherited attributes associated with this alarm will not be updated and must be modified manually.
Sorting
You can sort the alarms on all the columns of the Alarm List.
48 33002608 09/2014
Definition of a SCoD
New Alarm in Show Details Mode
Alarm tab in Show Details mode
33002608 09/2014 49
Definition of a SCoD
Use the New entry of the Select Alarm list to add a new Alarm to a variable.
New by default selects the next free operator in the Operator column.
For example, if you configure Bit 1 alarm and then select New from the Select Alarm list then Bit 2 appears as the next value in the Operator column.
You can add free text along with default alarm text in the Alarm Text field.
Free text can be either appended or prepended or both with the default alarm text.
Propagating Modifications
Creating and deleting alarms in the SCoD editor will change the SCoD version. These changes will be propagated to UAG.
Creating and modifying SCoD properties in the SCoD editor will change the SCoD version. These changes will be propagated to UAG.
50 33002608 09/2014
Definition of a SCoD
Bit to Word Masking
Introduction
For an easier and more cost effective transfer of variables, UAG provides a method to mask and unmask Bit values into variables of the Data Type Word.
Bit Access to the Data Type Word
In your PLC programs, status or alarm information are often coded in bits of variables. These bits can be masked in the variables of the data type Word. In the HMI application it is necessary to unmask this information to access the data as individual Boolean values.
Word to Bit Example for the SCoD Editor
The following table shows an example for Word to Bit conversion:
Word to Bit Variable Assignment
The creation and assignment of the HMI variable is performed in the General tab of the variable properties dialog.
The following figure shows the extract of the General tab of the variable properties:
Click Add to open the variable selection dialog. All HMI variables with an appropriate Data Type will be shown.
Step Action
1 Define a variable of the data type Word with the connection type PLC_HMI for the communication between the PLC and the HMI in the SCoD editor. For example: word_access.
2 Define a data structure of 16 Bool variables in Unity Pro. Export this structure as a xdd file.
3 Import the data structure into your current SCoD library.
4 Define a variable of a structured data type with the connection type HMI, consisting of 16 elements of the data type Bool. For example: word_access_struct.
5 Make an assignment from the Word variable to the structured HMI variable in the property dialog of the Word variable.Note: For convenience, the SCoD editor allows to create the structured HMI variable directly from the property dialog of the Word variable.
33002608 09/2014 51
Definition of a SCoD
NOTE:
Select Create New to generate a new Bit field variable. The assignment is a one-to-one relationship. If the selected HMI variable is already used as a
bit field variable, you will be asked whether to replace the existing relationship with the new one or not.
Create a New Bit Field Variable
If you select the Create New check box, a new dialog appears instead of the variable selection dialog. You can enter the variable name and an existing and appropriate Data Type. The variable will be created automatically and is assigned to the current variable’s "Bit field" property.
You can click the Remove button to disconnect the relationship. This action does not delete the HMI variable.
Both variables are available in the HMI application. The structured variable with 16 Boolean elements is generated as 16 individual tags for Monitor Pro or Vijeo Citect. UAG generates the communication in the way that the HMI application synchronizes the content of both variables or, in case of Monitor Pro, the content of the structured variable with the 16 variables.
In the SCoD Editor you are able to configure the behavior of the alarm for all of the 16 Boolean elements of the structured variable individually (e.g. alarm priority and alarm text). The configuration of the behavior of the alarm of the Word variable will not be restricted. This can be used to configure, for example, an overview alarm for the Word variable if any bit is set, but it is your responsibility to avoid conflicting alarm definitions in the two variables. To assist the user in this case, the SCoD Editor’s analyzer will issue an alert message when there are alarm definitions for both the Word variable and any of the Bit field variable.
If you choose a user-defined structure for the HMI variable, you can name the elements individually and assign a meaningful description. The user-defined structure has to consist of 16 elements of data type Bool that will be used for the mapping with a Word variable.
NOTE: UAG allows only importing of structure definitions in the format of Unity Pro.
You can not change the assignment between the Word variable and the structured HMI in the UAG project. For the mapping with variables of data type Byte, Word or Dword, the structured HMI variable has to consist of 8, 16 or 32 Bool elements, respectively. Variables with other data types than Byte, Word or Dword can not be used for this kind of mapping
52 33002608 09/2014
Definition of a SCoD
Pins
Overview
The SCoD Editor is able to import the information about pins of Elementary Function Blocks (EFB) or Derived Function Blocks (DFB), which have been created in Unity Pro. Alternatively, the pins can be created manually with the SCoD editor. The pins from a DFB or EFB are corresponding to the SCoD pins. The pins can be either input, output or input/output pins.
By default, a maximum of 32 input pins and 32 output pins are allowed. As UAG supports the usage of variables with the data type DDT, you can connect extended DFB to increase the maximum number of pins.
Each pin has some general properties. These properties are used to identify a pin and its general functionality.
UAG allows to link a variable to each element of pin which is of data type DDT as the UAG supports the usage of variables with the data type DDT.
For DFBs in the UAG Libset which are of the type xxxx_as_STRING array, the size of the output array has to be equal to the maximum inputs permitted for the DFB. For example, in the word as string array, the output should always be set as string of 16.
NOTE: If output size is set differently, address allocation does not work as expected.
The following table shows the properties of the pins.
Property Description
Name Name of the pin, has to be unique within the SCoD. This name has to follow the naming conventions defined by Unity Pro. The maximum length of a pin name is 32 characters for Unity Pro. This property can not be changed when the SCoD is committed.
Description User defined description of a pin. The maximum length is 255 characters.
Data Type Data Type of the pin. All available Data Types (both pre-defined or user defined) are allowed. This property can not be changed when the SCoD is committed.
I/O Type Defines the I/O type of the pin to be either input, output or input/output. This property can not be changed when a variable is assigned to the pin or when the SCoD is committed.INIt is an input pin.OUTIt is an output pin.IN/OUTIt is an input/output pin. The following restrictions have to be noted by using the IN/OUT pins: No literals or constants can be connected to IN/OUT pins. No Boolean variables can be connected to IN/OUT pins.
33002608 09/2014 53
Definition of a SCoD
Position Defines the position where the pin appears on the block.
Pin Usage Defines how the pin is used. This property can not be changed when the SCoD is committed.
Literal Mode Defines where the literal value comes from. Can be set to Variable property or to Literal value. Only available if Pin Usage is set to Literal. This property can not be changed when the SCoD is committed.
Variable Defines the variable, which is connected to the pin. This property can not be changed when the SCoD is committed.
Variable Property Defines a property of a variable from which the literal value will be taken. Only available if Pin Usage is set to Literal and Literal Mode is set to Variable Property. This property can not be changed when the SCoD is committed.
Literal Value Defines the literal value. Has to be a correct value according to the pin’s Data Type. Only available if Pin Usage is set to Literal and Literal Mode is set to Literal Value. This property can not be changed when the SCoD is committed.
Link FFB Name Defines name of the FFB to be connected (as in UnityPro) that has the input pin definition equivalent to the DDT data type of pin. You have to provide a valid name for Link FFB name. However,
the name will not be validated. The property Link FFB Name is enabled only for input pin of DDT
data type and the pin usage is not connected. The Link FFB Name cannot be changed when SCoD is
committed.
NOTE: The property Link FFB Name exists only for input DDT pins.
Property Description
54 33002608 09/2014
Definition of a SCoD
The following figure shows the dialog box of the pin properties.
Pin Usage
The pins can be Not Connected, or connected to a Variable, Literal or Interlock.
Not Connected
The input pin is (currently) Not Connected. The user is able to link a Not Connected input pin within the UAG project with another pin or a variable.
33002608 09/2014 55
Definition of a SCoD
Variable
The pin is connected to a variable. The variable can be selected from a list of matching variables. The Data Type of the variable has to be the same as the Data Type of the pin. Variables with Connection Type Literal and HMI cannot be connected, because they are not existing in the PLC program.
Literal
Literal is used to connect a literal value to an input pin. In general, time values, counter values etc. are specified as Literals. It is possible to define a fixed value which is connected to the input (Literal Mode is set to Literal Value) or the value can be specified for each instance in Unity Application Generator (Literal Mode is set to Variable Property).
Literal ValueThe value entered by the user will be assigned to the pin. The value has to be a correct value according to the Data Type of the pin. The assigned literal value cannot be changed on the instance level of this SCoD in Unity Application Generator.
Variable PropertySome properties of a variable of the same SCoD can be assigned to the Literal.These Properties are: Initial Value Variable Inverted Variable Used
It is good practice to define this variable property as a property of the SCoD to be able to change the value of this variable property in a simple way.
Interlock
The meaning of this pin usage is to connect Interlock logic to the pin. Unity Application Generator gives the user the opportunity to define and generate the logic for the Interlock. Interlocks cannot be defined without Interlock Pin in Unity Application Generator. An interlock condition is a logical comparison. For this reason the Interlock pin has to be of the Data Type BOOL. No variable or literal can be assigned to the Interlock Pin. Unity Application Generator generates the logic and connects the logic to the Interlock Pin.
56 33002608 09/2014
Definition of a SCoD
Configurable SCoD Properties
Overview
In addition to the general SCoD properties, the SCoD editor allows to configure additional SCoD properties. They will be shown in the control module property dialog in Unity Application Generator. The properties in the property tabs specify valuable properties of the control module. In fact these are the properties of the variables of the control module. The SCoD property tabs allow to see and to change the values of the variable properties in an easy way without opening each individual property dialog of the different variables.
Similar properties can be placed on one tab, for example, one property tab can contain all variables of Connection Type PLC_HMI and show their alarm properties.
Definition
To specify a configurable SCoD property the following information has to be provided:
Caption of Property
The caption of the SCoD property has to be unique for each SCoD. This caption will appear in the Control Module (SCoD) property tab in Unity Application Generator as title of the property.
Variable
A variable and an associated property of the variable have to be assigned.
Only available variable properties can be selected in the editor. The available variable properties are based on the Connection Type and Data Type of the variable. Each variable property can be used only once in a SCoD property.
33002608 09/2014 57
Definition of a SCoD
The following figure shows the general properties of a SCoD.
When a SCoD property is created and a variable is selected, the caption will contain the variable name and the variable’s property name by default, if the user has not modified the caption already.
When the selection of the variable or the property will be changed afterwards by the user, and the caption still contains the previous variable name or the previous variable’s property name, they will be replaced automatically by the new names.
Tab definition
The caption of the tab can be freely selected, but has to be unique. It is possible to define five tabs.
Each configurable SCoD property has to be located in a property tab. Each tab can contain up to twelve properties.
58 33002608 09/2014
Definition of a SCoD
The following figure shows an example for user-defined properties.
The position of a SCoD property can be modified within a tab or can be moved to a different tab by selecting an unused position in one of the tabs.
The tabs themselves can be rearranged by dragging them to a new position using the mouse.
In the Unity Application Generator, the properties will be shown in the same manner as defined in the SCoD editor, including the tab order.
33002608 09/2014 59
Definition of a SCoD
The following figure shows the SCoD properties displayed in the Unity Application Generator.
60 33002608 09/2014
Definition of a SCoD
Inherited Properties
Overview
The Inheritance will be used to copy a value from one variable property to another variable property. This functionality reduces a lot of work. Imagine you have a control module like PID and this PID has a setpoint, process value and an output. These variables are all from Data Type REAL. They can have variable properties like DisplayFormat, ScalingMin, ScalingMax, Measurement Unit. The property values are instance based. It means the value has to be set, when the PID will be instantiated, because the values are depending on the underlying process. Without inheritance it would be necessary to assign the same property values for each variable in the Unity Application Generator. But with inheritance it is possible to define a master variable and to inherit a property to another variable property. Each property has to be entered only once and will be copied to the other variables automatically. This feature reduces time and makes data more accurate and consistent.
The following figure shows the dialog box for inheritance of properties.
Inheritance Rules
It is possible to define a variable as a master variable (source variable) and a master property (source property) within the SCoD editor. Afterwards it is possible to define the slave variable (target variable) with the slave property (target property). The Unity Application Generator will inherit the master property to the slave property in the Unity Application Generator. Whenever the master property is changing, it will be copied to the slave property in the Unity Application Generator project. The available properties are based on the Connection Type and Data Type of the variable (see above).
In many cases the property of the master and slave variable are the same. Only the property Initial Value, Scaling Min, Boundary Min, Boundary Max and Scaling Max can be mixed. Thus the variable property Initial Value can be inherited to Scaling Max, but the property Display Format can only be inherited to the Display Format of another variable.
33002608 09/2014 61
Definition of a SCoD
The following table shows inheritance possibilities.
A slave variable property of a SCoD can have only one master variable per available SCoD in the SCoD library. This avoids overwriting slave variable property from different master variables. If there is internal and external inheritance for one slave property then the external inheritance has the higher priority in the Unity Application Generator project.
The master variable can be from the same SCoD (internal inheritance) or from another SCoD (external inheritance) of the same library.
A slave variable property can be also a master variable property, but the SCoD editor checks and prohibits loops of inheritance.
Relations between Master and Slave
Internal inheritance is not directly visible in the Unity Application Generator. If a master property is changed the slave property is updated automatically. In the change history this change is logged.
External inheritance has to be set explicitly in the Unity Application Generator by selecting the master control module. Only one master control module can be defined per control module instance.
All slave variable properties in the control module and the variable property dialog in the Unity Application Generator will be disabled automatically. Therefore it’s only possible to enter the value at the master variable property. The analyzer in the Unity Application Generator detects if a variable property is inherited and will only analyze missing value of master variables.
Master property Possible Slave Properties
Initial Value Initial ValueScaling Min, Scaling MaxBoundary Min, Boundary Max
Scaling Min, Scaling Max Initial ValueScaling Min, Scaling MaxBoundary Min, Boundary Max
Boundary Min, Boundary Max Initial ValueScaling Min, Scaling MaxBoundary Min, Boundary Max
All other properties To the same property
62 33002608 09/2014
Definition of a SCoD
General Data
Overview
There are different kinds of general data, which are normally defined by the user and are used as property values in the SCoDs.
The General Data are: Access Levels Alarm Groups Alarm Priorities Archive Names Communication Frames Data Types Elementary Data Types Derived Data Types
Display Format Enumerations HMIs Measurement Units Groups
Data that is used in a committed SCoD or that is committed itself (see section below) will be imported into a customization when selecting the SCoD library in the Customization Editor.
Committing General Data
You can mark each General Data item (except Enumerations and Measurement Unit) as committed, so that the Customization Editor imports it as if it were used in a committed SCoD.
You can commit an item either by activating the check box in front of it or by clicking Commit in its properties dialog. The Commit button is disabled for items that are already committed.
A General Data item can only be un-committed as long as the library has not been closed. Data that is already in the committed state when the library is opened can not be un-committed.
A committed item that has been deleted from a SCoD library is not automatically deleted from customizations using the library. This has to be done manually using the Customization Editor.
Access Levels
Usage for iFix: The access level is used together with the Control Domain in the Unity Application Generator to define the Security Area of that variable.
To keep the database blocks in the process database from unauthorized writes, iFIX defines security areas.
Access levels can be viewed as a group of variable (database block) with the same rights. For example, operators with rights to a particular access level can read and write to any tag (database block) that is a member of that Access Levels.
33002608 09/2014 63
Definition of a SCoD
The following table shows the default values of the Access Levels in iFIX.
Alarm Groups
For grouping the alarm variables. All alarms of a variable are in the same alarm group. It is possible to create Alarm Groups in the SCoD/Customization Editor. These Alarm Groups can be assigned to a variable on Type Level (SCoD) or instance level (UAG).
Alarm Priorities
An alarm priority indicates the importance of an alarm. Alarm priorities can be assigned only for the variables with the Connection Type HMI or PLC_HMI.
The possible values are based on the HMI system, e.g. low, medium and high for iFix, values from 1 to 9999 for Monitor Pro and 0 to 99 for Vijeo Citect.
Archive Names
It stores a string that will be used in customization to define further details for archiving. With this property you are able to group which variables go to the same archive.
Communication Frames
The data exchange variables for the communication with the HMI system are categorized according to their communication frames. The communication frame’s data type has to fit to that of the variable to allow an assignment.
The following table shows which variables can be assigned to which communication frames based on their data types.
Access Level Default Value
1 Operator
2 Production
3 Technical
4 Maintenance
5 Factory
Communication Frame Type Possible Variable Data Type
ANY any
BOOL BOOL
WORD BYTE, INT, UINT, WORD
DINT DATE, DINT, DWORD, TIME, TOD, UDINT
REAL REAL
64 33002608 09/2014
Definition of a SCoD
If the selected HMI is Vijeo Citect, the communication frames of data type ANY will not be available for Elementary Data Types, because assigning communication frames of data type Any to Elementary Data Types can lead to Bad Boundary Error in Vijeo Citect. However, communication frames of data type ANY is available for Derived Data Type.
Elementary Data Types
The following default Elementary Data Types are available: ANL_IN ANL_OUT BOOL BYTE DATE DINT DT DWORD INT REAL STRING TIME TOD UDINT UINT WORD
They are defined by the system and can not be changed.
NOTE: The Data Types can be extended by Derived Data Types (DDTs).
Derived Data Types
You can use Derived Data Types (DDT) in the SCoD Editor. To use these DDTs you have to import them from Unity Pro.
Alternatively, new Data Types can be created manually. These user-defined Data Types can only be used for variables with the Connection Type PLC.
DDTs can only be removed if they are not used by any objects in the SCoD editor.
NOTE: The derived data types (DDT) for the PLC-HMI communication can not be used with iFIX.
For Monitor Pro you have to use the OPC Server for transferring data.
33002608 09/2014 65
Definition of a SCoD
Data Types of Unity Pro
You can use the Derived Data Types of Unity Pro. You have to import a file that is part of the UAG DVD to use the Data Types. You will find the file on your harddisk after the installation of UAG (<UAG Install Dir>\DB\UnityProLibset.dty).
You can import this file with File → Import Data Types. In the dialog the necessary Data Types have to be selected.
Examples of Data Types are: BoolArr32, INTARR8, WordArr5.
Display Format
The display format defines how a variable will be displayed in the HMI. This property is only available for analog variables of Connection Type PLC_HMI or HMI.
You can Add, Modify and Remove display formats, but you can not remove or modify a display format that is used by one or more committed SCoDs.
These display formats are used on the Display tab of the SCoD editor’s Variable Properties dialog. When a SCoD library is upgraded from a previous UAG version, any display formats used therein are made available in the Display Format node.
Enumerations
You can configure enumerations in the SCoD Editor. These enumerations can be used on variable properties like initial value and allow you to choose the value from a list instead of entering the value directly. You can create a new, named enumeration list, fill it with values and then the enumerations can be assigned to one or more variable properties. In the project using the respective SCoD library, the user uses a drop-down list with these pre-defined values.
For further information, refer to System Enumerations, ProjectInfo (see page 70) and Free configured Enumeration List (see page 68).
HMIs
To be able to use the SCoD library in the Unity Application Generator, the HMI has to be defined.
The Unity Application Generator supports different HMI types, Vijeo Citect, Monitor Pro, Intellution´s iFIX and generic HMI.
66 33002608 09/2014
Definition of a SCoD
Measurement Units Groups
Measurement Units are names of physical units of variables. Measurement Units are grouped in Measurement Unit Groups. The Measurement Unit Groups are made for easier use of the Measurement Units.
For example, the Measurement Unit Group, Weight contains the necessary units for weight, i.e, t - Ton in the Measurement Unit.
The possible ways to define a Measurement Unit Group and Measurement Unit are as follows: If you select a unit group in the Measurement Unit Group list, then the corresponding unit will
be displayed in the Measurement Unit list. If you select Not_Assigned in the Measurement Unit Group list, then the engineering units
corresponding to all available unit groups will be displayed in the Measurement Unit list. If you select a unit group not corresponding to the unit in the Measurement Unit list, then
Measurement Unit list will be set to Not_Assigned.
The user can define freely the Measurement Unit Group and the Measurement Unit. The defined Measurement Unit can be used as values of the variable property Measurement Unit.
This property is available only for analog variables of type HMI or PLC_HMI. The Measurement Units can be displayed as a text in the HMI.
Only Deletable If Not Used
NOTE: General Data like Communication Frames, Alarm Groups and Archive Names are only deletable if they are not used.
33002608 09/2014 67
Definition of a SCoD
Free configured Enumeration List
Overview
You can configure enumerations in the SCoD Editor.
These enumerations can be used on variable properties like initial value and allow you to choose the value from a list instead of entering the value directly.
You can create a new, named enumeration list, fill it with values and then the enumerations can be assigned to 1 or more variable properties.
In the project using the respective SCoD library, the you use a drop-down list with these pre-defined values.
Creation of an Enumeration List
The SCoD Editor has 2 dialogs where enumerations can be defined:
Enumeration (for the enumeration itself)
Enumeration Value for the individual enumeration elements
How to assign Enumerations to Variable Properties
The variable properties dialog in the SCoD Editor provides a choice to select the property value from a list of enumeration elements for each of the following properties:
initial value dead band mode detected failure value archive sample rate scaling min / max boundary min / max raw min / max free properties 1 to 20
Prints of Enumerations in a Report
The SCoD Editor is able to print the enumeration lists. You have to do the following:
Step Action
1 Create the enumeration list.
2 Select File → Report.... All chapters are selected for printing. Please choose the chapters you want to print. By default all chapters are selectedormake a right mouse click on the Enumerations or Enumeration values.The difference is, that only the Enumerations and/or Enumeration values are selected for reporting.
3 Select the Microsoft Word template you want to use.
68 33002608 09/2014
Definition of a SCoD
4 Enter a valid Microsoft Word file name.
5 Press Ok to start reporting.Note: If you selected Open Report after Creation, the report will be opened.
Step Action
33002608 09/2014 69
Definition of a SCoD
System Enumerations, ProjectInfo
Overview
You can define property values for variables by selecting the respective enumeration values out of a predefined enumeration list called ProjectInfo.
This enumeration list is offered in each SCoD library by default under General Data → Enumerations → ProjectInfo.
You can use this system enumeration for values of variable properties wherever a property accepts string values and allows using enumerations.
This includes the initial value property of variables with data type STRING and free properties of variables with other data types.
In UAG, the variable property will be updated with the actual string value of the related object’s data during instantiation of the SCoD or whenever the related object’s data changes.
Which object will be treated as related and which data is copied to the variable property depends on the selected enumeration value.
Values of ProjectInfo
The following values are available in the ProjectInfo enumeration list: ControlModule Name ControlModule Description ControlModule FullName ControlModule TagPrefix ControlModule TagSuffix PhysicalElement Name PhysicalElement Description PhysicalElement FullName PhysicalElement TagPrefix PhysicalElement TagSuffix PLC Name HMI Name ControlDomain Name Picture Name
70 33002608 09/2014
Definition of a SCoD
Representation
ProjectInfo enumeration list in the SCod Editor
Examples of Usage
Examples of translation and usage of enumeration values
Value used Description
ControlModule Name The name of the variable’s parent control module will be inserted as the variable’s property value.
ControlModule TagPrefix This part of the variable name that will be prefixed to the variable names - according to the name creation rule defined in customization for the variable’s parent control module- will be inserted as the variable’s property value.If the TagPrefix value is empty, the resultant property value will also remain empty.
PhysicalElement Name The name of the variable’s parent physical element will be inserted as the variable’s property value.For a control module variable it would be the name of the immediate parent of the control module.
PLC Name The PLC assigned to the current variable’s parent control module will be inserted as the variable’s property value.
33002608 09/2014 71
Definition of a SCoD
Assigning a Value
This enumeration can be used for example to assign the Initial Value property of a SCoD variable with data type STRING as displayed below.
72 33002608 09/2014
Definition of a SCoD
Effects on Unity Application Generator
The value of the SCoD variable´s property for which the enumeration is defined, will be replaced by the actual value during instantiation of the SCoD.
For the SCoD shown in the figure above the value for the Initial Value property will be displayed in UAG as shown in figure below.
33002608 09/2014 73
Definition of a SCoD
As system enumerations are dynamic values, the list box will display the current values of the project.
If data type of the variable is STRING[X] and if the size of the actual system value exceeds the size of data type, the actual system value is truncated to match this size.
If for example data type of the variable above is STRING[2], the value in the text box will be truncated to eq instead of eq1_cm5.
If you are allowed to change the enumeration, and if there is a need for truncation, a appropriate message will be displayed to inform you about truncation.
74 33002608 09/2014
Definition of a SCoD
System Enumerations, Unique Identifier (UID)
Overview
If you need an unique identifier (UID) to address your PLCs and SCoDs clearly you can use the system enumeration System UIDs.
Unique IDs
For each Control Module instance in the UAG project, a unique ID is available which can be used both in the PLC program and in the HMI application.
The ID value can be any long integer number.
The IDs are unique for each object of a given object type.
You will find the unique IDs in the SCoD Editor in the Enumerations.
3 entries for System UIDs are available: Value 1 for UID of PLC Value 2 for UID of SCoD Value 3 for UID of Control Module
During creation of the variable in the UAG project, the property, which the system enumeration is assigned to, will be set to the ID of the corresponding PLC, SCoD or Control Module.
You can use these identifiers for a clear addressing of PLCs and Control Modules in your application.
33002608 09/2014 75
Definition of a SCoD
76 33002608 09/2014
SCoD Editor 3.3 SP4
Creating a SCoD
33002608 09/2014
Creating a SCoD
Chapter 3Creating a SCoD
Introduction
This chapter provides an overview of how to create a SCoD with the SCoD editor.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
Creating a SCoD with the SCoD editor 78
Creating a SCoD - Step-by-step 79
Import 80
Pins and Variables 83
Property Tabs 94
Analyze Library 96
Automatic Report Generation 97
Export out of SCoD Editor 99
33002608 09/2014 77
Creating a SCoD
Creating a SCoD with the SCoD editor
Overview
The major features of this editor are:
Validation of user input to verify that all data are correct and consistent Import of function block information from Unity Pro FB Exchange files in XML format Version management of SCoDs (each SCoD need a time stamp as version identification) Printing the SCoDs User manual
The SCoD editor allows the user to enter the data according to rules defined by the Unity Application Generator. By using the SCoD editor it is possible to create the general design, that means for example which variable has to communicate to the HMI.
Before starting to enter all required data, it is necessary to create the SCoD specification, which defines the functionality provided by the SCoD. This specification may include the following:
Timing diagrams Logical representation (EFB, DFB) Variable description and Connection Types HMI symbol and animations Parameter
As an example how to specify a SCoD, a document is provided that contains all necessary data to create a SCoD. The name of the document is vas_example.doc and it is part of the Unity Application Generator installation DVD. The document can be used to take the information for the following example.
78 33002608 09/2014
Creating a SCoD
Creating a SCoD - Step-by-step
Overview
To create a SCoD the user needs to do the following
Step Action
1 Import of EFBs and DFBs from Unity Pro
2 Modify pins and variables Rename variables Delete variables Change Connection Types Change IN/OUT Change Pin Usage Modify Interlock pin Set other variable properties
3 Create Property Tabs
4 Analyze Project
5 Report
33002608 09/2014 79
Creating a SCoD
Import
Import of EFBs/DFBs from Unity Pro
The SCoD editor is able to import the information of Elementary Function Blocks (EFBs) or Derived Function Blocks (DFBs), which are created with Unity Pro.
The SCoD editor reads the EFB/DFB information from text files in XML format created with Unity Pro. There are various ways to create such files with EFB/DFB information in Unity Pro. One can use an existing Unity Pro project or create a new one. The EFBs/DFBs can be created newly or existing EFBs/DFBs can be added from a library to the project.
If the Unity Pro project is disconnected from the PLC, EFB/DFB information can be exported by right-clicking with the mouse on one of the following items and selecting the menu item Export from the popup menu in the Project Browser’s Structural View: on the top node - this allows to create an Application Exchange File with the extension .XEF
containing information about all EFB/DFB types known in the project. on the FB Types node or one of its direct child nodes representing a EFB/DFB type - this
allows to create a Derived Function Exchange File with the extension .XDB containing either information about all EFB/DFB types known in the project (regardless whether they are already used or not) or only the selected DFB type, respectively.
on the Variables & FB Instances node or its child node FB Instances - this allows to create (among others) a Data Exchange File with the extension .XSY containing information about all EFB/DFB types used.
on the MAST, FAST or an Auxiliary Task node (under the Program\Tasks node) - this allows to create a Whole Program Exchange File with the extension .XPG containing information about all EFB/DFB types used in the selected set of sections.
on a program section node - this allows to create an Exchange File for the section’s program language, e.g. FBD with an extension of .XBD in this case, containing information about all EFB/DFB types used in the selected section.
in the Project Browser’s Function View: on the top node or any functional module node - this creates a Functional Module Exchange
File with an extension of .XFM containing all DFB types used in all or the selected functional modules, respectively.
Additionally, one can directly take a EFB’s/DFB’s source file (with the extension .XML) located in Unity Pro’s FFBLibset directory without the need to export the data from Unity Pro project.
In some of the cases enumerated above there is an option in the Export dialog to specify whether to include information about EFBs/DFBs or not.
If a EFB/DFB is Protected mode in the Unity Pro project, its information will be included in encrypted form in the export file and will be ignored during import into the SCoD editor.
80 33002608 09/2014
Creating a SCoD
To import a Unity Pro file with EFB/DFB information into the SCoD Editor one has to select the Import DFBs or Import EFBs menu item from the SCoD Editor’s File menu, choose the file type for Unity Pro Exchange Files (extension .x*) and select the file. A window with a list of all available EFB/DFB names in the data file appears. All selected EFBs/DFBs will be imported into the SCoD editor. Alerts and detected error messages will be shown in the SCoD Editor’s message window.
Result of the Import
The following figure shows the SCoD dialog box for the import of DFBs.
NOTE: Each EFB or DFB will be imported as a SCoD.
The following figure shows the imported DFB of the VAS_EXAM example.
33002608 09/2014 81
Creating a SCoD
By importing the EFBs/DFBs, the SCoD editor creates pins with the same name and Data Type as defined in the EFB/DFB. By default, it creates also variables for each pin with the same name as the pin and connects them to the pins. This can be changed in the editor’s options. All variables are created with the Connection Type PLC. The name and Connection Type of the variables can be changed afterwards.
If an underscore is used in the pin name, it will be removed or replaced by another character, because underscores are not allowed in variable names. The character to replace can be assigned in the options dialog of the editor.
NOTE: Underscores are not allowed in variable names. The variable will be imported as shown in the picture below.
The following dialog box shows the list of variables after the import of the VAS_EXAM.DFB.
82 33002608 09/2014
Creating a SCoD
Pins and Variables
Pins and Variables
It is a good practice to define the general functionality of a SCoD in a document, before starting to enter data in the SCoD editor. The document helps to understand, which data are needed to be defined in the SCoD editor.
The first part of the SCoD specification is to define the pins, their Data Types and which variable is connected to a pin.
The following table is an example of this definition
PIN_NameIN/OUT
VAR_NameIN/OUT
Description Connection / Data Type
Initial Value
LSOINPUT
LSOIN
Limit switch - open: Physical input to the PLC that indicates that the valve is open. The default value is true when set, i.e., if LSO = 1, the switch is indicating the open position.
IO_PLC / BOOL
LSCINPUT
LSCIN
Limit switch - closed: Physical input to the PLC that indicates that the valve is closed. The default value is true when set, i.e., if LSC = 1, the switch is indicating the closed position.
IO_PLC / BOOL
TMROCINPUT
TMROCIN
Open and Close timer: Time value to move to the open or close position. When the timer expires, if the limit switches does not indicate that the valve is opened, the MFLD and FLD output is set.
LITERAL / TIME T#5s
C_MODEINPUT
MODEIN/OUT
Mode: This input is used to implement auto/manual control from the HMI. When set to one, the HOPEN input is used by the SCADA to open and close the valve, and the POR and PCR inputs are ignored. When set to zero, the HOPEN input has no effect on the valve and the POR and PCR inputs are used.
PLC_HMI / BOOL
1
MOPENINPUT
MOPENIN/OUT
HMI Open command: The HMI uses this bit to open/close the valve manually. This input is inactive when MODE = 0.
PLC_HMI / BOOL
0
P_PORINPUT
PORIN
Program open or close request: Input used by PLC program to request the valve to open or close.
PLC / BOOL 0
P_INLCKINPUT
none Program interlock: Input used by PLC program to interlock the valve. When interlocked, the valve cannot be opened by the PLC program or by the HMI.
BOOL 0
C_INVINPUT
INVIN
Energized to Open or Closed: This input is used to switch between energized to open -> INV = 0 or energized to close -> INV = 1
LITERAL / BOOL
0
RSTINPUT
RSTIN
Reset: Is used by PLC logic to reset the memorized ALARM - MFLD.
PLC / BOOL
MRSTINPUT
MRSTIN/OUT
MRST: Is used by HMI to reset the memorized ALARM - MFLD.
PLC_HMI / BOOL
33002608 09/2014 83
Creating a SCoD
The easiest way to create all pins of an EFB or DFB in the SCoD editor is to import the information. After the import all pins of the EFB / DFB and the Data Types are created as input or output pins in the SCoD editor. In addition, variables are created for all pins.
Rename Variables
After import, the user of the SCoD editor has to assign the right name to the variable. The right name means, the pin name has not to be the variable name or if an underscore is used in the pin name, that character will be removed or replaced. The result of the import is shown in the table above. For example the P_POR pin was imported as PPOR variable name. According to the table above, the names have to be changed to:
PPOR to POR CINV to INV HOPEND to OPEND HCLOSED to CLOSED HMFLD to MFLD
OPNCLSOUTPUT
OPNCLSOUT
Open/close command: Physical output from the PLC. The output is for open or close the valve. The default functionality is energize-to-open.
IO_PLC / BOOL
COMMANDOUTPUT
COMMANDOUT
COMMAND: Output indicating that the valve has been commanded to open = 1 or commanded to close = 0 and that both limit switches indicate that it is in the open position.
PLC_HMI / BOOL
H_OPENOUTPUT
OPENDOUT
H_OPEND: This output is used to verify that the valve is open.
PLC_HMI / BOOL
H_CLOSEOUTPUT
CLOSEDOUT
H_CLOSED: This output is used to verify that the valve is closed.
PLC_HMI / BOOL
H_INLCKOUTPUT
INLOCKOUT
H_INLCK: This output is indicating that the valve interlock PINLCK has been set.
PLC_HMI / BOOL
H_MODEOUTPUT
MODEIN/OUT
H_Mode: This output is a copy of the input C_MODE. PLC_HMI / BOOL
H_MFLDOUTPUT
MFLDOUT
Memorized incomplete: This output is used to display the FLD in the HMI. Input RST or MRST can reset it.
PLC_HMI / BOOL
FLDOUTPUT
FLDOUT
Indeterminate state: This output is indicating that the valve has been commanded to open or close but that the limit switches indicate that the valve is neither in the closed nor opened position after expiration of the open or close timer.
PLC / BOOL
H_RSTOUTPUT
MRSTIN/OUT
H_RST: This output is used to reset the variable MRST to 0, if it was set to 1.
PLC_HMI / BOOL
PIN_NameIN/OUT
VAR_NameIN/OUT
Description Connection / Data Type
Initial Value
84 33002608 09/2014
Creating a SCoD
Delete Variables
In some cases it is necessary to delete variables which were created during the import. The following variables have to be deleted:
HMode, because the output H_MODE will be connected to the MODE variable HMRST, because the output H_MRST will be connected to the MRST variable PINLCK, because the input P_INLCK is used for interlock generation, interlock pins are not
connected to a variable HMOPEN, because the output H_MOPEN will be connected to MOPEN variable
Change Connection Type
Now it is necessary to change the Connection Type of some variables. All imported variables are created with the Connection Type PLC. The Connection Type can be changed in the variable property dialog of each variable.
According to the SCoD definition in the example above, the following variables have to be set to the Connection Type IO_PLC (Sensors, Actors).
Change Connection Type from PLC to IO_PLC:
LSO LSC OPNCLS
Afterwards, the Connection Type has to be set to PLC_HMI for all variables, which have to be communicated to the HMI.
Change Connection Type from PLC to PLC_HMI:
COMMAND MODE MOPEN OPEND CLOSED INLOCK MFLD MRST CNT RCNT
The Connection Type can be changed in the variable’s property window. It is no problem to change the Connection Type to IO_PLC, PLC_HMI, PLC_NET, but the user has to take special care about the variables, which have to be connected as a Literal.
In the example VAS_EXAM, the variable TMROC and INV are Literal variables. To change the Connection Type from PLC to Literal, the connected pin (in the example the pin TMROC and C_INV) has to be removed and after that the Connection Type can be changed to the Literal.
NOTE: Literal variables are not real variables and they are not visible in the Unity Application Generator. Their purpose is to store the literal values.
33002608 09/2014 85
Creating a SCoD
Change I/O Type
Three variables have to be connected to both input and output pins of the DFB. Their I/O Type can be changed to IN/OUT in the variable property dialog. These variables are:
MRST MODE MOPEN
The output variables of the pins H_MODE, H_MRST and H_MOPEN have been deleted before. They have to be reconnected to:
Pin H_MODE to the variable MODE Pin H_MRST to the variable MRST Pin H_MOPEN to the variable MOPEN
After the MODE, MRST and MOPEN variables are to set to IN/OUT, it is necessary to apply this change and add the new connection to the H_MODE and H_MRST pin.
Change Pin Usage
The pin usage can be changed at the pin directly in the pin properties or if the pin will be connected in the variable property dialog. E.g. a pin is not connected and a variable of Connection Type Literal will be connected to this pin, then the pin usage will change to Literal.
Interlock Pin
By import of DFB, the SCoD editor creates the variable for the Interlock pin. This variable can be removed, because the Unity Application Generator generates and connects the logic to the Interlock pin. After deleting the variable the Interlock pin usage has to be changed to the Interlock in the pin property.
86 33002608 09/2014
Creating a SCoD
The following figure shows the function block after the modifications.
All variables are now connected to the right pins. In the case of a Literal connection, the variable property will be displayed in brackets behind the variable name. If a pin is defined as Interlock, the word Interlock is shown in brackets in front of the pin.
33002608 09/2014 87
Creating a SCoD
The following figure shows the variable list within the SCoD editor.
Set other variables properties
There are different options available for the different variable properties. The variable property options are not visible, visible or changeable:
Variable property is not visible (no option is marked)There are two reasons to keep a variable property invisible in the Unity Application Generator.First, the variable property has a fixed value that is not be displayed to the Unity Application Generator user.Second, the variable property is part of a property tab of the SCoD therefore it is not necessary to display the variable property in the variable property dialog in the Unity Application Generator. The value of the property can be changed in the Unity Application Generator’s property tab of the SCoD.
Variable property is visible (option Visible is marked)The are two reasons to a have a variable property displayed in the Unity Application Generator.First, the variable property has a fixed value, but the Unity Application Generator user needs to be informed about that value. Second, the variable property is part of a property tab of the SCoD, therefore it is not necessary to change the variable property in the variable property dialog in the Unity Application Generator. But it helps the Unity Application Generator user to see the value in the variable property dialog. The value of the property can be changed in the property tab of the SCoD.
88 33002608 09/2014
Creating a SCoD
Variable property is changeable (option Changeable is marked)The variable can be changed in variable property dialog in the Unity Application Generator.In addition, it can also be part of the SCoD property tab. In this case it can be changed in both places.
First set the properties of the variables with the connection type IO_PLC.
The following table shows the settings for the IN - IO_PLC variables
The following table shows the settings for the OUT - IO_PLC variables
NOTE: The variable property Variable Used is set to Yes and the option is set to Not Visible, because the feedback from the LSO and LSC variable is needed to control the valve and the variable OPEND to control an actor, e.g. a relay. Therefore it makes no sense to set the value of Variable Used to No.
The following table shows the settings for the IN - Literal variables
Variables with the Connection Type Literal have only one variable property. This property is Initial Value. There are no options available for Literal variables, because they are not appearing as variables in the Unity Application Generator. To have the possibility to change these variables, they have to be in a SCoD property tab.
Variable Name Variable Property Variable Property Option Variable Property Value
LSO Variable Used No
Variable Inverted Changeable No
LSC Variable Used Yes
Variable Inverted Changeable No
Variable Name Variable Property Variable Property Option Variable Property Value
OPNCLS Variable Used not Visible Yes
Variable Inverted No
Initial Value Changeable 0
Timeout State Changeable Not_Assigned
Timeout Value Changeable
Variable Name Variable Property Variable Property Option Variable Property Value
TMROC Initial Value No option available T#5s
INV Initial Value No option available 0
33002608 09/2014 89
Creating a SCoD
The following table shows the settings for the IN - PLC variables
PLC variables are used in the PLC for additional logic and will be generated as unlocated variables in the PLC program. For example to open the valve or to reset alarms. PLC variables have only the variable property Initial Value. It makes sense to initialize these values to 0 to avoid that a valve is open after a cold start of the PLC.
The following table shows the settings for the OUT - PLC variables
The output variable FLD is used for additional logic in the PLC. The variable property Initial Value is initialized with 0.
The following table shows the settings for the IN - PLC_HMI variables
This variable allows the operator to reset the counter of the valve in the HMI. Therefore it is necessary to set the Command to Operator. The behavior does not change, therefore the option of the variable property Command is set to Visible. The variable option of Access Levels is set to Changeable. There may be different Access Level and the programmer in the Unity Application Generator can assign different Access Levels to different valves. All other variable properties (Alarm Priority, Alarm State, Alarm Text, State0 Text, State1 Text) have no influence. It is not necessary to assign values to these variable properties and the variable options are set to Not Visible.
Variable Name Variable Property Variable Property Option Variable Property Value
POR Initial Value Changeable 0
RST Initial Value Changeable 0
Variable Name Variable Property Variable Property Option Variable Property Value
FLD Initial Value 0
Variable Name Variable Property Variable Property Option Variable Property Value
RCNT Initial Value 0
Alarm No
Command Visible Operator
Access Level Changeable Operator
Other Properties Default (empty or Not_Assigned)
90 33002608 09/2014
Creating a SCoD
The following table shows the settings for the OUT - BOOL variables
Variable Name Variable Property Variable Property Option Variable Property Value
OPEND Alarm No
State0 Text Visible NOT_OPEN
State1 Text Visible OPEN
Initial Value 0
Other Properties Default (empty or Not_Assigned)
CLOSED Alarm No
State0 Text Visible NOTCLOSED
State1 Text Visible CLOSED
Initial Value 0
Other Properties Default (empty or Not_Assigned)
MFLD Alarm Changeable Yes
Alarm Priority Changeable 1
Alarm State Visible 1
Alarm Text Changeable Default
Initial Value 0
State0 Text Visible OK
State1 Text Visible FAILED
Other Properties Default (empty or Not_Assigned)
INLOCK Alarm Changeable Yes
Alarm Priority Changeable 1
Alarm State Visible 1
Alarm Text Changeable Default
Initial Value 0
State0 Text Visible NOINTLOCK
State1 Text Visible INTERLOCK
Other Properties Default (empty or Not_Assigned)
COMMAND Alarm No
Initial Value Visible 0
State0 Text CLOSE
State1 Text Visible OPEN
Other Properties Default (empty or Not_Assigned)
33002608 09/2014 91
Creating a SCoD
PLC_HMI variables have a Command View Only. That means the operator can not change the value of the variable in the HMI. If the Data Type is BOOL, it is necessary to set the Alarm property. If the variable’s Alarm property will be set to Yes, other related properties, like Alarm Priority, Alarm State and Alarm Text, should be set as well. If you do not want the variable to occur as an Alarm in the HMI, the Alarm property has to be set to No and the Alarm property and related properties has not be set to Visible. It is a good practice to set the Initial Value for all variables. If the State0 Text and State1 Text is entered, the text will also be used in the variable property Initial Value and Alarm State. This makes it easier to enter the data in the Unity Application Generator. Instead of 0 and 1 the State0 Text and State1 Text will appear.
The following table shows the settings for the IN/OUT - PLC_HMI variables
IN/OUT variables have a special functionalitiy. Depending on the Command property, the logic or a variable will be connected to the input pin. There is a detailed description of the variable property Command in the Unity Application Generator manual.
Variable Name Variable Property Variable Property Option
Variable Property Value
Mode Initial Value Changeable 0
Alarm No
State0 Text Visible MANUAL
State1 Text Visible AUTOMATIC
Command Changeable Operator
Access Level Changeable Operator
Other Properties Default (empty or Not_Assigned)
MOPEN Initial Value Changeable 0
Alarm No
State0 Text Visible CLOSE
State1 Text Visible OPEN
Command Visible Operator
Access Level Changeable Operator
Other Properties Default (empty or Not_Assigned)
MRST Initial Value Changeable 0
Alarm No
State0 Text Visible NOT RESET
State1 Text Visible RESET
Command Visible Operator
Access Level Changeable Operator
Other Properties Default (empty or Not_Assigned)
92 33002608 09/2014
Creating a SCoD
The following table shows the settings for the OUT - PLC_HMI (not BOOL) variables
For variables with Data Type different than BOOL, it is necessary to set the display related properties. The values of Display Format, Scaling Min and Scaling Max have to fit to the Data Type of the variable. For output variables there are only Scaling Min and Scaling Max available, but no boundaries. There is a general relation, between Display Format, Scaling Min, Scaling Max, Boundary Min and Boundary Max.
Scaling Min <= Boundary Min < Boundary Max <= Scaling Max
When the Unity Application Generator generates realtime database tags for iFIX, the Engineering Units (EGU) will be calculated according to the following rules:
Get the value from either the variable’s Boundary Min/Max property if available, otherwise from it is Scaling Min/Max property if available, otherwise use "0.00"/"100.00" as default.
If a Display Format is available, determine the number of decimal places of the Display Format (the maximum number is 6)
Build a character string for the tag’s EGU limit by applying the display format to the value, but restrict the number of significant digits to 7
Variable Name Variable Property Variable Property Option Variable Property Value
CNT Initial Value 0
Display Format Visible 99999
Scaling Min Visible 0
Scaling Max Visible 32767
Other Properties Default (empty or Not_Assigned)
33002608 09/2014 93
Creating a SCoD
Property Tabs
Property Tabs
After the pins and variables were set according to the SCoD specification, the Property Tab has to be set according to the description of the SCoD VAS_EXAM (see VAS_EXAMPLE.DOC).
The SCoD Property Tabs allow to see and to change the values of the variable properties in an easy way.
In VAS_EXAMPLE, two Tabs have to be created, the Setup and the Alarm Tab.
The following table shows the options of the different Property Taps
Property Tab Property Caption Variable - Property Description
Setup
Energize-To-Open INV - Initial Value 0-Valve is Energize to Open1- Valve is Energize to Open
Failed to open/close time
TMROC - Initial Value
The open or close timer is specified as IEC time value
Mode MODE - Command Set Variable to different modes according to the Unity Application Generator rules (see Unity Application Generator manual)
Access Level MODE - Access Level
Set Variable to different access level according to the Unity Application Generator rules (refer Unity Application Generator manual)
Alarm Alarm MFLD - Alarm Alarm Yes or No
Alarm Priority MFLD - Alarm Priority
Alarm priority level, e.g. low, medium, high
94 33002608 09/2014
Creating a SCoD
The following dialog box shows the Property Tabs of the VAS_EXAM SCoD.
33002608 09/2014 95
Creating a SCoD
Analyze Library
Overview
The target of the analyzer is to detect missing data in the library. The results are shown in the message window in the SCoD editor. By double clicking a specific entry in the message window, it is possible to jump directly to the missing entry.
All invalid values will be detected during the input, for example scaling ranges, boundaries, formats etc.
With the editor´s option dialog the user has the possibility to select which parts of the library will be analyzed and how many details the report will contain.
NOTE: The user may enter after how many alerts / detected errors the Analyzer will stop. For an unlimited number, the user has to enter 0.
96 33002608 09/2014
Creating a SCoD
Automatic Report Generation
Report Generator Overview
The SCoD editor allows the user to document the project automatically. A report generator is part of the SCoD editor, which creates a project report as a Microsoft Word file.
To generate a report, a template file (*.dot) has to be selected, which will be used by the report generator. Adopting this template file allows the user to design the report according to the company requirements. Also the Word Document file (*.doc) has to be selected, which is the destination file for the generated report.
With the Report function the user is able to generate reports for the company and service documentation of the project. The user has also the possibility to print a report of individual objects and is able to print all chapters or choose the appropriate ones, by selecting or deselecting check boxes.
The following dialog box shows the selection of the report parameters.
33002608 09/2014 97
Creating a SCoD
Steps to generate a standard Report
To generate the documentation for the entire library take the following steps:
Steps to generate an individual Report
To generate the documentation for individual objects take the following steps:
How to show the result
The document will open automatically, if the check box Open Report after Creation will be checked. The document can be shown also with the button Open.
NOTE: The documentation is generated as a Microsoft Word document. This requires the user to have Microsoft Word or compatible program installed on the PC on which the documentation shall be generated.
Step Action
1 Open the report generator dialog (Tools → Report).
2 Specify a Word template file (*.dot) and Word document file (*.doc)
3 Select the chapters to be generated.
4 Run the report generator (Start button)
Step Action
1 Right-click on the object to report on
2 Select Report from the context menu to open the report dialog.
3 Specify a Word template file (*.dot) and Word document file (*.doc)
4 Specify if the sub-objects shall be included in the report (checkbox)
5 Run the report generator (Start button)
98 33002608 09/2014
Creating a SCoD
Export out of SCoD Editor
Overview
UAG supports export of SCoDs out of the SCoD Editor in XML format only.
The Export context menu item is available in the SCoD Editor from a library node as well as from a SCoD node.
You can export a library or a SCoD.
Please also refer to XML Format for SCoD Editor in the UAG Basic User Manual.
General Process Sequence
Exporting a library
Exporting a SCoD
All data used in a SCoD will be included in the XML export file.
NOTE: Import functionality for SCoDs is not available for UAG.
Step Action
1 Right-click a library node and select Export fro the context menu.Result:The following data of all SCoDs is exported: SCoD properties SCoD variable properties FFB pin properties inherited attributes general data
Step Action
1 Right-click a SCoD node and select Export fro the context menu.Result:The following data of the selected SCoD is exported: SCoD properties SCoD variable properties FFB pin properties inherited attributes general data
33002608 09/2014 99
Creating a SCoD
100 33002608 09/2014
SCoD Editor 3.3 SP4
SCoD Management
33002608 09/2014
SCoD Management
Chapter 4SCoD Management
Introduction
This chapter provides an overview about the management of the SCoDs
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
SCoD Management 102
Commit a SCoD 103
What can be modified 105
Handling SCoD Library Modifications 106
33002608 09/2014 101
SCoD Management
SCoD Management
Overview
After creation of the SCoDs, the user has to manage them in the library. If a SCoD is used in an application and there are any changes to the SCoD it could be necessary to modify the application.
Commit a SCoD
Only a committed SCoD can be instantiated in the Unity Application Generator. If all required data of a SCoD are entered, like:
The variables The pins The connections of the variables to the pins The general data
Then it makes sense to commit a SCoD. A SCoD can be commited by the context sensitive menu of the SCoD or by the toolbar.
If a SCoD is committed the ScoD property Committed Version is filled from the SCoD editor with the current date and time. A ScoD can be committed only once.
The SCoD property Committed Version can not be changed by the user directly. The SCoD editor sets the Committed Version depending on special changes on the SCoD.
The selected SCoD and SCoD library will get a new version:
By committing a SCoD By creating a variable or pin of a committed SCoD which was already saved after commitment By removing a variable or pin of a committed SCoD which was already saved after commitment By creating new items in the general data section if the library has commited SCoDs, which were
already saved after commitment.
Only the library gets a new Committed Version:
By removing a committed SCoD which was already saved after commitment
After the commitment the changes of a SCoD are limited. This will be explained in detail in the chapter Modifying a committed SCoD, page 103.
102 33002608 09/2014
SCoD Management
Commit a SCoD
Modifying a committed SCoD
Enabling the customer to create own SCoDs implies the necessity for the Unity Application Generator to be able to deal with changing existing SCoDs, which are already used in projects.
Imagine the following scenario. The user changes an existing motor by adding a new input to the function block and wants this pin to be connected with a new variable.
In this scenario the Unity Application Generator has to detect that a new variable has been added and then add this variable to each instances of the motor in all projects.
Furthermore, in Unity Pro projects this variable has also to be generated and connected to the input. Similar adjustments have to be done in the HMI.
To overcome the difficulties of this complicated update mechanism, the following restriction will be imposed.
After the commitment of the SCoD the following changes are not longer allowed:
SCoD properties
Name FFB HMI Symbol Type HMI Symbol Name
Variable properties
Name Data Type Connection Type I/O Type Connected Pins
Pin properties
Name Data Type I/O Type Pin Usage Literal Mode / Literal Value / Variable
NOTE: If a Data Type, Connection Type and I/O Type of FFB pin or variable is changed, it is possible to delete the FFB pin and the variable. Afterwards it is not allowed to create the FFB pin or the variable with the same name, before updating the Unity Application Generator project and generation of PLCs. Otherwise all instances of this SCoD are deleted in the Unity Application Generator project.
33002608 09/2014 103
SCoD Management
After the modification of a committed SCoD update all customizations and all the Unity Application Generator projects where this library is used. To update the customization and the Unity Application Generator project, open the custom file and project file. After the update of the Unity Application Generator project it is required to generate the PLC project, before changing the SCoD library again.
104 33002608 09/2014
SCoD Management
What can be modified
What can be modified on a committed SCoD?
Only minor changes are allowed, which will not modify the SCoDs in that way that the projects become inconsistent. After such changes it is not necessary to update the existing SCOD in the Unity Application Generator project.
It is allowed to change SCoD properties (variable properties displayed in the Property Tab), that are displayed in the SCOD property dialog.
To change the variable property option, like Visible and Changeable To change the values of the variable properties, like Initial Value, Display Format, etc.
Other minor changes are allowed, which will not modify the SCoDs in that way that the projects become inconsistent but which will lead to a new version of the library. After such changes it is necessary to update customization of the Unity Application Generator project.
Add new Data Type, Alarm Priority, Access Level and Measurement Unit
Major changes are possible, but afterwards it is necessary to update the customization. After the update of the customization an update of the Unity Application Generator project is necessary, wherever the library is used.
Major changes are:
Add or remove a variable Add or remove a pin Add or remove inheritance
Other major changes are possible, but afterwards the Unity Application Generator detects these change as critical. These changes will delete the old instances of the SCoD. These changes are:
If a SCoD has been deleted from the library and a project is opened, which contains instances of this SCoD type. The Unity Application Generator will offer either to delete all instances of the deleted SCoD or to abort the library update.
If a variable or pin has been deleted in a committed SCoD. Afterwards the variable or pin is created with the same Name, without updating the Unity Application Generator project and PLC generation.
Copy a SCoD and delete the old SCoD. Then rename the copy with the name of the old SCoD.
33002608 09/2014 105
SCoD Management
Handling SCoD Library Modifications
Overview
If a SCoD has been modified (new Committed Version) the customization of the projects where the SCoD is used have to be updated with the Customization editor before opening the projects.
Modifications in the SCoD libraries have to be propagated to the project as well as to the Template Libraries using them.
UAG Analysis
UAG analyzes the versions of the libraries used in the project at the time of opening and detects the modifications.
You can open a project successfully only after updating the library versions in the project Customization as well as in UAG.
Updating Customization
If any library version mismatch is detected during opening the project, the Open Project dialog is displayed listing the Libraries with modifications.
Inside the dialog the following confirmation message is displayed:
Customization needs to be updated using UAG Customization before project can be opened.
Do you want to open customization now?
If you click No, the project will not be opened.
If you click Yes, the Customization Editor is launched and the project customization is opened and updated.
Propagating Modifications
After updating the project customization, you have to open the project again and propagate the modifications in SCoD Libraries to the project.
The Open Project dialog is displayed, listing the modified Libraries with their version information.
Inside the dialog the following confirmation message is displayed:
The version of the following libraries have been changed.
Do you want to update the changes now?
If you click Yes, UAG starts a detailed analysis of the modifications in each library.
106 33002608 09/2014
SCoD Management
Detailed Analysis
The modifications are analyzed with respect to the current project.
UAG displays a summary of the modifications in a SCoD library.
The instances of modified SCoDs are listed.
The Conflicts are highlighted because you can select only Delete from the action list.
For normal changes the action list provides: Update Delete
The Target column shows the target of change propagation: Project or Template.
If you click OK changes are propagated to the project and the Template Libraries that depend on the modified SCoD library.
If you click Cancel, the change propagation is aborted and the project is closed.
NOTE: Deletion can only be done, if the project is opened exclusively.
If the project is not opened exclusively, a message is displayed:
SCoD changes can only be updated if project is opened exclusively!
33002608 09/2014 107
SCoD Management
Actions Performed During Update
In detail, the following actions take place for each control module to update: Variables, which are added in the SCoD, are created (if applicable). Variables, which are deleted from the SCoD, are deleted (if applicable). Alarm definitions, which are added in the SCoD, are created (if applicable). Alarm definitions, which are deleted from the SCoD, are deleted (if applicable). Interlocks, which are connected to pins deleted from the SCoD, are deleted (if applicable). Inheritance relationships are update (if applicable).
During update of inheritance the following will be performed for each variable that is affected by inheritance: The master attribute value will be retrieved from the UAG project and it will be set to the slave
attribute regardless of values set in the SCoD editor for master attribute and slave attribute.
Other variable property values in UAG will not be updated, even if the user has changed variable property values in the SCoD.
Only new instances, created after modification of the SCoD, will show the new variable property values.
108 33002608 09/2014
SCoD Editor 3.3 SP4
Creating PLC Function Blocks
33002608 09/2014
Creating PLC Function Blocks
Chapter 5Creating PLC Function Blocks
Creating PLC Function Blocks
Overview
With the help of the SCoD editor any EFB/DFB can be incorporated into the Unity Application Generator. That means the Unity Application Generator:
Knows the EFB/DFB Can assign to it properties relevant to the PLC program, e.g. input/output points to the
corresponding variables taking into account the PLC hardware configuration Generate the PLC program, i.e. place the EFB/DFB in the appropriate section of the program,
create and attach variables to the input/output pins.
To get a SCoD, an EFB/DFB needs to comply with certain rules and a Dynamo or an ActiveX control following certain conventions have to be available. The rules for making a SCoD compatible EFB/DFB are briefly listed below.
In general an EFB or DFB is part of a SCoD. Therefore it is possible to import the data, like Pin Name, Variable Name and their Data Types.
First the EFB, then DFB has to be defined:
The Pin Name for the inputs/outputs The Data Type of the pin Position of the pin (DFB)
It is helpful for the programmer of the PLC logic to define easy pin names. For example:
LSO, limit switch open H_MODE, the mode of the SCoD (Control Module) P_POR, program open request etc.
It could be good to start pin names with a special character like:
P_ Pin, where additional logic or a PLC variable has to be connected H_ Pin, where a variable is connected to display values in the HMI C_ Pin, where a constant (Literal) has to be defined
These simple rules can help to identify the Pin Usage in PLC program and avoid mistakes. If a programmer of the PLC logic take them into account, it is easy to know where to create special logic and connect this logic to the pin.
If a user defines the Data Type of a pin, it is necessary to know which data types are available for the different connection types, like IO_PLC, PLC, PLC_HMI. For example, it is possible to create a structured Data Type for a pin, if a PLC_HMI variable needs to be connected to this pin.
33002608 09/2014 109
Creating PLC Function Blocks
Restrictions of SCoDs
The following restrictions are from Unity Pro. 32 inputs 32 outputs Length of 32 characters and IEC conformity for Unity Pro Length of 32 characters and IEC conformity for FFB (EFB/DFB) names for Unity Pro
For the general design of EFBs/DFBs, the Unity Application Generator implies the following restrictions:An elementary function (EF) is not directly allowed as FFB in the SCoD editor. Whenever an elementary function is generated as SCoD the function has to be created in a DFB.
A structure can be used as Data Type of a pin. But it is possible to assign one element of the structure to a pin. Initial Values are not available for structures. Also direct addresses can not be assigned to a pin.
The usage of Data Type ANY is not allowed as pin Data Types in EFBs/ DFBs. Used Data Types in the SCoD editor, like structure have to be available in Unity Pro. All defined FFB names of committed SCoDs in the SCoD library have to be available as an EFB
or DFB in Unity Pro.If a DFB will be changed it is necessary to open first the PLC project to update the DFBs in the project before generating the PLC. If an EFB/DFB has been changed, for example a pin has been added, you will want to update the SCoD library according to the EFB/DFB change.
Rules for Writing SCoD Compatible EFB/DFB
Observe these rules:
A binary EFB/DFB output that has to be shown on the HMI may be transient in the sense that it is 0/1 only for a short time and this time is not sufficient to transfer this value to the HMI and draw the attention of the operator to it. In such a case provide a latched variety of the output and an input to reset the latched output. The reset input may be common to all the latched outputs of the EFB/DFB or it may reset only one or a group of latched outputs.
Do not allow an operator to change the mode from Local to Remote. Allow Local mode only for commissioning and maintenance.
WARNINGUNEXPECTED EQUIPMENT OPERATION
Adhere to the following rules.
Before writing or modifying a SCoD, perform a safety analysis.
Verify that all hazards are adequately addressed.
Before placing an application using the SCoD into service, thoroughly test the application.
Failure to follow these instructions can result in death, serious injury, or equipment damage.
110 33002608 09/2014
Creating PLC Function Blocks
Provide separate inputs for operator commands in Manual Mode. For example A Open / Close input from the operator (HMI) in the manual mode and another Open / Close
input from the PLC logic in the automatic mode. Which Open / Close commands become effective is determined by the actual operating mode, i.e. manual or automatic. Without this measure the manual and automatic modes will interfere with each-other.
A reset input from the operator in the manual mode and another from the PLC logic in the automatic mode.
For output parameters that need only to be viewed from the HMI nothing special has to be taken into account.
For input parameters whose values are not changed by the EFB/DFB, such as setting values no special treatment is necessary. These values can be viewed and set from the operator (HMI).
Pairs of input/output parameters are necessary for many cases. The operator is presented the output parameter value in a suitable form. If he is allowed to change the value, he enters the new value which is then written to the input parameter once. The EFB/DFB processes the new value and assigns a certain value to the output parameter. What this certain value is depends on the desired functionality. This output value is then fed back to the input parameter by connecting the same variable to the input and output. Examples of such pairs are given below:
Mode as input parameter and H_Mode as output parameter for control devices that have the operating modes Manual and Auto. If the EFB/DFB accepts the new command mode it copies the new command mode to the output.
Input MOPEN (manual open) and output H_MOPEN (initialize manual open) for VAS_EXAM Input MRST (manual reset) and H_MRST (initialize manual reset) for latched alarms, like MFLD
put to "0".
33002608 09/2014 111
Creating PLC Function Blocks
112 33002608 09/2014
SCoD Editor 3.3 SP4
Creating Vijeo Citect Compatible SCoDs
33002608 09/2014
Creating Vijeo Citect Compatible SCoDs
Chapter 6Creating Vijeo Citect Compatible SCoDs
Introduction
This chapter provides an overview how to create Vijeo Citect compatible SCoDs.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
Introduction 114
Distributing and Referencing HMI Symbols from SCoDs 115
Creating Genies for Control Module HMI Symbols 116
Creating Genies for Free Variable HMI Symbols 122
Compatible Data Types 123
33002608 09/2014 113
Creating Vijeo Citect Compatible SCoDs
Introduction
Overview
Configuration of SCoDs for Citect occurs in two main areas: HMI symbols
HMI symbols for use by UAG in Citect is an exercise in creating genies.As a result it is necessary that SCoD designers understand the basics using the Citect Graphics Builder and creating genies.A single genie is built for each HMI symbol to be made available in the UAG.
Compatible data typesWhen generating data types for use by Citect, the SCoD designer needs to be aware of restrictions imposed by Citect.
114 33002608 09/2014
Creating Vijeo Citect Compatible SCoDs
Distributing and Referencing HMI Symbols from SCoDs
Symbol Library Project
The SCoD designer is required to create the genies in a separate project (called the symbol library project) and place them in a genie library.
Once created the symbols are referenced in the SCoD editor by a name in the form library name.genie name. The symbol library project needs to be archived and shipped with the SCoD library it supports.
The user is required to restore the symbol library project as well as instruct the UAG to use it as a part of customization prior to generation.
33002608 09/2014 115
Creating Vijeo Citect Compatible SCoDs
Creating Genies for Control Module HMI Symbols
Introduction
When designing a genie to support an HMI Symbol for a control module, a genie is built that requires at least 2 arguments, one named TagPrefix and the other named TagSuffix.
These arguments are used to prefix and suffix values to reference the element variables of the SCoD in Cicode expressions that feed normal animations.
The TagPrefix and TagSuffix are concatenated with the variable name as defined in the SCoD Editor.
At generation time the TagPrefix and TagSuffix will be populate with the correct names in order to reference the instance of the control module.
Example
As an example consider a simple high temperature indicator SCoD that asserts a signal high (HIGH) in response to an input analog (PROCESSVALUE) value going higher than a PLC_HMI defined limit (LIMIT).
Creating a genie to act as a HMI Symbol for this SCoD that visualizes the HIGH signal as a a text message that appears when the HIGH signal is active involves the following setup.
Starting out
Creating the Genie
In this case the genie will be composed of a single text element with visibility based on the state of the HIGH SCoD variable.
This variable can be referenced by using the tag prefix and tag suffix as the arguments into the genie.
See the following diagram for the setting to reference the SCoD HIGH variable.
SCoD Variable Type
HIGH PLC_HMI, BOOL
PROCESSVALUE PLC, REAL
LIMIT PLC_HMI, REAL
116 33002608 09/2014
Creating Vijeo Citect Compatible SCoDs
Referencing a SCoD variable in the high temperature indicator genie
Once this genie is created, it can be saved with a name of HighTemp in the genie library indicators and referenced by the SCoD definition for the temperature control module as indicators.HighTemp.The symbol library project is then archived and sent along with the SCoD library as defined in Distributing and Referencing HMI Symbols from SCoDs, page 115.
At this point the HMI symbol has been defined on the SCoD and may be used in projects.
Generation with SCoD HMI Symbol
As an example to demonstrate how the genie is placed and invoked, the following steps will occur as a part of generation for a project that uses the above SCoD to a monitor the state of a collection of freezer rooms.
NOTE: The UAG project customization allows for flexible variable naming rules. In the example below it is assumed that the naming rule is set to <Physical Element Name>_<Control Module Name>_<Variable Name>.
33002608 09/2014 117
Creating Vijeo Citect Compatible SCoDs
Setup and Define Project
First setup and define the project.
At Generation Time
Referencing Elements in Complex Types
The genie developer will want to take into account complex type name conversion in the event that the SCoD is designed using DDTs, structures, arrays or bitfields whose elements are to be used in animations.
Elements of arrays, DDTs, structures, and bitfields are available as separate variables for each element of the array or DDT defined.
In order to reference the element variables, some character substitutions are made to avoid invalid characters from existing in Citect variable names and Cicode expressions.
Variable name conversion for complex data types
Step Action
1 Restore the symbol library project and define a reference to it in the customization.
2 Add a Functional Physical Element which is a control module container. (FREEZER7)
3 Add the temperature indicator control module (HITEMP).
4 Associate the Functional Physical Element with an HMI page (Freezers).
Stage Description
1 The variables FREEZER7_HITEMP_HIGH and FREEZER7_HITEMP_LIMIT will be configured in Citect (as defined in the SCoD).
2 The page Freezers will be created.
3 An instance of the HMI symbol genie indicators.HighTemp will be inserted on the page.
4 The TagPrefix argument to the genie instance will be set to FREEZER7_HITEMP_.The TagSuffix argument is blank.
5 The text visibility attribute on the text is now tied to variable FREEZER7_HITEMP_HIGH because the generator has populated the tag prefix.
UAG Type Rule Example UAG Variable Element Name
Generated Citect Variable Name
DDT, Structure, or Bitfield Structure
variable name followed by element name separated by a ’\
ddt1.element1 ddt1\element1
Array variable name followed by index number separated by a ’\
array[2] array\2
Array (negative index) swap ’-’ for ’m array[-5] array\m5
118 33002608 09/2014
Creating Vijeo Citect Compatible SCoDs
Example:
To create an animation in a genie that uses the element ELEMENT1 of the SCoD variable COMPLEX, the Cicode %TagPrefix%COMPLEX%TagSuffix%\ELEMENT1 is used to reference the desired element variable.
Special Notes on Bitfield Variables
In addition to individual variables being created for each of the BOOL elements of a bitfield variable, a Citect variable that contains the raw bits packed in their original format is also generated.
This variable can be referenced and bit masked to perform operations such as masking off several bits for comparison or extract embedded byte values for use in animations.
NOTE: The non-BOOL element variables are not created for bitfield variables.
As a result using the raw variable and bit operations is the only way to achieve any operations involving embedded byte elements.
As of UAG 3.1, PLC_HMI variables of type BOOL, can be transmitted bit by bit packed into words inside ANY communication frames.
Additional Parameters
It is also possible to reference additional parameters with the following syntax:
%VariableName.VariablePropertyName%.
For example, if you place a label with a text of:
Test of "%Var1.Description%"
and the control module contains a variable named Var1 and the description of that variable is ’new variable’, you will get:
Multi-dimensional Array variable name followed by the index of each dimension separated by a ’\
multiarray[3,4] multiarray\3\4
Nested Structures or Arrays
variable names followed by element names or indices separated by a ’\
ddt1.array[3].element1 ddt1\array\3\element1
UAG Type Rule Example UAG Variable Element Name
Generated Citect Variable Name
33002608 09/2014 119
Creating Vijeo Citect Compatible SCoDs
Variable properties available for additional parameters
Type Name Comment
INT AddressOffset only PLC_HMI
INT AddressSegment only PLC_HMI
INT Alarm -
INT Archive -
STRING ArchiveSampleRate -
BYTE BitRank -
INT CommandID -1,1=ViewOnly2=Logic3=Operator4=Parameter5=SetValue
STRING CommunicationFrame Name
INT ConnectionID 1=IO_PLC2=PLC3=PLC_HMI4=PLC_NET5=HMI6=Literal
STRING DataTypeDisplayName -
STRING DataTypeName -
INT DeadBandMode -
STRING DeadBandValue -
STRING Description -
INT FailureBehaviorID -1,1=Disabled2=LastValue3=UserDefined
120 33002608 09/2014
Creating Vijeo Citect Compatible SCoDs
STRING FailureValue -
STRING FreeProperty1 free property1 to 20
STRING FullElementName can be null for non-nested variables
INT GraphicalSymbol -
STRING GraphicalSymbolName Here:TypeExpression:LibraryName.genieName
INT ID -
STRING InitialValue -
INT InOutID 1=Inp2=Outp3=InOut
INT Invert -
STRING Name -
STRING RawMax -
STRING RawMin -
STRING ScalingMax -
STRING ScalingMin -
INT SCoDVariableID -
INT Size -
STRING State0Text -
STRING State1Text -
INT StringSize only if STRING
INT UpdateInitialValue -1,0=No1=Yes
STRING ValueMax -
STRING ValueMin -
INT VariableUsed -
Type Name Comment
33002608 09/2014 121
Creating Vijeo Citect Compatible SCoDs
Creating Genies for Free Variable HMI Symbols
Introduction
When designing a genie to support a HMI Symbol for use by free variables, a genie is built that requires exactly 1 argument using any name.
This argument will receive the Citect tag name and can be used directly as the variable name in Cicode expressions that feed normal animations.Distribution and referencing HMI symbols works the same as for Control Module HMI Symbols.
Referencing Elements in Complex Types
The genie designer has to compensate for name conversion in the event that the free variable is a DDT, structure, array, or bitfield.
This is accomplished by using the argument as a prefix in the Cicode expressions and enumerating the path to the element as defined in Referencing Elements in Complex Types, page 118.
Example:
To create an animation in a genie that uses the element ELEMENT1 of the free variable COMPLEX, the Cicode %Tag%\ELEMENT1 is used to reference the variable created for the ELEMENT1 element.
122 33002608 09/2014
Creating Vijeo Citect Compatible SCoDs
Compatible Data Types
Unsupported Data Types
The data Type DT is unsupported by the Citect generator as there is no corresponding data type within the Citect runtime.
The UDINT and DWORD data types in the UAG are mapped to a LONG type in Citect.
As a result using the most significant bit in these 32 bit data types will result in Citect encoding these values as negative numbers.
Register Boundaries
When designing structured data types for use with the Citect generator, the designer needs to be aware of a restriction that is imposed by the Citect protocol drivers.
Multi-register data types (such as REAL or DWORD) have to consistently be located on even or odd addresses throughout the data structure.
If the memory mapper is allowed to map structures in such a way that some REAL or DWORD values end up on even addresses and other REAL or DWORD end up on odd addresses, then a compilation problem will result in projects generated with that data type.
Consider the following when mapping out your data types: your structured data types are laid out properly internally HMI communication frames of data type ANY are not used mixing structured data types and
multi-register data types with single-register data types in the same frame.
33002608 09/2014 123
Creating Vijeo Citect Compatible SCoDs
124 33002608 09/2014
SCoD Editor 3.3 SP4
Creating a Monitor Pro Symbol
33002608 09/2014
Creating a Monitor Pro Symbol
Chapter 7Creating a Monitor Pro Symbol
Introduction
This chapter provides an overview how to create a Monitor Pro Client Builder Symbol for using within the SCoD library.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
Prerequisites 126
What is a Monitor Pro Client Builder symbol within a SCoD object? 127
Creating a Monitor Pro Client Builder Symbol 128
Integration of a new symbol within the SCoD editor 133
Steps for creating a new SCoD 134
33002608 09/2014 125
Creating a Monitor Pro Symbol
Prerequisites
Introduction
The present document does not explain how to create a Monitor Pro Client Builder symbol in detail, but how to create a SCoD-compatible Client Builder symbol, i.e. the user can work with it as a part of a SCoD along with the EFB/DFB. Hence, the user needs to have a working knowledge of the following Monitor Pro related topics before starting the development of a SCoD-compatible Monitor Pro symbol:
Monitor Pro: General and in particular. Monitor Pro Client Builder symbols: General and custom symbols in particular. Monitor Pro server applications Visual Basic for Applications.
126 33002608 09/2014
Creating a Monitor Pro Symbol
What is a Monitor Pro Client Builder symbol within a SCoD object?
Introduction
A Client Builder Symbol object is a drawing element and associated animations that have been grouped together and stored in a library. The Monitor Pro Client Builder stores these drawings as symbols and they will be placed on a mimic. From the library, a symbol may be used as many times as it is needed. Symbols represent anything from a simple button for a window to a complex part of a Equipment Module with many animations. No special tools are needed to create symbols; they are created in the same way as any other drawing.
A Monitor Pro compatible ScoD object consists of a Unity Pro EFB / DFB and a Monitor Pro Client Builder symbol.
33002608 09/2014 127
Creating a Monitor Pro Symbol
Creating a Monitor Pro Client Builder Symbol
Introduction
For generating a new SCoD it is usually necessary to create a graphical symbol. For a Monitor Pro symbol this will be done by using the Client Builder application. A symbol consists of different basic shapes (e.g. a rectangle) within a mimic. For the animation of a symbol the user has to link the shape with a SCoD variable by using the variable name. The variable has to be of a PLC_HMI connection type. The user has to select the shape. After the selection of the shape it can be combined with the variable (Animate → Color → Bit).
The following figure shows the Drawing Properties of a shape.
The variable name is the name of the SCoD variable within the SCoD editor.
128 33002608 09/2014
Creating a Monitor Pro Symbol
Create Symbol
When the Monitor Pro symbol is created within the Client Builder, every part of the symbol has to be selected to group the elements. After grouping of the elements the user can create the symbol (Edit → Create Symbol). The symbol name has to be entered.
The following figure shows the Save Symbol dialog.
Client Builder Symbol and Mimic Format
After the creation of SCoD-compatible Monitor Pro Client Builder symbols, UAG generates the mimics and symbols as follows:
The symbols and mimics for Monitor Pro will be generated in ASCII format. The format is explained in the document "Client Builder ASCII Mimic guide" that belongs to the Monitor Pro documentation.
The following programming code shows the ASCII format of a Control Module (symbol) generated by UAG for Monitor Pro Client Builder.
33002608 09/2014 129
Creating a Monitor Pro Symbol
The following programming code shows the ASCII format of a free variable generated by UAG for Monitor Pro Client Builder.
Monitor Pro supports branching. Thus it is possible to generate the Symbol Name (e.g. Symbol6), the Branch Name (e.g. monitor1:gerequip_VAS01) and the Variable Name (e.g. monitor1:@gerequip_con01) to define the symbol. The symbol will substitute the variable animation, with the Branch Name + Variable Name. The declaration @ANA is for non-bool variables, @DIGI is for boolean variables.
The following programming code shows the header format which will be generated for every Monitor Pro mimic.
130 33002608 09/2014
Creating a Monitor Pro Symbol
The following programming code shows the entire Monitor Pro symbols and the mimic.
33002608 09/2014 131
Creating a Monitor Pro Symbol
The following figure shows the symbol and free variable from the coding example above.
132 33002608 09/2014
Creating a Monitor Pro Symbol
Integration of a new symbol within the SCoD editor
Introduction
To integrate a new Monitor Pro Client Builder symbol within the SCoD editor, the user has to enter the symbol name.
The following figure shows the SCoD properties with the symbol name.
The name of the HMI symbol is the same name as the Create Symbol name within the Monitor Pro Client Builder.
For adding an HMI symbol please refer to Defining a SCoD, page 18.
33002608 09/2014 133
Creating a Monitor Pro Symbol
Steps for creating a new SCoD
Introduction
Consider the following steps with the different applications to create a new SCoD with a Monitor Pro Client Builder symbol.
Unity Pro
The following steps have to be made within Unity Pro.
Monitor Pro Client Builder
The following steps have to be made within the Monitor Pro Client Builder.
Step Action
1 Create a EFB / DFB as a function block for the new SCoD. Take care, that the EFB / DFB is available (Put in library). For example a motor controller MOTORSTRG.
Step Action
1 Create a new project. Choose a path for the files. It is recommended to save the data or files in the same path than the UAG project files.
2 Create a new mimic. The mimic is not necessary for the SCoD. It is just the basis for the creation of the new symbol.
3 Create the shape or symbol of the standard shapes (e.g. rectangle or others).
4 Select the shape and enter the variable name (Animate → Color → Bit).The following figure shows the Drawing Properties of a shape.
Enter the variable name by using the "=" symbol and the name which will be used in the SCoD editor.
134 33002608 09/2014
Creating a Monitor Pro Symbol
SCoD Editor
The following steps have to be made within the SCoD editor.
5 Select the entire symbol and group it.
6 Create the symbol (Edit → Create Symbol). For example motsymbol. This is the symbol name which will be used within the SCoD Editor.
Step Action
Step Action
1 Create a new SCoD.The following figure shows the SCoD properties.
The FFB name is the name of the EFB / DFB within Unity Pro. The HMI symbol name is the name of the symbol which was entered in the Monitor Pro Client Builder application.
33002608 09/2014 135
Creating a Monitor Pro Symbol
NOTE: You can also import the EFB or DFB by the import function.
NOTE: The connection type PLC has to be changed into PLC_HMI.
Client.zip File
To be able to use the new SCoD with its new symbol within a UAG project. The user has to integrate the symbol into the Client.zip file.
The file Client.zip will be installed within the Unity Application Generator installation. The installation path is: ..\Unity Application Generator\MonitorPro\Client\Client.zip. This file contains every symbol for the integrated SCoDs of UAG.
NOTE: The uninstall procedure of UAG does not delete the Client.zip file. Your modifications to this file will be preserved and not overwritten by the next installation.
Client.zip
The following steps have to be made within the Client.zip file.
2 Create new variables. Enter the same variable names which are used within the EFB / DFB in Unity Pro.
3 Create new pins. The pins have to be linked with the variables.
Step Action
Step Action
1 Unpack the Client.zip file
2 Copy the new Monitor Pro Client Builder symbol into the symbols directory.
3 Pack the Client.zip file. The Client.zip file has to be stored within the directory ..\Unity Application Generator\MonitorPro\Client\Client.zip.
136 33002608 09/2014
SCoD Editor 3.3 SP4
Creating Microsoft ActiveX Objects
33002608 09/2014
Creating Microsoft ActiveX Objects
Chapter 8Creating Microsoft ActiveX Objects
Introduction
This chapter provides an overview how to create an Microsoft ActiveX object for using in the SCoD library.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
ActiveX Controls 138
UserControl Properties 139
Program Structure and Flow 140
Public Properties 143
Form Object 146
Program Structure and Flow 147
iFIX Reminder 148
Security 149
exd Files 150
iFIX as an ActiveX Container 151
33002608 09/2014 137
Creating Microsoft ActiveX Objects
ActiveX Controls
Overview
An ActiveX control is a software component, which can be inserted and used in many applications like Microsoft Office applications, Microsoft Internet Explorer but also in HMI systems like Monitor Pro or Intellution’s iFIX and others. An ActiveX control usually provides not only a visual interface for its user but also a program interface to be used by its host application.
A Visual Basic (VB) project for developing ActiveX controls comprises mainly:
UserControls for the ActiveX controls (file extension *.ctl) Forms for the ActiveX controls (file extension *.frm) Property pages for the ActiveX controls (file extension *.pag) Code modules with code common to all parts of the project (file extension *.bas)
For each of these parts, program code in VB has to be written. When using iFIX, property pages may be absent. The iFIX container shows all the public properties, i. e. also those declared by the programmer of the ActiveX, in the properties window. This may not be the case with other containers.
The ActiveX controls explained in this document are using the DLLs SelConnect and FixInfo, which are installed with the Unity Application Generator. They have to be inserted into the references of the ActiveX control project. For an overview of these libraries the VB Object Browser can be used. They handle the communication with iFIX by using iFIX’s EDA (Easy Database Access) functions to read/write data from/to iFIX real-time database and to read alarm and security information.
As an example, the source code of the ActiveX control IAT_VASEXAMPLE, which is contained in the VB project VASEXAMPLE.VBP, is part of the Unity Application Generator installation DVD.
138 33002608 09/2014
Creating Microsoft ActiveX Objects
UserControl Properties
Overview
On the UserControl surface other standard VB controls such as Command Buttons, Labels, Text Fields etc. can be placed. Apart from the objects needed to give the ActiveX control the desired appearance and functionality, two Timer objects are necessary in the context of a SCoD ActiveX control for iFIX.
These are:
Timer timConnect Timer timAlarm
The ActiveX control has to be connected to the Monitor Pro or iFIX database, which reads/writes the data to the PLCs. The timer timConnect is used to determine the interval between the successive reconnect attempts in case the first connect attempt is unsuccessful. The timer timAlarm determines the flashing frequency of the unacknowledged alarms.
33002608 09/2014 139
Creating Microsoft ActiveX Objects
Program Structure and Flow
Overview
The UserControl code does mainly the following:
Connect to the Monitor Pro or iFIX database Receive data from the database and process it, if required With the help of the data received animate the UserControl object: alarm annunciation, color
changes if different operating modes, flashing when a motor or a pump is starting/stopping etc. When requested, open the associated form and animate it If an operator wants to write to the Monitor Pro or iFIX database, check with Monitor Pro / iFIX
security system that the operator has the required access rights. Only when the operator has the necessary access rights, write to the database
Disconnect from the database
The program comprises mainly the following parts.
Code in the UserControl Event Subs
UserControl_InitProperties UserControl_WriteProperties UserControl_ReadProperties UserControl_Initialize UserControl_Resize UserControl_Show UserControl_Terminate
Preparation for Establishing a Link to the iFIX Database and Connecting to it
Sub Connect: Creates the arrays required to call the Function SelConnect.CSupport.Connect.
Sub Disconnect: Calls the Function SelConnect.CSupport.Disconnect
Functions to Receive Data from the iFIX Database
Sub SelConnect.Csupport_OnUpdates Sub SelConnect.Csupport_OnCommStatus
In the actual code SelConnect.CSupport has to be replaced by an instance of this Class. As can be seen, the above Subs are event Subs, OnUpdates and OnCommStatus being the events of the Class SelConnect.CSupport.
Function to Send Data to the iFIX Database
The event handler of the operator window m_OperatorWindow_ChangeValues calls the method SelConnect.Csupport.OnTriggerWrites.
140 33002608 09/2014
Creating Microsoft ActiveX Objects
Functions Relating to Alarm Acknowledgement from Monitor Pro / iFIX
Sub ReadAlarmAck: Creates the two arrays of names and their ID’s of the properties (variables) that have been declared as alarms as a preparation to registering them with Monitor Pro / iFIX alarm management. For the actual registering this Sub calls the function SelConnect.Csupport.ConnectAck
Sub SelConnect.Csupport_OnUpdatesAck: This Sub is an event Sub, OnUpdatesAck being an event of the Class SelConnect.CSupport. In this Sub the alarm information is updated, for example if an alarm is acknowledged it is marked as such in the variable’s alarm information.
The UserControl code derives the information whether a binary property (variable) is in alarm condition from the values of the property (variable) and the public properties Alarm and AlarmState corresponding to it. The Monitor Pro / iFIX database supplies directly only the information when an alarm is acknowledged.
Subs Update and Update<Variable Name>
There is one Sub Update, and there are as many Update<Variable Name> Subs as the number of variables to be fetched from the database.
These Subs perform the following tasks:
Store the new values of the variables received from the iFIX database via the event Sub SelConnect.CSupport_OnUpdates and update the form associated with the control if necessary.
Determine whether a binary variable is declared as an alarm, and if it is, update the value of the AlarmState accordingly.
Animating the UserControl object
The UserControl object comprises standard VB controls such as Labels, Command Buttons, Textboxes, Shapes etc. and/or other user defined controls. These have to be animated taking into account the present value of the properties. This is done in the Sub AnimationStatus.
For example
A UserControl may show a column whose height is proportional to an analog value. The Sub AnimationStatus contains then the code to assign values to the properties Top and Height of the Shape representing the column.
An alarm condition of the device may be shown by a red frame for the control device symbol (user control object as a whole), flashing when one of the alarms is unacknowledged and steady when all the alarms in the control device are acknowledged. The code for showing the frame (steady or flashing) in the selected color is written in this Sub.
33002608 09/2014 141
Creating Microsoft ActiveX Objects
Opening a Form for Detailed User Interaction
Forms (Popup Windows) are used for detailed user interactions. For example:
Display of different control device setting: threshold values, timer settings, counter statuses Display of present control mode (Manual/Automatic), entering command to change the control
mode Resetting of latched outputs, counters etc.
The form is opened (calling the method <Form Name>.Show of the Form object) by clicking the ActiveX control. The code for creating the form can be placed in the click event of the Label object, which is made in the same size as the UserControl object and which is also used for displaying the instance name of the SCoD as a Tooltip text.
Before showing the form, it has to be initialized. This is done by passing all necessary information to the form’s initialize method.
142 33002608 09/2014
Creating Microsoft ActiveX Objects
Public Properties
Overview
The ActiveX control, in combination with the EFB/DFB in Unity Pro and the screens in the Unity Application Generator to assign properties to them, are parts of a whole called SCoD and have to be specified as a whole in the SCoD specification. That means, the SCoD specification has not only to specify the EFB/DFB with its formal (and actual) parameters, but also the corresponding ActiveX control with its public properties and default values, if any. Depending on the entries made in the Unity Application Generator, the Unity Application Generator sets the public properties of the ActiveX control it knows about. However, the ActiveX control may provide additional public properties to configure its appearance, e.g. the colors used for animation of alarms.
To be a part of the SCoD, the ActiveX control has to have certain public properties declared. These required properties can be classified in two groups.
Function Independent Public Properties
The properties in the first group, which may be called Generic or Function Independent Group, has to be declared for every ActiveX. As the name implies, the function of the control device has no bearing on these properties. They define for example the HMI type used, and how the ActiveX communicates with the PLC, which contains the variables that are to be displayed and manipulated by the ActiveX control.
The names of these properties are specified as IAT_<PropertyName>.
For the ActiveX controls, specification of two colors, one for the state when an alarm is not acknowledged and another for the state when it is acknowledged, is necessary. In many cases where an unacknowledged alarm is made flashing, defining only one color is enough. Since these colors apply for all the alarms generated by the different SCoDs (uniformity), they can be regarded as belonging to this group. In case more than one level of seriousness is to be distinguished, additional colors have to be specified. For example, for an analog quantity varying between 0 and 100, two alarms may be defined: AH (Alarm High) when the value exceeds 80 and AHH (Alarm HighHigh) when the value exceeds 90.
The AH alarm could be given the color yellow (alert) both for unacknowledged (flashing) and acknowledged (not flashing) states. The AHH alarm could get the color red (attention) both for unacknowledged (flashing) and acknowledged (not flashing) states.
33002608 09/2014 143
Creating Microsoft ActiveX Objects
Function Dependent Public Properties
The second group, which may be called Function Dependent Group, contains the properties that are necessary to achieve the functionality specific to a given SCoD such as alarming, manual/automatic modes of operation, counter thresholds and resets etc.
Alarms
Only binary signals can be used for alarming. Two types of alarms can be distinguished:
Type 1 alarmsType 1 alarms are considered to be present when the corresponding binary value is TRUE.
Type 2 alarmsType 2 alarms are those for whom the alarm state can be defined in the Unity Application Generator. If the alarm state is selected to be TRUE, the alarm is considered to be present when the corresponding binary variable is TRUE. If the alarm state is chosen to be FALSE, the alarm is considered to be present when the corresponding binary variable is FALSE.
For every binary variable that has to be settable as type 1 alarm, there has to be the public property IAT_<VariableName>_Alarm. If the user wants to have this variable declared as a type 1 alarm, the Unity Application Generator sets this public property.
For every binary variable that has to be settable as a type 2 alarm, there has to be two public properties: IAT_<VariableName>_Alarm and IAT_<VariableName>_AlarmState. When in the Unity Application Generator a binary variable Var1 is defined as an alarm, the Unity Application Generator sets the property IAT_Var1_Alarm to TRUE. When the variable Var1 is not selected for alarming, the property IAT_Var1_Alarm gets the value FALSE. The public property IAT_Var1_AlarmState is set to TRUE or FALSE depending upon the entry in the Unity Application Generator.
Alarms have a meaning only in connection with an HMI.
For a digital input block in iFIX, the block’s alarm condition (A_ALMCK) and alarm status (A_Enab/F_Enab) have to be appropriately set. This is done by the Unity Application Generator. There is no need to declare this variable as public property of the ActiveX control.
WARNINGPOTENTIAL DANGER
If a parameter can take on a value that is identified in a process FMEA or similar analysis as representing a DANGER, appropriate independent safety measures must be taken. Such measures may include guarding, locally shutting down the hazardous process and activating a personnel warning device.
All applicable industry practices, codes and standards must be observed.
Failure to follow these instructions can result in death, serious injury, or equipment damage.
144 33002608 09/2014
Creating Microsoft ActiveX Objects
Resets
Reset inputs to the EFB/DFB are meant to assign certain definite values to the variables. For example, when reset:
A binary value may be set to FALSE The count value in a counter may be made equal to 0 or set to any other specific value.
For each reset input to the EFB/DFB that is to be accessible from the HMI there has to be two public properties declared:
IAT_<Reset Variable Name>_AccessLevel IAT_<Reset Variable Name>_ReadWrite.
The default value is True.
The initial values of these properties are set by the Unity Application Generator.
Command Modes
The EFB/DFB may have for one or more variables command modes like manual/automatic. For each command mode there has to be two public properties declared:
IAT_<Mode Variable Name>_Access Level IAT_<Mode Variable Name>_Read Write
The default value is TRUE.
The operator is able to change the operating mode only if the required access right is set. The required access right is defined in the Unity Application Generator.
When a command mode is selectable as an alarm in the Unity Application Generator, for example an alarm when the manual mode is selected, public properties as mentioned under the section Alarms also have to be defined.
Visual Properties of the ActiveX
In most cases an ActiveX control for a SCoD has:
Pictures Standard VB code User created controls
These pictures and controls have properties, which have to be defined. These properties have to be made public if their values are to be changeable.
33002608 09/2014 145
Creating Microsoft ActiveX Objects
Form Object
Overview
How the data received from the EFB/DFB is to be displayed and how to input data to the EFB/DFB is a choice of the designer. These functions can be made available on the UserControl object itself or with the help of additional form(s). These forms are displayed only when the user has a need to access the data and inputs available on the form. Using forms leads generally to more elegant solutions.
Forms (Popup Windows) are used for detailed user interactions. For example:
Display of trend curves: process value vs. time, reference value vs. time Display of different control device settings: threshold values, timer settings, counter statuses,
PID parameters Display of present control mode (Manual/Automatic), entering command to change the control
mode Resetting of latched outputs, counters Entering different reference values, e.g. setpoints for PID controllers etc.
Data is sent from the UserControl to the form by declaring it as public properties of the latter and then setting these properties from the former.
The data from the Form, which is to be written to the Monitor Pro / iFIX database, is passed on to the UserControl code by raising events with the data as event parameters.
Public Methods
Before opening the form, it has to be initialized by calling the initialize method. With this call the form gets all general data like the name of the control domain or HMI type but also information about the SCoD’s variables like accesslevel and current values. With this information the current state of the SCoD instance can be displayed in the form’s child controls.
With the method Update, the form can be modified about changes of variable values.
Public Events
The form provides one event named ChangeValues to inform the UserControl about changed variable values.
Private Properties
There are very few private properties to declare:
Private m_sec As IAT_FixInfo.CFixSecurityIf the Form contains code to write to the iFIX database (mode commands, resets, reference values etc.) it is necessary to compare the access rights of the logged-on user with the access right required to write a given variable (Tag) to the database. The class CfixSecurity of the library (dll) IAT_FixInfo performs this comparison.
Additional private properties may be necessary for any internal processing in the form.
146 33002608 09/2014
Creating Microsoft ActiveX Objects
Program Structure and Flow
Overview
Depending upon the functionality, the form does mainly the following:
Position the form on the window at a location specified in the form code. Display the various objects like Labels, Command Buttons, Text Boxes, Check Boxes
etc. used for user interaction. Show the new values entered by the user, check whether they are within the allowable range,
if not, issue a corresponding message and show the old value again. Raise the ChangeValues event with appropriate parameters so that the UserControl code can
forward the new values to the iFIX database.
Standard Events of the VB Object Form
Standard events of the VB object Form are among others: Form_Activate, Form_Load, etc.
The method Form.Show is invoked by the UserControl code. Then the event Form_Load takes place before the event Form_Activate. Code can be placed in these event Subs to give the form the necessary appearance.
Function AccessRights
The function AccessRights invokes the method IAT_FixInfo.CfixSecurity.CheckAccessRights with the appropriate parameters to compare the access rights of the logged-on user with the access right required to write a given variable (Tag) to the database. Depending on the result, either the new value of the variable is passed on to the UserControl code by raising an event or a message to the operator is issued that he does not have the access to the variable.
Event Subs of the Various Objects of the Form
The form comprises various Standard VB objects like Command Buttons, Text Boxes, Check Boxes etc. These objects have events like Object_Click, Object_GotFocus, Object_LostFocus and so on. The code to enable the user to enter new commands and values, check their acceptability, check the access rights, raise events etc. is placed in these event Subs.
33002608 09/2014 147
Creating Microsoft ActiveX Objects
iFIX Reminder
Alarm Management
When a binary variable using Digital Input Block (DI) is designed in the Unity Application Generator as an alarm, the Unity Application Generator has to fill the alarm related fields of the block corresponding to this binary variable. These fields are among others:
A_ENAB / F_ENAB A_ALMCK A_ALMEXT1 A_Pri
The presence of unacknowledged/acknowledged alarms is contained in the fields
The SCoD ActiveX has to use the information in the field A_NALM / F_NALM to find out the status of the alarm (acknowledged / unacknowledged) and present it in the desired fashion in the control (flashing/steady, change of color etc).
The presence of an alarm independent of acknowledged/unacknowledged could be derived from the field A_CUALM. We, however, prefer to derive this information in the ActiveX control itself from the value of the corresponding property received from the EFB/DFB.
Irrespective of how the alarm condition is defined, the Unity Application Generator has to enter the proper values in the fields given above. Otherwise alarm acknowledgement will not work.
A_CUALM The blocks current alarm Display field
A_NALM/F_NALM Yes or 1, if the block has unacknowledged alarm
Display field
148 33002608 09/2014
Creating Microsoft ActiveX Objects
Security
Unity Application Generator
Each equipment is assigned to a control domain.
More than one equipment can be assigned to the same control domain. The pieces of equipment belonging to different process cells can be in the same control domain. Control domain names are unique. Each control domain is assigned to an HMI. A control domain cannot be assigned to more than
one HMI. In iFIX, the name of a security area is ControlDomain_AccessLevel. For all variables whose values are changeable from iFIX, access levels have to be specified.
Examples of variables, which can be changed from iFIX, are operating mode (automatic/manual), reset, reference value for a PID controller, and so on.
Thus all the variables of control devices belonging to a given control domain and which can be changed from iFIX require a specific access level from a security area in iFIX with the name ControlDomain_AccessLevel.
iFIX
Security areas has to be given names. To enter names, use in iFIX system Configuration Security → Setup → Security → Configuration → Edit → Security Areas
The Security Area names should be <Name of Control Domain>_Access Level. This is not an iFIX requirement, but is necessary when using iFIX + Unity Application Generator
Operators with rights to a particular security area can write to any data base block that is a member of that security area.
An operator may have different access levels in different control domains. Control domains have to be in Alarm Area Database. To enter a control area name into the
Alarm Area Database, use in iFIX system Configuration → Configure → Configure → Alarm Area Database.
SCoDs
In ActiveX UserControl for each variable changeable from iFIX a public property IAT_<Variable Name>_AccessLevel has to be declared. The IAT_ControlDomain is also a public property. These public properties are set by the Unity Application Generator.
The ActiveX can thus determine the security area in iFIX to which a variable belongs. With the help of the DLL iFIXInfo the ActiveX can find out whether the operator presently
logged in has the necessary access right for this security area. If yes, the ActiveX writes the new value to the iFIX database. If not, an Access Denied alert is issued.
33002608 09/2014 149
Creating Microsoft ActiveX Objects
exd Files
Overview
If an old version of an *.ocx in a picture needs to be replaced (inserted with the help of the iFIX Insert button) the iFIX workspace has to be closed first and all the files with the extension *.exd has to be deleted from the iFIX temp directory. Otherwise it is not possible to place the new *.ocx version, iFIX would issue a message Object cannot be found or something similar.
In this case it could be necessary to delete the old picture file from the directory iFIX\Pic.
150 33002608 09/2014
Creating Microsoft ActiveX Objects
iFIX as an ActiveX Container
Overview
Normally property pages are provided for all ActiveX controls, which allow the user to set the public properties of the ActiveX control, because not all containers may show the public properties in a table as in VB. However, iFIX does show the public properties in the VB style. So while writing ActiveX for iFIX, property pages are not necessary.
While writing ActiveX controls in VB, switching from the design mode to the run mode deletes the old instance of the control and creates a new instance. Thus the newly set of public properties become active and the control works as desired. Unfortunately this is not the case in iFIX, i.e. no new instance is created by switching from the iFIX configuration mode to the run mode. Hence when an *.ocx is placed in a picture and the desired values are assigned to the public properties of the *.ocx, these public properties do not become active unless the picture is first closed (thus destroying the actual instance of the *.ocx) and then reopened (thus creating a new instance with the new public properties). Only then the *.ocx works properly.
This behavior has to be remembered while testing an ActiveX control for a SCoD in conjunction with the associated EFB/DFB. For these tests, first the *.ocx has to be inserted in an iFIX picture and then the IAT public properties such as IAT_CommunicationMode, IAT_DeviceName etc. have to be set by hand. Then the picture needs to be closed and the project to be saved. After switching to the run mode the picture can be opened again.
33002608 09/2014 151
Creating Microsoft ActiveX Objects
152 33002608 09/2014
SCoD Editor 3.3 SP4
Creating Intellution Dynamos
33002608 09/2014
Creating Intellution Dynamos
Chapter 9Creating Intellution Dynamos
Introduction
This chapter provides an overview how to create an Intellution Dynamo for using in the SCoD library.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
Intellution Dynamos 154
Prerequisites 155
Dynamos and Unity Application Generator 156
General Architecture 157
iFIX Objects 158
Geometric Objects 161
VBA Code for the Dynamos 166
Workspace Application Object 167
Helper Form for the Dynamo Set 169
Dynamo-specific Helper Form 170
33002608 09/2014 153
Creating Intellution Dynamos
Intellution Dynamos
What is a Dynamo?
A Dynamo is a group of graphical objects, serving as a template for use in different pictures of Intellution’s iFIX. They can be as complex or as simple as they need to be. Dynamos allow the user to customize the pictures by creating a consistent design across the operator displays. Intellution’s iFIX provides a selection of pre-built Dynamos but the user can build and save his own Dynamos by creating and grouping new objects in the iFIX workspace and dragging them into Dynamo sets. A Dynamo set is a collection of custom or pre-built Dynamos. Dynamo set files have an *.fds extension and are located in the \dynamics\pic directory, by default.
Dynamos are powerful tools, they let the user customize the display using Visual Basic for Application (VBA). When a Dynamo gets dragged to a picture, a copy of the Dynamo is inserted into the picture together with any VBA code tied to the Dynamo. At this time the user can customize that new copy of the Dynamo by using VBA scripts. Specifically, the user can show custom property pages to let the him customize the graphics and to initialize the real-time animations of the new object.
154 33002608 09/2014
Creating Intellution Dynamos
Prerequisites
Overview
The present document does not explain how to write custom Dynamos in iFIX, but how to write a custom Dynamo so that it is SCoD compatible, i.e. the user can work with it as a part of a SCoD along with the EFB/DFB. Hence, the user needs to have a working knowledge of the following iFIX related topics before starting the development of a SCoD-compatible Dynamo:
iFIX: General and in particular. Visual Basic for Applications Dynamos: General and custom Dynamos in particular. Process Database (PDB): Database blocks and their component fields.
The documentation included in iFIX is sufficient to know about these topics.
33002608 09/2014 155
Creating Intellution Dynamos
Dynamos and Unity Application Generator
Overview
The Unity Application Generator supports Intellution´s iFIX as HMI. For iFIX, the Unity Application Generator generates all necessary databases and pictures for the process visualization.
If iFIX is used, the communication with the HMI is performed through iFIX drivers (OPC servers). The Unity Application Generator will create all necessary variables for the data server so that they can communicate between PLC and HMI.
To display the information in the HMI, the Unity Application Generator generates the following:
One picture for each Equipment Module One animated symbol for each Control Module All necessary variables for the Control Module A graphical symbol for each free variable (optional for PLC_HMI variables) Control Module
variables are part of the animated symbols of the Control Module. Free variables will be shown as a graphical symbol, which shows the value of the variable and
allows the user to change that value depending on the access rights of the operator and command settings. They will be displayed on the Equipment Module screen they belong to.
156 33002608 09/2014
Creating Intellution Dynamos
General Architecture
Overview
A SCoD-compatible Dynamo includes a group of visible iFIX objects with their animations and several VBA objects with their VBA code. The general aim of the VBA code is:
To initialize the Dynamo, that is to set the actual property values of the Dynamo such that it represents a specific control module in the plant or in the control system.
To enable operator interaction (display the actual properties of the control module and change these properties according to the inputs from the operator). The major properties of the control module can be viewed directly on the picture with its animations like reference values, actual values, operating mode, flashing alarms, stationary alarms etc.. Dynamo-specific forms are used to display more detailed information: e.g. parameters of PID controllers, maintenance related information such as number of operations since last maintenance, currents in variable speed drives.
Thus a SCoD-compatible Dynamo named Dynamo1 for a control module consists of:
The iFIX group object Dynamo1 with graphical objects, animation objects, event objects and the following mandatory variable objects: IAT_Description1 IAT_Initialized1 IAT_Name1 IAT_ScadaNode1 IAT_Updated1
VBA code in the picture to handle events, especially to initialize the Dynamo object and to update values in the operator dialog during run mode.
additional VBA forms: frmDynamoSet1Helper hidden, with common code for all Dynamos. frmDynamo1Helper hidden, with Dynamo-specific code. frmDynamo1 visible, with VBA objects and code for the Dynamo-specific operator dialog.
While generating the HMI application, the Unity Application Generator
creates the iFIX database blocks for all of the relevant variables with different database fields and assigns them values as entered in the Unity Application Generator.
creates a picture for each Equipment Module. populates the picture with Dynamo objects for all the SCoDs contained in the corresponding
Equipment Module.
When a Dynamo is being placed, the Unity Application Generator sets the above mentioned mandatory variables of the Dynamo to appropriate values and creates an additional variable object named EquipmentModuleName_ControlModuleName to identify the Dynamo object in the future. Then the Unity Application Generator calls iFIX to execute the code of the Dynamo’s edit event to let the Dynamo object initialize itself.
33002608 09/2014 157
Creating Intellution Dynamos
iFIX Objects
Dynamo Object
A Dynamo is an iFIX group object, which comprises further component iFIX objects. The component objects are, for example,
Drawing shapes as rectangles, circles, lines, etc. Texts Data links Alarm summary objects Variable objects Event objects Bitmap images OLE objects Timer objects Push buttons Charts
A Dynamo can be copied any number of times into any picture. Each time a Dynamo is copied into a picture, a new instance of the Dynamo is created along with new instances of the component objects.
The first step to create a Dynamo is to create the component objects in an iFIX picture and to assign appropriate values to their properties. Then all component objects have to be grouped. This group object is later referred to as the Dynamo object. After the necessary VBA code is written (by using the delivered IATBasic10.fds as a template) the group object has to be dragged to a Dynamo set.
Further details are explained with the help of the Dynamo IAT_AO1 contained in the IATBasic10 Dynamo set.
The following figure shows an excerpt of the iFIX workspace with its system tree. In this figure the user can see the object (group) IAT_AO1. It will be converted into a Dynamo later. The object IAT_AO1 comprises:
The three geometric objects BoundRect1, grpAlarmRect7 and grpCommErrorRect7 The five event objects evtMode2, evtQMAX2, evtQMIN2, evtY_2 and evtYMAN2 The five variable objects IAT_Description7, IAT_Initialized7 IAT_Name7,
IAT_ScadaNode7 and IAT_Updated7 The two text objects txtYUnit2 and txtYValue2
158 33002608 09/2014
Creating Intellution Dynamos
The following figure shows the iFIX workspace with its system tree
The names of the Dynamo and the individual objects therein are ending with numbers. These numbers are the instance numbers and are automatically incremented by the workspace.
Since the user does not know how many copies of a Dynamo will exist in a picture, or what the instance numbers of the Dynamo’s component objects are, the VBA code can not use the entire instance name.
Instead, the VBA code of the Dynamo uses the global function FindLocalObject, which expects a partial name, to access a component object in a given Dynamo. Of course, it is necessary to choose appropriate unique partial names for the component objects of a Dynamo. E.g. for the Dynamo IAT_AO1 there are the event objects evtY_2 and evtYMAN2. If we would name these objects evtY2 and evtYMAN2, the function FindLocalObject could not deliver the desired object evtY2 when we would call it with the partial name evtY. Hence the underscore in evtY_2. The partial name evtY_ is not part of the name evtYMAN2, and no ambiguity arises.
In the present document we consistently use the number 1 for the sake of clarity even if the user may find different numbers in the Dynamos of a Dynamo set. The user has to know the significancy of these numbers.
33002608 09/2014 159
Creating Intellution Dynamos
NOTE: IAT_AO1 is simply a collection of distinct objects, which in turn may be collections of other distinct objects. It is not an object hierarchy. Thus the name grpAlarmRect_AnimatedEdgeColor1 is needed to identify the animation object of the rectangle grpAlarmRect1 uniquely and there is no such thing as grpAlarmRect1.AnimatedEdgeColor1.
160 33002608 09/2014
Creating Intellution Dynamos
Geometric Objects
Overview
The Dynamo has two rectangles named grpCommErrorRect1 and grpAlarmRect1. The both objects are of the same size and are placed on the same position and the former is placed in the front of the latter, so that whenever the former is visible it hides the latter. They are animated to show a miscommunication or to indicate an alarm of a corresponding real-time database tag, respectively.
The following figure shows the properties of the geometric objects:
BoundRect
The geometric object BoundRect1 has no special animation. Its sole purpose is to have an enclosure for the analog value displayed on the screen. The property EdgeColor and FillColor need to be the same if the user does not wish to see a special border. This is the case for the Dynamo IAT_AO1.
33002608 09/2014 161
Creating Intellution Dynamos
grpCommErrorRect1
The rectangle object grpCommErrorRect1 is used to enunciate that a communication interruption has been detected. The underlying animation object is grpCommErrorRect_AnimatedVisible1. The communication interruption detected is recognized on the basis of the process value the user want to display. This tag’s field A_OPCQLTY indicates the quality status of the data server.
The expression contained in the animation’s data source results in the logical value True or False, which will be assigned to the rectangle’s Visible property. When the Dynamo is copied to a picture, this expression has to be modified to contain the name of the current data server and the name of an existing tag. This will be done by the VBA code in the helper-form of that Dynamo. In the case of the Dynamo IAT_AO1 the name of this form is frmAOHelper. When the value of the logical expression is False, the rectangle grpCommErrorRect1 is invisible. When the value of the logical expression is True, the grpCommErrorRect1 flashes (blinks), and, when it is visible, its color is magenta (RGB: 255,0,255). The grpCommErrorRect1 object continues to flash as long as the communication interruption is detected. The user cannot acknowledge the magenta-colored communication interruption, and there is no steady magenta-colored rectangle.
The animation object of the rectangle grpAlarmRect1 is grpAlarmRect_AnimatedVisible1.
Its data source contains an algebraic expression:
Fix32.FIX.EQTEST1_AO01_QMAX.F_NALM * 100 +
Fix32.FIX.EQTEST1_AO01_QMIN.F_NALM * 100 +
Fix32.FIX.EQTEST1_AO01_MODE.F_NALM * 100 +
(Fix32.FIX.EQTEST1_AO01_QMAX.A_CUALM = "CFN") +
(Fix32.FIX.EQTEST1_AO01_QMIN.A_CUALM = "CFN") +
(Fix32.FIX.EQTEST1_AO01_MODE.A_CUALM = "CFN")
162 33002608 09/2014
Creating Intellution Dynamos
The following figure shows the dialog box for the animation of grpAlarmRect1:
With that algebraic expression the alarm states of the corresponding tags are mapped into three value ranges: 0-0, 1-99 and 100-9999.
The value is 0, when there are no alarms present and then the object grpAlarmRect1 is invisible.
When there is at least one unacknowledged alarm (indicated in the tag field F_NALM), the value falls in the range of 100-9999 because an unacknowledged alarm is weighted by a factor of 100 and then the object grpAlarmRect1 flashes (blinks).
Acknowledged (tag field A_CUALM) but still present alarms are weighted by a factor of 1, so a value between 1 and 99 results and the object grpAlarmRect1 is continuously visible, its edge-color is red (RGB: 255,0,0).
NOTE: The algebraic expression has to be modified by the VBA code (in the helper-form of the Dynamo) to reflect the current data server and real-time database tags.
33002608 09/2014 163
Creating Intellution Dynamos
Text Objects
A text object is a collection of characters within an invisible rectangle. To add text to the picture, click the text button on the shapes toolbar or the toolbox, if enabled. As an alternative to text objects the user can use data link objects in many cases.
The text objects of the Dynamo IAT_AO1 are animated. The animation object of the text txtYUnit1 shows the unit of the corresponding tag. The text object txtYValue1 has two animations, one for the text and another for the color. With the text animation the current value of the corresponding tag will be displayed and dependent on the mode tag (automatic/manual), the text will be shown in different colors.
NOTE: The animations have to be modified by VBA code when the Dynamo is initializing to reflect the current data server and real-time database tags.
Event Objects
Event objects allow to perform an operation when an event that has been specified occurs. After adding an event object, the user has to enter VBA code to handle the event.
The user needs to add event objects of the type OnDataChange for all real-time database tags he wants to show up-to-date in the Dynamo’s operator dialog. With the VBA code of the event handler the user pass the changed value to the open operator dialog. There is no implementation of a polling mechanism necessary to keep the VBA-based operator dialog updated.
The Dynamo IAT_AO1 contains five event objects: evtMode1, evtQMAX1, evtQMIN1, evtY_1 and evtYMAN1. Their source properties contain the names of the tags needed by the VBA operator dialog and therefore they need to be modified to reflect the current settings when the Dynamo object initializes.
Variable Objects
Variable objects provide a hidden storage in the pictures for values of different types.
The five variable objects IAT_Description1, IAT_Initialized1, IAT_Name1, IAT_ScadaNode1 and IAT_Updated1 are mandatory to make a Dynamo SCoD-compatible. These variable objects have to be created as components of the new Dynamo. During the generation of the HMI application, OSG sets the initial value properties of these variable objects according to the entries made by the programmer of the control module. These values can be used to initialize the Dynamo.
164 33002608 09/2014
Creating Intellution Dynamos
The initial values set by the Unity Application Generator are:
The sixth variable is created by the Unity Application Generator, to be able to find the right Dynamo object easily for a used Control Module in case the Control Module is later modified in the Unity Application Generator and the HMI application is generated a new one.
NOTE: If the user modifies a Dynamo from a Dynamo set of SCoD-compatible Dynamos in a picture and wants to save it into the Dynamo set, the user has to delete the sixth variable. Otherwise the Unity Application Generator will not be able to create a new instance of this Dynamo because of a name conflict.
Variable Variable Type Initial Value
IAT_Description1 String Description of the control module as entered in the Unity Application Generator.
IAT_Initialized1 Boolean False
IAT_Name1 String <Equipment Name>_<Control Module Name>, e.g. EQ2_AO011.
NOTE: These names are specified in the Unity Application Generator. There is no relation to the name of the Dynamo with the instance number at the end.
IAT_ScadaNode1 String Name of the data server assigned to the Control Module.
IAT_Updated1 Boolean Not set by the Unity Application Generator but used by the Dynamo itself.
33002608 09/2014 165
Creating Intellution Dynamos
VBA Code for the Dynamos
Overview
Visual Basic for Application or VBA, is the iFIX standard scripting language. VBA can be used to customize and extend the functionality of iFIX.
When you switch to the Visual Basic Editor from the iFIX workspace you will see several VBA projects for the currently open pictures, Dynamo sets and other workspace objects. The projects are named like Project_Picture1 for code in a picture named Picture1 or Project_DynamoSet1 for the code in a Dynamo set named DynamoSet1.
A VBA project for a Dynamo set of SCoD-compatible Dynamos consists of the following components:
One workspace application object with the name of the Dynamo set. This object is automatically created when the Dynamo set is created in the workspace. This object contains the code of the event handlers for all Dynamos of that Dynamo set and their included event objects.If a Dynamo is copied to a picture, the VBA code for that Dynamo is copied to the workspace application object of the VBA project for the picture. Thereby the name of the Dynamo will be replaced in the code by the name of the actual instance in the picture.
One VBA Form with common code for all Dynamos in the Dynamo set. This object should have a name like frmDynamoSetHelper (e.g. frmBasic10Helper for the IATBasic10 Dynamo set). This object can be created by exporting frmBasic10Helper from the IATBasic10 Dynamo set and importing the resulting file into the new Dynamo set project.If a Dynamo is copied to a picture, this VBA form is copied to the VBA project for the picture, if it doesn’t exist already.
Two VBA Forms for every Dynamo:The first contains only code for the Dynamo and should be named like frmDynamoHelper (e.g. frmAOHelper for the IAT_AO1 Dynamo in the IATBasic10 Dynamo set). Since the structure of the code and the function names are quite similar for all Dynamos, this form can also be created by exporting and importing an existing one from the IATBasic10 Dynamo set and modifying it according to the needs of the new Dynamo.The second implements the Dynamo-specific operator dialog (if required) and should be named like frmDynamo (e. g. frmAO for the IAT_AO1 Dynamo in the IATBasic10 Dynamo set).If a Dynamo is copied to a picture, both VBA forms will be copied to the VBA project for the picture, if they don’t exist already.
Several standard references that we don’t cover in this document.
166 33002608 09/2014
Creating Intellution Dynamos
Workspace Application Object
Overview
The code in the workspace Application object is the connection between the Dynamo object and its forms. For each Dynamo object the code has to handle the Edit events and Click events and for each event object included in a Dynamo additionally the DataChange events.
Edit Event
The Edit event of the Dynamo is raised when the Unity Application Generator copies the Dynamo into a picture. The event can also be activated by double clicking on the Dynamo object in an iFIX picture in the configuration mode.
In the event handler routine the Initialize routine of the Dynamo’s helper form with the current Dynamo object as the actual parameter can be called.
E.g. for the Dynamo IAT_AO1:
Private Sub IAT_AO1_Edit()
frmAOHelper.InitializeAO IAT_AO1
End Sub
The called routine initializes the Dynamo object in such a way that it represents a particular control module. That is, it takes the values of the Dynamo’s mandatory variable objects, which are filled by the Unity Application Generator during the generation, and adjusts the properties of the Dynamo’s component objects, mainly the data sources for animations. As a result, those data sources contain the names of the real-time database tags corresponding to the particular control module.
Click Event
By clicking on the Dynamo object in the picture in the iFIX run mode, a window with a Dynamo-specific operator dialog can be opened. This is achieved by handling the Click event of the Dynamo object. The operator dialog is implemented in the VBA form frmDynamo, e.g. frmAO for the Dynamo IAT_AO1.
In the event handler routine the ShowWindow routine of the Dynamo’s helper form with the current Dynamo object as the actual parameter can be called.
E. g. for the Dynamo IAT_AO1:
Private Sub IAT_AO1_Click()
frmAOHelper.ShowAOWindow IAT_AO1
End Sub
The called routine checks whether the window is already open for the selected Dynamo object and opens it, if not. Several operator dialogs for different instances of the same Dynamo can be open and operational at the same time.
33002608 09/2014 167
Creating Intellution Dynamos
DataChange Events
DataChange events belong to the Event objects included in a Dynamo. An event object is necessary to update a value displayed in an open operator dialog when this value in the real-time database has changed. The DataChange event occurs when the database tag specified in the Event object’s source property has changed.
In the event handler routine the UpdateWindow routine of the Dynamo’s helper form with the current Dynamo object, the name of the changed value and the current value as actual parameters can be called. The current value is provided as an argument to the DataChange event handler (the other provided arguments can be ignored).
E.g. for the Mode variable of the Dynamo IAT_AO1:
Private Sub evtMode1_DataChange(ByVal DataValue As Variant,_
...)
frmAOHelper.UpdateAOWindow IAT_AO1, "Mode", DataValue
End Sub
The called routine checks whether the window is already open for the selected Dynamo object. If not, it exits, since nothing needs to be updated. But if the window is open, it calls the Update routine of the corresponding form object, providing the variable name and the new value.
168 33002608 09/2014
Creating Intellution Dynamos
Helper Form for the Dynamo Set
The Helper Form
The helper form for the Dynamo set contains global routines used by all instances of the SCoD-compatible Dynamos. This form is used for storage of the global functions and is not shown to the user in the run mode. The global functions are used to get information about specified real-time database tags, which are generated by the Unity Application Generator for a particular Dynamo object or a particular Control Module, respectively. For example, there are functions to read and write a tag’s current value, to retrieve its high and low limits, the engineering units or the display format or to check whether the current user has sufficient access rights to modify a tag’s current value.
This form can be exported from the IATBasic10 Dynamo set (where this form is called frmBasic10Helper) and can be imported into a project. There is no need to modify the code. When an instance of any Dynamo of a Dynamo set is created in a picture, this helper form is copied automatically to the VBA project of the picture (if it doesn’t exist already), since this helper form is referenced in the code of the Dynamo-specific forms. It is possible to have the same helper form with the same name in different Dynamo sets if the code is not modified. When the routines are using one of the forms, the user will want to have it prefixed with the form’s name, e.g. frmBasic10Helper.SetTagCurrentValue.
Defining such globally used routines in invisible helper forms instead of defining them in the workspace’s user project has the advantage that the routines are stored together with the Dynamos in the Dynamo set (*.fds file). The disadvantage is that the user might end up with several copies of the same helper form in different Dynamo sets.
In the code of the global functions many field names of iFIX database blocks will be encountered, such as F_CV, A_EOUT, A_EHI, A_EGUDESC. The user has to go through the iFIX Database Manager Help to learn more about them. The Unity Application Generator currently creates only database blocks of the type DI (Digital Input) and AI (Analog Input).
The VBA code makes also use of functions of the workspace’s automation interface. To know more about these functions, please consult the iFIX Automation Interfaces Help.
33002608 09/2014 169
Creating Intellution Dynamos
Dynamo-specific Helper Form
Overview
The Dynamo-specific helper form (e.g. frmAOHelper for the Dynamo IAT_AO1) is mainly used for the code to initialize the corresponding Dynamo object and to display and update the Dynamo’s operator dialog in the iFIX run mode. The Dynamo-specific helper form will not be visible on the screen.
Since the Dynamo-specific helper forms resemble each other, the user should create a new one by exporting one from an existing Dynamo set and importing it into the VBA project and modifying it accordingly.
In this chapter the code of the Dynamo-specific helper form is explained with the help of the code of the form frmAOHelper.
Initializing the Dynamo object
Declaration:
Public Sub InitializeAO( ByVal DynamoObject As Object, _
Optional ByVal RunMode As Boolean = False)
Explanation:
In the workspace’s configuration mode, the Dynamo’s variable object named IAT_Initialized is used to communicate between the Unity Application Generator and iFIX: when the Unity Application Generator creates the Dynamo object in a picture it sets the InitialValue property of this variable object to False to signal that the Dynamo object needs to be initialized. Then the Unity Application Generator fires the Dynamo object’s Edit event, which in turn calls this function to start the initialization. The actual work will be done in two other functions of the same module, called InitializeAOObjects and InitializeAOObjectsRun for the Dynamo IAT_AO1. When the initialization is finished, the Dynamo object has to set the InitialValue property of its IAT_Initialized variable to True to let the Unity Application Generator know that the work is done.
Not all information to initialize the Dynamo object might be available when the Dynamo object is created. If a real-time database tag needs to be accessed to retrieve some information, for example the configured display format, and the tag is contained in a remote node’s database, then the tag is accessible in the workspace’s run mode only. In such cases a part of the initialization needs to be delayed. The Dynamo object uses its variable object IAT_Updated internally to signal the need of some further initialization in run mode.
Necessary modifications:
Change the function name in this way that it ends with the name of the Dynamo Within the function change the names of the called functions InitializeAOObjects and
InitializeAOObjectsRun (defined below in the same module) so that they contain the name of the Dynamo
170 33002608 09/2014
Creating Intellution Dynamos
Showing the Dynamo-specific Operator Window
Declaration:
Public Sub ShowAOWindow(ByVal DynamoObject As Object)
Explanation:
The purpose of this routine is to show the operator dialog of the selected Dynamo object. The event handler of the Dynamo’s Click event calls this routine in the workspace’s run mode whenever the Dynamo object is clicked. Calling the function FindAOWindow checks whether a form for this particular Dynamo object is already open. If so, the window is brought to the foreground at its current position, otherwise a new form object is created, initialized for the current Dynamo object and shown in a modeless window. Using a modeless (instead of a modal) window means that the user does not have to necessarily close the window before the user can interact with other windows of the same application.
Necessary modifications:
Change the function name so that it contains the name of the Dynamo. Within the function change the name of the called function FindAOWindow (defined below in the
same module) so that it contains the name of the Dynamo.
Finding an open Dynamo-specific Operator Window
Declaration:
Private Function FindAOWindow(ByVal DynamoObject As Object) _
As frmAO
Explanation:
The code of this function loops through all open VBA forms to look for the operator window belonging to the specified Dynamo object. If the corresponding form object is found, it is returned, otherwise the return value is nothing.
Necessary modifications:
Change the function name in this way that it contains the name of the Dynamo: both in the declaration and within the function where the return value is assigned.
Replace the type of the form frmAO by the exact type of the form object for the Dynamo’s operator window in three places:a. In the declaration of the function’s return type.b. In the declaration of the local variable frm.c. In the text string where the type name is checked.
Verify that the Microsoft Forms library is referenced by the VBA project, otherwise the user receives a detected error in compilation, since the type UserForm will be unknown: Open the list of available references with the menu items Tools/References and verify that the entry "Microsoft Forms 2.0 Object Library" has a checkmark
33002608 09/2014 171
Creating Intellution Dynamos
Updating the Dynamo-specific Operator Window
Declaration:
Public Sub UpdateAOWindow( ByVal DynamoObject As Object, _
ByVal VarName As String, _
ByVal DataValue As Variant)
Explanation:
When the operator window, a VBA form, is opening, it can read and display current values from real-time database tags. To keep those values in the open form up-to-date, we need the help of the Dynamo’s event objects: Whenever a DataChange event of one of the Dynamo’s event objects occurs, this routine is called.
First, this routine calls the Dynamo’s initialize routine to perform any initialization delayed until the workspace is in run mode. Secondly, and as its main purpose, it checks whether there is an open operator window for the given Dynamo object and if so, it calls the Update routine of the corresponding form object, providing the name of the changed variable and its new value.
Necessary modifications:
Change the function name so that it contains the name of the Dynamo Replace the type of the form frmAO by the exact type of the form object for the Dynamo’s
operator window in the declaration of the local variable frm Within the function change the name of the called function InitializeAO (defined below in the
same module) so that it contains the name of the Dynamo Within the function change the name of the called function FindAOWindow so that it contains
the name of the Dynamo
Initializing the Dynamo’s Component Objects in Configure Mode
Declaration:
Private Sub InitializeAOObjects(ByVal DynamoObject As Object)
Explanation:
The purpose of this routine is to modify the Dynamo’s component objects such that the Dynamo instance represents a particular control module instance. That is, the sources of the Dynamo’s animation and event objects have to contain the names of the corresponding real-time database tags.
172 33002608 09/2014
Creating Intellution Dynamos
When the Unity Application Generator generates the HMI application it writes the necessary information to the Dynamo object’s mandatory variable objects, mainly the variables IAT_Name, IAT_ScadaNode and IAT_Description. The code retrieves this information and composes it to qualified tag names in the form DataSystem.Node.Tag.Field, where
DataSystem is Fix32. Node is the value read from IAT_ScadaNode. Tag is the name of a control module variable defined in the Unity Application Generator, so Tag
is composed of the control module name read from IAT_Name followed by an underscore and the name of a particular variable of that control module.
Field is the name of an iFIX tag field, e.g. F_CV to access the tag’s current value.
Necessary modifications:
Change the function name so that it contains the name of the Dynamo. The first part of the routine to read the variable objects can be reused, but which animation
objects and event objects exists and which tag names they refer to is Dynamo-specific and needs to be adjusted appropriately.
Initializing the Dynamo’s Component Objects in Run Mode
Declaration:
Private Sub InitializeAOObjectsRun(ByVal DynamoObject As Object)
Explanation:
As explained above, in some cases it is necessary to delay a part of the initialization of the Dynamo’s component objects until the workspace is in run mode. This routine is called when the first ChangeEvent of one of the Dynamo’s event objects has occurred and allows completing the initialization.
Necessary modifications:
Change the function name so that it contains the name of the Dynamo The code within the routine is Dynamo-specific and needs to be adjusted appropriately.
Dynamo-specific Operator Window
The purpose of this form is to provide a custom operator dialog to display status information and allow entering commands.
Therefore the user has to create objects on this form to enable this interaction through standard VB controls like labels, text fields, check boxes, command buttons or even custom ActiveX controls and all the necessary VBA code has to be implemented so that the dialog operates appropriately.
The routines explained in the following are mandatory for each SCoD-compatible Dynamo (if the Dynamo provides such an operator window). The code contained in these routines will be specific to the Dynamo. Other routines will be necessary to implement the proper behavior of the controls in the operator window.
33002608 09/2014 173
Creating Intellution Dynamos
Initializing the Form
Declaration:
Public Sub InitializeDynamo(ByVal DynamoGroup As Object)
Explanation:
The mandatory procedure InitializeDynamo is called before the form is opened and it initializes the form for a given Dynamo object. First of all, it stores the Dynamo object provided to the routine in a variable defined at module level, which allows accessing the Dynamo object and its component objects from every routine within the module. Other actions to perform within this routine can be:
1. Accessing the Dynamo’s mandatory variable objects to compose and store the actual tag names that belong to the Dynamo object.
2. Initializing the controls within the form.
Updating the Form
Declaration:
Public Sub Update(ByVal VarName As String, _
ByVal DataValue As Variant)
Explanation:
This mandatory routine is called whenever one of the Dynamo’s event objects has fired its DataChange event, that is the corresponding real-time database tag has changed. The new value is provided to the routine together with the name of the changed variable. The code of the routine depends on the controls that have to be modified due to the new values and differs thus from one Dynamo type to the other.
Getting the Dynamo Object for the Form
Declaration:
Public Property Get DynamoObject() As Object
Explanation:
This mandatory property named DynamoObject allows checking whether this form was opened for a particular Dynamo object. It returns the Dynamo object that was provided to the form with the routine InitializeDynamo.
Activate Event for the Form
Declaration:
Private Sub UserForm_Activate()
Explanation:
The Activate event occurs when the form becomes the active window. A window can become active by user action, such as clicking it, or by using the Show method in code. The purpose of the code is to assign the properties of the various objects (visual and non-visual) current values as available from the real-time database. Since this could be done also in the routine Initialize-Dynamo, handling this event is not mandatory but recommended.
174 33002608 09/2014
SCoD Editor 3.3 SP4
Additional information
33002608 09/2014
Additional information
Chapter 10Additional information
Introduction
This chapter provides additional and common information which are not allocated to a specific part of the SCoD editor.
What Is in This Chapter?
This chapter contains the following topics:
Topic Page
Read-only Mode 176
Commandline arguments 177
33002608 09/2014 175
Additional information
Read-only Mode
Introduction
In Unity Application Generator the user can open the SCoD or customization editor from within the main Window. If the SCoD editor is opened from UAG, the editor is in read-only mode, i.e., the user can browse the data, but cannot change it. The user can save the data by using a new file name and change the data afterwards.
If the SCoD editor is started within UAG, it shows the currently selected SCoD in the View FFB mode. If a control module variable is selected in UAG, then the SCoD editor will open the respective SCoD and shows the selected variable. If no project is open in UAG, or no SCoD and no control module variable is selected, the SCoD editor opens with no library loaded.
176 33002608 09/2014
Additional information
Commandline arguments
Introduction
The user has the possibility to start the SCoD editor by using commandline arguments. The following list gives an overview of the commandline arguments.
Commandline arguments of SCoDEditor
Usage:
SCoDEditor.exe [[-r] [-s name [-v name [-prop * | name] | -p name [-viewffb] [-prop *]]] library]
libraryEntire path of osl file.
Options (if a library is specified)
-r[ead only]opens file in read-only mode.
-s[cod] nameShows specified SCoD.
-v[ariable] nameShows specified variable.
-p[in] nameShows specified pin.
-viewffbShows pin in ViewFFB mode.
-prop[erty] *Opens property dialog of variable or pin.
-prop[erty] nameOpens property dialog of variable and show specified property.
33002608 09/2014 177
Additional information
178 33002608 09/2014
SCoD Editor 3.3 SP4
Glossary
33002608 09/2014
Glossary
A
ActiveXActiveX is an open specification designed to govern how software components interact. ActiveX objects are pre-built, reusable software components that have interactive capabilities. An ActiveX is a programming construct that combines data (properties) with functions (methods) for using the data. Graphic objects in the HMI representing the Control Modules of Unity Application Generator are built as ActiveX controls.
AdministratorPerson or persons responsible to customize Unity Application Generator according to the companies requirements, e.g. naming conventions, documentation tools. The administrator is responsible for the user/user group administration.
Alarm ViewOverview mimic, which can be accessed via all alarm messages assigned to the alarm view.
AnalyzerPart of Unity Application Generator that checks the formal validity of the total design.
AreaA component of manufacturing site that is identified by physical, geographical, or logical segmentation within the site.
B
Batch The material that is being produced or that has been produced by a single execution of a batch
process. An entity that represents the production of a material at any point in the process.
Batch means both the material made by and during the process and also an entity that represents the production of that material. Batch is used as an abstract contraction of the words "the production of a batch".
33002608 09/2014 179
Glossary
C
ChannelA Channel describes the following: To which objects of the control system the PLC communicates Via which communication path the communication takes place Via which alternative path the communication takes place Which variables have to be exchanged
The communication is done through a PLC. This means,1 communication partner in a Channel is a PLC.
Control(Process control) The control activity that includes the control functions needed to provide sequential, regulatory, and discrete control and to gather and display data (defined in S88).
Control DomainLogical group of process elements which are controlled by an operator.
Assigned to a Control Domain are Operator screens Access rights Alarms
Control EngineerSpecialist in all aspects of a control system like PLC, HMI and networking rather than the process itself.
Control ModuleIndividual or collections of sensors and actuators and associated processing equipment that from a control view point is operated as a single entity, e.g. motor, valve, level switch, alarm light.
A Control Module is derived from a Control Module Type (SCoD).
Control Module TypeControl Module Types are generic types of Control Modules, which are tested and validated and can be re-used as often as needed.
Control Module Type VariableControl Module Type variables are related to a Control Module Type. They are automatically generates for each instance of a Control Module Type.
CSV FileA CSV (comma separated value) file is an ASCII file containing a number of lines. Each line of a CSV file contains a number of entries, separated by a separator, for example a comma or a semicolon or a tab. CSV files can be used for exchanging data between different software programmes. Unity Application Generator allow import and export of CSV files.
180 33002608 09/2014
Glossary
D
Data ServerServer for all for all HMI related data (e.g. variables).
E
Equipment ModuleA functional group of Control Modules that can carry out a finite number of specific minor processing activities.
An Equipment Module is typically centered around a piece of process equipment (a weigh tank, a process heater, a scrubber, etc.) or process activities e.g. dosing and weighing.
F
FBDFunction Block diagram (FBD)
One or several sections containing graphically represented networks consisting of functions, Function Blocks, and links.
Free Control ModuleA Free Control Module is a Control Module which is not a generic Control Module Type. It does not define any logic for the PLC nor any predefined functionality for the HMI. Free Control Modules can have free variables assigned to it. They are typically used for process hardware for which no appropriate Control Module Type is available.
Free VariableFree variables are variables which are manually defined for
Functional Physical Elements Control Modules
Function Block (instance) (FB)A Function Block is a program organization unit which provides values for its outputs and internal variable(s) according to the algorithms defined in its Function Block type description, when executed as a specific instance. All values of the outputs and internal variables of a specific Function Block instance are maintained from 1 invocation of the Function Block to the next. Therefore, multiple calls of the same Function Block instance with the same arguments (values of input parameters) do not necessarily yield the same output value(s).
Each Function Block instance is graphically displayed by a rectangular block symbol. The name of the Function Block type is centered on top, inside the rectangle. The name of the Function Block instance is also on top, but outside the rectangle. It is automatically generated when building an instance, and should not be changed by the user (if the FB was generated by Unity Application Generator). Inputs are shown to the left, outputs to the right of the block. The names of the formal input/output parameters are shown inside the rectangle at the corresponding input/output points.
33002608 09/2014 181
Glossary
G
Generic ModuleGeneric modules are user defined hardware modules which are not known by name in Unity Pro. The administrator adds them to the list of modules in the customization. He must specify the number of inputs and outputs, the number of 0x (%M), 1x (%I), 3x (%IW) and 4x (%MW) registers consumed and the possible rack type = Generic. Generic modules can only be configured in generic racks and are NOT generated. They can not be configured in Quantum/Premium racks and are not entered in the Unity Pro I/O mapping. The specifications made are only used for the reservation of state RAM addresses and for the addresses of the I/O variables.
Global Network PathsEarlier term for Routing Paths
H
HMIHMI = Human Machine Interface. Also called supervisory system. Through the HMI the operator controls the production process.
I
Instrument ListList of all Instruments used in a control project.
InstrumentsThe sensors and actuators used by the PLC to measure and modify the physical and chemical characteristics of the process.
M
Memory MapperPart of Unity Application Generator. Generates all addresses of variables, IO definitions, communication parameters etc. for both, PLC and HMI consistently. The Memory Mapper can be run during the design procedure for checking the addressing.
N
Net PartnerA Net Partner is a node on the network that communicates with the PLC but is neither a Schneider PLC, an HMI or a Data Server. Examples are Magelis hand held panels, PLCs of different make, an intelligent sensor or actuator. It can communicate via Modbus Plus or Ethernet with other devices therefore the communication with the Net Partner is defined in Unity Application Generator.
182 33002608 09/2014
Glossary
NetworkA network is the interconnection of units along a shared data path that are communicating with each other via a common protocol.
Network NodeA Network Node is an object in the Topological Model and consists of Net Partners and Other Nodes.
Network SegmentNetworks are divided in segments. This reduces the data transfer load per segment because only the data relevant for devices of the respective segment are transmitted on a Network Segment.
O
OLEObject linking and embedding
OperatorPerson or persons responsible for using the run-time process control system in order to control the process.
Other NodeAn Other Node is a node on the network that communicates with the PLC but is neither a Schneider PLC, an HMI, a Data Server nor a Net Partner. Examples are Operator PCs or intelligent drivers. It can communicate via Modbus Plus or Ethernet with other devices, but the communication with the node is not defined in Unity Application Generator. It is used to reserve a network address and displaying the node in the Topological Viewer, only.
P
P&IDPipework and Instrument Drawing
Physical ElementPhysical Element is a generic term for objects like Area, Process Cell, Unit and Equipment Module as defined in the Physical Model of ISA S88.01.
There are 2 kinds of Physical Elements in UAG: Structural Physical Elements
structure the automation facilities of a site. Structural Physical Elements can contain other Physical Elements.
Functional Physical Elementscorrespond to functional entities as defined for the Equipment Modules in the Physical Model of ISA S88.01.As opposed to ISA S88.01, they can be used for each hierarchy level of the Physical Model in UAG.
33002608 09/2014 183
Glossary
Functional Physical Elements can contain other Physical Elements, Control Modules and Variables.
Physical Model Defines the hierarchy of the Physical Elements used in the process.
PLCProgrammable Logic Controller is used to automate and control a process
ProcedureThe strategy for carrying out a process.
ProcessA sequence of chemical, physical, or biological activities for the conversion, transport, or storage of material or energy (defined in S88).
Process CellA logical grouping of Equipment Modules that includes the Equipment Modules required for production of 1 or more batches. It defines the span of logical control of 1 set of process Equipment Modules within e.g. an Area (defined in S88).
Process controlThe control activity that includes the control functions needed to provide sequential, regulatory, and discrete control and to gather and display data (defined in S88).
Process EngineerSpecialist in all aspects of process which has to be controlled rather than the control system.
Process Objects An element of processing equipment which is represented in the PLC and supervisory control (HMI) with all of its attributes.
R
Routing PathRouting Paths define the bridges and their addresses which interconnect different Network Segments. (In earlier versions a Routing Path was called global network path.)
S
SCADASupervisory Control and Data Acquisition.
In iFIX an HMI system is called SCADA system, a Data Server is called SCADA host.
SiteLogical unit to structure the process. Highest level element of the Physical Model of Unity Application Generator.
184 33002608 09/2014
Glossary
Supervisory Control (HMI)Allows an operator to manage the running of the process via the process control system
System AdministratorPerson or persons responsible for customizing Unity Application Generator according to the project needs.
T
Topological ModelIn Unity Application Generator the Topological Model defines the architecture of the control system. It comprises the definition of the PLC hardware, HMIs and networks.
Topological ViewerGraphical representation of the Topological Model in a separate screen on Unity Application Generator.
Type-less Control ModuleA type-less Control Module is a Control Module with no type assigned. It is neither a Control Module Type nor a Free Control Module.
With type-less Control Modules the process engineer has the possibility to configure a Control Module in the Physical Model tree even, if he is unclear about the specific implementation.
The control engineer can assign a type-less Control Module to a PLC. As long as the type stays undefined, nothing is generated, but the Analyzer prints a message. A type can be assigned at any time throughout the development process of the project. Once the type is defined, the properties and variables of this Control Module can be defined. It is not possible to change back to a type-less Control Module once the type has been assigned.
U
UnitA collection of associated Control Modules and/or Equipment Modules and other process equipment in which 1 or more major processing activities can be conducted (defined in S88).
V
VariableIn general a variable is a free definable parameter.
Unity Application Generator distinguishes two major variable types Control Module Type variables Free variables
33002608 09/2014 185
Glossary
View NodeThe term View node is used in iFIX for an HMI. It corresponds to the term HMI in Unity Application Generator.
X
XML FileXML (Extensible Markup Language) is a general-purpose specification for creating custom markup languages.
XML is recommended by the World Wide Web Consortium (W3C). It is a fee-free open standard. The recommendation specifies lexical grammar and parsing requirements (www.w3.org).
XML files can be used for exchanging data between different software programmes. Unity Application Generator allows import and export of XML files.
186 33002608 09/2014
SCoD Editor 3.3 SP4
Index
33002608 09/2014
Index
AAccess Level, 63Access Rights, 147ActiveX, 137
Program Structure, 140Public Properties, 143
Additional informationCommandline arguments, 177
alarm definition, 45Alarm Group, 67Alarm Priorities, 64Analyzer, 96ANY, 64Archive Name, 67
Bbit to word, 51Block Write, 64Box
Check, 147Text, 147
Branching, 130BW, 64
CCaption of Property, 57Change Pin Usage, 86Citect
compatible data types, 123create genies for free variable HMI sym-bols, 122create genies for HMI symbols, 116distributing HMI Symbols from SCoDs, 115genies, 113referencing HMI Symbols from SCoDs,
33002608 09/2014
115SCoD, 113symbol library project, 115
Client Builder, 127Symbols, 127
Client.zip, 136Command Button, 147Command Mode, 145Commandline arguments, 177Commit a SCoD, 102Commit General Data, 63Communication between HMI and PLC, 26Communication Frame, 67compatible data types
Citect, 123Configurable SCoD Properties, 57Connection Type, 26
Change, 85Control application, 14Control Module, 14copy and pasting
variable, 42Create a SCoD, 79create genies for control module HMI sym-bols
Citect, 116create genies for free variable HMI symbols
Citect, 122
DData Type, 26Data Types
derived, 65elementary, 65
data typesextended data types of Unity Pro, 25
Data Typesextended Data Types of Unity Pro, 66
data types compatibleCitect, 123
187
Index
Database, 15DDT, 22derived data type, 22derived function block, 18DFB, 18Display Format, 66distributing HMI Symbols from SCoDs
Citect, 115Dynamo, 153
Event Objects, 164General Architecture, 157Geometric Objects, 161Objects, 158Prerequisites, 155Text Objects, 164Variable Objects, 164
EEasy Database Access, 138EFB, 18
Toolkit, 15elementary function block, 18enumeration list, 66, 68
creation, 68how to assign, 68project info, 70report, 68string values, 70system, 70
EventActivate, 174Click, 167DataChange, 168Edit, 167Handling, 167
EW, 64Example, 78Exception Write, 64export out of SCoD editor
XML export, 99
188
Extension*.bas, 138*.ctl, 138*.frm, 138*.pag, 138
FFFB, 18Form Object, 146function and function Block, 18
GGeneral Data, 63genies
Citect, 113Vijeo Citect, 113
HHelper Form, 169HMI, 66
II/O Type, 26
Change, 86iFIX, 158
Workspace, 159import/export
export out of SCoD editor, 99Inheritance, 61
Relations, 62Rules, 61
Initialize the form, 174Initialize the the Dynamo object, 170Intellution, 153Intellution Dynamo, 154Interlock, 56
Pin, 56Interlock Pin, 86
33002608 09/2014
Index
LLiteral, 56
Mmasking, 51Master, 62Measurement Unit, 67Microsoft, 137Monitor Pro
Client Builder, 125Data conversion, 64Data types, 64Symbol, 125
OOFS, 65
PPin, 53
Interlock, 56, 86Properties, 53Usage, 55
PinsDDT, 53DFB, 53EFB, 53
Pins and Variables, 83PLC_HMI, 26Private Properties, 146Project Analyzer, 96project info
enumeration list, 70Property Tabs, 94Public Events, 146Public Methods, 146Public Properties, 143
Function Dependent, 144Function Independent, 143
33002608 09/2014
RRD, 64Read Data, 64Read-only mode, 176referencing HMI Symbols from SCoDs
Citect, 115Report, 97Report Generator, 97
SSCoD, 14
Citect, 113Commit a SCoD, 102Components, 15definition, 18Library, 15Management, 102Modification, 103Modifications, 105Properties, 57Vijeo Citect, 113
Security, 149Slave, 62string values
enumeration list, 70symbol library project
Citect, 115system enumerations, 70
unique identifier (UID), 75
TTab Definition, 58Template Libraries
handling SCoD library modifications, 106Template Type
handling SCoD library modifications, 106Time Stamp, 78Type
Connection, 26Data, 26I/O, 26
189
Index
Uunderscore limitation, 82Underscore limitation, 84unique identifier (UID)
system enumerations, 75Unity Pro
extended data types, 25extended Data Types, 66import, 80
Unsolicited Read, 64Update the form, 174UR, 64UserControl, 139
Vvariable, 22
alarm definition, 45copy and pasting, 42
VariableDelete, 85
variablegeneral properties, 22how to set a variable, 37properties, 29
VariableProperties, 88
variableproperty options, 39
VariableRename, 84
VAS_EXAM.DFB, 82VAS_EXAMPLE.DOC, 94VAS_EXAMPLE.DOC Example, 78VBA, 166
Script, 166Vijeo Citect
genies, 113SCoD, 113
Visual Basic for Applications, 166
190
33002608 09/2014Recommended