scod editor 3.3 sp4 - electroautomaticaelectroautomatica.ru/img/documentation/33002608k01000.pdf ·...

190
33002608.13 www.schneider-electric.com SCoD Editor 3.3 SP4 33002608 09/2014 SCoD Editor 3.3 SP4 a SoCollaborative software User Manual 09/2014

Upload: ngoxuyen

Post on 09-Mar-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 2: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 3: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 4: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 5: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Chapter 10 Additional information . . . . . . . . . . . . . . . . . . . . . . . . . . 175Read-only Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Commandline arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

33002608 09/2014 5

Page 6: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

6 33002608 09/2014

Page 7: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 8: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 9: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 10: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

10 33002608 09/2014

Page 11: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 12: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 13: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 14: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 15: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 16: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Introduction to the SCoD methodology

16 33002608 09/2014

Page 17: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 18: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 19: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 20: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 21: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 22: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 23: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 24: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Definition of a SCoD

The following figure shows the Variable Properties dialog

24 33002608 09/2014

Page 25: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 26: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 27: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 28: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 29: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 30: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 31: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 32: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 33: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 34: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 35: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 36: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 37: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 38: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 39: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 40: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 41: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 42: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 43: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 44: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Definition of a SCoD

Example

44 33002608 09/2014

Page 45: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 46: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Definition of a SCoD

Alarm Tab of Variable Properties

Alarm tab in Show List mode

46 33002608 09/2014

Page 47: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 48: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 49: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Definition of a SCoD

New Alarm in Show Details Mode

Alarm tab in Show Details mode

33002608 09/2014 49

Page 50: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 51: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 52: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 53: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 54: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 55: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 56: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 57: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 58: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 59: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 60: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Definition of a SCoD

The following figure shows the SCoD properties displayed in the Unity Application Generator.

60 33002608 09/2014

Page 61: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 62: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 63: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 64: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 65: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 66: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 67: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 68: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 69: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 70: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 71: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 72: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 73: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 74: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 75: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 76: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Definition of a SCoD

76 33002608 09/2014

Page 77: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 78: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 79: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 80: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 81: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 82: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 83: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 84: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 85: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 86: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 87: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 88: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 89: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 90: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 91: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 92: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 93: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 94: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 95: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating a SCoD

The following dialog box shows the Property Tabs of the VAS_EXAM SCoD.

33002608 09/2014 95

Page 96: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 97: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 98: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 99: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 100: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating a SCoD

100 33002608 09/2014

Page 101: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 102: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 103: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 104: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 105: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 106: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 107: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 108: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 109: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 110: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 111: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 112: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating PLC Function Blocks

112 33002608 09/2014

Page 113: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 114: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 115: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 116: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 117: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 118: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 119: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 120: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 121: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 122: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 123: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 124: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating Vijeo Citect Compatible SCoDs

124 33002608 09/2014

Page 125: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 126: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 127: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 128: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 129: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 130: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 131: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating a Monitor Pro Symbol

The following programming code shows the entire Monitor Pro symbols and the mimic.

33002608 09/2014 131

Page 132: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating a Monitor Pro Symbol

The following figure shows the symbol and free variable from the coding example above.

132 33002608 09/2014

Page 133: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 134: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 135: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 136: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 137: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 138: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 139: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 140: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 141: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 142: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 143: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 144: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 145: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 146: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 147: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 148: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 149: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 150: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 151: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 152: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Creating Microsoft ActiveX Objects

152 33002608 09/2014

Page 153: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 154: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 155: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 156: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 157: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 158: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 159: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 160: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 161: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 162: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 163: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 164: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 165: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 166: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 167: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 168: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 169: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 170: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 171: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 172: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 173: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 174: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 175: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 176: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 177: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 178: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

Additional information

178 33002608 09/2014

Page 179: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 180: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 181: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 182: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 183: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 184: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 185: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 186: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 187: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 188: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 189: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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

Page 190: SCoD Editor 3.3 SP4 - Electroautomaticaelectroautomatica.ru/img/documentation/33002608K01000.pdf · iFIX as an ActiveX Container ... Related Documents ... Test and verify the operation

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/2014