You are on page 1of 218

FactoryStudio

UserGuide

www.tatsoft.com

TatsoftTM LLC FactoryStudio User Guide


2013 TatsoftTM LLC
Tatsoft and FactoryStudio are trademarks of Tatsoft LLC.
Other product and company names may be trademarks of their respective owners.

Contents
1: GettingStarted

Welcome to FactoryStudio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
About This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Installing FactoryStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Starting FactoryStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Licensing FactoryStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Installing services on IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
II Configuration Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2: TechnicalOverview

15

FactoryStudio Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16


What is FactoryStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Application Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
Network Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Real-time, in-memory database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Object Model and Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
FactoryStudio Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
FactoryStudio Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Realtime Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Graphical Displays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
Security and Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Trend and Historian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Devices Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Alarms and Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Datasets and SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Scripts and .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Reporting and Data Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Testing and Running Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Information and Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34

3: ManagingProjects

37

Viewing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37


Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Finding Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
Allowing Remote Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Accessing Remote Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Running Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
FactoryStudioUserGuide

FactoryStudio User Guide


Upgrading Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Project Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4: EngineeringWorkspace

45

Workspace Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45


Grid Splitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Using the Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Navigating in the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Working with DataGrid Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Editing Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Tooltips and Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Sorting, Filtering, and Grouping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Adding and Removing Columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Common Column Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Copying and Pasting Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Importing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Using the Cross-Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Intellisense and Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Dictionaries and Localization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Runtime Language localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Enumeration Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Categories Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Import Wizards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Configuring Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59

5: Tags,AssetsandTemplates

61

Creating and Editing Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61


Built-in Tag Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Reference Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Tag Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Creating Tag Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Creating Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
Creating Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
Tag Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
Tag Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

6: HistorianandDataLogging

71

Adding Tags for Data Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71


Configuring Historian Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
Historian Database Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
Using OSIsoft(tm) PI System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
Historian Tables Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
Visualizing Trend Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Customizing Getting Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Historian Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
Security and Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
ii

Contents

FactoryStudio User Guide


Adding and Editing Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Configuring Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Configuring Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Removing Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Managing Runtime-only Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Customizing Login Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Security Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

8: DevicesandInterfaces

83

Communication Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Included Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Supported Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Additional Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Driver toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Configuring Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Configuring Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Importing PLC Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Configuring Data Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Configuring Access Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Diagnostics tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Module Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Property Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Trace Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Device Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

9: Alarms,EventsandAuditTrail

99

Configuring Audit Trail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99


Configuring Alarm Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Configuring Alarm Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Configuring Alarm Items. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
EditAlarmsItems.Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
Alarm Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Subscribing Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Alarm Database and Table Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Alarm Runtime Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

10:DatasetsandDataExchange

105

Configuring Database Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105


Accessing Microsoft Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Configuring Database Tables Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Configuring Database Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Configuring Files for Data Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Dataset Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

11:Scriptsand.NETFramework

115

Configuring Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115


Configuring Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Working with the Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
FactoryStudioUserGuide

iii

FactoryStudio User Guide


Configuring Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
Using the .NET Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Creating debugger Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Attaching the .NET debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Breakpoints, steps and watch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Script Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121

12:DisplaysandSymbols

123

Selecting and Creating Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123


Creating Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
Displays Code Behind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
Desktop and iOS Client Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Designer Drawing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Dynamics and Animations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
Action Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Shine Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Text I/O dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Hyperlink and Security dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Fill, Line and Text Color Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Bargraph Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Visibility Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
MoveDrag Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Scale Dynamic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Rotate Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Skew Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
TextOutput Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
User Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Configuring a Circular Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Configuring a PieChart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Configuring a BarChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Configuring an Alarm Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Configuring the Trend Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Configuring a DataGrid Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Managing Images and Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
Image Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
Symbol Factory Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
Local symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
Automatically linking tags and symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
Display Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167

13:ReportsandDataAccess

169

Creating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169


Using the Report Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
Report Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170

14:Run,TestandPublishProjects

171

Running the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171


iv

Contents

FactoryStudio User Guide


Using the Diagnostic Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Property Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
Trace Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174
Module Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
Build and Pack Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Project Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Tracking configuration changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Publishing the Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Information Runtime Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

15:DeployingFactoryStudioProjects

179

Local and Distributed Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179


Product installation on the target computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
License and Project Settings Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Installing the Project Configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Setup the server to start the runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Using a Shortcut on Windows Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Creating the shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Using a Windows Service to Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Remote Client Users Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Windows Rich Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Windows Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Windows Web Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Automatically Starting Windows Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
iOS, iPhone and iPads, Clients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Deploying Redundant Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Configuring Redundancy options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

16:FactoryStudioVersionsandLicenses

193

FactoryStudio Version numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193


FactoryStudio Licenses Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Product Family and Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Remote Project Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Project Settings versus License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Using Multiple Versions Concurrently . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

A: RuntimeNamespaces

199

B: Glossary

201

FactoryStudioUserGuide

FactoryStudio User Guide

vi

Contents

1:GettingStarted
The following sections will help you get started with FactoryStudio:

Welcome to FactoryStudio on page 1

About This Guide on page 2

Getting Help on page 2

Installing FactoryStudio on page 3

Licensing FactoryStudio on page 5

Starting FactoryStudio on page 5

Licensing FactoryStudio on page 5

Installing services on IIS on page 6

WelcometoFactoryStudio
FactoryStudioTM software is a powerful platform and framework to develop and deliver applications.
FactoryStudio provides a rich, unique, and intuitive user interface, dynamic graphics complemented
by a graphic editor, and real-time data acquisition capabilities from an extensive library of industry
protocols.
FactoryStudios comprehensive feature set also includes easy information exchange and data access
with databases such as Microsoft SQL Server, OSIsoft(tm) PI Systems, Oracle, Sybase, Informix,
MySQL and others. The system includes a user-friendly alarm server and event notification module, a
logging and reporting module, an advanced historian server, business logic management capabilities,
as well as support for local and remote clients, browser based, as well as for the iPad and iPhone.
FactoryStudio was built from the ground up, without using any legacy code. It is a 100% managedcode application that lets you leverage and take advantage of the full potential of the Microsoft .NET
Framework today as well as tomorrow. FactoryStudio fully supports Software as a Service (SaaS)
deployment combined with typical local installations, letting you access and collaborate on
development and projects anywhere in the world with just a web browser.
Automation engineers can develop SCADA/HMI (supervisory control and data acquisition/human
machine interface) projects that automate a myriad of functions on your factory floor. IT personnel
can develop projects that centralize information and send data to portals for management and
analysis. In addition, a single project can perform both automation and management functions.

FactoryStudioUserGuide

AboutThisGuide
This guide is for users of FactoryStudio and describes how to install and use the software. You should
be familiar with your systems and control needs.
This guide uses the following symbols and typographical conventions.
Convention

Description

Bold

Words in bold show items to select or click, such as menu items or buttons.
Warning contain critical information that may affect your data and system.

Warning
Tip

Tip contains useful information to enhance your application design and


productivity.

Note

Notes contain important information that may affect how you install or
configure your system.

GettingHelp
User Guide and Google Search
The FactoryStudio User Guide is available on PDF and CHM at the local computer and online using
standard HTML pages or using a WEB-only interface with integration with Google Translation. for
multi-language support, and direct links to social media.
The entry point to all four Help formats is located at the Info-Help area on the Project Configuration
Workspace, and is also accessible clicking on the Help Icon or pressing F1.
All the Help formats support context search. You also do a Google Search on the Tatsoft website, the
advantage of the Google Search is that it includes all the online help files, plus all content on the
Tatsoft web site, including the web forums.
At the Info-Help page, on the Project Configuration Workspace, contains an User Interface to enable
you to do Google Searches on the Tatsoft Site without leaving FactoryStudio window.

Online Forum, E-mail and Phone


Registered users have free access to the Online Forum at the Tatsoft site. If you have any difficulties
creating your account, send an email to support@tatsoft.com, this email account is also the entry
point to open technical support tickets for licensed users.
If you are not yet a licensed user and are evaluating the product, you are also entitled to support, send
your questions and requests to info@tatsoft.com.
Licensed users also have access to phone support, during USA CST business hours at 1-855-TATSOFT. Contact us for special agreements (charges may apply) regarding support outside business
hours, 24 hours support or online sessions.

1:GettingStarted

Distributor Support
In many countries and in the USA, FactoryStudio is sold through formal Distributor partners. A
Tatsoft Distributor always has an internal technical staff, trained by Tatsoft, to handle the technical
support within its distribution region.
The Distributor has close contact with its customer base, so it is the preferable source of technical
information when available within your region.
The Distributor is also certified to perform FactoryStudio training sessions.

System Integrators and VARs


Tatsoft has a System Integrator and VAR program to fully support companies developing applications
and solutions on top of FactoryStudio platform. The System Integrators and VARs are the primary
source to support end-users questions that are specific to the project configurations and solutions
created by them.

SystemRequirements
Following are the system requirements for FactoryStudio:

Microsoft .NET Framework v4.0

Operating systems: Any Operating System able to run the Microsoft .NET Framework
4.0 or Virtual Machines compatible with the Microsoft .NET Framework..

Windows 7, Windows 8, Windows Vista, Windows Server 2008 and Windows Server
2012 all come with Microsoft .Net installed.

For Windows XP, you must install Microsoft .NET Framework v4.0.

RAM Minimum requirements: Runtime 1 GB, Engineering 2 GB

Disk space250 MB.

Display resolution:

For developing applicationsMinimum of 1024 x 768.

For the application runtimeDisplays are resolution independent, so you can create
applications ranging from small 6" panels up to large high definition monitors.

For access to web-based installations, Internet Explorer v8 or later.

InstallingFactoryStudio
FactoryStudio is available as a download from the web site or from a USB. CDs are still available upon
request. If you downloaded the Express version for evaluation purpose only, the installation does not
require a license key.

FactoryStudioUserGuide

The Express version permits up to 75 communication points and two hours of runtime per use and it
is only intended for product evaluation and learning; Express versions are not allowed to be sold or
applied on projects for production installation.
The fully licensed version has no runtime limitations. For information about purchasing a license,
contact your distributor.
If you have Microsoft Internet Information Services (IIS) installed on your computer, you will see a
message during installation that the embedded web server could not be installed. All features of
FactoryStudio work without the embedded web server, except for remote access to projects and
serving runtime web pages. If you want to use these features, you can configure IIS to work with
FactoryStudio as described at section Installing services on IIS on page 6.
Use Windows Update to make sure you have all of the latest critical updates installed.
Some anti-virus, such as Bit-defender, shall be disabled before running the installation.
1. If you are using Windows XP, install Microsoft .NET Framework 4.0.

If you have Microsoft Office installed, this is typically already installed. If needed, you
can install it from http://www.microsoft.com/en-us/download/
details.aspx?id=17851.

2. Double-click the installation file.

The Welcome window displays.

3. Click Next.

The Choose setup type window displays.

4. Select the type of installation you want and click Next:

TypicalSelect for most installations.

CustomSelect only when you know you need to use specific protocols, and you do
not want to install additional protocols. Deselect the protocols you do not need.

The License agreement window displays.

5. Read the license agreement and if you agree to it, click Accept.

The Select installation folder window displays.

6. If you want to install to a different directory from the default, click Browse and navigate
to where you want to install.
7. Click Next.
8. Click Install.

When the installation is complete, click Finish.

If you purchased a license, you can license your installation. For more information,
see Licensing FactoryStudio on page 5. If you did not purchase a license, you can
use the Express version for evaluation and learning purposes.

1:GettingStarted

StartingFactoryStudio
After you install FactoryStudio, you should have a shortcut on your computers desktop and an item
on your Start menu.
To start FactoryStudio:
1. Do one of the following:

From your computers desktop, double-click the FactoryStudio icon.

From the Start menu, select All Programs > Tatsoft > FactoryStudio.

The main page displays. From this page, you can create, open, and search for
projects. The section Managing Projects on page 37 explain how use the
Project selection interface.

Tabs
Click to select
a different
view of the
project

LicensingFactoryStudio
If you purchased a license, you can license your installation. After you purchase the license, you must
register the license key. If you did not purchase a license, you can use the Express version for training
and evaluation.
The license can use a softkey or a hardkey (dongle). You can connect a hardkey to a computer that has
already a softkey installed. While the hardkey it is connected, the system uses the hardkeys license
settings.
Use the same procedure as below to update a license for both softkey and hardkey licenses.
For more information about licensing, see FactoryStudio Versions and Licenses on page 193.
To license FactoryStudio:
1. Start FactoryStudio.

See Starting FactoryStudio on page 5.

FactoryStudioUserGuide

2. From the main FactoryStudio page, click License.

Or go to Info > License > Register. when editing a project.

3. If you are using a dongle, connect it to your computer.


4. Click Get Site Code.
5. Navigate to where you want save the file, accept the default file name, and click Save.
6. When the confirmation message displays, click OK.
7. Send the file to your distributor or to sales@tatsoft.com.
8. After you receive the license key file via email, place the license key file in a folder on your
computer or network.
9. If you are using a dongle, connect it to your computer.
10. Start FactoryStudio.
11. From the main FactoryStudio page, click License.
12. Click Load Licensekey.
13. Navigate to the folder with the license key file and select the file.
14. Click Open
15. Verify the License Information, that shall show the serial number and the new license
settings.

InstallingservicesonIIS
When installing FactoryStudio, if IIS was previously installed, you will not be able to install our
embedded web server (TWebServer.exe).
The FactoryStudio software will run without the web server, except by remotely accessing project
configurations and serving runtime web pages; all other FactoryStudio engineering and runtime tools
run without needing to install the TWebServer or to do any IIS configuration.
If you want to enable remote engineering access and the web clients using IIS, you need to install
some FactoryStudio services in IIS or enabled the TWebServer embedded web server. Another
scenario where IIS is necessary is when you want to run the RUNTIME as a Windows Service, and
also to provide remote access to project web pages, iPad displays and project engineering.
In order to enable the TWebServer stop the IIS server or other applications potentially using port 80
and run the product installation. In order to setup the IIS server, follow the procedure in this chapter.
This section is the explanation of how to install those services in IIS. The explanation targets IIS 7.x
and 8, but other versions should be similar.
You are going to install three services inside IIS:

TProjectServer Allows you to remotely access your project configurations.


1:GettingStarted

TVisualizerWeb/TVisualizerRemote Allows remote access to runtime displays.

iDataPanelIs the service to provide data to iOS devices.

IIConfigurationProcedure
1. Verify that IIS is installed by going to Control Panel > Administrative Tools and
looking for Internet Information Services (IIS) Manager in the list.
2. Enable ASP.Net and .Svc Handlers for the WCF Service.
On IIS 7.x:
If IIS was installed after the installation of the .NET Framework it is necessary to run and verify a
procedure as described on http://msdn.microsoft.com/en-us/library/ms752252.aspx which is to run
the following programs using the command prompt as Administrator:

From the Microsoft .Net folder, open the Command Prompt and rung the following
commands:
aspnet_regiis.exe i enable
ServiceModelReg.exe -r

Microsoft .Net is installed in one of the following folders:

C:\Windows\Microsoft.NET\Framework\v4.0.30319 (for 32-bit operating


systems)

C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (for 64-bit operating


systems)

For IIS 8.0:

From the Control Panel, go to Program and Features, then click Turn Windows
features on or off.

Enable the ASP.NET 4.5 option. Navigate the tree: Internet Information Services >
World Wide Web Services > Application Development Features > ASP.NET 4.5:

Enable the HTTP Activation option (under .Net Framework 4.5 Advanced Services).

FactoryStudioUserGuide

3. From the IIS Manager, verify that the extension .svc is mapped to aspnet_isapi.dll.

If needed, follow the procedure described on http://msdn.microsoft.com/en-us/


library/ms752252.aspx for the version of IIS you are using.

The .NET Framework installation directory usually is:


C:\Windows\Microsoft.NET\Framework\v4.0.30319, or
C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (for x64 Windows)

4. From the FactoryStudio installation folder, run the utility: InstallTWebServer.exe /


uninstall, which will remove the default TWebServer installation.

1:GettingStarted

5. From IIS Manager, go to Sites > Default Web Site > Add Application and configure
the information for the services as described in following steps

6. For TProjectServer, configure:

AliasTProjectServer

Physical PathC:\Program Files\Tatsoft\FactoryStudio (Default folder. Make sure


you use the correct path to the FactoryStudio installation folder.)

Application PoolConfigure any pool based on .NET 4.0. Example: ASP.NET v4.0

Note:YoushouldallowEveryoneaccess,atleastforreading

From IE, use the URL http://localhost/tprojectserver/service.svc to verify if the


service was correctly installed. That should show a page with information about the
service.

7. For TVisualizerWeb/TVisualizerRemote, configure:

Aliasfs-2012.1

Physical PathC:\Program Files\Tatsoft\FactoryStudio\fs-2012.1 (Default folder.


Make sure you use the correct path to the FactoryStudio installation folder.)

FactoryStudioUserGuide

Application PoolConfigure any pool based on .NET 4.0. Example: ASP.NET v4.0

Note:Securityshouldenableanyuser(Everyone),atleastforreading.

On IE, test the URL http://localhost/fs-2012.1/service.svc to verify the service was


correctly installed. It should show a page with information about the service.

8. For iDataPanel Service, configure:

AliasiDataPanel

Physical PathC:\Program Files\Tatsoft\FactoryStudio\fs-2012.1 (Default folder.


Make sure you use the correct path to the FactoryStudio installation folder.)

Application PoolConfigure any pool based on .NET 4.0. Example: ASP.NET v4.0

Note:Securityshouldenableanyuser(Everyone),atleastforreading.

9. For DataPanelImages (Virtual Directory), configure:

10

1:GettingStarted

AliasiDataPanelImages

Physical PathC:\FactoryStudio Projects\iDataPanelImages

10. Enable Anonymous Authentication for each of the services.

11. Setup the Compression module. If it is not installed, you will see the alert boxes.

FactoryStudioUserGuide

11

If it's not installed, go to the


Server Manager, Roles, Web
Server. Under Role Services,
check your installed Roles. If
Dynamic Compression isn't
installed, click Add Roles and
install it.

You can go back to compression for your site and ensure Dynamic Compression is checked. At this
point, Dynamic Compression should be setup, but you really need to be specific about what
mimeTypes will be compressed.
Back in IIS Manager, go to the page for the
SERVER (not the SITE) and Click on Configuration
Editor:

From the dropdown, select system.webServer/ webdev / httpCompression:

12

1:GettingStarted

Then click on Dynamic Types and now that you're in the list editor. Add application/json as seen
below.

After you've added them and closed the dialog.


12. If your remote users cannot access the FactoryStudio, you should allow Everyone access
to the FactoryStudio folder, at least for reading. Right-click the folder, click the Security
tab, click Edit, then add read permissions for Everyone.

Warning
IIS must be restarted after configuring the services.

FactoryStudioUserGuide

13

14

1:GettingStarted

2:TechnicalOverview
This chapter provides a technical overview of the FactoryStudio product and a quick start guide to
understand the application areas and available configuration tools. The content is organized in the
following sections:

FactoryStudio Platform on page 16 contains information about:

What is FactoryStudio on page 16,

Application Areas on page 17 and

Network Topology on page 18

System Architecture on page 19 contains information on key concepts such as:

Real-time, in-memory database on page 19,

Object Model and Namespaces on page 21

FactoryStudio Projects on page 22 presents the Project Selection and configuration


user interface

FactoryStudio Modules on page 24 contains information about the main system


modules, including:

Realtime Tags on page 25

Graphical Displays on page 26

Security and Redundancy on page 27

Trend and Historian on page 27

Devices Communication on page 28

Alarms and Events on page 28

Datasets and SQL on page 28

Scripts and .NET on page 29

Reporting and Data Access on page 30

Testing and Running Projects on page 31 expose the basic concepts on running and
testing an application

Information and Version Control on page 34 explains some of features available to


manage the project life-cycle.

FactoryStudioUserGuide

15

FactoryStudioPlatform
WhatisFactoryStudio
FactoryStudio is a powerful platform to develop and deliver applications managing real-time information,
providing a complete set of modules in a unified and intuitive engineering user interface. It includes a realtime tag database, assets and templates, alarms and events, historian, recipes, SQL queries and database
access, reporting, .NET languages scripting, client and server OPC, WCF and native industry protocols,
dynamic graphics created on WPF and accessible from desktops, remote smart clients, web browser and
native iOS clients on iPads and iPhones.
FactoryStudio is vertical industry agnostic, with a flexible infra-structure for real-time data management, it
has been applied to Power & Utilities, Renewable Energy, Food & Beverage, Data-centers, Manufacturing,
Pharmaceuticals, Mining and Steel, Oil & gas, Chemicals, Machinery and OEMs, Water and waste-water
and Building Automation systems.

Technology Advantages
FactoryStudios architecture was created from a green field and entirely without the employment of any
legacy code; that made it possible to create a system which is simple to use yet very powerful and flexible.
It is a 100% .NET managed code application that empowers end-users and system engineers to leverage
and take full advantage of the most current technologies.
All-in one, complete, flexible and easy to apply
One of the core concepts FactoryStudio is based on, it is to provide a unified complete solution, so the
users dont have to build puzzles before starting their projects. The unified design from the ground up
enables you to create a very flexible system, yet maintaining the easy to use and intuitive design.

16

2:TechnicalOverview

ApplicationAreas
Process Control: control systems require reliable server components and dedicated rich displays, so the
security can be enforced and you have the full power of the computer. FactoryStudio has the complete set
of functionality to implement distributed mission-critical process control applications.
Native applications to iPads and iPhones: A native application can have functionality and quality of a
user interface that a web page just cannot match. FactoryStudio allows the same displays created for
desktops to also be available to run natively on iOS devices, including the option from the AppleStore.
SQL and OSIsoft(tm) PI System front-end: FactoryStudio has many features to manage SQL
Databases, tables and queries in real time. It also has an SDK level data synchronization with OSIsoft(tm)
PI System and PI AF(tm). That makes it the number one platform when you need to create custom
dynamic graphics and front-ends to those systems.
HMI, embedded and OEMs: FactoryStudio has a wide range of built-in PLC protocols and a special
version for Advanced HMI visualization and embedded systems. The version control system, small
footprint and remote access made FactoryStudio the best choice to machine builders and OEMs.
Performance Monitoring: The ability to create a presentation layer that is source independent and
cloud-ready, make FactoryStudio an excellent tool to create Operational Dashboards, Historian,
Manufacturing Intelligence (MI), Operational Dashboards, OEE and KPI calculation and situationalawareness applications.
SCADA, MES and PIMS: Besides having the full spectrum of expected SCADA functionality,
FactoryStudio extended the real-time database concepts to include advanced objects, such as data tables,
dynamic arrays and images, time events, all with a tied connection with .NET calculation engine, makes it
the best possible platform for Plant Information Management Systems or any application targeting the
management and presentation of real-time information.

FactoryStudioUserGuide

17

NetworkTopology
FactoryStudio can be applied in different network topologies and scenarios. The most common
applications, from the Factory Floor to the IT, includes:

Local HMI panel or embedded device, running native protocols data acquisition and local
operation.

OPC server and data gateway

Supervisory and SCADA system on automation islands

Central server for Operations Centers and Integrated Control Rooms

Data Server to cloud-ready source-independent Presentation Layer

MES, Real-time dashboard and Plant Information Management applications.

The FactoryStudio system allow users to focus their know-now and work on the Process and Applications
Solution, supplying standardized components for the software infra-structure functions, such as
communication, graphics and database access.

18

2:TechnicalOverview

SystemArchitecture
Realtime,inmemorydatabase
A key differentiation point of the FactoryStudio platform is its ability to be applied in both hard Process
Control with real-time, in-memory information and also on Level 2 and Level 3 applications, where the
information is stored on SQL databases and exchanged with external applications.
The real-time core of FactoryStudio is an in-memory, event-driven database. That database is the result of
more than 25 years of continuous learning and it is a complete new design, leveraging the current
technologies and the past experiences.
The design specification included as a priority

Reliability and operational stability.

Distributed architecture, both internally (mult-core CPUs) as external (multiple users and
projects)

Use operating platforms for software and hardware of broad support and longevity

Increase modularity for lower costs of deployment and maintenance.

Combine flexibility and easy User Interface, allowing efficient use and open integration
with future systems and requirements.

FactoryStudioUserGuide

19

Real-time Information Management, IT and SCADA combined


The function of real-time database, shown in gray in the diagram, is to allow the modularity of the system,
creating an abstraction layer that allows you to isolate tasks to communicate with relational databases,
communication with other systems and with the field, the user interfaces and systems of calculation and
optimization. Its structure enables synchronization between the various processes independent of values
in real-time, event notification and update tables of information.
This Manager uses components designed specifically for the .NET platform with the infrastructure for
tracking events. Making a comparison with a real-time supervisory, or a level 1, we have the following key
differences:
Table1:Realtimedatabasenewgeneration

HMI/SCADAdatabases

FactoryStudiorealtimedatabase

Basic Tags Types, such as boolean, int, In addition to these, also manages events, dates, tables,
float (real) and texts
queries, and structured data.
Server-centric and centralized module
processing

Distributed processing, multi-core and multi-processes,


client and advanced control stations.

Proprietary access Interfaces

Access via Interfaces classes.NET or web services

Definition of variables on databases on Definition of variables in standard databases with support


proprietary systems
for SQL and ADO.NET
Does not allow hot swap (swapping the Allows hot updates with built-in version management.
project configuration without stopping
the application)

Persistence and redundancy


The Real-time database access to the original values and events in RAM, for the continuity of
operations in the event of critical system failure, can be used both for a disk cache (Persistence or
Retentiveness) or a TCP/IP synchronization with another station in a Hot-Standby architecture. Both
solutions are built-in to the system and the best topology depends on the specific project
requirements.
Engineering and Runtime
When creating an application, the FactoryStudio platform uses the concept of Engineering and Runtime
Engineering: Refers to the application configuration, or the creation of a FactoryStudio project. The
Engineering tools are a set of configuration utilities, such as Table Editors, Drawing tools, which allow
you to implement the application specifications at a higher level, using friendly configuration user
interfaces, rather than low-level programming. When custom logic is necessary, guided user interfaces
allow you to create C# and VB.Net code, in an easier are self-organized way, again providing a high-level
access to the project components.
Runtime: Refers to execute the Project configuration, which means run the developed Application. The
runtime system will execute the data acquisition, calculation, logging and alarms and provide real-time
graphics displays, according the project engineering configuration.

20

2:TechnicalOverview

ObjectModelandNamespaces
More advanced than most systems, where you must create Tags or Variables for all internal properties and
custom logic for your projects, FactoryStudio allows your application(s) to directly access all the business
objects that were created in your project. This means that user-created temporary tags are not required to
manage the status of PLC network nodes, the total number of alarms in a group, or the number of rows in
a dataset. You can now access runtime objects, business objects (representing a network node), an alarm
group or dataset, and display required information or take action directly through their built-in properties
FactoryStudio has an underlying .NET object model, 100% managed code, specifically targeting the
development of Real-Time data management applications. The hierarchical object model includes the
following top-level objects, which correspond to the main modules in FactoryStudio:

Tags

Dataset

Historian

Script

Security

Server

Alarm

Client

Device

Info

That top-level hierarchy is implemented as .NET Namespaces. Each Namespace has the .NET classes
and objects created when building a project configuration. Besides having the configuration settings,
those objects also have runtime properties, methods and status.
For instance that Tag namespace has all the tags in the application and each tag has built-in properties
field properties such as Quality, TimeStamp, Min, Max, Units and many others. Examples:
Tag.tagname1.bit0, tag.tagname2.timestamp

The same concept of the tag fields applies to all namespaces, for instance:
Alarm.TotalCount:, Alarm.Group.Warning.Disable:

When building the project configuration, filling input fields or creating scripts, the system always has the
Intellisense auto-completion, which guides you to the existing properties that are allowed to use according
to what you are editing. This feature allows you to easily drill down to a specific property.
When accessing a project object in the .NET Script Editor, it is necessary to prefix the namespace with
"@" symbol in order to avoid conflict with the .NET local variables names..Example, in Script-Tasks and
CodeBehind, use:
@Tag.Analog1
@Device.Node.Node1.Status

The @ symbol is not necessary on Grids and Dialogs. Some input fields may require object of only one
type, such as Tag or Display, the Intellisense will automatically guide you to the allowed objects.
For some users that dont have previous experience in .NET or similar object-oriented systems, those
concepts are abstract at the beginning, but when learning the engineering configuration tools and the
FactoryStudio modules, the power of those concepts will be clear. What is completely sure is that when
getting used with object models and Intellisense, there is a huge productivity increment and you no longer
accept working with systems lacking those features.

FactoryStudioUserGuide

21

FactoryStudioProjects
The FactoryStudio innovative design brings web and tablet user interface concepts to the desktop
application, making advanced engineering tools have an easy, friendly and nice user configuration
interfaces.

This design allows for more efficient access to the to projects located in the local computer, remote
stations or cloud servers
FactoryStudio automatically creates metadata about the
projects, with information such as display preview, project and
tool version, date modified, project model and more. You can
change the view to cards, table, or use the Rotate button to
switch between the graphical icon and a brief project summary.
The project has a SQL Centric Configuration, so all the project
definitions, such as displays, graphical images, scripts, report templates, all stored in a single file, which is
an embedded SQL database, supplied with FactoryStudio. That simple structure, simplifies a lot the backup and deployment of the projects. It also allows to Edit Multiple projects at the same time, as well,
enables multiple users to work on the same project at the same time.
In the middle of the display you see icons to create a New Project, Open Project to open the project
you have selected, and Find Project to set default paths to locate other projects.

Distributed engineering
The Server tab specifies from which computer you will be editing or running projects.
You can edit and run the project locally (LocalHost), from a remote server (Remote), or from a Cloud
server (Cloud).
22

2:TechnicalOverview

All the configuration tools and features are transparent to whether you are accessing a project from the
local computer or from a remote computer. No other software components are necessary, FactoryStudio
supplies everything you need for distributed engineering.

Configuration workspace
The philosophy of the configuration user interface is to act like a web-page front-end where you easily
navigate to forms, fill them in and the data is automatically saved to Project Server, like a typical web
application, without the need to open/save/close and repetitive commands all of the time or to access
complex menus. For detailed information on the Engineering workspace refers to Appendix 4,
Engineering Workspace on page 45

FactoryStudioUserGuide

23

FactoryStudioModules
The Edit button on the Engineering workspace provides access to the configuration of the
FactoryStudio Modules.
Consistent with the SQL-centric project configuration, the setup of each Module is just to
fill the configuration tables connected with that module.

24

2:TechnicalOverview

RealtimeTags
The Real-time Database Defines the application process variables, templates and assets. The
real-time database guarantees, without requiring any additional programming, the
synchronization of data among multiple server processes and multiple client stations. A set of
built-in properties, such as data quality, time-stamp, lock state and locked value, simplifies the systems
modeling. A group of tags and other project components can be assigned to a tree hierarchy, creating an
Asset view of your system.

The Real-time database also has support to tri-dimensional arrays with size dynamically specified, allowing
efficient memory usage and templates, user defined structures and models. FactoryStudio has the most
complete set of real-time entities. It was the first platform to deliver the complete correspondence of realtime tags, .NET types and SQL columns, as show on following table.
FactoryStudiotagtype

.NETFrameworktype

SQLdatabasetype

Digital

Boolean

Bit

Integer

int32

int

Long

int64

bigint

Double

double

float

Decimal

decimal

decimal

Text

string char[]

nchar, ntext, char, text, varchar

DateTime

DateTimeOffset

DateTime, DateTimeOffset

TimeSpan

TimeSpan

Time

Timer

int32

int

Image

byte[]

Binary, Image, VarBinary

Guid

Guid

UniqueIdentifier

DataTable

System.Data.DataTable

FactoryStudioUserGuide

25

GraphicalDisplays
The .NET Framework, among the various advances in technology, brought
the Windows Presentation Foundation (WPF) which is a graphical
technology that allows easy access to maximum potential of graphics cards
and hardware accelerators for images. Another benefit was the introduction
of XAML (Extended Markup Language) that allows the user interface to be created declaratively, creating
more powerful interfaces and functionality with less programming time.

Tatsoft FactoryStudio is entirely created on top of WPF and XML, both the engineering tools, providing
a great world-class user experience, as well the runtime displays, empowering the engineers to create
advanced state-of-art applications, accessing the full potential of currently available graphics cards, with
superior development speed and effectiveness.
FactoryStudio includes a full featured graphical editor and designer to create the runtime applications,
uniquely created to provide the best integration with the other modules and the real-time database,
including a rich set of dynamic animations and a smart extensible symbol library

Five types of remote clients are supported:


Rich Clients: Runs as a desktop application, allows the blocking of the Windows task-switch. This is
ideal for process control applications that need high performance and enhanced security.
Smart Clients: Uses Click-Once technology, installs and updates on remote clients with a single click
from a browser and it is automatically updated on the remote clients when it is updated on the server. It
uses all the power of the remote computer yet retains the advantages of a centralized install.
Web Clients: Runs directly from the Web-Browser with no installation of any software required (nor any
active-x controls!). The partial-trust security guarantees it runs in a completely isolated secure
environment.
Thin Clients: Runs using remote desktop connection or Terminal server or other thin client technology.
Typically used to run on tablets using Android or WinRT.
Tables, iPad native app. The same displays created on Windows computers are automatically rendered
to run natively on iPads on iPhones, combining the rich user experience and security of a native app with
the benefits of have only on project configuration.
See more at Chapter 12, Displays and Symbols on page 123

26

2:TechnicalOverview

SecurityandRedundancy
In FactoryStudio, Security is used to determine which Users have access to
various components of the project. These include the ability to change Tag
values, execute commands, open Displays, generate Reports, and more.

User Sessions can be controlled so that the User is automatically logged


out of the system based on inactivity, duration of the system, or both.
Both Alarm and Security online conditions are automatically replicated on redundant applications.
Together with the Alarm and Event features, the Security tools provide all the tools necessary to create
FDA-CFR 21 Part 11 compliant applications.
See more at Chapter 7, Security and Users on page 77
FactoryStudio automatically initializes and
continues to synchronize the primary and
secondary server.
The Device communication channels are also
easily setup for redundant physical networks
and redundant PLC nodes.
Redundant or stand-alone server allow
switching project versions, without stopping service for the connected clients and keeping the real-time
database loaded.
To starts the redundancy only insert the IP of the Secondary Server and the server command will
configure the TStartup.exe automatically to use Redundancy.

TrendandHistorian
The Historian Module allows an easy setup to log process variables in SQL databases. A built-in
embedded SQL database is supplied for small and medium size databases. Large systems can be
configured to use Microsoft SQL Server, Oracle or any database compatible with OLE-DB, ODBC or
ADO.NET.
FactoryStudio also has the option to use the OSIsoft PI System for the Historian server, with no
programming required, complete integration and seamless access.
The graphical tools include a powerful Trend chart object with support for quality information,
annotations, vertical charts, batch comparing and more.
See more at Chapter 6, Historian and Data Logging on page 71
The Trend Modulo allows you to compare two (or more) curves on the same chart from two different
FactoryStudioUserGuide

27

start times, ideal for batch and process analysis. Trend charts can be added to web and PDF reports, image
snapshots and value data table exports are available upon operator commands or any process event.
Trend charts are out-of-box fully functional, yet completely customizable with Real-time SPC calculation.

DevicesCommunication
This module handles communication with the programmable controllers and
field equipment.

FactoryStudio supports embedded communication protocol drivers to


directly access PLCs, Remote IO, Fieldbus standards, single and multi-loops, scanners, bar-codes, RFID
devices and digital displays. OPC DA is also supported, but in most cases is not required, for best
performance, easier setup and higher message control, the native protocols are used when available,
reserving the use of OPC when a native driver is not available or when the architecture specification
requires it.
The Device Configuration Tool can import databases from OPC servers, CSV or text files. If the device is
compatible, it automatically implements multi-threading on TCP/IP networks. The addressing syntax
follows the naming convention of the remote device, making configuration and maintenance much easier;
a complete set of performance and diagnostics tools is included.
See more at Chapter 8, Devices and Interfaces on page 83

AlarmsandEvents
FactoryStudios Alarm system provides for tremendous flexibility in managing
Alarms in your system. Multiple alarm levels for each point/tag can be defined and
a whole range of behaviors, such as logging, acknowledgment, displaying, are bultin features to simplify the configuration.
The Alarm conditions are automatically replicated on redundant servers, making certain there are no lost
Alarms in the event of a computer failure. The Alarm and Event tools are part of the tools necessary to
create FDA-CFR 21 Part 11 compliant applications.
See more at Chapter 9, Alarms, Events and AuditTrail on page 99

DatasetsandSQL
The Dataset Module included in FactoryStudio provides an easy-to-use
interface to exchange data in real-time with external Databases, XML, CSV
or text files and access SQL queries and tables.
For the most common databases and data sources (Microsoft SQL Server, Oracle, CSV files, Microsoft
Access, PI, Firebird, Informix, Excel), FactoryStudio supplies pre-defined configurations that reduce the
28

2:TechnicalOverview

configuration to a mouse-click. Any database that supports ODBC, ADO.NET or OLE-DB can be
accessed. A built-in SQL Database engine is also supplied as a local database for your application(s).
The data collected with the datasets can be dynamically mapped to real-time points/tags and can be used
in scripts or reports, or presented on displays using a powerful Data Grid Visual Object, with cell-editors
and support for multiple visualization themes.
See more at Chapter 10, Datasets and Data Exchange on page 105

Scriptsand.NET
FactoryStudio fully supports the Microsoft .NET Framework in a built-in
integrated environment. Inside the FactoryStudio framework architecture
you can compile, cross-reference the objects, and access directly (using the
Intellisense) the .NET classes and your project objects, including Alarms,
Reports and Communication Nodes.
.NET languages provide a more powerful and safe option when compared with VBA or VBScript, which
are interpreted language and many errors can only be found when running your project. With VBA or
VBScript in production often you have runtime errors with undesirable consequences. The managed
environment of the Microsoft .Net Framework provides support for finding and recovering from
exceptions, thus providing a highly reliable environment for the runtime system. Project scripts and
business logic can be written in C# or VB.NET. A complete debugging system, with breakpoints, step
execution, online code changes while debugging is included. There is also a a built-in language converter
that allows you to switch the created code dynamically between the C# and VB.NET languages.
Optimization and advanced control
Although we use the name script to present a familiar
nomenclature to new users, this module isFactoryStudio NET
engine, supporting multi-threading and advanced programming.
Besides the User Interface logics, it can work as a process
optimization module, performing the calculation of mathematical
models in a high-performance and secure environment. The
development of these modules will just focus on algorithms and

FactoryStudioUserGuide

29

processes, since the interfaces for reading values and historic data, firing events and writing values are
standard functions and components already supplied by FactoryStudio
See more at Chapter 11, Scripts and .NET Framework on page 115

ReportingandDataAccess
FactoryStudio supports SQL access, Web-Services, XML and other data-exchange interfaces to provide
data for external reporting tools. Further, it has its own built-in Report Editor.
The Report Editor allows the inclusion of dynamic text,
dynamic graphical symbols and charts, datasets and query
results, in a functionality rich and easy to use editor. The
Reports can be saved in HTML, Text, XPS or PDF and easily
presented in remote clients and web displays. A native browser
control for visualization of Reports is included, so there is no
need to exit to a third party program to view previously generated
reports.
See more at Chapter 13, Reports and Data Access on page 169

30

2:TechnicalOverview

TestingandRunningProjects
The Run environment provides access to all Project execution features.

Build
Buildcompilesalldisplaysandscriptsforfinalverificationbefore
deployingaprojectforproduction.Buildprovidescompleteverification
oftheapplicationlogicswhenpreparingforfinalproduction,butisnot
necessaryduringdevelopmentasallmodificationsintheprojectareautomaticallyand
transparentlybeingcompiledinthebackgroundwhileyouareediting.

FactoryStudioUserGuide

31

TESTING THE PROJECT


Test lets you run the project in Test mode, which means enabling protections that
allow it to run even on the same machine that the project is running in Startup. The
Historian and Alarm logging functions are directed to use temporary files instead of
the defined database for the project production.
Optionally you can enable diagnostic tools to help resolve any issues you may be working through. You
can also decide which modules will run during your test.

PROJECT STARTUP
Startup is where you configure how your project will run in production mode. This
means enabling the Historian and Alarm logging functions to use databases as
defined in the project instead of the temporary files used in Test.

32

2:TechnicalOverview

The Online Configuration checkbox allows you to establish on-line configuration. When the Project is
running you can attach to the execution, which means modifications to the project we be shown in the
running project when made.

PUBLISHING THE PROJECT


Publish creates a read-only protected version of projects suitable for deploying in
the field.
When the Publish command is executed a new Project file (with extension "teng") is created with the
version number selected.
The Published Projects ("tproj" extensions) are similar to the current project (".proj" extension) and can
be opened only in read-only mode. This provides you with a safe backup version of published
applications.
See more at Chapter 14, Run, Test and Publish Projects on page 171

FactoryStudioUserGuide

33

InformationandVersionControl
The Info environment provides access to current Project configuration details

Verifying Project Information


FactoryStudio helps you to gather and store information about your Project. In
managing the versions of projects you may be developing, installing,
commissioning, or maintaining, its important to make certain you know the
versions of the software, license, project, and other settings and information.
The Project tab displays this information and allows you to change the information if needed. Some of
these fields are also available during runtime if needed.

Tracking Project Changes


A key feature in FactoryStudio is the ability to track changes in the project
configuration. This helps in verifying project configurations in various stages of
development and implementation. This is important because you need to be able
to verify which version of a project you are using when developing enhancements
and working through diagnostics.
FactoryStudio tracks changes to every aspect of the project configuration. Table names displayed, and
indication is made where changes have occurred. Double-clicking on any line in the table brings you to
the editor which generated in the change.
34

2:TechnicalOverview

The Changes tab provides information regarding the specific module where changes occurred, the
specific change that was made, the specific project build in which the change occurred, as well as the date
of the change and any arbitrary comments made by the user.
The Releases tab provides information regarding the date of when a project was published, who published
it, and the project build number when published.

Adding and sharing project notes


Many times during the development and implementation of a project, developers
need to be able to leave notes for themselves, or for others collaborating on the
project.
Within FactoryStudio, that can be done by using the Notes utility.

Notes created are of a "Post-It"-type, and are viewable by all Project design team members. Notes are
visible on the desktop when editing the Project.

License Information
The License tab presents information regarding the currently installed license for
FactoryStudio.
This information will be helpful if you contact us for technical support, and when
it is time to update to a new revision.
See more at Chapter 16, FactoryStudio Versions and Licenses on page 193

FactoryStudioUserGuide

35

36

2:TechnicalOverview

3:ManagingProjects
The following sections describe how to create and manage projects:

Viewing Projects on page 37

Creating a Project on page 38

Finding Projects on page 39

Allowing Remote Access on page 40

Accessing Remote Projects on page 41

Running Projects on page 42

Upgrading Projects on page 42

Project Configuration on page 43

ViewingProjects
When you start FactoryStudio (See Starting FactoryStudio on page 5) the main page shows a list of
projects. The projects presented in the list are defined according the selected Project Server (defined at
the Server tab) and the selected search paths (defined with the Find Project button).

FactoryStudioUserGuide

37

To view the meta data information about the project, Click


in the
lower-right corner to rotate the selected project icon showing the Project
Information. See Project Configuration on page 43 for details about
the project metadata information
A Project in FactoryStudio stores all of the configuration for a specific
application. That project configuration is stored in a single file with extension tproj.
Tip

Ifthelistisnotshowinganyprojects,itisbecausethesystemwasunabletolocatedProject
filesontheselectedServerandSearchpaths.UsetheFindProjectstosearchprojectsinthe
localcomputer,usetheServertabtoconnecttoanewProjectServer,orusetheCreate
Projecttocreateanewproject.Ifanyerrorhasoccurredwhileloadingprojects,alogwillbe
createdinC:\Users\Public\Documents\TLocalSettings\.

Using the ComboBox, you select on CardView and TableView, for different views of your project list.

The Projects that show in this list are all the ones found in the Search Paths, that can be defined using the
Find Projects command, see Finding Projects on page 39.
Projects located on remote computers or on cloud servers can also me managed using the Server
configuration, see Accessing Remote Projects on page 41.
Projects retain information about the version of FactoryStudio that was used to create the project
originally. Unless you upgrade the project to a newer version, the project always opens using the version
with which it was created. For more information, see Upgrading Projects on page 42.

CreatingaProject
To create a project:
1. Click New Project.

The New Project page displays.

2. Enter or select the information, as needed.


38

3:ManagingProjects

Field

Description

Name

Enter a name for the project.

Description

(Optional) Enter a description of the project.

Location

Click the ... button to select or create a new folder for the project.
Note: You configure remote access to projects on a folder basis. Be sure to place
local projects into a different folder from projects that you permit remote access to.

Product Family

Depending on your FactoryStudio license, you may have options here to build
applications for a specific version of FactoryStudio.
Tip

Ifyoudonthavealicense,onlytheExpressfamilywillshow.
EvenwhenyouhavealicenseyoumaywanttocreateExpress
projectstosharedemosandtutorialswithusersthatdonthavea
licenseinstalled.
Refer to FactoryStudio Versions and Licenses on page 193, for more information
about the product families. A basic description of the product families is
EnterpriseComplete FactoryStudio functionality
HMIUse for smaller applications and embedded systems.
ExpressUse only for test or demonstration purposes.
OPCServerCreate a project to work as a OPC server only, providing data to
other applications from the native protocol drivers
You can change this setting later, if needed.
Product Model

Depending on your FactoryStudio license, you may have options here to build
applications for a specific product model.
The product model is connected with the number of real-time communication
points you will be allowed on that project
Refer to FactoryStudio Versions and Licenses on page 193, for more information
about the product model..

3. Press Create Project

FindingProjects
When accessing your local computer, FactoryStudio looks for projects in the default folder and in any
folder where you have created a project. If you copy a project file to a folder, FactoryStudio does not
know to look in that folder for a project. You can add that folder to the search path, so FactoryStudio
knows to look in the folder.
You can also remove folders from the search path, if you no longer need those folders for FactoryStudio
projects or want to reduce the list of folders.
To find projects and manage remote access:
FactoryStudioUserGuide

39

4. Click Find Project.

The Find Project page displays with a list of the existing search paths.

5. Enter or select the information, as needed.


Field

Description

Current Project Server

Display-only. Lists where the current project is running.

Include Sample Projects

Selected by default. Deselect to exclude sample projects from the list.

Include Published Projects Selected by default. Deselect to exclude published projects from the list.
Find

Click to navigate to a project. The folder for the project you select is
automatically added to the Search Paths list and all the Projects on that
folder will be presented at the list.

Search Paths

Select the folder whose remote settings you want to change, then change
the settings below.
Click + to add a folder the search path, so that all the projects on that
folder displays in this list.
Select a folder, then click - to remove the selected folder from the search
path, so the projects on that folder no longer displays in this list.

6. Click Back to return to the main window.


Note

When adding a project, or a folder, all the projects in the selected folder are added to Project List
at the main page.
This page also contains the settings to allow users on remote computers to access the projects, as
described in the next section

AllowingRemoteAccess
Remote users can only see and access projects from the local computer that you configure for remote
access. If you want to permit remote access to one or more projects, but not to other projects, be sure to
place those projects in separate folders. When you configure remote access (either for project editing or
the runtime), you configure it for an entire folder. All projects in a folder configured to permit remote
access will be accessible to remote users. For information about accessing a remote project, see Running
Projects on page 42.
The software installation includes a web server (TWebServer) that permits remote access between
computers with FactoryStudio installed. No other configuration is needed. If you are using the Microsoft
IIS web server, see Installing services on IIS on page 6
To find projects and manage remote access:
7. Click Find Project.

40

3:ManagingProjects

8. Select the folder in the Search Paths list where you want to view and modify the permissions,
select the information, as needed.
Field

Description

Allow Remote Access

Selected by default. De-select to deny remote access to the selected


folder for editing FactoryStudio projects.

Allow Remote Run

Selected by default. De-select to deny remote access to the selected


folder for running a FactoryStudio runtime.

Virtual Path

Enter to provide access to just the selected folder. Anyone


accessing your computer remotely through FactoryStudio can see
all folders that are configured for remote access and that do not
have a Virtual Path.

9. Click Back to return to the main window.

AccessingRemoteProjects
You can access and edit projects that are configured for remote access. Projects can be on any computer
or server that you can access. If you subscribe to the cloud service, you can access projects configured on
it. The Find Project function is not available when accessing a remote computer.
You can also upload a project to the remote computer.
To access a project remotely:
10. Click the Server tab.

This tab lets you configure and access remote projects.

11. Do one of the following:


Toaccessaprojectonaremotecomputer

Toaccessaprojectonthecloud
service

1. Select the Remote option.


1. Select the Cloud option.
2. Enter the IP address of the computer where the 2. Enter your Account and Password.
project is.
3. If configured, enter the Virtual Path of the folder.
The person who created the project may have
configured the virtual path.

12. Click Connect.


13. If you want to upload a project, click Upload Project.
14. Click the Projects tab.

The list of projects available from the computer you accessed displays. The projects
available must be in folders that are configured for remote access.

FactoryStudioUserGuide

41

If you did not enter a virtual path, you see all projects in folders configured for
remote access, but not projects in folders that have a virtual path configured.

If you did enter a virtual path, you see all projects in the folders configured with
the virtual path you entered.

15. Double-click the project you want to open.

RunningProjects
You can run the project in any of the following ways:

From the FactoryStudio main window and project list, right-click the project and select
Run Project.

When configuring the project, go to Run > Startup and click Run Startup.

For more information, see Running the Application on page 171.

Automatically using the auto-startup settings on the Server tab.

UpgradingProjects
Projects retain information about the version of FactoryStudio that was used to create the project. Unless
you upgrade the project to a newer version, the project always opens using the version it was created with.
If you now have a newer version of FactoryStudio, you can upgrade a project to use the newer version.
To upgrade a project:
1. Start FactoryStudio:

See Starting FactoryStudio on page 5.

The main page displays. Any existing projects display in the lower part of the page.

2. Select the project you want.


3. For any project that displays a ProductVersion that is older than your current version, rightclick and select Upgrade Project.

42

If this option is not available, the project is already on the same version as the current
version of FactoryStudio.

The system keeps the original project and adds the original version number to the file
name, so you can still open and run it with the product version with which the project
was developed. The system creates a new project with the original project name,
importing all the configurations the latest product release.

3:ManagingProjects

ProjectConfiguration
EngineeringTools

When you click Open Project you open the tools for project configuration, or as we used to call, the
Engineering tools.
The overview of the project configuration user interface is in Chapter 4, Engineering Workspace on
page 45.
SQLCentricConfiguration

All the project configuration, displays drawing, graphical images, scripts, tag definitions, external devices
mapping, and so on, are saved in a single embedded SQL database. That file is encrypted for security and
it should be opened and editing using the Project Engineering Tools.
The project configuration is saved is a file with extension TPROJ. Using the Publish procedure, described
on Chapter 14, Project Version Control on page 177, you can also create read-only versions of the
project for runtime execution only, that will have the extension TRUN.
MultiUser,MultiProject

The system allows many projects to be opened at the same time. If you already have an open project, just
select another project in the Project Selection list and open it. When a second instance of the same project
is opened, it will open as read-only.
In order to enable concurrent-users you must have a project server licensed to multiple engineers. On the
license tab, in the Engineering Group Box, you have the number of concurrent engineering users which
can access the selected server or local computer.

ProjectInformation
Every project file has embedded metadata with the key project information. When using the engineering
tools, that information displays at the Info-Project-Version page.
The project settings that can be user defined, such as target family and model and default options can be
defined at Info-Project-Settings page on the Engineering tools
To view and change project settings, open the Project with the configuration tools and:
1. Go to Info > Project -> Settings.
ProjectSettings

You can view and change the project settings that you configured when you created the project.
Field

Description

Product

Read-only name of the product used to create the project.

ProjectPath

Read-only path to the project.

FactoryStudioUserGuide

43

Field

Description

Family

Refer to FactoryStudio Versions and Licenses on page 193, for more


information about the product families. A basic description of the
product families is
EnterpriseComplete FactoryStudio functionality
HMIUse for smaller applications and embedded systems.
ExpressUse only for test or demonstration purposes.
OPCServerCreate a project to work as a OPC server only,
providing data to other applications from the native protocol drivers
Note: Changing the family settings may cause some configurations to be
invalid. For example, some features are only available in the Enterprise
version.

Model

The product model is connected with the number of real-time


communication points you will be allowed on that project
Refer to FactoryStudio Versions and Licenses on page 193, for more
information about the product model.

Target Framework

Read-only. Shows the Microsoft Net Framework version required for the
project.

Culture Info

Select the target language for the runtime application. This setting
controls the formatting of dates, numbers, and other information to
conform to the selected language. You can change this setting later, if
needed, also that combobox is editable.

Default Code

If available, select the language you want to use for writing custom scripts.
You can change this setting later, if needed.

Limit values to Min- If checked, it DOES NOT let you set tags outside the Min-Max range
Max

44

Target Layout size


(on Edit Displays
Layouts)

Select the default resolution for new layouts in the project. This does not
affect existing layouts.

Default Size when


creating new Pages

Select the default resolution for new pages in the project. This does not
affect existing pages.

Run modules inside


runtime process

Runs the following modules on TServer module, if checked:


Script tasks
First device channel

3:ManagingProjects

4:EngineeringWorkspace
The following sections describe how to create and manage projects:

Workspace Overview on page 45

Navigating in the Workspace on page 48

Working with DataGrid Tables on page 51

Using the Cross-Reference on page 55

Intellisense and Refactoring on page 56

Dictionaries and Localization on page 57

Import Wizards on page 58 and Configuring Preferences on page 59

WorkspaceOverview
The application TManager.exe provides access to edit your project configuration in
FactoryStudio. The user interface is similar to a web browser, with a back button, list of recent
items, and other navigation tools. Figure 1 shows the main parts of the page.
Recentitems

Configureworkspacethemeand
userpreferences

Back/forward
Toolbar
Status
messages

Mainmenu

Tabs

Submenuof
theselected
mainmenu

Figure1:FactoryStudioprojectmainpage

FactoryStudioUserGuide

45

GridSplitter
You can drag the vertical bar with the mouse to adjust
the size of the left menu frame, when you want to
have more space on the workspace area

UsingtheToolbar
The toolbar at the top of every page has all of the common toolbar buttons, such as undo, redo,
cut, copy, and paste, as well as buttons for common functions that are unique to FactoryStudio.

In addition, some buttons have additional options when you right-click them. For example, the
Print and Find buttons have these additional options, as shown in Figure 2.

Figure2:Toolbarrightclickoptions

The print options let you either print or save to a .csv file.
The find options let you find, go to previous, and go to next. For more information, see
Working with DataGrid Tables on page 51.
UndoingandRedoingChanges

The Undo and Redo buttons on the toolbar let you undo or redo any operation. When editing
tables, undo and redo are available for all changes during your editing session.
When editing documents (in the Draw, Reports, and Scripts areas), undo and redo are available
until you save changes.
SmartCut,CopyandPaste

The Cut, Copy and Paste buttons are context sensitive, when the focus is on a DataGrid they will
cut/copy and paste the selected rows. When the focus is on the drawing tool, they will act on the
selected objects.
46

4:EngineeringWorkspace

The reason for the word Smart is that you can copy and paste rows to and from Excel, as well
from other tables in the workspace, even if the columns are not all the same. When copying and
pasting, the Columns Titles are also copied to the clipboard, so the system is able to put the
information on the right column, no matter the order you are displaying the columns, or if some
columns does not have on the target table.
Tip

WhencopyingfromExcelmakesuretoselecttheRowTitles.YoucanalsocopyRowsfrom
theTagstablestotheHistoriandirectlytoenabledataloggingofthosetags.
Print,SavetoaFileorImport

These commands allow you to print the selected document (either a DataGrid or
a Drawing). The export button will save DataGrids to a CSV file and graphical
displays to JPG files. The import button will import CSV files to the DataGrid.
FindingObjects

You may want to find where you have used a specific object, such as a tag, in a project. The
Engineering workspace provides three ways to search.
Find String button and Find Object Buttons

The Find String button is to search for a specific string in the current tab of the current Data
Grid table. Type the string you want to search in the TextBox and press the FindString button.
The Find Object button on the toolbar accesses the Object Cross-Reference, which lets you find
where objects are used int the Project and go directly to each location. For more information on
Cross-Reference, see Using the Cross-Reference on page 55
Finally you can apply dynamic filters on the
selected table, just by typing the mask on input
field. Example: *abc* will filter to show only the
rows with the letters abc in any position of the name; ab* will filter to show the rows starting
with ab. Click on the Home button to clear all the filters and reset all the DataGrid columns
viewing state to the system default.
NewTagandTagProperties

New Tag: allows to create a new tag in the real-time database.


Tag Properties: Shows the properties of the Tag Selected at the TextBox
SecurityLogon

The tooltip shows the currently logged-in user and when you click it opens the Logon
Dialog. By default, when the system starts, the Guest user is logged in. The permissions
of each user are defined at Security and Users on page 77
HelpButton

The Help button navigates the workspace to the section Info-Help, which provides
access to the local help file as well to do searches on the online content.
FactoryStudioUserGuide

47

NavigatingintheWorkspace
You navigate in FactoryStudio using the workspace environment, sections and tabs.

Any Engineering workspace user interface is, therefore, identified by 3 names: the Environment
(main menu on top left), the Section (or sub-menu) and the Tab (or Table)
To describe how to get to a specific location where you perform functions, we use a shorthand
notation.
For example, rather than saying:
Click Edit, then click Tags, then click the Objects tab.
We say:
Go to Edit > Tags > Objects.
This shorthand notation quickly tells you how to navigate to the correct main menu, sections, and
tabs.

Toconfigurethebasicelementsofyourproject,fromtheMainMenu,clickontheEdit
icon.

48

4:EngineeringWorkspace

Define/EditTagstouseintheproject.
DefineUserpermissionsandProjectaccesslevels.
ConfigureCommunicationProtocolsandDeviceData
Acquisition.
ConfigureAlarmTagsandAlarmGroupstogenerateAlarms
underdefinedconditions.
DefinedatasourcessuchasFiles,Databases,SpecificTables,Pre
definedqueries.
Configure.NETScriptsinVB.NETorCSharp.

Selectdynamicgraphicaldisplaystoconfigure.
ConfigureReports,whichincludingupdatedgraphicalsymbols,in
XPS,PDF,HTML,ASCII,andUnicodeformats.

Toconfiguredynamicdisplays,selecttheDisplayonEditDisplaysandclickontheDrawiconto
accessthegraphicalDesigner.

TheRunenvironmentprovidesaccesstoallprojectexecutioncommands

FactoryStudioUserGuide

49

Prepare a Project for execution and save the project's Build history.
Testing the project provides a way to see the project in action before
publishing it to the server for use.
Run the project configuration in production mode.
Publish the Project to enable its final installation. Increment the project
Publish Revision numbers.

Tallies the number of times Tags are used in the project. Provides
project objects cross reference.
Customize your project to use other languages in Alarm Messages and
Display text.
Import configuration data already created for OPC Servers, any
configuration table, or an entire project.

Provide access to current Project information.


Project and product Version, location of project, Local Language,
License information.
Find information regarding published project release number and
project changes.
Leave arbitrary notes for other project engineers.

50

4:EngineeringWorkspace

WorkingwithDataGridTables
Many tabs in FactoryStudio display information in a table. All tables let you manipulate, copy,
paste, and import data in the same way. The following sections describe how to use these
functions:

Editing Tables on page 51

Sorting, Filtering, and Grouping on page 52

Adding and Removing Columns on page 53

Common Column Definitions on page 54

Copying and Pasting Rows on page 54

Importing Data on page 55

EditingTables
FactoryStudio stores most configurations from the Edit menu, such as tags, alarms, users, in
tables. In most tables, you can add and edit information the same way.
To add a new table item (row):
1. Click the first column of the insertion row.

The insertion row is the first row of the table and has an * next to it.

After you click a column in the row, the * becomes a pencil icon, showing that you are
now editing that row.

2. Do one of the following in the column in which you clicked:

If the column is a text field, enter the information.

If the column is a selection field, click again, then select items from the drop-down
list or pop-up window that displays.

3. Press Tab to move through the columns in the row.


To edit an existing table row:
1. Click the column in the row that you want to change.
2. Do one of the following in the column in which you clicked:

If the column is a text field, enter the new information. The system overwrites the
text that was in the field. To change part of the text, click again, then make changes.

FactoryStudioUserGuide

51

If the column is a selection field, click again, then select items from the drop-down
list or pop-up window that displays.

More than one person can edit a project at the same time. The system saves all changes to the
project server and propagates the changes to other users. If two users modify the same
configuration table or document, the changes from the last person who saves would overwrite any
previous changes.

TooltipsandValidation
Throughout FactoryStudio, fields and buttons have tooltips that contain information about the
field or button. Some tooltips also include an example that can help you. The system also
validates what you enter in most fields, especially in tables. If you see a red outline around the
table cell, the entry is not valid

Sorting,Filtering,andGrouping
Information in many tabs within FactoryStudio displays in tables that you can sort, filter, and
group.
By default, items in table are listed in the order in which you created them.
To sort a table:
1. From any table, click the column heading you want to use to sort.

The items now sort in ascending alphanumeric order based on that column.

2. Click the column heading again to sort in descending alphanumeric order.


3. Click the column heading again to return to the default order.
To filter a table:
1. From any table, hover over the column heading you want to use to filter.

52

An arrow for a drop-down list displays next to the column heading.

4:EngineeringWorkspace

2. Click the arrow to see the list of items in the column.

3. Select the items you want to include in the filter.


4. To remove the filter, click the drop-down list and click (Clear Filter).
To group items in a table:
1. From any table, drag a column heading to the area above the columns to group by that
column.

2. To remove the grouping, drag the column name back to the column headers area.

AddingandRemovingColumns
Tables in FactoryStudio display a default set of columns. Every table has additional columns that
you can display, and you can remove any of the default columns.
You can also change the order of the columns. For the definitions of columns that are available in
all tables, see Common Column Definitions on page 54.
To add or remove a column:
FactoryStudioUserGuide

53

1. From any table, right-click in the column heading area.

A list of all available columns for that table displays. Columns with a check mark next
to them currently display in the table.

2. Select or deselect columns in the list.


3. Click outside the list to close it.
4. To change the order of the columns, drag a column heading to a new location.
5. To reset the columns to the default, click

Reset Grid to Default Settings.

CommonColumnDefinitions
Several common columns are available from many tables. These columns are defined below,
rather than repeating them in the description of every applicable table.
Table1:Commoncolumndescriptions

Column

Description

ID

Database ID assigned to the object in the table. Numbers are assigned starting from
1 for the first object created and continue as needed. The IDs are unique only to a
specific table.

Level

Select the level you want to associate with the tag on the Assets tab. See Creating
Assets on page 68.

Category

Select one or more categories for this attribute. See Categories Dictionary on
page 58.

DateModified

Date the object was last changed.

DateCreated

Date the object was created.

Description

Enter a description of the object.

CopyingandPastingRows
You can copy and paste rows into and from tables in FactoryStudio. The copy/paste functions let
you copy rows from one table to another within FactoryStudio. For example, you can copy tags
and paste them into the Historian tab or the Items tab under Alarms.
You can also copy and paste to and from a spreadsheet.
To copy rows to another tab in FactoryStudio:
1. From any table, select one or more rows.
2. Right-click and select Copy Selected Rows.
3. Go to another tab in FactoryStudio.
4. Right-click and select Paste Rows.
54

4:EngineeringWorkspace

To copy rows to a spreadsheet:


1. From any table, select one or more rows.
2. Right-click and select Copy Selected Rows.

The copy automatically includes all available column headings for the tab you are in.

3. Go to a spreadsheet and paste.


To paste rows from a spreadsheet:
1. Set up the spreadsheet columns by following the copy steps above.
2. Enter the information you want.
3. Copy the information, including the headings, from the spreadsheet.
4. From the corresponding table, right-click and select Paste Rows.

The paste automatically places the data into the corresponding columns. Any empty
cells are ignored.

ImportingData
You can import a comma-separated values (.csv) file into any table. Column headings must match
the table you are importing into. The best way to ensure that is to copy rows into a spreadsheet
first, then edit the spreadsheet. For information about copying rows, see Copying and Pasting
Rows on page 54.
To import data:
1. Create the data in a spreadsheet.

If you are creating tags or other objects, you can name the objects as needed. If you
are populating other columns, the data in the columns must match what
FactoryStudio expects.

2. Save the file as a .csv.


3. From the corresponding table in FactoryStudio, click

Import from a CSV file.

4. Navigate to the .csv file and select it.


5. Click Open.

The system imports the data into the table.

UsingtheCrossReference
You can view how many times each object in the project is used, as well as a list of objects that are
not used.
To find objects:
FactoryStudioUserGuide

55

1. Do one of the following:

From the table that has an occurrence of the object you want to find, select the
object. For example, select the tag you want to find elsewhere in the project.

In the Find field in the toolbar, enter the type of object (tag), followed by a . (period),
followed by the name of the object (the tag name in this case).

The Find field in the toolbar auto-populates with the name of the selected tag.

As you type in the field, the system matches the first entry to objects in the
system. After the first ., it lists all objects of that type.

Next to the Find field, click .... .The Select Object window displays with a list of all
the object types. When you select an object type, the names of that type display.

2. Click Find or from the Select Object window, click OK.

The results of the search display at the bottom of the page.

3. Double-click any row in the find results to go to that item.


4. To close the results pane, click Find window at the bottom of the page.
To track object use:
1. Go to Run > Tools > UseCount.
To view objects that are not used, click the UnusedObjects tab.

IntellisenseandRefactoring
All the input fields, either on the datagrids or at the drawing tools, where you can use tag names or
object names, which are enabled through Intellisense.
The Intellisense feature presents a list of valid objects according the letters you are typing and the
valid entries to that specific input field. You can insert the selected item in the list pressing enter,
space, the dot key or other symbol keys.
The Intellisense fields also have built-in tooltips and validation. Putting the mouse over a field will
present the expected entries to that field. When you have an invalid input, the border of the field
will become red and the tooltip will show the error.
Refactoring is the procedure of changing the definition of Tag Names, or any other objects
Names (such as alarm groups, device nodes and any other) after that symbolic name is already in
use in the application.
Thanks to the centralized SQL configuration, FactoryStudio allows you to rename any object by
simply typing the new name at the configuration table where that object is defined, all the
references to that object will be valid, using the new name with no actions required.
For instance, to rename a tag that is already being used all across the project, just go to Edit-TagsObjects and rename it. The same applies to Edit-Alarms-Groups, members at templates or any
named object at the system.

56

4:EngineeringWorkspace

DictionariesandLocalization
RuntimeLanguagelocalization
You can localize the text in your application in as many languages as needed. You create a
dictionary for each language.
Note

To localize user interface text, be sure to select the Localizable option (Dynamics Configuration
window, TextOutput options) for each display component that you need to localize.
To configure localization:
1. Go to Run > Dictionaries -> Localization.
2. Click New.

The Create New Localization Dictionary window displays.

3. Enter a name for the dictionary.


4. Click OK.
5. Click Load Strings to populate the table with all controls that have strings that are set to
Localizable. In the TranslatedText column, enter the text in the dictionary language.
6. Create controls in a display or write a script to use the object called Client.Dictionary to
configure the dictionary or dictionary options for the user. When the dictionary changes,
the dictionary changes throughout the application.
The alarm messages can also be included in the localization if the related check-box is set.
On Info-Project-Settings, you can also define the default Culture Information that the application
is using and the runtime property Client.CultureInfo allows you to change it during runtime.
Some display controls may get the Culture Info directly from the Operating System, so the
correct procedure is to have both the Operating System setting and the project settings with the
target culture to run the application.

EnumerationSets
You can also use dictionaries to translate tag values to text. For example, a device may have a
value of 0 (off) or 1 (on). Rather than display 0 or 1, you can display the on or off.
To configure Enumeration sets:
1. Go to Run > Dictionaries > Enumeration Sets.
2. Click New.
FactoryStudioUserGuide

57

The Create New Dictionary window displays.

3. Enter a name for the dictionary.


4. Click OK.
5. In the Value column, enter the numeric value, and in the Translated Text column, enter
the string to display.
6. For tags that use the numeric values as Enumeration Set, configure the Parameters
column to use this set.
7. When configuring a display component to use these tags, set the TextOutput to one of
the following:
8. Tagname or Tagname.Value show the numeric value of the tag.
9. Tagname.ValueAsString or Tagname.DisplayValue show the enumeration string.

CategoriesDictionary
You can create Categories in order to allow a classification of the engineering object. Most
configuration tables, such as Tags, Device Nodes, Alarm Groups, have the Category column,
where you can apply one or more categories to that object.
1. Go to Run > Dictionaries -> Categories.
2. Edit the desired categories for this project.
The object categories can also be accessed during the runtime for filtering and other custom
applications, getting the Category property of the objects. A list of all categories defined in the
Project is available during runtime at the property Server.Categories.

ImportWizards
On Run-Extensions-Import you find a set of wizards to import project components.
This contents displayed at that interface are dynamically created according to the DLL found in
the IMPORT folder of the project installation.
System Integrators and other partner companies can create import wizards using the Toolkits.
The built-in Import tools installed with the product are:
ImportFactoryStudioProjects:

Add the components of the selected project into the current project.
ImportRockwellControlLogix

Creates the Tag Names, Tag Templates and does the mapping of the PLC addresses, all according
to the information available at the L5K file.
58

4:EngineeringWorkspace

ImportOPCserverconfiguration

Creates the Tag Names, Tag Templates and does the mapping of the OPC Client addresses, all
according to the information available by browsing to the OPC server
ImportFromOSIsoftPISystem

When connecting with PI System Historian Servers, it automatically creates the link with the PI
Tags tags, elements and attributes from PI AF servers.
When connecting with PI AF, it automatically brings the definition of all templates and asset
elements in the selected database, as well as the mapping to communicate with server.
Note

The Import PI wizard will only show on licensed installations with the PI Connection module
enabled.
ImportingXMLtagtemplates

Creates the Tag Names, Tag Templates according the data structure of the XML file, it also
creates the Edit-Datasets-Files configuration to read that file
Importing.NETclassesfromaDLL

Creates Tag Templates that matches the selected .NET classes.

ConfiguringPreferences
You can configure the FactoryStudio theme and other preferences.
To configure preferences:
1. Click on the Application button (the Blue Cube on the top of the Toolbar).
2. Change or select the options you want.
Setting

Description

Theme

Select the color scheme that you prefer in the engineering environment.
The theme is also useful if you open the same project twice (one to edit
and one to view information). You can apply a different theme to each
window to distinguish them.

Grid Fonts

Click to see the fonts available for the user interface. Select the font
family, typeface, and size, then click OK.

Auto-save document

Select how often you want the system to automatically save changes
when editing scripts, using the drawing tools, and creating reports.
Note: The system saves most changes automatically, regardless of this
setting. This setting is only applicable to the functions listed above.

Confirm on Build
commands

Select to display a confirmation window every time you build the


project.

FactoryStudioUserGuide

59

Setting

Description

Allow to duplicate
Tags on

Help file location

Historian TablesSelect to permit the same tag name more than


once in the historian tables. You may want duplicate tags with
different rates or on different groups.
Device PointsSelect to permit the same tag name more than once
for device points. You may want duplicate tags for different PLCs or
different polling rates.
Local Installation PathSelect to use the help file that was installed
on your computer with the FactoryStudio software.
UriSelect if you want to access the help from the web site, or you
copied the help file (.chm) to a web server and want to access the help
from the web server. Enter the URI to the file on the web server.

3. Click close in the upper-right corner.

60

4:EngineeringWorkspace

5:Tags,AssetsandTemplates
In FactoryStudio and throughout this guide, the term tag refers to any real-time variable or its
associated historical data. Tags usually map to devices, such as PLC registers or other physical
equipment in the production process. A tag can also be connected to entries on SQL databases,
external data sources, or an internally calculated value.
The following sections describe how to configure tags:

Creating and Editing Tags on page 61

Creating Tag Templates on page 67

Creating Assets on page 68

Creating Categories on page 68

CreatingandEditingTags
Tags are the process variables for your application. Use tags and their properties to set up the data
model for your process. You can extend the types of tags available and create new types to fit your
application needs, such as machine data, equipment status, vessels, or the representation of any
asset attributes in your plant.
To create and edit tags:
1. Go to Edit > Tags > Objects.

You can also create a tag from anywhere in FactoryStudio by clicking New Tag in
the toolbar.

Tip

Likeanyotherconfigurationtable,youcanalsoimportCSVfilesorcopy/pastecontents
directlyfromanExcelspreadsheetorotherapplications.Verifythechapteraboutthe
WorkspaceOverviewonpage 45andFactoryStudioforinformationabouttheDataGrid
functionality.

2. Enter or select information, as needed, at the Insertion Row.


EditTagsObjectstable

Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48

FactoryStudioUserGuide

61

Column

Description

Name

Enter a name for the tag. The system lets you know if the name is not valid.
Note: If you edit the name of an existing tag, the system automatically updates
the name throughout the project.

Type

Select one of Built-in Tag Types on page 64 or for user defined type, see
Creating Tag Templates on page 67.

Parameters

If available, configure the parameters. The parameters vary based on the tag
type.

Array

When not defined (blank) the Tag is not an Array.


When defining an Array with value N an Array is created from position 0 to N.
For example, when creating a Tag array of size "5", the Array is created from
Tag[0] to Tag[5], this means that 6 elements are created.
Two programming styles are accommodated by this method; count from 0 to
less than five and the style that interacts on the Array counting from 1 to 5.

Description

Enter a description for this tag.

3. To add or remove a column, right-click the column heading area and check or uncheck
the columns that will be visible.
Column

Description

EngUnits

Enter the engineering units of measure that you want to use as a label for this
tag.

StartValue

Enter a starting value for this tag. This is the value the tag will be initialized
with when FactoryStudio starts.

Format

Enter a default format for displaying the data. For example:


N0Number with no decimal places.
N3Number with three decimal places.
XHexadecimal (supported only for integral types).
CCurrency.
When configuring output on the Displays, it is possible to define the format
to each output field individually, but in most scenarios it is easier to attach
the default formatting to the tag itself
For more information, see Tag Formats on page 66.

Retentive

Select an option to save the value of the tag and its internal properties to the
database every time the value changes. This retains the value when the
application shuts down and makes the value available when the application
next starts.
NoneDoes not retain the value or properties.
ValueOnlyRetains only the value.
PropertiesRetains all properties, including the value.
PropertiesOnlyRetains all properties, except the value.

Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48

62

5:Tags,AssetsandTemplates

Column

Description

Min

Enter the minimum value that is valid for the object.

Max

Enter the maximum value that is valid for the object.

Visibility

Select the value visibility on the OPC server for remote projects:
PrivateTag is visible only to the local project and redundant pair.
ProtectedRead-only tag that is visible on the OPC server to remote
projects and OPC clients.
PublicTag is visible on the OPC server to remote projects and OPC
clients.

Domain

Tag value for the entire project or value specific to each client display.
ServerTag value is consistent across the entire project and all remote
client displays. Most tags in a project should be Server tags.
ClientTag value is local to each remote computer running a client display
(web or visualizer displays).
Use Local tags to denote temporary data specific to individual client
computers. The most common use of Local tags is when temporary
data is needed to manage the user interface on the displays. Local tags
allow different values on each client computer.

Comment

Enter any comments about this tag.

ReadSecurity

Select which groups have the right to read the Tag. Tag Security protection can
be configured in Display > Client Settings

WriteSecurity

Select which groups have the right to write in the Tag. Tag Security protection
can be configured in Display > Client Settings

[Other
columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

4. Continue adding as many tags as you need.


Tip

WithFactoryStudioyoucanreplacenamesatanytime,soaneasywaytocreateatagisto
clickwiththemouseontheNamecolumnofinsertionrow,thenpressspaceandenter
repetitivetimes,thesystemwillcreateaTagfromthesametypeoflastonecreated.Youcan
usethemouseontheinsertionrowtoselecttheType,canclickwiththemouseintheheader
oranyotherofthatgrid,thatwillalsocreateatagwithadefaultname.
Also,youcanconfiguremorethanonerowatthesametime,justselecttherowswithShift
buttonthenrightclickandselectEditCombinedRows.Anewpopupwillopenwiththe
rowsinformation.Allsettingschangedinthiswindowwillchangeallrowsselected.Ifa
columnhas(*),itshowsthatthiscolumnhavemorethanoneconfiguration.

Seealso:NavigatingintheWorkspaceonpage 48

FactoryStudioUserGuide

63

BuiltinTagTypes

Tag Type

.Net Type

Digital
Integer
Long

System.Int32
System.Int32
System.Int64

Double

System.Double

Decimal

System.Decimal

Text
Timer

System.String
System.Int32

DateTime

System.DateTimeOffset

TimeSpan

TimeSpan

Guid
DataTable

Guid
System.Data.DataTable

Image

System.Byte[]

Value Range
0 through 1
2,147,483,648 through 2,147,483,647
2,147,483,648 through 2,147,483,647
-1.79769313486231570E+308 through -4.94065645841246544E-324 for
negative values; 4.94065645841246544E-324 through
1.79769313486231570E+308 for positive values
0 through +/-79,228,162,514,264,337,593,543,950,335 with no decimal
point; 0 through +/-7.9228162514264337593543950335 with 28 places
to the right of the decimal; smallest nonzero number is +/-0.000
0 to approximately 2 billion Unicode characters
Same range of the Integer, but with Built-in Parameters to create timers
from 12:00:00 midnight, January 1, 0001 to 11:59:59 P.M., December
31, 9999
Data Interval, in Days, Hours, Minutes, Seconds and Milliseconds, where
each of those properties can hold a Double value
Standard GUID unique identifier
Holds a in-memory DataTable
Can hold an Image file contents or any binary contents. Maximum size of
the contents is the long value

Warning

The Decimal type was created in .NET to allow calculation with more precision than the double,
24 four digits against 14, what is necessary when dealing with high numbers and no rounding
allowed, such as Money calculation and some very large and precise engineering metrics, however
the math operations on a Decimal can be 40 times slower then the Double. So, use the Decimal
type only in the context that the Double precision is not enough.

Timer
Built-In integer value that is generated automatically by the system to implement various timer
models:

SquareWave: the value toggles between 0 and 1.

Pulse: the the tag changes to 0, then changes immediately to 1.

Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48

64

5:Tags,AssetsandTemplates

DelayOff: the tag behaves as a PLC Timer Off . During the runtime, if you set the tag
with some value other than the StartValue, the tag will hold that value for the period
specified in the Interval. The tag goes back to its StartValue after the period of time
(Interval)

Comparer: the tag is set to 1 after the specified comparer Interval, and then goes back to
zero at midnight .

For the SquareWave, Pulse and Comparer, If you set the tag StartValue, the tag toggles between 0
and StartValue (instead of 0 and 1) .

ReferenceTags
Reference Tags allows dynamic addressing of the variables.
The concept is closer to the concept of References in .NET programming, more than the old
C++ pointers. The reason is that a Reference tag, like the .NET references, are TYPED; that
means that when creating a Reference Tag, you need to define to which tag type or tag templates
the referent will be pointing to. Like the .NET References and unlike the C++ pointers a
Reference Tag cannot be defined to point to invalid memory areas that would cause errors in the
application.
The target Type for Reference types is defined at the Parameters columns.
The fact that it is a typed reference brings advantages both in Engineering and Runtime. In
Engineering it allows Intellisense to directly browse the members of the template, when the
reference it pointing to a template; In the runtime it allows string data validation.
All Reference Tags have an additional runtime attribute that is the link, which specifies the tag,
during the runtime execution that the reference will be lined.
Essentially the Link property is a string property that should receive the target tag name before
using the reference tag. You can assign a string directly or by using a string expression, but the
best way to set the Link property is to use the Method GetName(), which will create the string
based on the current tag name. This way, you can rename the tag without having to search the
strings. It also shows the tag names linked on the cross-reference utility.
An example project (ReferenceTags) ships with FactoryStudio.
Examples
@Tag.Reference1.Link = @Tag.TagName.GetName()
@Tag.Reference1.Link = @Tag.TagName.GetName();
@Tag.Reference1.Link = Tag.TagName

(VB)
(C#)
(C#)

Seealso:NavigatingintheWorkspaceonpage 48

FactoryStudioUserGuide

65

@Tag.Reference1.Link = Tag.TagNa + me;

(C#)

Note

The reason to use the methods GetName() instead of using directly the strings , is even it is
an allowed syntax, when using the method GetName() you retain the benefits of CrossReference and Refactoring, that would be possible if you string assignments or expressions.

TagFormats
For valid numeric formats, refer to Standard Numeric Format Strings (http://
msdn.microsoft.com/en-us/library/dwhawy9k%28v=VS.90%29.aspx). For example: N1
(number with 1 decimal place).
For valid date and time formats, refer to Standard Date and Time Format Strings (http://
msdn.microsoft.com/en-us/library/az4se3k1%28v=VS.90%29.aspx). For example: d (short
date).
For a more in-depth discussion of format strings, refer to Formatting Types (http://
msdn.microsoft.com/en-us/library/fbxft59x%28v=VS.90%29.aspx).
See Table 1 for numeric format examples.
Table1:Numericformatexamples

Specifier

Description

N0

Number with no decimal places

N3

Number with 3 decimal places

Hexadecimal (supported only for integral types)

Currency

See Table 2 for date/time format examples.


Table2:Date/timeformatexamples

Specifier

Description

T (only)

Long time pattern (equivalent to HH:mm:ss).

d (only)

Short date pattern (equivalent to M/d/yyyy (month/day/year) for en-us).

dd

Show the day of the month as a number from 01 through 31.

ddd

Show the abbreviated name of the day of the week.

dddd

Show the full name of the day of the week.

MM

Show the month as a number from 01 through 12.

MMM

Show the abbreviated name of the month.

yy

Show the year as a two-digit number.

Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48

66

5:Tags,AssetsandTemplates

Table2:Date/timeformatexamples

Specifier

Description

yyyy

Show the year as a four-digit number.

hh

Show the hour as a number from 01 through 12.

HH

Show the hour as a number from 00 through 23.

mm

Show the minute as a number from 00 through 59.

ss

Show the seconds as a number from 00 through 59.

fff

Show the milliseconds as a number from 000 through 999.

tt

Show the A.M./P.M. designator.

CreatingTagTemplates
Tag templates let you create new tag types that can have multiple attributes.
To create a tag template:
1. Go to Edit > Tags > Templates.
2. Click New.

The Create New Tag Template dialog shows.

3. In the New Type Name field, enter a name for the tag type. In the Description, enter a
description of the tag. Click OK.

The Templates tab displays with the name of the new template at the top of the tab.

4. Click the insertion row to create a new attribute for this tag template.
5. Enter or select information, as needed.
Column

Description

Name

Enter a name for the attribute. The system lets you know if the name is not
valid.

Type

Select the type of variable. Select one of Built-in Tag Types on page 64 or
one of the previously defined tag templates,

Parameters

If available, configure the parameters. The parameters vary based on the tag
type.

Array

If you need an array, set last array index. For example, if you enter 5, the
system creates a tag with six elements (0 to 5).

Description

Enter a description of the attribute.

[Other
columns]

The Columns on Template Members have the same usage of the columns at
EditTagsObjects.

Seealso:NavigatingintheWorkspaceonpage 48

FactoryStudioUserGuide

67

To delete a tag type, select it from the User Custom Type drop-down list, then click
Del.

On the Objects tab, for new tags or existing ones, you can now use this new template
in the Type column.

CreatingAssets
If you have the Enterprise version of FactoryStudio, assets let you configure additional metadata
for your project. For example, you can organize objects in your project, such as tags, devices, and
alarms, into a hierarchy. This lets you group tags that are related to each other. The hierarchy may
reflect such things as, areas of your manufacturing floor or the location of your machinery.
To create assets:
1. Go to Edit > Tags > Assets.
2. Right-click the project name and select New Level.
3. Enter a name for the level.
4. Right-click the new level and select Insert Asset.

The Select Object window displays, with all objects, by type, on the left side.

5. Select the object type from the left side and the object you want from the right side.
6. Click OK.

The object becomes a child of the selected level.

7. Continue adding child or sibling levels and inserting assets, as needed.

If needed, right-click a level to rename or delete, or right-click an asset to delete it.

8. On the Objects tab, for new or existing tags, select the new level in the Level column.

CreatingCategories
If you have the Enterprise version of FactoryStudio, you can create user-defined categories of
data that you can use as metadata for tags. Categories are useful for filtering, both when creating
the project and in the runtime.
To create categories:
1. Go to Run > Dictionaries > Categories.
2. Enter or edit the name and description for the category.
3. Continue adding as many categories as you need.

Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48

68

5:Tags,AssetsandTemplates

4. On the Tag -> Objects tab, for new or existing tags, select the new category in the
Category column. Other Project elements can also use categories for project
organization.

TagRuntimeObjects
TagNamespace
All project real-time variables, or project tags as they usually are referred to in process automation
context, created at the EditTagsObjects table on page 61, are available to the runtime modules
as .NET objects at the Tag Namespace.
All Built-in Tag Types share a common set of properties and methods defined in the base class
TagObj. The Tags created from user defined templates, see Creating Tag Templates on
page 67, are implemented by the base class UserType.
ClassType

Description.

TagObj

Base classes to all Tag objects.

Digital

Runtime properties for tags of Type Digital.

Analog

Runtime properties for all Analog Tag Types.

AnalogInt

Runtime properties for tags of Type Integer.

AnalogLong

Runtime properties for tags of Type Long.

AnalogDecimal

Runtime properties for tags of Type Decimal.

AnalogDouble

Runtime properties for tags of Type Double.

Text

Runtime properties for tags of Type Text.

TDateTime

Runtime properties for tags of Type DateTime.

Timer

Runtime properties for tags of Type Timer.

TTimeSpan

Runtime properties for tags of Type TimeSpan.

Reference

Runtime properties for tags of Type Reference.

TDataTable

Runtime properties for tags of Type DataTable.

UserType

Runtime Properties for tags from Templates.

See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming


reference on runtime objects.

Seealso:NavigatingintheWorkspaceonpage 48

FactoryStudioUserGuide

69

Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48

70

5:Tags,AssetsandTemplates

6:HistorianandDataLogging
The Historian module performs automated data logging to SQL databases, and others. You can
also use the Datasets module to store data in SQL, but the Historian module has a simplified
configuration, with the database tables automatically created and a built-in connection with the
trend charts.
The system can also use the information on the historian on the .NET scripting, get past values
on tags or graphic displays or export the data.
The following sections describe how to configure data logging:
Adding Tags for Data Logging on page 71.
Configuring Historian Tables on page 72.
Historian Tables Schema on page 74.
Visualizing Trend Charts on page 75.
Customizing Getting Samples on page 75.
You can select any SQL database, such as Microsoft SQL Server, Oracle, MySQL or any OLEDB
or ODBC compliant database to store the data. By default, FactoryStudio uses an embedded SQL
database (TatsoftDB) that has a maximum capacity of 10 GB, for information on how to select
the historian database, see Historian Database Provider on page 74.
When using OSIsoft(tm) PI System, there is no need to do any Historian configuration to access
the data stored in the PI System, see Using OSIsoft(tm) PI System on page 74.

AddingTagsforDataLogging
After you configure your tables for the tag historian, you can configure the tags for the historian.
To configure the tags for the tag historian:
1. Go to Edit > Tags > Historian.

You can copy and paste tags from the Objects tab.

2. Enter or select information, as needed.

Seealso:WorkspaceOverviewonpage 45,NavigatingintheWorkspaceonpage 48

FactoryStudioUserGuide

71

Column

Description

Name

Enter a tag name or click ... to select a tag.

DeadBand

When using the Save on Change option in the historian table, the DeadBand is
how much the value must change (in EngUnits) for the system to store the
value in the historian.

Deviation

When using the Time DeadBand option in the historian table, the Deviation is
how much the value must change (in EngUnits) for the system to store the
value in the historian. This value overrides the Time Deadband logging
interval.

RateOfChange When using the Time DeadBand option in the historian table, the
RateOfChange is how much the value must change (in EngUnits) by second,
for the system to store the value in the historian. This value overrides the Time
Deadband logging interval
HistorianTable Select the table that has the settings you want to use for when to save and how
long to retain this tags value.

3. Continue adding as many tags as you need.


Othersettings:

Use Binary Cache: Select this option to historian the tag historian data in binary blob columns instead of directly
accessible values.

Changing this settings changes the storage format and the data on previous format is not
automatically converted.

Use Binary Historian Select this option to historian the tag historian data in binary blob
columns instead of directly accessible values.
Caution

Changing this settings changes the storage format and the


data on previous format is not automatically converted.

ConfiguringHistorianTables
By default, the tag historian database has one table configured. The table settings control when
tag values are written to the historian and how long the values stay in the historian. If you want
some tags to have different settings, you should configure additional tables with the settings you
need and assign tags to the appropriate table.
The table configuration is independent of the Database selected to store the information, as
described in Historian Database Provider on page 74.

Seealso:NavigatingintheWorkspaceonpage 48

72

6:HistorianandDataLogging

If you want some tags to have different settings, such as the logging interval, you should configure
additional tables with the settings you need and assign tags to the appropriate table. You can also
edit the settings of the default table.
In general, do not store more data than you need. Storing a large amount of data slows the
recovery of that data. You should use triggers and deadbands that are as large as possible, to
ensure you have the information you need, without overloading the system.
To configure a historian table:
1. Go to Edit > Tags > Historian.
2. Do one of the following:

To edit an existing table, select it from the Historian Tables drop-down list and click
Config.

To create a new table click New.

3. Enter or select information, as needed.


Option

Description

Database

Display-only name of the current tag historian database.

Table Name

Enter a name for table in the database.

Auto Create

Select to have the system automatically create the table in the


database.

Save on Change

Select to store data in the table (add a row) every time a tag
associated with the table changes.

Trigger

Use to store data in the table every time a tag or tag property
changes. When used with the Save on Change option, the system
stores data in the table when either the tag value changes or the
Trigger value changes.

Time Deadband (Log


TimeSpan)

Enter the minimum logging interval, that is, how long the system
must wait after storing the value of a tag before storing a new value.
Use with the Save on Change option to avoid creating too many
records in the database.

Life Time

Number of days to retain the historian data. After that time, the
older rows are automatically deleted from the database. To never
delete data, leave this field blank or enter 0 (zero).

Compress

Number of the days before compressing the data. The compressed


data is still available to trend charts and scripts, but access is slower.
To never compress the data, leave this field blank or enter 0 (zero).

Seealso:WorkspaceOverviewonpage 45

FactoryStudioUserGuide

73

HistorianDatabaseProvider
The database used to store the Tag Historian is defined in Edit > Datasets > DBs by the database
connection object named TagHistorian.
By default, when a new project is created, the TagHistorian is defined to use the Tatsoft built-in
embedded SQL database TatsoftDB.
Caution

The TatsoftDB database should be used for databases up to 10GB. If the amount of tags and save
interval is expected to create more than 10GB, you should define another SQL for Tag Historian
Database
In order to define another Database to store the Tag Historian database, you just need to create a
new database connection, as explained at Chapter 10, Configuring Database Connections on
page 105, and name it TagHistorian.
Tip

Thesystemdoesnotallowduplicatednames,sotocreateaDBconnectionwithname
TagHistorianyoumustrenameordeletetheexistingrowusingthatname.

UsingOSIsoft(tm)PISystem
The system can seamlessly use the OSIsoft PI System as the historian provider. In this scenario it
is not necessary to do any Historian configuration at all. If the tag is mapped to a OSIsoft PI
point, the system will automatically call the PI Server to get data when plotting trend charts or any
script or display methods requiring historian information.
The system can work with both the PI System and our the built-in Historian at the same time,
when historical information is requested to a point, either from trend charts or scripts, the system
will look for that information on the built-in Historian module and, if not available, it will try to
find that data on the PI server.
For information on connection to PI Systems, see Import Wizards on page 58

HistorianTablesSchema
The historian tables contain the following columns:

Seealso:NavigatingintheWorkspaceonpage 48

74

6:HistorianandDataLogging

UTCTimeStamp_TicksDate and time in Universal Time for that row in 64-bit .NET
ticks. The value of this property is the number of 100-nanosecond (1/10th of a
millisecond) intervals that have elapsed since 12:00 A.M., January 1, 0001. This is a new
date/time standard used by the Microsoft .NET framework.

LogTypeAuxiliary column to show when the row was inserted: 0=on startup,
1=normal logging, 2=on shutdown.

TagNameColumn automatically created using the name of tag as the column title. It
stores the data value using double precision.

_TagName_QColumn automatically created for the quality of the data, using the OPC
quality specification.

Typically you can associate up to 200 tags with each historian table, but that number is dependent
on how many columns your target Database allows. The tags should be defined in the same table
when they have similar storing rates and process dynamic, as you need to save one tag in the table,
you need to save the entire row.

VisualizingTrendCharts
In order to visualize trend charts with historical information, you can use the built-in trend object
on the displays or reports. See section Chapter 12, Configuring the Trend Window on page 150
for more information.

CustomizingGettingSamples
The trend chart object calls the Historian server to get the data to plot the charts. In some
scenarios, you may want to override that configuration and define a .NET code to provide the
values. This is used, for instance, to plot recipe calculated data, future data, data from other SQL
tables or any custom scenario.
The custom GetSamples method should be defined at any Script Class and on Edit-TagsHistorian that method must be defined at the column GetSamplesMethod.
The prototype of the method is:
DataTable GetSamples(string[] tagNames, object startRange, object
endRange)

When overing tables used on time charts the StartRange and EndRange are of type
DateTimeOffset. When getting date to X-Y charts, the Range are double variables.
The Returned DataTable shall have the columns:
DateTime: Date time of the sample
TagName: The name of tag is used as FieldName to the column with Double values of the tag
Seealso:WorkspaceOverviewonpage 45

FactoryStudioUserGuide

75

_TagName_Q: Optional column with the quality of the data

HistorianRuntimeObjects
The Historian namespace has the properties and current of the Historian server.
The Historian.Table object has the list of Historian tables defined and its properties.
The following tag property, if there is the data logging, is enabled to the tags.
Tag.tagname.Historian

Seealso:NavigatingintheWorkspaceonpage 48

76

6:HistorianandDataLogging

SecurityandUsers
By default, the system logs you in as the Guest user when you start FactoryStudio. The Guest user
does not need to enter a user name or password.
If you want to secure access to your projects, you can add users and configure passwords and
other settings for each user.
The following sections describe how to configure security:

Adding and Editing Users on page 77.

Configuring Permissions on page 78.

Configuring Policies on page 79.

Removing Users on page 80.

AddingandEditingUsers
To add security to your installation of FactoryStudio, you can add and edit users. FactoryStudio
comes with the following user names configured by default:

AdministratorBuilt-in user that controls the Security System. No password is


configured by default. You should set a password for this user.

GuestUsed by default to access FactoryStudio and when you log off as another user.
No password is configured by default.

UserUse as a generic user. No password is configured by default.

The Administrator-level and Guest-level user IDs have built-in attributes. The Administrator is
the only user who can delete or block users and the only user who can define passwords for
Database DB interfaces. Guest Users are used for anonymous login users, and do not have
passwords assigned to them.
Do not create other users with those names, neither change the row ID of those users, as the
system is hard-coded to assume those users exit with the pre-defined IDs.
Note

You cannot delete the Guest user, neither add a password to it. The Guest user must be available
as the default user when you log off as another user. You may want to change the Guest user
permissions, so that Guest users do not have access to all functions. See Configuring
Permissions on page 78.
To add and edit users:
FactoryStudioUserGuide

77

1. Go to Edit > Security > Users.


2. Enter or select information, as needed.
Column

Description

Name

Enter a user name. The system lets you know if the name is not valid.

Permissions

Select the permission group to use for this user. See Configuring
Permissions on page 78.

Password

Enter a password for the user. The system lets you know if the password is not
valid. You can configure password requirements. See Configuring Policies
on page 79.

PasswordHint

Enter information that can help you remember the users password.

Policy

Select the policy settings to use for this user. See Configuring Policies on
page 79.

Blocked

Select to block the users access. You may want to use this for users who are no
longer with your company.

Deleted

Select to block the users access and flag the user as deleted, without deleting
the user. You may want to use this for users who are no longer with your
company.

Profile

Enter the users email address, phone number, and full name.

Note

Deleting or blocking an user results in him being unable to access runtime.


3. Continue adding as many users as you need.

See the following sections related to the other user tabs:

Configuring Permissions on page 78.

Configuring Policies on page 79.

Removing Users on page 80.

ConfiguringPermissions
You can configure which functions users can access when editing the project and when using the
runtime. You set permissions using Groups.
FactoryStudio comes with a few predefined groups that you can use, or you can create your own.
To configure permissions:
1. Go to Edit > Security > Permissions.
2. Enter or select information, as needed.

78

Column

Description

Name

Enter a name for the group. The system lets you know if the name is not valid.

Edit

Select the functions users in the group can access when editing a project.

Run

Select the functions users in the group can access when using the runtime.

Description

Enter a description for the group.

3. Continue adding as many groups as you need.

The permission groups you create are available for use on the Users tab.

EditSecurityPermissions.RunDisableWindowsapplicationsswitch

One option on the Run permissions is to disable to Switch Applications. If disabled, the following
actions/keys will be inhibited for that use:

Access to the Start button and the Task Toolbar.

Windows Logo button

Ctrl + Alt + Del

Ctrl + ESC

Alt + Tab

lt + F4

Windows Logo + L

Note

To allow to disable the keyboard short-cuts to switch applications, the file


DisableTaskSwitchProtection.bat must be run from the installation directory, in-order to install
the keyboard driver necessary to implement this feature.

ConfiguringPolicies
You can configure settings that you can apply to users.
FactoryStudio comes with a few predefined policies that you can use, or you can create your own.
To configure policies:
1. Go to Edit > Security > Policies.
2. Enter or select information, as needed.
Column

Description

Name

Enter a name for the policy. The system lets you know if the name is not valid.

Identification

Select the password rules for both editing a project and accessing the runtime.

FactoryStudioUserGuide

79

Column

Description

Esign

For runtime only. Select to enable a timeout for the runtime login. Enter the
timeout period in minutes.

Session

For runtime only. Use to enable a timeout for the runtime session. Select what
will cause an automatic logoff, then enter the appropriate values for
InactivityMinutes and DurationHours. This setting only logs the user off. The
application continues to run.

Description

Enter a description for the policy.

3. Continue adding as many policies as you need.

The policies you create are available for use on the Users tab.

If needed, right-click a row to cut, copy, paste, or delete the row.

RemovingUsers
You have three ways to disable users in FactoryStudio:

BlockingUse to block the users access. You may want to use this for users who are no
longer with your company.

Flagging as deletedUse to block the users access and flag the user as deleted, without
deleting the user. You may want to use this for users who are no longer with your
company.

DeletingRemoves the user completely from the system.

You can use the method that is best for your company.
To remove users:
1. Go to Edit > Security > Users.
2. Click the user you want to remove.
3. Do one of the following:

To block a user, select the Blocked column.

To flag a user as deleted, select the Deleted column.

To completely delete a user, right-click the row and select Delete selected row.

ManagingRuntimeonlyUsers
When running the application, the Login procedure will accept all users defined in the Project
Configuration, but additional users, defined only by the system can be included.

80

The Runtime-users are defined in the database RuntimeUsers defined in Datasets. By default, that
database is mapped to a TatsoftDB database. You can select any other database by creating
another DB connection and naming it RuntimeUsers (you will need to delete or rename the
existing RuntimeUsers row before doing that, as the table does not accept duplicated names).
You can populate that database directly before starting the runtime, or after the project is
running, you can create or modify the users with the methods in the Security Name.
See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects
When those methods are executed, the new or modified users are automatically saved on the
RuntimeUsers database.

CustomizingLoginProcedures
The Login page is editable, you just need to select the display with name LogOn to edit its layout.
As you can see in the code behind of that display, it calls the method Security.Logon() to do the
validation of the user. If you want to perform any other user validation, you just need to modify
that logic calling your own validation system and then calling the LogOn method, according to
the results of your validation.
Another way to customize the logon is to put your own custom logic on the ClientStartup script
task. The script is executed on any computer that is connecting to the server application, you can
perform verifications based on computer IP, computer name, Windows Active-Directory Logged
user, or any other criteria to specify if the user is allowed to start the application and which should
be their credentials, after that you can either call client.Shutdown to terminate the application if it
was an unauthorized access or Security.Logon() with a user that matches the selected security
profile.
By default, when starting the application on a client computer, instead of requesting a login, we
start the system with the user GUEST. The user Guest is equivalent to an anonymous login, if you
dont want that on your application, just replace the startup page with a page requesting the
Logon information.

SecurityRuntimeObjects
The namespace Security has all the runtime information regarding the security system.
The Client object has information about the current user logged at that client station:
Client.Username property is the name of current logged user.
Client.CurrentUser is a reference to a data structure with all the information of the

currently logged-in user.


See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects.

FactoryStudioUserGuide

81

82

8:DevicesandInterfaces
Devices in FactoryStudio are any live real-time data source. Typically a device is a PLC, another
FactoryStudio, an OPC server, a PI System, or any equipment that has a communication protocol
The following sections explains how to configure the Device Module:

Communication Protocols on page 83 presents the protocols and interfaces are supported.

Configuring Channels on page 85 explain the Channel configuration, Channel is the name
used by FactoryStudio to define a logical network running a selected protocol

Configuring Nodes on page 87; nodes are the stations connected to each channel, that
means the devices that are connected to each logical network.

Configuring Data Points on page 92 defines the read or write addresses on each device
node that will be accessed;

Configuring Access Types on page 93 allows to customize how the data points will be
accessed, such as read or write, execution cycles and triggers.

CommunicationProtocols
Connectivity is a key feature on FactoryStudio platform, therefore the system has built-in support to
many industry standard protocols, such as OPC and Modbus, as well FactoryStudio has also many
native communication interfaces to a variety of hardware manufacturers, PLC and protocols.
The reason to include native protocols, besides OPC, are many, such as: cost reduction, as most
protocols are not charged; easier configuration, as it is integrated on the system; and higher access to
protocols functions, performance and diagnostics features that would not be possible with the
external component. The technical support is also simplified as it is only provider

IncludedProtocols
The following communication protocols are included on the standard product distribution: Listed by
alphabetical order

Automation Direction, KOYO, using ECOM protocol

Barcode Reader ASC

CTC Binary 5300 model

Mitsubishi - Series Q

FactoryStudioUserGuide

83

Modbus - TCP/IP and RS-232, RTU and ASC, modbus master protocol

Modbus Slave - TCP/IP and RS-232, RTU and ASC, modbus slave protocol

Omron Master using FINS Commands

OPC DA Client - OPC client access to local or remote servers

OPC UA Client

Ping - IT Infra-structure

System Monitor - IT Infra-structure

Rockwell/AB ControlLogix

Rockwell / AB MicroLogix

Rockwell/AB DF1 Ethernet

Siemens S7 Protocol

TRemoteClient - FactoryStudio to FactoryStudio communication

TwinCAT - Beckhoff ADS interface

WITS Level 0 - Pason

WITS Level 0 - Passive

SupportedProtocols
There are many protocols that although not released on the product distribution, they are available
upon request at no charge. Some of those protocols are already in the release state, others are under
development and testing, contact us if you have requirement for the protocols on this list. Even your
required equipment is not listed, but there is public information about the protocol, contact us as, in
many cases, provided that he have access to protocol documentation and testing units, there is no
charge to create a native interface.
In alphabetical order:

84

Altus AL-1000, AL2000 and Nexto PLCs

Fatek Facon PLC

GE Fanuc SNP and SNP-X

Mitsubishi Series A and FX

Omron CS/CJ/CP-series CPU Unit or NSJ Controller

Reliance CP3000

Smar CD600

SNMP - Simple Network Management Protocol

8:DevicesandInterfaces

AdditionalInterfaces
There are few interfaces that are available and not included on the product distribution as they have
its own installation packages or they are sold as an optional module. That includes the following
protocols, in alphabetical order:

DNP 3.0 Protocol

IEC 61850

IEC-870-5-101

IEC-870-5-104

OSIsoft PI System and PI AF, using AFSDK connector

Drivertoolkit
Tatsoft team has a huge experience on the creation of communication drivers, that includes more than
two hundred interfaces created over that past twenty years.
Result of that accumulated experience, FactoryStudio has an open standard interface, the Driver
Toolkit, to allow add new protocols in a easy and efficient way. The standard built-in infra-structure
takes care of everything related the physical sending and receiving of the messages, the real-time tags
access, the address configuration and the diagnostics and performance tools.
The Driver Toolkit is available to System Integration partners and licensed end-users, contact us if
you have the requirement to create your own custom interfaces.

ConfiguringChannels
Channels in FactoryStudio are the protocols you use to communicate with your PLCs. Many built-in
protocols are available. You must set up a channel for each protocol you need to use.
To configure channels:
1. Go to Edit > Devices > Channels.
2. Click Create New.

The Create New Channel window displays.

3. Enter or select information, as needed.

FactoryStudioUserGuide

85

Column

Description

Channel Name

Enter a name for the channel. The system lets you know if the name is not
valid.

Protocol

Select the protocol this channel uses. If you do not see a protocol that you
need, click More to provide information for a new protocol.

Interface

Select the interface type for this channel.


SerialUse to configure the serial parameters for RS232/485 networks.
MultiSerialUse for configurations with multiple RS-232 ports.
TCPIPUse for Ethernet or wireless networks.
For more information about the configuration for common protocols, click
Help at the top of the tab.

Description

Enter a description for this channel.

4. Click OK.

The channel is added as a new row in the table.

5. Enter or select information, as needed.

To add or remove a column, right-click the column heading area and select or deselect
columns.

Column

Description

Name

Enter a name for the channel. The system lets you know if the name is not
valid.

Protocol

Shows the Selected protocol

ProtocolOptions

Configure the options for this protocol.


Note

The Protocol options are dependent upon the Selected


Protocol. Select the protocol on the ComboBox on the top
of the page and press the HELP button on its side to access
the specific protocol documentation.
Interface

86

Shows the Physical interface used by this channel.

8:DevicesandInterfaces

Column

Description

Settings

Configure the settings for this channel. The values available depend on the
Interface the channel is using.
Note: The settings here must match the settings on the slave device.
For serial interface, typically keep the defaults.
For a MultiSerial interface, enter the number of RS-232 ports to use in the
Ports field.
For TCPIP interface:
AcceptUnsolicitedAccept unsolicited of slave.
ListeningPortTCP port where the slave device is connected
(default is 502).
NodeConnectionNumber of parallel requests sent to each node
(asynchronous communication).
MaxSimultaneousConnectionsMaximum number of concurrent
connections.
ShareNodeSameIPA single IP address and several slaves
connected. For example, RS485/Ethernet Converters.
UseSingleThread - Use a single thread for same IP nodes.

UsePingToCheckConnection - Checks for connection before


sending a packages.

Timeout

Configure the timeout options for this channel. Typically, keep the default
value.

IntialState

Select the initial state for this channel.

Description

Enter a description for this channel

[Other columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

6. Continue adding as many channels as you need.

If needed, right-click a row to cut, copy, paste, or delete the row.

See the following sections related to the other device tabs:

Configuring Nodes on page 87

Configuring Data Points on page 92

Configuring Access Types on page 93

ConfiguringNodes
Nodes in FactoryStudio are the devices or PLCs on the network that you communicate with.
You can also import settings from an OPC server or from other data source. See Importing PLC
Addresses on page 90.
FactoryStudioUserGuide

87

To configure nodes:
1. Go to Edit > Devices > Nodes.
2. Enter or select information, as needed.

88

To add or remove a column, right-click the column heading area and select or deselect
columns.

Column

Description

Name

Enter a name for the node. The system lets you know if the name is not
valid.

Channel

Select the channel for this node. For more information about the
configuration for common protocols, click Help at the top of the tab.

8:DevicesandInterfaces

Column

Description

PrimaryStation

Enter the information required to access the primary node, based on the
protocol selected.
Note

The Protocol options are dependent upon the Selected


Protocol. Select the protocol on the ComboBox on the top of
the page and press the HELP button on its side to access the
specific protocol documentation.
For Modbus protocol:
For a Serial interface, the SlaveID is the device slave address on the
Modbus network. Valid addresses are 1-247.
For a MultiSerial interface, select the number of the ComPort and enter
the SlaveID the device slave address on the Modbus network. Valid
addresses are 1-247.
For a TCPIP interface:
IPIdentification of the slave device address.
PortTCP port where the slave device is connected (default is 502).
SlaveIDDevice slave address on Modbus network. Valid addresses
are 1-247.
For OPC interfaces:
Service URLDefines the location of the OPC server.
You must configure the DCOM settings to access an external OPC
server. Contact support for assistance.
RefreshRateServer refresh rate.
AllTemsSameGroupAdds all items in a single group OPC. In this way,
only one connection is created with OPC server.
WaitAfterConnectTime to communicate after the application is
running.
Tip

OPCUAandOPCXmlDAprotocolshaveaTestbuttonto
testconnection.OPCUAalsohaveaCertificatesbutton
tocreatenewcertificatesforthesystem.
BackupStation

Enter the information required to access the backup node, based on the
protocol selected. When defined, and a communication failure occurs on the
primary station, the system automatically attempts to establish
communication with the backup station.

Description

Enter a description for this node.

3. Continue adding as many nodes as you need.

FactoryStudioUserGuide

89

ImportingPLCAddresses
When creating the communication nodes and data points, you can import them if they are defined in
another data source in the following ways:

You can copy and past the contents of a table from Excel. The tables can have different
columns or order, as long you include the title of the column in the copy and paste
operations. The system will put the data in the expected columns, even if the order is different
in the source and target tables.

You can import the data from csv files.

For Rockwell ControlLogix devices, you can import from L5k definition files.

For OSIsoft PI database, there is a FactoryStudio version to share definitions.

A programming API is available that can populate the tables from code, even from runtime
execution when it is necessary.

If your PLC or field device has an open database or file with the available addresses, and you would
like to have a tight integration with that configuration and FactoryStudio addresses, contact support.

ImportingfromanOPCServer

After you create an OPC communication node, you can select the node and click Import to import
the OPC database for the project. FactoryStudio creates automatically the tags and communication
points.

ImportingfromanExcel

To create and import Tags:


1. Make a table on the Excel with the Columns as shown below.

90

8:DevicesandInterfaces

Tip

Toimportbesuccessfulyouonlyneedthecolumns:TagName,TypeandAddress.

2. After chosen the Device Protocol and created a new Node, click on the Import button. Then
choose the .CSV file with the Tags information and click on the OK button.

FactoryStudioUserGuide

91

3. The Tags and Points will be created automatically.


Edit > Tags

Edit > Device > Points

After you have used the Import tool for the first time, the system will save the settings used, so the
button shows now SYNC, which means the next time you use it, it will run a synchronization,
verifying which addresses were previously imported and the new ones.

ConfiguringDataPoints
The number of data points you can configure is related to both the ProductModel configured for the
project and your license for FactoryStudio. For information about the product models, see Product
Family and Model on page 194.
To configure data points:
1. Go to Edit > Devices > Points.

You can copy and paste tags from the Tag > Objects tab.

2. Enter or select information, as needed.

92

To add or remove a column, right-click the column heading area and select or deselect
columns.

8:DevicesandInterfaces

Column

Description

TagName

Enter a tag name or click ... to select a tag. You can also create a new tag.

Node

Select the node for this data point.

Address

Enter the register address, based on the PLC and protocol for this data
point and tag.
Note

The Protocol options are dependent upon the Selected


Protocol. Select the protocol on the ComboBox on the top
of the page and press the HELP button on its side to access
the specific protocol documentation.
DataType

Select the data type you want to use. Most protocols should use the Native
option. When Native is used, the protocol will automatically handle the
data conversion.
Selecting a different data types overrides the defaults. Some options may
not be applicable to the selected node. Make sure you know the applicable
data types.

Modifiers

If the PLC uses a different byte order, select the options you want. You can
change the position bit, byte, Word, or Dword of the data that is
communicated.

AccessType

Select the access type for this point. You can configure access types. See
Configuring Access Types on page 93.

Scaling

If you want to manipulate the tag value in some way, select the options you
want.
For the Equation option, when reading the data:
DivThe system will divide the register value by what you enter here.
AddThe system will add the amount you enter here as an offset to the
result of the division.
For a write operation, the calculations are the opposite (multiple by the
Div value, then subtract the Add value).

[Other columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

3. Continue adding as many points as you need.

ConfiguringAccessTypes
You can configure access types that control the read, write, and other settings when the application
accesses PLC data.
FactoryStudio comes with a few predefined access types that you can use, or you can create your own.
To configure access types:
FactoryStudioUserGuide

93

1. Go to Edit > Devices > AccessTypes.


2. Do one of the following:

To edit an existing access type, double-click a field.

To create a new access type, click Create New.

3. Enter or select information, as needed.


Column

Description

Name

Enter a name for this access type.

Read
ReadPolling

Select when you want to enable read polling.

ReadPollingRate

Enter how often to retrieve the address value.

ReadTrigger

Enter an object property to tell the system when to read the value.

ReadOnStartup

When selected, the system reads the value on startup.

ReadStatus

Enter an object property to receive the status of the read


communication

ReadCompleted

Enter an object property to receive an indication that the reading is


completed. The value will change between 0 and 1 every time a reading
was completed.

Write
WriteEventEnable

Select to enable writing of values to the PLC.

WriteEvent

Select when to write the value.

WriteTrigger

Enter an object property to tell the system when to write the value.

WriteStatus

Enter an object property to receive the status of the write


communication.

WriteCompleted

Enter an object property to receive an indication that the writing is


completed. The value will change between 0 and 1 every time a writing
was completed.

Settings
AcceptUnsolicited

When selected, the system accepts values from the PLC, even if the
polling time has not yet elapsed.

UseStaticBlocks

Select when you want to use the block command field

BlockCommand

Enter a definition for each block that will be created. CHeck the driver
documentation to see if the specific drive uses this filed and the valid
values.

Description

Enter a description for the access type.

[Other columns]

94

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

8:DevicesandInterfaces

Diagnosticstools
Afterstartingtheproject,theStartupwindow,wecanselectsomediagnostictools,theyare:
PropertyWatch(Watch),TraceWindow(Trace),andModuleInformation(Info).

You can also start the Diagnostics tools at the Run-Test and Run-Startup pages, pressing the mouse
left button over the icons of the diagnostics tools. If the menus are enabled at the Displays you can
also access the Tools menu.

ModuleInformation
The Module Information contains information about the operation of the modules. To choose the
module Devices and a specific channel, we have several information about the functioning of the
communication channel.
A very important section is the "Read Groups Information" because it provides information about
the virtual reading groups, run time of each item, quantities of readings and readings that have failed,
and also reports on the code and date/time of the last error.
FactoryStudioUserGuide

95

This is the typical steps when using the Module Information:


1. Go to Read Groups Information, to look at the number Success and Failed communication,
in order to quickly identify the communication blocks.
2. If you have systematic error in all blocks, or status codes with negative values, typically it
means you cannot access the remote device. Verify if the node address is right.
3. If you have one or another block with systematic error, verify the tags and addresses
connected with that block. Use the TraceWindow with Device information to collect
information about those communication errors.
4. For some protocols, such as OPC, the Discarded items will show the wrong addresses in the
configuration.
When running Enterprise application in TEST mode, keep in mind that in this mode, we only READ
from the field devices, even you have a configuration to write to field.
It is very useful to run the application with ONLINE CONFIGURATION enabled, so you dont
need to start and stop the driver when modifying the configuration. You can modify PLC addresses,
AccessTypes and most of the application and see in real-time the results on your running application.
You can use the Startup-Window or the PropertyWatch to start and stop only one module, like the
Devices, instead of restarting all the runtime system.

PropertyWatch
The Property Watch is a diagnostic tool used to access tags and internal properties of the system for
reading or writing. Just type the name of the property in the column Object and have its value in the
Value column.

96

8:DevicesandInterfaces

E.g.: Tag.Coils, Device.Channel.Modbus.Status . On the right side we have additional properties of the
selected object.

TraceWindow
The Trace Window is the tool that informs system messages in a data grid interface. When enabling
the module Devices at the Settings button, we have information about status of readings, writings,
unsolicited, TX frames (sending) and RX (received).

Tip

WhencheckingtheDevicesCheckBoxontheSettings,enableonlytheERROR,INFOand
Warninginformation,nottheDebuginformation,otherwiseyouwillcreatetoomuchdata.
ForControlLogixdevicesitisveryimportanttousethistool,asthesystemwillpresenthere
theinvalidaddressesontheconfiguration.

FactoryStudioUserGuide

97

When we click on the settings button in the configuration dialog you can select which message types
and modules, see the data in the data grid or save to file. It is also possible to configure a tag in
ObjectName and click the Add button to bring up a menu to select that object to include on the
monitoring.

DeviceRuntimeObjects
The namespace Device is the entry points to all objects related with the Device module.
The Device.Channel object lists all configured channels and its runtime properties
The Device.Node object lists all configured nodes and its runtime properties
The Device.AccessType object lists the defined access types and has options to execute
synchronous calls on reading and writing to the device.
The following tags properties are updated based on the device module:
tag.tagname.DevicePoint: Device point address connected with this tag

See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming


reference on runtime objects

98

8:DevicesandInterfaces

9:Alarms,EventsandAuditTrail
The following sections describe how to configure alarms and events:

Configuring Audit Trail on page 99

Configuring Alarm Options on page 99

Configuring Alarm Groups on page 100

Configuring Alarm Items on page 101

Alarm Acknowledgment on page 103

Subscribing Notifications on page 103

Alarm Database and Table Schema on page 104

Alarm Runtime Objects on page 104

ConfiguringAuditTrail
You can select which events are logged to the Audit trail. This configuration is for the system
events you select, not alarms.
To configure Audit Trail:
1. Go to Edit >Alarms> Groups.
2. Click Settings.

The AuditTrail window displays.

3. To enable event logging, select the Enable option.


4. After selecting Enable, select the events you want to log.
5. Click OK.

ConfiguringAlarmOptions
You can configure general alarm and event settings that determine how the system handles alarms
during startup and how long alarms and events remain in the alarm historian.
To configure general alarm options:
1. Go to Edit > Alarms > Groups.
FactoryStudioUserGuide

99

2. In the Initial Disable Time, enter how long the system should wait during startup before
considering an alarm state to be an alarm.

During startup, a device may show an alarm, because the device has not yet
initialized. This setting tells the system to wait the configured amount of time to let
the system complete its startup, before the system considers alarms.

3. In the Life Time field, enter how long the alarm historian retains the alarm data, in days.

ConfiguringAlarmGroups
Alarm groups let you configure settings for what happens when an alarm occurs. Use alarm
groups to configure common settings for use with multiple alarm events. The group settings
determine such things as whether an acknowledgment is required, whether a sound plays, what is
logged, and how alarms display.
FactoryStudio comes with a few predefined alarm groups that you can use, or you can create your
own.
Define the Group name in EditAlarmGroups where the Alarm item behavior is specified.
The pre-defined Groups are:

Critical (Critical Messages that require acknowledgment)

AuditTrail (System Events log)

Warning (Warning messages that do not require acknowledgment)

To configure alarm groups:


1. Go to Edit > Alarms > Groups.
2. Enter or select information, as needed.

100

Column

Description

Name

Enter a name for the alarm group. The system lets you know if the name is not
valid.

AckRequired

If required, the alarm stays in the alarm list until someone acknowledges the
alarm by double-clicking it in the application.

Sound

Select the sound that will play when the alarm occurs.

Show

Select List for the alarm to display in the alarm window in the application

LogEvents

Select when you want the alarm to be logged to the alarm historian:
NoneAlarms are not logged.
ActiveLog when alarm is active.
ActiveAckLog when the alarm is active and acknowledged.
ActiveNormLog when the alarm returns to normal.
AllLog all of the above conditions.
9:Alarms,EventsandAuditTrail

Column

Description

Colors

Select the colors you want to use for each state:


ActiveConfigured alarm is in the alarm state.
NormalizedConfigured alarm was in the alarm state, but is no longer in
the alarm state and still needs to be acknowledged.
AcknowledgedConfigured alarm has been acknowledged, but still is in
the alarm state.

AckTimeout

Defines a timeout to ack the alarm. If the alarm is not acknowledged after the
specified time, the alarm becomes active again

AutoAckTime

If the alarm is not acknowledged after the specified time, the system
acknowledges the alarm.

Description

Enter a description of this alarm group.

[Other
columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

3. Continue adding as many alarm groups as you need.

If needed, right-click a row to cut, copy, paste, or delete the row.

See the following sections related to the other alarm tabs:

Configuring Alarm Items on page 101

ConfiguringAlarmItems
When configuring Alarms, you configure the specific thresholds that generate an Alarm. You can
have multiple rows for the same tag to set different thresholds for the tag.
To configure Alarms:
1. Go to Edit > Alarms > Items.
2. Enter or select information, as needed.
Column

Description

TagName

Enter a tag name or click ... to select a tag.

Condition

Select the condition you want to use for this alarm event.
For DeviationMinor or DeviationMajor, specify a limit, then use the Setpoint
column to set a value or a tag to compare for the deviation.

Limit

Enter a value for the alarm limit that corresponds to the condition you
selected.

Group

Select an alarm group that controls what happens when an alarm occurs. See
Configuring Alarm Groups on page 100.

FactoryStudioUserGuide

101

Column

Description

Priority

Enter a priority value that controls where the alarm displays in the list. The
higher the number the higher the priority. You can use the same priority for
more than one alarm event. Enter 0 (zero) for alarms to be at the end of the
list.

Message

Enter the text that displays in the alarm list.

[Other
columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

3. Continue adding as many alarm events as you need.

If needed, right-click a row to cut, copy, paste, or delete the row.

VisualizingAlarmandEvents

In order to visualize alarms and events, you can use the built-in object on the displays or reports.
See section Configuring an Alarm Window on page 149 for more information.

EditAlarmsItems.Condition
Evaluation condition to generate alarms.
Hi: Tag >= limit
HiHi: Tag >= limit (when acknowledged automatically acknowledges Hi alarm to same Tag)
Lo:: Tag <= limit
LoLo: Tag <= limit (when acknowledged automatically acknowledges Lo alarm to same Tag)
RateOfChange: Tag rate of change >= limit
DeviationMinor: Absolute value (tag - Setpoint) > limit (Setpoint defined in the Setpoint column)
DeviationMajor: Absolute value (tag - Setpoint) > limit (Setpoint defined in the Setpoint column)
Equal: Tag = limit
GreaterThan: Tag > limit
GreaterEqual: Tag >= limit
LessThan: Tag < limit
LessEqual: Tag <= limit
Changed: Tag value changed
ChangedUp: Tag value increased
ChangedDown: Tag value decreased
NotEqual: Tag different from limit

102

9:Alarms,EventsandAuditTrail

AlarmAcknowledgment
There are several methods for acknowledging alarms:

Using Alarm visualization object in the displays.

Tag properties.

Alarm group or Alarm item runtime properties.

Acknowledge All Alarms


You can use the <Alarm.AckAll> property that acknowledges all active Alarms .
Acknowledge Single Alarm or Highest Priority Alarm
The <Alarm.PriorityItem.UnAck> property allows acknowledgment of the highest priority
Alarm configured in <Edit.Alarms.Items> the "Priority" column if there is a pending ack alarm.
Acknowledge a Specific Alarm
To acknowledge a specific alarm use the <Alarm.Items.IDxx.Unack> property.
To verify the contents of the IDxx Alarm columns, go to Alarm item and add the ID column
(right-click in the table and select "ID").

SubscribingNotifications
In order to apply custom actions using .NET scripts, you can subscribe to notifications or alarms
and events.
The typical usage is to send SMS or email warnings, execute custom calculations, add custom
notification messages or audio alarms, text-to-speech audio alarms, and any kind of custom action
programmed using the Microsoft .NET Framework.
To subscribe to alarm events, you need to create a method in any Script Class of type Server, with
the following prototype:
void Notification(AlarmEventInfo[] info)

Finally, you need to select that method on Edit > Alarms >Groups at the NotificationMethod
Column.
The name of method can vary, what is important is the expected parameters of the method. The
AlarmEventInfo structure is defined in the namespace Alarm on the runtime classes reference,
http://www.tatsoft.com/help/fs-2014/runtime/index.html.

FactoryStudioUserGuide

103

AlarmDatabaseandTableSchema
The database used to store the Alarms is defined in Edit-Datasets-DBs by the database
connection object with the name AlarmHistorian.
By default, when a new project is created, the AlarmHistorian is defined to use the Tatsoft built-in
embedded SQL database TatsoftDB.
Caution

The TatsoftDB database should be used for databases up to 10GB. If it is expected to create more
than 10GB, you should define another SQL for Tag Historian Database.
In order to define another Database to store the Alarm Historian database, you just need to create
a new database connection, as explained on Configuring Database Connections on page 105,
and name it AlarmHistorian.
Tip

Thesystemdoesnotallowduplicatednames,sotocreateaDBconnectionwithname
AlarmHistorianyoumustrenameordeletetheexistingrowusingthatname.

The Alarm Module automatically creates the required tables in the database. An example of table
schema is available opening any file with extension .TAlarm, created when running application
using the default TatsoftDB as the alarm logging database.

AlarmRuntimeObjects
The Alarm namespace has the properties of the Alarm server.
The Alarm.Group object has the list of all defined and its properties.
The Alarm.Item object has all alarm items and its properties.
The following tag properties are connected with the Alarm module:
tag.tagname.Hi: configuration and runtime status of the HI alarm, similar names for

the other alarm types.


See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects.

104

9:Alarms,EventsandAuditTrail

10:DatasetsandDataExchange
The following sections describe how to configure databases:

Configuring Database Connections on page 105

Configuring Database Tables Access on page 111

Configuring Database Queries on page 112

Configuring Files for Data Exchange on page 112

Configuring Files for Data Exchange on page 112

Dataset Runtime Objects on page 113

ConfiguringDatabaseConnections
By default, FactoryStudio uses an embedded SQL database (TatsoftDB) for the tag and alarm
historians. You can configure external databases such as Microsoft SQL Server, Oracle, or other
external database. If you expect your database to grow to more than 10 GB, you should consider
using an external database.
When using the embedded database, the system automatically creates the database file. When
using external databases, the database itself must already exist. However, FactoryStudio can create
the tables in the database.
You can use also use external databases as a data source in your application to display such things
as customer or product information or to configure systems from recipes.
You must be logged in as Administrator in FactoryStudio to configure the database login and
password.
To configure an external database:
1. Go to Edit > Datasets > DBs.
2. Click Create New.

The Create New Database Connection window displays.

3. Enter or select information, as needed.


Column

Description

Name

Enter a name for the database configuration. The system lets you know if the
name is not valid.

Description

Enter a description for the database.

FactoryStudioUserGuide

105

Column

Description

Provider

Select the database provider.

Database

If options display here, select the database type.

4. Click OK.

The database is added as a new row in the table.

5. Enter or select information, as needed.


Column

Description

Name

Enter a name for the database configuration. The system lets you know if
the name is not valid.

Provider

Select the database provider.

Database

If options display here, select the database type.

ConnectionString

Enter the information needed to connect to the database.

LogonName

Enter a valid login name for the database.

LogonPassword

Enter the password that corresponds to the database login.

ServerIP

Enter the IP of the server of the database

Description

Enter a description for the database.

[Other columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

6. If you are using the new external database for the alarm or tag historian, rename the
existing TagHistorian or AlarmHistorian database to something else, then rename the
new database configuration to TagHistorian or AlarmHistorian.

For the tag or alarm historian databases, the database configuration on this tab must
be named TagHistorian or AlarmHistorian. You cannot have two databases with the
same name.

7. Continue adding as many database configurations as you need.

106

The databases you create are available for use on the Tags > Historian tab, in
displays, and in scripts.

If needed, right-click a row to cut, copy, paste, or delete the row.

See the following sections related to the other Dataset tabs:

Configuring Database Tables Access on page 111

Configuring Database Queries on page 112

Configuring Files for Data Exchange on page 112

10:DatasetsandDataExchange

AccessingMicrosoftExcel
Connect to Excel databases using an ODBC driver, an ODBC DSN, or OleDB.
Creating the Databases
ODBC:
1.Select, then name a range of rows and columns in the worksheet. This will allow the software to
read the information as a table.
2.Choose one of the following naming processes for your version of Microsoft Excel.
For Microsoft Office 2007:
Right-click the selection then choose "Name a Range".

For Microsoft Office 2003:


In Microsoft Excel go to "Insert > Name > Define".

FactoryStudioUserGuide

107

Name the selection (e.g., "itemsTable"). The Excel file is now ready for use.
There are several methods for communicating using ODBC:

Using ODBC Microsoft Excel Driver:

1. In the Datasets namespace, choose "DBs" tab and create a new Provider by clicking Create
new.
2. Select "Odbc Data Provider" in the "Provider" data field.
3. "Database" field choose "Microsoft Excel Database".
4. Click Ok.

5. A new row is created in the data grid, click the "ConnectionString" column.
6. In the pop-up window enter the path and the filename in the "Dbq" field.
7. Click the "Test" button to ensure that the connection is OK.
Note: "Test" is optional.

108

Using ODBC with a DSN:


10:DatasetsandDataExchange

1.Go to your computer's "Control Panel", select "Administrative Tools".


2.Double-click on "Data Sources (ODBC)".

3. In the "ODBC Data Source Administrator" window click Add. You are prompted to select a
driver.
4. Select the "Microsoft Excel Driver (*.xls)".
5. Click Select Workbook, then select the name of the Excel file created previously.
6. Name the Data Source, (e.g., "excelDatasource").
7. For Write access uncheck the "ReadOnly" checkbox.

FactoryStudioUserGuide

109

8. In the Datasets namespace, choose "DBs" tab and create a new Provider by clicking Create
new.
9. Under "Odbc Data Provider" options, choose "ODBC using DSN" then click Ok.
10. Click the ConnectionString column of the new row, then enter the DSN in the "DSN" field.

OLEDB

1.In the Datasets namespace, choose the "DBs" tab.


2 Select the "OleDb data provider" option of the combo-box and create a new Provider by
clicking Create new.
3.Choose "Microsoft Excel Database" then click Ok.
4.Click the ConnectionString column of the new row, then enter the path and the name of the
Excel (.xls) file in the "DataSource" field.

110

10:DatasetsandDataExchange

ConfiguringDatabaseTablesAccess
If you are using an external database as a data source in your application, you can specify which
table to use from the database.
To configure database tables:
1. Go to Edit > Datasets > Tables.
2. Enter or select information, as needed.
Column

Description

Name

Enter a name for the table configuration. The system lets you know if the
name is not valid.

DB

Select the database configuration.

TableName

Select the table name.

WhereCondition

Specify parameters to filter the data using SQL syntax. E.g. ColumnName
= {@tag.tagInt}

Access

Select the access permissions for the table.

Mapping

Click ... to select the tags that you want to populate with data from the first
row of the table with data from specific columns.

MappingDateTime Select the time reference: UTC or Local.


Description

Enter a description for the table configuration.

[Other columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

3. Continue adding as many table configurations as you need.


Reading and writing the table contents
The runtime access to the table contents is executed automatically when the table is mapped to a
DataGrid object, see Configuring a DataGrid Window on page 153.

FactoryStudioUserGuide

111

You can also get the table contents or perform operations on the tables, using the runtime
properties for the Dataset.Table object, see http://www.tatsoft.com/help/fs-2014/runtime/
index.html.

ConfiguringDatabaseQueries
You can configure queries to perform more advanced functions with SQL statements to work
with data from external databases.
To configure database queries:
1. Go to Edit > Datasets > Queries.
2. Enter or select information, as needed.
Column

Description

Name

Enter a name for the query. The system lets you know if the name is not
valid.

DB

Select the database configuration.

SqlStatement

Enter the query using SQL syntax.

Mapping

Click ... to select the tags that you want to populate with data from the
query with data from specific columns.

Description

Enter a description for the table configuration.

[Other columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

3. Continue adding as many queries as you need.


Getting the query contents
The runtime access to the table contents is executed automatically when the query is mapped to a
DataGrid object, see Configuring a DataGrid Window on page 153.
You can also get the query contents or perform operations on the query, using the runtime
properties for the Dataset.Query object, see http://www.tatsoft.com/help/fs-2014/runtime/
index.html.

ConfiguringFilesforDataExchange
You can configure files to retrieve data from a network location.
To configure database files:
1. Go to Edit > Datasets > Files.
2. Enter or select information, as needed.
112

10:DatasetsandDataExchange

Column

Description

Name

Enter a name for the file configuration. The system lets you know if the
name is not valid.

FileName

Enter the full path to the file.

FileType

Select the type of file.

Objects

Click ... to select the tags that you want to populate with data from the file
with data from specific columns.

Description

Enter a description for the file configuration.

[Other columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

3. Continue adding as many file configurations as you need.

DatasetRuntimeObjects
The namespace Dataset is the entry point to all objects related with the Datasets module.
The Dataset.DB object lists all configured database connections and its runtime properties
The Dataset.Table object lists all configured tables and their runtime properties
The Dataset.Query object lists the defined queries and their runtime properties.
The Dataset.File object lists the defined queries and their runtime properties.
See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects.

FactoryStudioUserGuide

113

114

10:DatasetsandDataExchange

11:Scriptsand.NETFramework
The following sections describe how to create scripts:

Configuring Tasks on page 115

Configuring Classes on page 116

Working with the Code Editor on page 117

Note

When you are using the code editor, the system constantly compiles the code in the background.
You can also build the whole project, as needed. For more information, see Chapter 14, Running
the Application on page 171.
For more information about the runtime objects included in FactoryStudio, see the
RuntimeObjects.pdf.
Two .Net libraries are available for use with FactoryStudio:

The internal scripting has built-in methods that you can call using TK.<methodName>.
For more information about these methods, see the Toolkits.pdf.

If you use Microsoft Visual Studio, a library is available for use with FactoryStudio. For
more information about this library, see the Toolkits.pdf.

ConfiguringTasks
Tasks are code, written in either VB.Net or CSharp, that execute based on process events, either
when the trigger event occurs or at every interval defined in the Period column.
FactoryStudio comes with the following built-in tasks:

ServerStartupExecuted when the project starts running. Runs on the server (computer
running TServer.exe).

ServerShutdownExecuted when the project shuts down. Runs on the server.

ClientStartupExecuted on each client when the TVisualizer.exe (Displays module)


starts running.

ClientShutdownExecuted on each client when the Display module closes.

To configure tasks:
1. Go to Edit > Scripts > Tasks.
2. Enter or select information, as needed.
FactoryStudioUserGuide

115

Column

Description

Name

Enter a name for the task. The system lets you know if the name is not valid.

Code

Read-only. This defaults to the language selected when you created the project.
From the Code Editor tab, you can change the code language. To change the
project default, go to Info > Settings.

Trigger

Enter or select the event (tag or object) that triggers the task execution. The
task executes when the value of the object changes.

Period

Enter how often the task should execute.

Domain

Select where the script executes:


ClientTask executes on each client system. These are tasks that apply
locally (on the users computer), for example, report generation.
ServerTask executes on the server system. These are tasks that apply
across the application, that is, globally.

InitialState

Select the taskss initial state:


EnableTask is ready to run.
DisabledTask is not ready to run. Lets you enable the task under specific
conditions.

BuildStatus

Read-only. Status of the task code from the continuous compiling process.
Green check markTask runs without errors.
Red XTask has warnings or errors. Double-click to go to the warning or
error. Warnings are information only. Errors will prevent the code from
running, but only that specific task. The rest of the application will run.

BuildErrors

Read-only. Displays any errors encountered during the last build.

Description

Enter a description of this task.

3. Enter the code for the task.

Double-click the row to access the Code Editor tab. See Working with the Code
Editor on page 117.

4. Click Save.

ConfiguringClasses
Classes let you create a repository of class libraries, methods, and functions that you can use
across the application. You can call them from tasks, other classes, and displays (code behind).
FactoryStudio comes with the following built-in classes:

ServerMainMethods library available for all server tasks.

ClientMainMethods library available for all clients.

To configure classes:
1. Go to Edit > Scripts > Classes.
116

11:Scriptsand.NETFramework

2. Enter or select information, as needed.


Column

Description

Name

Enter a name for the class. The system lets you know if the name is not valid.

Code

Read-only. This defaults to the language selected when you created the project.
From the Code Editor tab, you can change the code language. To change the
project default, go to Info > Settings.

Domain

Select where the class executes:


ClientClass executes on each client system. These are Classes that apply
locally (on the users computer), for example, report generation.
ServerClass executes on the server system. These are classes that apply
across the application, that is, globally.

BuildStatus

Read-only. Status of the class code from constant compiling process.


Green check markClass runs without errors.
Red XClass has warnings or errors. Double-click to go to the warning or
error. Warnings are information only. Errors will prevent the code from
running, but only that specific class. The rest of the application will run.

BuildErrors

Read-only. Displays any errors encountered during the last build.

Description

Enter a description of this class.

3. Enter the code for the class.

Double-click the row to access the Code Editor tab. See Working with the Code
Editor on page 117.

Apply all namespaces that will be used in your code, e.g.

Using System
System.IO.StremReader

4. Click Save.

WorkingwiththeCodeEditor
You can write code in either standard VB.Net or CSharp. You can also switch between the two. If
you change your language selection in the code editor, the system automatically converts existing
code to the selected language.
If you need references to your own assemblies, you can use Run > Build > References.
As a fully compliant .NET application, you can find free source code to use, including .NET
components, products, and libraries, plus your own libraries that you can use right away.
FactoryStudio does expose many .NET libraries to the application, but there are few methods
that are very frequently required, such as type conversion or copying tags to DataTables or .NET
objects, or dynamically changing the communication settings. Those methods are included in a
library toolkit. To use those methods, you just need to put TK. in the code editor.
Example:
FactoryStudioUserGuide

117

double x = TK.ConvertTo<double>("123");
The methods available are described in Toolkits.pdf.
To edit code:
1. Go to Edit > Scripts > CodeEditor.
2. From the drop-down list in the main toolbar, select the task or class you want to edit.

To create a new task or class, see Configuring Tasks on page 115 or Configuring
Classes on page 116.

3. If needed, from the code editor toolbar, select a different code language.
4. You can also format your code to be more readable, to do so, click on Auto Format. A
prompt will appear, click OK
5. Click Save.

ConfiguringExpressions
Besides the Edit > Script > Expressions table, in several places in FactoryStudio, you can use
expressions, using the same syntax described here, to determine a value or to configure a
condition.
Expressions are just plain VB.NET expressions, such as arithmetic expressions or calls to
script.class methods from the project. Intellisense only shows tags and application objects, but the
expressions are compiled using the standard VB.Net compiler, so what you would write in the
code editor, should be accepted in expressions as well.
FactoryStudio implements some automated replacements, such as == to =, so the syntax of an
expression is also very close the a C# statement, but with no need to add the ; on the end.
In this way, both VB.NET and C# programmers are able to use seamless the expression fields.
In expressions, you do not need to put @ before that tag names. You need the @ in the code
editor to differentiate project tags from .NET variables. However, expressions do not have
local .NET variables, so you use the project object directly.
For arithmetic operands, you can use the standard operands as described in the .NET
documentation.
To allow single-line evaluations, the .NET language has the IIF command, which currently is used
only with IF. The IF command has three parameters. For example:
IF (A, B, C)
The first parameter is a condition. That method will return B if condition A is true, and it returns
C if the condition is false.
Example: If (tag.A = 1, "True", "False") will return a string according the value of tag.A.
In this .NET method, all three parameters are evaluated independent of the condition. For
instance, if you have IF (tag.A = 1, script.class.client.Func1(), script.class.client.Func2()), both
Func1 and Func2 will always be executed. Only the return value will be different based on the
value of tag.A.
118

11:Scriptsand.NETFramework

The IF or IIF method needs to evaluate the parameters before calling the method. There are
many scenarios where you want to execute only the function according the value.
For that scenario FactoryStudio has a method called TIF, which has that behavior.
So, you use the expression:
TIF (tag.A = 1, script.class.client.Func1(), script.class.client.Func2())
Only the Func1() or Func2() will be executed, according the value of Tag.A
The TIF method is defined in the class library that is automatically exposed for expressions that
are in the toolkit function library.
For more complex calculations, you can call a class that you create on the Classes tab. See
Configuring Classes on page 116.
To configure expressions:
1. Go to Edit > Scripts > Expressions.
2. Enter or select information, as needed.
Column

Description

Object

Select an existing tag or object.

Expression

Enter the expression. The expression can be basic mathematical


expression, use a class, or a conditional expression.

Domain

Select where the expression executes:


ClientExpression executes on each client system. These are
expressions that apply locally (on the users computer), for example,
report generation.
ServerExpression executes on the server system. These are
expressions that apply across the application, that is, globally.

Execution

Select when the expression executes:


OnChangeThe expression executes when the value of any tag in the
expression changes.
TriggerOrPeriodThe expression executes when the trigger event
occurs or when the interval set in the Period elapses.
ChangeOrStartupThe expression executes when the value of any tag
in the expression changes or at startup.

Trigger

Enter or select the tag or object that triggers the expression execution. The
expression executes when the value of the object changes.

DisableCondition

Enter or select the tag or object that disables the expression execution.

BuildStatus

Read-only. Set after you click Verify.


Green check markExpression runs without errors.
Red XExpression has errors.

BuildErrors

Read-only. Displays any errors encountered during the last build.

3. Click Verify to check the validity of the expression.

FactoryStudioUserGuide

119

Usingthe.NETDebugger
CreatingdebuggerInformation
FactoryStudio has an integrated .NET code debugger. In order to use it, it is necessary that the
local computer has cache files with the necessary files to run the debugger. The steps to enable
the debugger are:
1. Enable the Debug Information on Run > Build > Messages
2. As necessary, save the source code you want to debug again, so the debug information is
created. This step is only necessary the first time you open the project on the computer,
as after that, the background compiling will keep generating the necessary debugging
information to enable the use of breakpoints and step execution.

Attachingthe.NETdebugger
In oder to have a .NET debugging session, the engineering environment must be connected with
the runtime and the .NET debugger attached to server or client process. Follow these steps.
1. When Running the project, either on Run > Test or Run > Startup enable the connect
check box.
2. If the project is already running, you can go to Run >Test or Run > Startup, according
the runtime you want to attach, and connect to the runtime system, pressing the connect
button on those pages.
3. Open any script that has debugging information and press the Attach .NET debugger
button. A message on the bottom of the engineering workspace will show that a
debugging session is active with the server components or the client components of the
running project.
4. When the .NET debugger is attached the system will stop on the defined breakpoints and
it will also stop automatically when any .NET Exception occurs.

Breakpoints,stepsandwatch
In order to setup a breakpoint, open the desired code, select the line and press the Insert
Breakpoint at the toolbar.
When the system stops on a breakpoint you can perform step by step execution or hit the
continue button.
In order to inspect local .NET variables, tags or project objects, you can select the text in the
script editor and, when the execution is stopped on a breakpoint, the toolkit will show the current
value of the variable.
You can also add .NET variables or project objects to the Watch window. When adding tags or
project objects, you need to use the @ symbols, example @tag.tag1, so the system knows it is a
project object, not a local .NET variable. Keep in mind the Watch display is only updated when
the execution is stopped. If you want to have real-time values for tags and objects you can open
the PropertyWatch diagnostics tool.
120

11:Scriptsand.NETFramework

ScriptRuntimeObjects
The namespace Script is the entry point to all objects related to the Scripts module.
The Script.Task object lists all configured database connections and their runtime properties.
The Script.Class object lists all configured tables and its runtime properties.
See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects.

FactoryStudioUserGuide

121

122

11:Scriptsand.NETFramework

12:DisplaysandSymbols
The following sections describe how to design the application user interface:

Selecting and Creating Displays on page 123

Designer Drawing Tools on page 131

Dynamics and Animations on page 137

User Controls on page 147

Managing Images and Symbols on page 155

Automatically linking tags and symbols on page 163

Display Runtime Objects on page 167

SelectingandCreatingDisplays
Displays are components of the user interface for your application. A display can have multiple
elements in it, including controls, data display areas, static areas that always display, such as a menu
bar or status bar, and more. Components can be static, that is, they always display, such as a menu
bar, toolbar, or status bar. Components can also change depending on what the user clicks or
selects.
To select displays:
1. Go to Edit > Displays > Displays.
2. Select CardView or TableView.
3. See see the list of available display.
Column

Description

Name

Read-only. Configured in Draw.

Mode

Read-only. Configured in Draw.

Preview

Read-only. Shows a thumbnail of the display.

AllowSelection Select to allow users to select the display from the PageSelector.
EditSecurity

Select which types of users have access to edit this display.

RunSecurity

Select which types of users have access to this display at runtime.

Description

Enter a description for this display.

FactoryStudioUserGuide

123

In order to edit a display, select the display and press the DRAW button.

When you are in the Drawing environment you can also change displays using the ComboBox on
the top toolbar.

Tocreateanewdisplay
1. Go to Draw > Drawing.
2. Click

Close Display and Create New One.

If you do not see this button in the toolbar, make your window wider.

The New Display window displays.

3. Enter or select information, as needed.

124

Column

Description

Display Name

Enter a name for the display.

12:DisplaysandSymbols

Column

Description

Description

Enter a description for the display.

iPad/iPhone iOS
Target

Note: If you plan to use this display for iPad and iPhone users, be sure to
select this option when you create the display. You cannot change it later.
Select to be able to use this display with iPads and iPhones. When you
select this option, display settings in other parts of the Draw area only
show options that are applicable to both Windows and iPads/iPhones.
Select the default view for iPad and iPhone users:
Landscape
Portrait

4. Click OK.

Note
If the display is for use with an iPad or iPhone, you must select the iPad/iPhone iOS Target
option when you first create the display. You cannot change this setting later.
1. On the left side of the window in the DisplaySettings, enter or select information, as
needed.

If you selected the iPad/iPhone iOS Target option when you created the display, not
all of the DisplaySettings are available.

Column

Description

Mode

Select the type of display you want to create:


PageDefault. Opening a page automatically closes the last page on the
current layout and displays in the area last in the list on Displays >
Layouts page. Only pages display in the layout.
PopupA popup opens on the top of all other displays. When you open
a new page, by default, all popup displays are closed. Controls on other
displays are available.
DialogA dialog opens as a modal dialog, which disables the controls
on all other open displays until you close the dialog. Clicking OK
executes the OnOK method on the display CodeBehind.

Background

Select the background color for the display.

Width

Enter the width of the display, in WPF units (device-independent pixels). Be


sure to take into account the size of the layout.

Height

Enter the width of the display, in WPF units (device-independent pixels). Be


sure to take into account the size of the layout.

Border

Select the type of border.

CloseButton

Select to display Close button. Available only for Popups and Dialogs.

Animation

Select the type of animation to use when displaying this display.

FactoryStudioUserGuide

125

Column

Description

Show on
PageSelector
Object

Select to include this display in the page selector that lets users go directly to
a different display in the application.

iPad/iPhone iOS
target

Read-only. Shows whether you selected the iPad/iPhone iOS Target

option when you created the display.

Placement

Select where on the layout you want to place the display. Available only for
Popups and Dialogs.

Target

Select whether the display appears relative to the mouse position or relative
to whole window. Available only for Popups and Dialogs.

DialogButtons

Select the buttons you want on the dialog. Available only for Dialogs.

Title

Enter a title that appears at the top the display.

Title Background

Select a color for the title background.

Stays Open on
Page Change

Leave the popup window open when the user clicks something that opens a
different display. Available only for Popups.

Stays Open After


Losing Focus

Leave the popup window open when the user clicks a different display.
Available only for Popups.

Left

Enter how far from the left of the layout the display should appear, in WPF
units (device-independent pixels). Available only for Canvas layouts.

Top

Enter how far from the top of the layout the display should appear, in WPF
units (device-independent pixels). Available only for Canvas layouts.

2. Use the drawing tools to create the display.

Select a button in the vertical toolbar. Place the cursor on the display area, then click
and hold the left mouse button while dragging the cursor across the display area.

To see a menu of options, right-click the drawing object. The context menu provides
actions that are specific to the selected object.

To select multiple objects, press Shift + left mouse-click on each object.

Note
When selecting multiple objects, the last object selected is the master, whose
properties are shown on the left. If you then align the objects, the alignment is
based on the master. If you change other properties, the properties are changed
for all selected objects.

The horizontal toolbar (at the bottom of the Drawing tab) contains buttons to group,
combine, align, and lock the selected objects.

For more information about the drawing tools, see Designer Drawing Tools on
page 131.

3. Click Save Display.


4. Continue with Creating Layouts on page 127.

126

12:DisplaysandSymbols

CreatingLayouts
A layout defines the size of the application window and the basic arrangement of display
components in the runtime application. Be sure to plan how you want to use displays. For
example, consider whether you want a menu bar, toolbar, or other elements to always display at
the top of application window.
You may need only one layout to handle the information in the application.

Note
The last display listed in the Layout tab is the one that is replaced when you change the display.
For example, new projects include a default layout called Startup. The MainPage display that is
listed last is the default area that changes when you tell the application to open a display.
To create a layout:
1. Go to Edit > Displays > Layouts.
2. Click New.
3. Enter or select information, as needed.
Column

Description

Layout name

Enter a name for the layout.

Layout

Select the layout type:


DockPanelSelect to position displays relative to the layout and other
displays.
CanvasSelect to position displays in an absolute position by entering the
position in WPF units (device-independent pixels).

Description

Enter a description of this layout.

4. Click OK.
5. At the top right of the Layouts tab, enter or select information, as needed.
Column

Description

Width

Enter a name for the layout.

Height

Enter the height, in WPF units (device-independent pixels), of the layout. This
is the height of the runtime application.

Background

Enter the width, in WPF units (device-independent pixels), of the layout. This
is the width of the runtime application

6. Click

Add Row to add a row for a display.

The displays you add here are the first displays the layout uses.

7. Enter or select information, as needed.


FactoryStudioUserGuide

127

Column

Description

Page

Select a display you want to include in the layout. Only page displays are
available for use in a layout.

Docking

Select the docking location for this display:


Left
Top
Right
Bottom

HorizontalAlign

Select the horizontal alignment for this layout:


Left
Center
Right

VerticalAlign

Select the vertical alignment for this layout:


Top
Center
Bottom

DisplaysCodeBehind
Use the CodeBehind tab to define a set of functions connected with a display. You can write code
in either standard VB.Net or CSharp. You can also switch between the two. If you change your
language selection, the system automatically converts existing code to the selected language.
If you need references to your own assemblies, use Run > Build > References.
CodeBehind functions can be executed when opening or closing, or while the display is open,
depending on how you configure the code. You can use CodeBehind to define mouse and input
command handling methods to be executed on a specific display.
For Dialog displays, use the built-in DialogOnOK method, which is called when the built-in OK
button on the dialog is pressed. If "True" is returned on that method, the dialog is closed; if
"False" is returned, the dialog remains open. This method is commonly used to ensure data
validation on the dialog (which prompts the user to correct incorrect entries before to closing the
dialog).
The Code Behind of the Displays have the following pre-defined methods:

128

DisplayOpening()
Executed when display is opening.

DisplayIsOpen()
Called in a regular intervals while the display is open.

DisplayClosing()
Executed when display is closing.

DialogOnOK()
Called when the OK button on a Dialog display is pressed.
12:DisplaysandSymbols

Returning 1 allows the dialog to close.


Returning 0 prevents the dialog from closing.
You can add your own .NET variables and methods to this page.

Note
Because the client displays are designed to run on distributed and web environments, we
recommend avoiding the use of functions that do not allow partial trust execution or that refer to
physical file paths.

DesktopandiOSClientSettings
The desktop client settings control how the application displays on client computers. You
configure Windows clients separately from iOS clients.
To configure the desktop client settings:
1. Go to Edit > Displays > Displays.
2. If needed, configure the Desktop Settings for Windows client by clicking Clients.
3. Enter or select information, as needed, and click OK.
Column

Description

Maximize When
Open

Select to maximize the client window to fit the monitor.

Stretch

Select how the layout stretches when clients use the application:
NoneLayout does not resize; it displays the exact size you configured
for the layout. We recommend selecting the Scrollbar option.
FillLayout resizes to completely fill the available space on the clients
monitor., without regard to the layouts aspect ratio.
UniformLayout resizes proportionally to the clients monitor size,
maintaining the layouts aspect ratio.
UniformToFillLayout resizes to both maintain the aspect ratio and to
completely fill the available space on the clients monitor. This can result
in cutting off some parts of the layout.

Scrollbar

Select to have a scrollbar display in the client window.

Title

Enter a title for the client window.

MinimizeBox

Select to display the standard minimize button.

MaximizeBox

Select to display the standard maximize button.

CloseBox

Select to display the standard close button.

ResizeBox

Select to display the standard resize handle.

FactoryStudioUserGuide

129

Column

Description

Menus

Select which menus to display:


File
Tools
Security

Always shows
menus in Test
Mode

Select to always show the Minimize, Maximize, Close and Resize buttons
when running a project in Test Mode.

OnScreen
KeyBoard

Select to display a virtual keyboard

When Mouse Is
Over Command
Areas

Select behavior when mouse is over:


Show object edges Creates edges on command objects
CursorSelect the type of cursor.

Mouse Cursor
Visible

Select for the mouse pointer to be visible.

Verify Tag Quality


on Client Displays

Tag Security protection showSelect option and character to show in


the place of the Tag value if the user does not have the neccessary
security level.
On undefined quality showSelect option and character to show when
PLC determines the data quality is undefined.
On OPC Bad quality showSelect option and character to show when
OPC server determines data quality is bad.

Disable Web
Comments

Select to prohibit application users from sending commands to the PLC.

Multiple windows
on same computer
share user logon

Users can run multiple instances of the application on the same computer.
The user may need to log in as a different user from time to time. Select
this option to automatically change the logged in user in all running
instances of the application on the same computer.

4. If needed, configure the Desktop Settings for iOS client by clicking iOS devices.
5. Enter or select information, as needed, and click OK.
Column

Description

Disable Commands

Select to prohibit application users from sending commands to the


PLC.

iPad Initial Page

Select the display that iPad users see when they start the application.

iPhone Initial Page

Select the display that iPhone users see when they start the application.

Stretch Fill

Select to resize the application to fill the device screen.

6. Enter the Number of Monitors clients will use.


7. Select the monitor and layout to show when the application starts.

130

12:DisplaysandSymbols

DesignerDrawingTools
The Drawing tab has the following controls to create, format, and configure displays:

Vertical toolbarOn the left side of the Drawing tab. Use these buttons to draw shapes,
add buttons, and create special windows. For more information, see Table 1.

Horizontal toolbarAcross the bottom of the Drawing tab. Use these buttons to group,
combine, align, and lock the selected objects. For more information, see Table 2 on
page 134.

Appearance, DisplaySettings, and other settingsBelow the main menu buttons, these
settings vary based on the type of object selected.

Configure dynamic graphic displays, from the Main Menu, click on the Draw icon.

The Appearance parameters dictate the brush style used when


drawing objects in the display, including colors. Clicking on the Fill
option lets you specify Colors, gradients, or objects with which to
fill the graphic.
The DisplaySettings dictate the attributes of the display. Displays
can be configured as Pop Ups, Dialogs, or normal displays.
Like with any graphical object, displays can have varying colors and
patterns, borders, titles and more.
One special feature is that you can specify a transition Animation to
use when entering the display much like you have in PowerPoint
presentations.

Table 1 describes the vertical toolbar commands.

FactoryStudioUserGuide

131

Table1:Verticaltoolbarcommands

Commands
Selection Tool

Description

Direct Selection Tool

Hand Tool
Geometric objects tools

Rectangle
Ellipse
Polygon
Polyline
Button
LabelBox
Text Output
Text Box

132

Click an object to select it.


CTRL+click to select multiple objects (and object groups), one at a time.
Hold down the CTRL key as you click each object.
Shift+click to toggle selected object from among more than one selected
objects.
Click in an open area of the display then select a group of elements by
highlighting the elements while holding down the left mouse button.
Double-click an object to open the Dynamics Configuration window,
which provides settings for dynamic object properties.
Use this tool to select an object inside a group (and modify its properties).
Click the object to select it.
You can also add, remove, and modify the points in a Polyline with the
Direct Selection Tool:
To move the point select it by clicking the point and holding the left
mouse button down. Drag the point to its new position.
Double-click a point to add a new point adjacent to the selected
point.
Right-click a point to delete the selected point.

Use the Hand Tool to modify the view window by clicking the display
background and holding down the left mouse button then shift the display
to the desired position.
Right-click to end use of each tool.
To add, modify, and remove points after creating a polygon or polyline, use
the Direct Selection Tool.
Creates a rectangle object.
Creates an ellipse object.
Creates a polygon object.
Creates a polyline object.
Creates a button object.
Creates a label box.
Creates a text output object.
Creates a text input/output (I/O) object.
To link the text I/O object with a tag, double-click the text I/O object,
under the Dynamic configuration window select the TextIO dynamic.

12:DisplaysandSymbols

Table1:Verticaltoolbarcommands(Continued)

Commands
CheckBox

Description
Creates a check box object. Right-click this button to access the following
tools:
Creates a radio button object.
Creates a combo box.
Creates a list box.
Creates a password box.
Creates a date picker.
Creates a date/time text box.
Creates a slider control.
After selecting a tool from this menu, it becomes the default tool for that
button in the vertical toolbar.
The symbol library includes both built-in and user-defined symbols.

Open Symbol
Library
Web Browser

Creates a Web Browser object. Right-click this button to access the


following tools:
Creates a Page Selector object, where users can go directly to a page in
the application.
Creates a Report Viewer object.
Creates an XPS Viewer object.
Creates a Circular Panel object. For more information, see
Configuring a Circular Panel on page 148.
Creates a Pie Chart object. For more information, see Configuring a
PieChart on page 148.
Creates a Bar Chart object. For more information, see Configuring a
BarChart on page 148.
Creates a Calculator object.
Creates a Child Window object.
Creates an external WPF component.
After selecting a tool from this menu, it becomes the default tool for that
button in the vertical toolbar.

FactoryStudioUserGuide

133

Table1:Verticaltoolbarcommands(Continued)

Commands

Description

Alarm Window

Creates an alarm window. Position the alarm window and double-click to


configure the alarm window settings. For more information, see
Configuring an Alarm Window on page 149.

Trend Window

Creates a trend window. Position the trend window and double-click to


configure the trend window settings. For more information, see
Configuring the Trend Window on page 150.

DataGrid Window

Creates a data grid window. Position the data grid window and double-click
to configure the data grid window settings. For more information, see
Configuring a DataGrid Window on page 153.

Table 2 describes the horizontal toolbar commands.


Table2:Horizontaltoolbarcommands

Commands

Description
Grid definition
Screen Zoom
Group
Ungroup
Union
Intersect
Exclude
Exclusive-Or
AlignLeft
AlignHorizontalCenter
AlignRight
AlignTop
AlignVerticalCenter
AlignBottom
Move To The Front

134

12:DisplaysandSymbols

Table2:Horizontaltoolbarcommands(Continued)

Commands

Description
Move To The Back
Change Z-Oder
Resize Width
Resize Height
SpaceEvenlyHorizontal
SpaceEvenlyVertical
FlipHorizontally
Flip Vertically
Lock element
Unlock element
Unlock All Elements
Show All Elements
Hide Selected Element

Examples
Here you will see examples showing the functionality of the commands of the horizontal toolbar.
The shapes used can be any object without Dynamics, like polygons, ellipses, rectangles.

FactoryStudioUserGuide

135

Intersect

Union

Exclude

Exclusive-Or

1. Lock element command.


:
Select both rectangles then click to lock. Now the rectangles can not be selected.

2. To unlock only one rectangle:

136

Click on Direct Selection Tool command

Select the on the desired rectangle and click on Unlock Element

To Unlock all elements just click on Unlock All Elements command

on the vertical toolbar.


.

12:DisplaysandSymbols

DynamicsandAnimations
Dynamics let you configure real-time changes on the object look, position, size, colors, the value
the object reflects, user action to take when a user clicks, and more. That dynamic behavior is
configured by creating links of the object properties to tags or other project runtime properties.
In some systems, the name animation is used to refer to those dynamic runtime changes; in
FactoryStudio we elected to use the term Dynamic to make the clear distinction with the WPF
animations features; WPF animations also refers to changes the graphics object properties when
running the displays, but using timers and other objects status to guide the animation, not the
real-time database values.
When you double click on an object, or press the Dynamics button, or select it on the right-click
context menu, a list of compatible dynamics that can be applied to the selected object is
presented.
Table 3 lists the available dynamics.
Table3:Dynamicsanimations

Setting

Description

Action

Executes actions and commands triggered by the user interface.

Shine

Changes the object appearance dynamically.

TextIO

Text input and text output Dynamic.

HyperLink

Opens a hyperlink.

Security

Sets the object runtime permissions to execute actions.

FillColor

Changes the object fill color dynamically.

LineColor

Changes the object line color dynamically.

TextColor

Changes the object text color dynamically.

Bargraph

Bargraph dynamic.

Visibility

Changes the object visibility and opacity dynamically.

MoveDrag

Moves the object dynamically.

Scale

Changes the object size dynamically.

Rotate

Rotates the object dynamically.

Skew

Skews the object dynamically.

TextOutput

Text output dynamic.

FactoryStudioUserGuide

137

GetandApplydynamicproperties
After inserting a dynamic to an object you can use the buttons Get and Apply to move dynamics
settings configuration from one object to another. Select the object with the dynamics you want
to use, and press Get. You can right click at the dynamic name at the left panel, in order to enable
or disable the ones that will be applied. Select one or more target objects and press Applly.
ReplacetagsorStrings
Replace: Use this button to change the Tags in the dynamics on the selected objects.
String: Use this button to change all strings at the selected objects.

ActionDynamic
Table4:ActionDynamicconfiguration

138

Setting

Description

Action

Executes action triggered by the user interface:.

12:DisplaysandSymbols

Table4:ActionDynamicconfiguration(Continued)

Setting

Description

Event

Choose one of the Mouse events. More than one event can be selected for
each action. For example: One action for MouseLeftButtonDown and
another action for MouseLeftButtonUp.

Action

Select an action for the given event:


NoneNo action.
SetValueSets the value of the object.
ObjectThe object that will receive the value.
ValueThe value that will be passed to the object.
ToggleToggles the object value. If the object current value is zero, the
value will be 1. If the object current value is different from zero, the value
will be 0.
ObjectThe object that will be toggled.
OpenDisplayOpens a display.
DisplayThe name of the display that will be opened.
CloseDisplayCloses a display.
DisplayThe name of the display that will be closed.
OpenLayoutOpens a layout.
LayoutThe name of the layout that will be opened.
RunScriptRuns a script that is placed in the display CodeBehind tab. Do
one of the following:
Enter the new method name and click New.
Select one of the existing methods in the comboBox.
RunExpressionsRuns the given expression.
ExpressionEnter the expression. For example: Tag.a + 1, or Tag.a
+ Tag.b, or Math.Cos(Tag.angle) * Math.PI.
Result (optional)Enter the tag or the property that will receive the
expression value.

Run Expressions Examples:


Sum two values and pass the result to another tag.
ExpressionTag.quantity1 + Tag.quantity2.
ResultTag.totalQuantity.

Increment a tag.
ExpressiontagCounter + 1.
ResulttagCounter.

Increment a tag (0 - 10).


ExpressionIf(tagCounter < 10,tagCounter + 1,0).
Result:tagCounter.

For more information, see Configuring Expressions on page 118.

FactoryStudioUserGuide

139

ShineDynamic
Table5:ShineDynamicconfiguration

Setting

Description

Shine

Changes the object appearance dynamically.

IsMouseOver

Enter a tag that will receive the OverValue or the NotOverValue.

OverValue

The IsMouseOver value when the mouse is over the object.

NotOverValue

The IsMouseOver value when the mouse is not over the object.

Mouse Over Appearance The object appearance when the mouse is over it.
OpacityThe object opacity (0 = transparent, 1 = opaque).
ScaleThe object size (0.5 = half, 1 = the same size, 1.5 = one and a half,
2 = double size).
OuterGlowDefines the OuterGlow color, the check box enables or
disables it.
TextColorDefines the text color, the check box enables or disables it.
Mouse Not Over
Appearance

The object appearance when the mouse is Not over it:


OpacityThe object opacity (0 = transparent, 1 = opaque).
ScaleThe object size (0.5 = half, 1 = the same size, 1.5 = one and a half,
2 = double size).

Is Selected Appearance

The object appearance when it is selected:


IsSelectedDefines whether the object is selected.
OpacityThe object opacity (0 = transparent, 1 = opaque).
ScaleThe object size (0.5 = half, 1 = the same size, 1.5 = one and a half,
2 = double size).

Scale Reference

Center
Left
Up
Right
Down

140

12:DisplaysandSymbols

TextI/Odynamic
Table6:TextI/ODynamicconfiguration

Setting

Description

TextIO

Text input and text output Dynamic. If text is a tag value or a property, it
must be between curly brackets. For example: {Tag.analogInt1}

Binding Mode

Associate an object with a tag:


TwoWayInput and output allowed.
InputOnlyOnly input allowed (the current tag value is not shown, but
new values can be entered).
OutputOnlyOnly output allowed.

Object or Expression

Object (input) or Expression (output only) connected with the Text Box.

DesignModeCaption

The value shown in design mode:


ShowObjectNamesThe content of the text field is shown exactly as it is.
ShowPlaceHoldersThe characters ### are shown, the number of
characters is defined by the MaxLength field.

Input Range

Defines the numeric range for the entered value.

MaxLength

Defines the maximum number of characters.

HyperlinkandSecuritydynamic
Table7:HyperlinkDynamicconfiguration

Setting

Description

HyperLink

Opens a hyperlink.

HyperLinkType

Select the hyperlink type:


http
ftp
file
mailto
telnet

Url

Set the URL to open.

FactoryStudioUserGuide

141

Table8:SecurityDynamicconfiguration

Setting

Description

Security

Set the object runtime permissions:.

Disable

Enter a tag, a property, or an expression returning a value. Considering the


resulted value:
ZeroObject will be enabled.
Greater than zeroObject will be disabled.
For more information, see Configuring Expressions on page 118.

Verify Permissions

When selected, only the chosen permission groups can access the object.

Confirm Message

Shows a confirmation dialog before taking some action:


textBoxEnter the message that will appear in the dialog.
checkBoxEnables or Disables the Confirm Message.

Fill,LineandTextColorDynamic
Table9:Fill,LineandTextColorDynamicconfiguration

Setting

Description

FillColor

Changes the object fill color dynamically.

Expression

the value used for the FillColor dynamic.

Change Color

UsingLimitsThe resulting color is determined when the value is equal


or higher than one of the limits.
AbsoluteValueThe color will be the expression value. The value must
be a valid color name or hexadecimal color. For example: "White" or
"#FFFFFFFF"
Example
Limits:
1 - Red
10 - Blue
When the value is 0, the object will have its own color (fill color dynamic will
not do anything)
When the value is 1 to 9, the object will have the red color.
When the value is greater than 10, the object will have the blue color.

LineColor
Expression

142

Changes the object line color dynamically:.


the value used for the LineColor dynamic.

12:DisplaysandSymbols

Table9:Fill,LineandTextColorDynamicconfiguration(Continued)

Setting
Change Color

TextColor

Description
UsingLimitsThe resulting color is determined when the value is equal
or higher than one of the limits.
AbsoluteValueThe color will be the expression value. The value must
be a valid color name or hexadecimal color. For example: "White" or
"#FFFFFFFF"
Example
Limits:
1 - Red
10 - Blue
When the value is 0, the object will have its own color (fill color dynamic will
not do anything)
When the value is 1 to 9, the object will have the red color.
When the value is greater than 10, the object will have the blue color.

Changes the object text color dynamically:.

Expression

the value used for the TextColor dynamic.

Change Color

UsingLimitsThe resulting color is determined when the value is equal


or higher than one of the limits.
AbsoluteValueThe color will be the expression value. The value must
be a valid color name or hexadecimal color. For example: "White" or
"#FFFFFFFF"
Example
Limits:
1 - Red
10 - Blue
When the value is 0, the object will have its own color (fill color dynamic will
not do anything)
When the value is 1 to 9, the object will have the red color.
When the value is greater than 10, the object will have the blue color.

BargraphDynamic
Table10:BargraphDynamicconfiguration

Setting

Description

Bargraph

Bargraph dynamic.

Expression

the value used for the bargraph dynamic.

Value Range

The minimum and maximum values that will correspond to the minimum
and maximum fill percentage.

Fill (%)

The minimum and maximum bargraph fill percentage.

FactoryStudioUserGuide

143

Table10:BargraphDynamicconfiguration(Continued)

Setting

Description

Bar Color

The bar graph color.

Orientation

The bar graph orientation:


to up
horizontal center
to down
to right
vertical center
to left

VisibilityDynamic
Table11:VisibilityDynamicconfiguration

Setting

Description

Visibility

Changes the object visibility and opacity dynamically.

Visible

Enter a tag, a property, or an expression returning a value. Considering the


resulting value:
Zero - Object will be visible.
Greater than zero - Object will be hidden.
For more information, see Configuring Expressions on page 118.

Tooltip

The string that will appear as a tooltip

Opacity

ObjectValueThe value used to set the opacity.


RangeThe minimum and maximum values that will correspond to the
minimum and maximum opacity.
OpacityThe minimum and maximum opacity (0 - invisible, 0.5 - a bit
transparent, 1 - opaque).

MoveDragDynamic
Table12:MoveDragDynamicconfiguration

Setting

Description

MoveDrag

Moves the object dynamically.

BindingMode

144

TwoWayInput moving and output moving.


InputOnlyInput moving only. The object does not move when the
object value changes.
OutputOnlyOutput moving only. The object does not move with user
interaction.
12:DisplaysandSymbols

Table12:MoveDragDynamicconfiguration(Continued)

Setting
Horizontal Move

Description

Vertical Move

Expression with the horizontal move reference.


RangeThe minimum and maximum values that will correspond to the
minimum and maximum horizontal position.
PositionThe minimum and maximum horizontal position.
Expression with the vertical move range.
RangeThe minimum and maximum values that will correspond to the
minimum and maximum vertical position.
PositionThe minimum and maximum vertical position.

ScaleDynamic
Table13:ScaleDynamicconfiguration

Setting

Description

Scale

Changes the object size dynamically.

Width Scale

Height Scale

Scale Reference:

Expressionthe value used for the width scaling.


RangeThe minimum and maximum values that will correspond to the
minimum and maximum width scale percentage.
Scale (%)The minimum and maximum width scaling percentage.
Expressionthe value used for the height scaling.
RangeThe minimum and maximum values that will correspond to the
minimum and maximum height scale percentage.
Scale (%)The minimum and maximum height scaling percentage.
Center
Left
Up
Right
Down

RotateDynamic
Table14:RotateDynamicconfiguration

Setting

Description

Rotate

Rotates the object dynamically.

Expression

the value used for the rotation.

Value Range

The minimum and maximum values that will correspond to the minimum
and maximum angle. For example: 0 to 100

FactoryStudioUserGuide

145

Table14:RotateDynamicconfiguration(Continued)

Setting

Description

Angle

The minimum and maximum rotation angle. For example: 0 to 360

RPM

Number of rotations per minute, that value can be defined on Expression.

Center Reference

Clockwise Check if you want Clockwise.

Center
Left
Up
Right
Down
Offset X Defines the distance of the center of the Rotation in X axis.
Offset Y Defines the distance of the center of the Rotation in Y axis.
ON/OFF

Enter with the object property that will turn ON/OFF the Rotation
Dynamic

SkewDynamic
Table15:SkewDynamicconfiguration

Setting

Description

Skew

Skews the object dynamically.

X-axis Skew

146

ObjectValue the value used for the X-axis skewing.


RangeThe minimum and maximum values that will correspond to the
minimum and maximum X-axis skewing angle. For example: 0 to 100.
Skew () The minimum and maximum X-axis skewing angle. For
example: 0 to 180.

12:DisplaysandSymbols

Table15:SkewDynamicconfiguration(Continued)

Setting
Y axis skew

Description

Skew Reference

ObjectValue the value used for the Y-axis skewing.


RangeThe minimum and maximum values that will correspond to the
minimum and maximum Y-axis skewing angle. For example: 0 to 100.
Skew () The minimum and maximum Y-axis skewing angle. For
example: 0 to 180.
Center
Left
Up
Right
Down

TextOutputDynamic
Table16:TextOuputDynamicconfiguration

Setting

Description

TextOutput

Text output dynamic.

Expression

Indicates the text that will be shown in the object.

Localizable

Indicates whether the text must be translated when the dictionary changes.

DesignModeCaption

The value shown in design mode:


ShowObjectNamesThe content of the text field is shown exactly as it is.
ShowPlaceHoldersThe characters ### are shown, the number of
characters is defined by the MaxLength field.

MaxLength

Defines the maximum number of characters.

UserControls
To configure dynamics, see Dynamics and Animations on page 137.
To configure a circular panel, see Circular Panel configuration on page 148.
To configure a pie chart, see Configuring a PieChart on page 148.
To configure a bar chart, see Configuring a BarChart on page 148.
To configure an alarm window, see Configuring an Alarm Window on page 149.
To configure a trend window, see Configuring the Trend Window on page 150.
To configure a DataGridWindow, see Configuring a DataGrid Window on page 153.
FactoryStudioUserGuide

147

ConfiguringaCircularPanel
Double-click any Circular Panel object in the display, or use the left panel PieChart to configure it.
Table 17 describes the Circular Panel configuration.
Table17:CircularPanelconfiguration

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the CodeBehind script. See
Displays Code Behind on page 128.

Columns

For each value that you want to include, select a section and configure the settings to
the right of the list (described below). The panel displays a section for each column.

Image

Select a resource image to display.

Preview

Read-only display of selected image.

ConfiguringaPieChart
Double-click any PieChart object in the display to configure it. Table 18 describes the Pie Chart
configuration.
Table18:PieChartconfiguration

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the CodeBehind script. See
Displays Code Behind on page 128.

ChartType

Select the type of chart.

Data Items

For each value that you want to include, select a section and configure the settings to
the right of the list (described below). The chart displays a section for each data item.

FieldName

Enter a name for the data item.

LinkedValue

Enter a tag name as the data source for the data item.

Brush

Click to select the color for the data item.

ConfiguringaBarChart
Double-click any BarChart object in the display to configure it. Table 19 describes the Bar Chart
configuration.
Table19:BarChartconfiguration

148

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the CodeBehind script. See
Displays Code Behind on page 128.

Type

Select the type of chart.

Data Source

Enter the dataset table or query to use for the chart.

Grid Lines

Click to select the color for the grid lines.

Window

Click to select the color for the window background.


12:DisplaysandSymbols

Table19:BarChartconfiguration(Continued)

Field

Description

Labels

Click to select the color for the labels.

Show Horizontal
Labels 45

Select to angle the labels below each bar at 45.

Show value over


bar

Select to display the bar value above the bar.

Data Items

For each column in the data source that you want to include, select a bar and
configure the settings to the right of the list (described below). The chart displays a
bar for each row.

FieldValue

Name of the column in the database.

Min.

Enter a tag to define the minimum value.

Max.

Enter a tag to define the maximum value.

Brush

Click to select the color for the data item.

ConfiguringanAlarmWindow
Double-click any Alarm window object in the display to configure it. Table 20 describes the
Alarm window configuration.
Table20:Alarmwindowconfiguration

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the CodeBehind script. See
Displays Code Behind on page 128.

MaxLines

Maximum number of lines to display in the window.

List

Select the type of alarms to display in the window:


OnlineAlarmsDisplays only active alarms. Alarms only display while the alarm is
in the alarm state.
AlarmHistoryDisplays only past alarms.
EventsDisplays only the SystemEvents (Edit > Alarms > Groups).
AlarmHistory+EventsDisplays past alarms and SystemEvents.

Merge Hi and
HiHi Lines

Combines alarms configured as Hi and HiHi into a single row.

History Interval/
To

Enter the start and end dates for the alarms.

Show Column
Titles

Select to display the column titles.

Ack by Page

Enter a tag name, which when triggered, acknowledges the alarms in the alarm
window.

Show Group
Control, Label

Enter text to display above the column titles.

AllowSort

Select to let users sort the data by column.

FactoryStudioUserGuide

149

Table20:Alarmwindowconfiguration(Continued)

Field

Description

Allow Column
Reorder

Select to let users change the order of the columns.

Filter

Enter SQL statement to limit the alarms displayed.

Refresh

Enter a tag name that will trigger a refresh of the alarm data.

Display
Millisecond

Select to include milliseconds in the alarm time.

Ack Selected Line Configure settings for acknowledging an alarm.


Columns

For each column in the list, select the column and configure the settings to the right
of the list (described below).

Visible

Select for column to display in the alarm window.

Allow Filter

Select to let users filter the column.

Show in Column
Chooser

Select to include the column in the column chooser, which lets users select the
columns to display.

Title

Enter the text for the column title.

Width

Enter the initial column width, in WPF units (device-independent pixels).

Sort

Select how to initially sort the column.

ConfiguringtheTrendWindow
The drawing tool has two trend object, the TrendChart and the TrendChartLegacy. The
TrendChart is the newest that should be used by default, the other was kept to ensure
compatibility with projects created in previous release, the iOS displays are using the previous
object.
Double-click any Trend window object in the display to configure it. Table 21 describes the Trend
window configuration.
Table21:Trendwindowsettings

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the CodeBehind


script. See Displays Code Behind on page 128.

Bind to Tag

Enter with an object property where the Trend configuration will be saved.

Bind Pens to Tag

Enter with an object property where the Pen values will be saved.

Orientation

150

Horizontal.
Vertical, top to bottom.
Vertical, bottom to top.

Window

Set the trend control background color.

Labels

Set the color of the trend control labels.

Grid Lines

Set the color of the Grid lines


12:DisplaysandSymbols

Table21:Trendwindowsettings(Continued)

Field

Description

Grid Lines Stroke

Set the Grid line settings.

Cursor

Enables (selected) or disables (deselected) the cursor settings.

CursorPosition (%)

Indicates the cursor position, where 0 means initial position and 100 means
end position. For example: Tag.cursorPos.

Cursor Output

Indicates the X axis value for the current cursor position. For example,
Tag.cursorOut.

Cursor Color

Defines the cursor color.

Pens Legend

Defines the position of the pens legend in the trend control.

Y Axis

X Axis

Legend

Y scale for each pen - Based on min and max of each pen.
Y range - Defines the minimum and maximum values for the Y-axis
The format of the values in the Y-axis. For valid numeric formats, see
Tag Formats on page 66. For example, N1 (number with 1 decimal
place).
Stack Y scales Merge similar Y Scales - Check to merge the similar Y scales.
Duration - Defiens the X-axis time span.
XY Chart Lables - Define the quantity of horizontal grid lines.
The X-axis format is defined by two fields: first line format and second
line format.This is specially useful to define label marks that require two
lines of information. For valid date and time formats, see Tag Formats
on page 66. For example, T (Time) for the first line format, d (short date)
for the second line format.
Navigation Contol -

Defines the position of the legends in the Trend Window.


None.
Top Left.
Top Right.
Bottom Left.
Right Panel.
Bottom Panel.

Pens
Tag

Set tag that will provide the value for the pen.

Pen Settings

Set the configuration of the Line color, Line stroke, Fill area and the type of
Marker.

Min

Linear scale reference for the tag value, according to the Y-axis range.

Max

Linear scale reference for the tag value, according to the Y-axis range.

Auto
SPCEnable
FactoryStudioUserGuide

Enable or disable the SPC settings.


151

Table21:Trendwindowsettings(Continued)

Field
SPCSettings

Description
Click to open the SPC settings.

Show Value Area


PenLabel

Set the pen name.

Filter level

Double-click any Trend window legacy object in the display to configure it. Table 22 describes the
Trend window legacy configuration.
Table22:Trendwindowlegacysettings

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the CodeBehind


script. See Displays Code Behind on page 128.

0(online) 1(history)

0 - the control shows the online data.


1 - the control shows the history data. For example: Tag.onLineHist.

OnlineTrigger

The refresh rate of the online trend control. For example, 00:00:01 or
{Tag.trendTimeSpan}.

HistoryDateTime

The initial point for the history trend control. For example,
{Tag.initialTrendHistory}.

Max Samples

Set the maximum number of samples that will be collected from the
database.

Window

Set the trend control background color.

Labels

Set the color of the trend control labels.

Cursor Enable

Enables (selected) or disables (deselected) the vertical cursor.

CursorPosition (%)

Indicates the cursor position, where 0 means initial position and 100 means
end position. For example: Tag.cursorPos.

Cursor Output

Indicates the X axis value for the current cursor position. For example,
Tag.cursorOut.

Cursor Color

Defines the cursor color.

Pens Legend

Defines the position of the pens legend in the trend control.

Y Axis
Range

Defines the minimum and maximum values for the Y-axis.

Labels

Defines the quantity of horizontal grid lines.

Format

The format of the values in the Y-axis. For valid numeric formats, see Tag
Formats on page 66. For example, N1 (number with 1 decimal place).

X Axis

152

Interval

Defines the X-axis time span.

Labels

Defines the quantity of horizontal grid lines.


12:DisplaysandSymbols

Table22:Trendwindowlegacysettings(Continued)

Field

Description

Format

The X-axis format is defined by two fields: first line format and second line
format.This is specially useful to define label marks that require two lines of
information. For valid date and time formats, see Tag Formats on
page 66. For example, T (Time) for the first line format, d (short date) for
the second line format.

Pens
Visible

Shows (1) or hides (0) the selected pen. Ex 1 or {showPen1}.

Tag

Set tag that will provide the value for the pen.

Min

Linear scale reference for the tag value, according to the Y-axis range.

Max

Linear scale reference for the tag value, according to the Y-axis range.

Pen

Choose the style, the color, and the thickness of the pen line.

Mark

Set the mark for each point in the trend line.

CursorValue

Set the tag that will receive the real value of the Y-axis, according to the
cursor position. For example: Tag.pen1CursorValue.

FieldName

Set the pen name.

Using Y Axis Scaling


Considering:
Y-axis Min = 0;
Y-axis Max = 100;
The trend control allows many pens to be displayed together. When your pens do not have the
same range, you can use the tips below to fit your data in the same chart, for better visualization:

If a pen has a lower range, 0 to 1 for example, you can set the Max property of the pen to
1, so when the real tag value is 1, the value 100 will be displayed in the chart. (100/1
scale).

If a pen has a higher range, 0 to 1000 for example, you can set the Max property of the
pen to 1000, so when the real tag value is 1000, the value 100 will be displayed in the
chart. (1/10 scale).

ConfiguringaDataGridWindow
Double-click any DataGrid window object in the display to configure it. Table 23 describes the
Data Grid window configuration. Critical fields that you must configure are shown with an *.
Table23:DataGridwindowconfiguration

Field

Description

Control Name

Defines a name for the control, so it can be accessed in the code-behind script. See
Displays Code Behind on page 128.

Data Source

Enter the dataset table or query to use for the window.

FactoryStudioUserGuide

153

Table23:DataGridwindowconfiguration(Continued)

Field

Description

SelectedValues

Enter a string tag or array tag to receive the contents of the selected row.

SelectedIndex

Enter a tag to receive the number of the currently selected row. Row numbering starts
with 0.

LinesCount

Select a tag to receive the number of lines in the window.

Theme

Select the theme for the window.

BindindMode

Select the binding mode to use. See http://msdn.microsoft.com/en-us/library/


system.windows.data.bindingmode.aspx.

AllowInsert

Select to let users add rows.

Show Group
Control, Label

Enter text to display above the column titles.

Show Column
Titles

Select to display column titles.

AllowSort

Select to let users sort the data by column.

Auto Create
Column

154

Select to have the system automatically include all table or query columns in the
window. If selected, you do not have to configure the columns below. To
customize specific columns, add the column to the column list and configure the
settings to the right (described below).
Deselect to manually configure each column that you want to include using the
Columns list and settings to the right (described below).

Filter

Enter SQL statement to limit the data displayed.

Refresh

Enter a tag name that will trigger a refresh of the data.

Columns

For each column you want to customize or include manually, add the column and
configure the settings to the right of the list (described below).

Visible

Select for column to display in the data grid window.

Editable

Select to let users edit the column.

Show in Column
Chooser

Select to include the column in the column chooser, which lets users select the
columns to display.

FieldName

Enter a name for the column.

FieldType

Select the column data type.

Title

Enter the text for the column header.

Width

Enter the initial column width, in WPF units (device-independent pixels).

Sort

Select how to initially sort the column.

12:DisplaysandSymbols

ManagingImagesandSymbols
FactoryStudio has great features to improve the productivity on creating graphical displays to
your application. The drawing tools allows you to easily manage symbols, image files, import
objects from a 5000 objects gallery, create your own symbols with dynamic properties, and map
tags and templates to its default graphical user interface.
There are three main repositories for reusable components, the Images, the Symbol Factory
library, and the Local Symbols Gallery. Lets explore each one.
Images: Used to insert an external image file from your computer into the project configuration,
like an icon, wallpaper, object, or background image. You can manage the imported images at
Edit-Displays-Resources. After the image is imported, you no longer need the original file. Images
can be used are color brush to any drawing object, even be used as color or the ColorFill
dynamic attributes.
Symbol Factory: This is an extensive library of elements, with more than 5000 symbols, all using
vector graphics, that you can use for creating your displays or use as a template to create your own
custom symbols. Those object can be applied statically, just as an image or icon, or you can add
Dynamics and save them to the Local Symbols library.
Local Symbols: The local symbols are the most frequently used symbols, it includes also the
symbols you create in the scope of a project. The symbols in this library can be kept synchronized
with the library, in this way, when you change a symbol in this library, it will be automatically be
applied to all displays using that symbol. The Local Symbol also can have dynamics properties
that you can easily map to tags at displays; they can also be defined to be the default graphical
representation of tags.

ImageResources
You an import any image file at the Edit-Displays-Resources tab. This creates a repository of
images for the application that is stored inside the project database file, so you dont need the
original files anymore. These images can be used to be the fill of an object, such as rectangles,
ellipses, LabelBoxes, paths, page background, or target color in runtime dynamics using colors.
If you need to update an image with a new version, you can replace it, and it will be updated
throughout the application. Be sure keep the resource name the same.
You can use any image file to fill or paint an object when creating displays from Draw >
Drawing.
You can import the following file types:

.bmp

.gif

.ico

.jpg

.png

FactoryStudioUserGuide

155

.tiff

.wdp

Tomanageresources:

1. Go to Edit > Displays > Resources.

Click Import Images.

Navigate to where the images are that you want to import.

Select the image files and click Open.

In each row, enter or select information, as needed.

Column

Description

Name

Edit the default name.

Description

Enter a description of this image.

Addinganimagetoadisplay

GotoDrawEnvironment,andclickontheInsertImageResource.

Anewwindowwillopen.NowClickonImportfilebutton.

Thenewimagebecamethefillofarectangle.ClickonFilltochangetheimagesettings.

YoucanchangetheStretchtoNone,Fill,UniformandUniformToFill.Alsoyoucanseeall
imagefilesthatareintheprojectandchangebetweenthenusingtheSelectResource
buttonorjustclickontheimageinthetoptoolbar.

Tip
TypicallyyoushoulduseUNIFORMorFILLforimagestretching.Theimage(usingtheAppearance
menuattheleft,canbeappliedtoanygraphicalshapeatthedisplay)

SymbolFactoryLibrary
The symbols from Symbol Factory are efficient and well designed vector graphics library. If you
need an object like a pump, valve or most of you shall need in your applications, just open the
library, browser for the element or search by a name. The difference between the symbols from
Symbol Factory and Local Symbols is that elements from Symbol Factory, after included at the
156

12:DisplaysandSymbols

display, they are now part of that display, having no longer connection with the library; a symbol
from Local Symbols can keep an active link with the library and it can also dynamic properties

GototheDrawEnvironmentthenclickontheSymbolFactoryIcononthevertical
toolbar.

AfterclickingontheicontheSymbolFactorywillopen,toinsertasymboljustchoose
onecategoryandsymbolthendoubleclickonthesymbolandclickinanyplaceonthe
screen.

AddingcolorchangeanimationtoSymbolFactoryelements
Ifyouwanttoinsertacolorchangeanimation,withoutchanginganythingonthesymbol,youcan
copythesymbolandoverlayatransparentimageontopofyourimage.
Forexample,herewehavetwopumps,toinsertasimpleanimationthatshowswhenthepump
isONorOFFfollowthesesteps:

Firstmakeacopyoftheobject,selectthesymbolandclickCtrl+Dtoduplicateit(youcan
alsoselecttheSymbol,holdtheCTRLkeyanddragtheobject,oryoucancopy/pasteit).

ThenselectthesecondpumpandclickontheUnionbutton
toolbar.

Nowwiththisnewpump,locatetheOPACITYpropertyattheleftpanel,Selectan
Opacityfrom0.2to0.5,accordingthedesiredvisualeffect,andselectthecolorforyour
initialbrush(redorgreen,forinstance).

DoubleclickonthesecondpumpandchangethesettingoftheFillDynamic.

FactoryStudioUserGuide

onthehorizontal

157

Tip
Note:UsetheClient.SimulationDigitaltosimulateacontrollerchangingbetween0and1.Ifyou
wanttocontrolthevalueyourself,useClient.DigitalValueorClient.NumericValue

SelectbothpumpsandclickontheAlignHorizontalCenterbuttonandAlignVertical
Centerbutton.

158

IfthepumpwiththeOpacitychangesstaybehindoftheotherpump,clickontheMove
toTheFrontbuttontobringittothefront.

YoucanclicknowontheDisplayPreviewbutton
pumpsanimation.

onthetoptoolbartoseethenew

12:DisplaysandSymbols

Localsymbols
The Local symbols library includes the most frequently used graphics. You can also create
symbols and add them to the project local library. Symbols can just be a static image or they can
have dynamic properties and tags links.
To view the symbols used by project:
Do one of the following:

To see only the symbols used in this project, go to Draw > Symbols. In that page you
can export, import or delete symbols.

To see all available symbols, go to Draw > Drawing, and click Open Symbol Library

CreatingnewSymbols
You can use the drawing tools and the COMBINE commands at the horizontal toolbar to draw
your own symbols.
You can also bring symbols from Symbol Factory and click at the UNGROUP command at the
horizontal toolbar, in order to edit the imported symbols. You can also use the Direct Selection
cursor to edit internal elements without needing to ungroup.
If you want to save the new symbol to the Local Symbols Library, just select the object or objects
that you want to be the part of the symbol then right-click and select Make a new symbol.

Enter the Name, Folder and the description of the Symbol.

FactoryStudioUserGuide

159

Now you can open the Symbol Library and choose the symbol to use at your displays.

The components in the Local Symbol library may have built-in dynamic properties and an easy
way to map it to realtime tags in your application. That is explained in the following section.
If you have dynamic properties and tags being used in that symbol, the system will automatically
create the symbol label parameters. After making the new symbol, double click at it to verify its
configuration parameters.

Note
In order to Edit a symbol that is already in the Local Symbol library, insert the symbol in a display,
right click on the symbol, and select Edit Symbol, that will change the drawing tool, locking the
other elements in the page, so you change the symbol. When you finish, right-click at any position
to select Save to Library, Save Only to Local display, or Cancel your editing.
The objects from Local Symbols are composed by some default symbols from the file
SymbolLibrary.tproj, added with the product installation, and the symbols you created to your
specific project. If you change, delete or insert a symbol in the SymbolLibrary.Tproj, it will be
accessible to all projects in that computer. The symbols you are using in your project are saved
inside the PROJECT file, therefore completely independent of any external file.

InsertingaLocalSymbol.
160

12:DisplaysandSymbols

Go to the Draw Environment, right-click any place of the screen and select Insert
Symbol or you can click on the Local Symbol icon on the vertical toolbar.

After selecting the category and symbol, click on the symbol and then click on the screen
to position the symbol, you can also drag-drop symbols to the screen. If you double-click
at a symbol, that will close the Library window, allowing you to insert the selected object.

Double-click on the symbol to see its runtime properties and map to tags in your
application.

Note: Some symbols do not have custom parameters, in this case, the double click will
show the Dynamics dialog.

SymbolParameters
When you insert a symbol from the Symbol Library it may some parameters, like in the example
the VerticalTank symbol has the parameters LevelValue, MaxScale and MinScale. To change the
linked tags to those parameters, just edit the new tag names in the dialog.

Editingandmodifyingsymbols
Right-click on the VerticalTank symbol and select Edit Symbol. Now you enter in the Edit mode,
you can see all objects that are part of the Vertical Tank.

FactoryStudioUserGuide

161

Click on the Black rectangle to see its Dynamics.

As you see we use #<PropertyName>:TagName


That syntax will create exposed label parameters for the symbol, making it easier to map the
linked tags when using the symbol. In this examples, the symbol has the labels
Level,MinScale and MaxScale. When you insert this symbol, you will be able to set values
for those parameters. After the : character, you have the default value.
Example.: #LevelValue:Client.SimulationAnalog, we are creating a property called
LevelValue which has Client.SimulationAnalog as the default value.
You can use any name for the Label parameter.

Tip
When creating symbols, it is useful to initially map the properties to client.SimulationDigital,
Client.SimulationAnalog or Client.SimulationDouble, which are variables with values changing
every second so you can see the result of your dynamic properties. You can use the internal
variables Client.DigitalValue, Client.NumericValue and Client.TextValue, when you just want to
put a placeholder value, with no built-in simulation.
In order to save the symbol, right-click on the symbol or on the display and press Save to Symbol
Library, or click the Save icon on the top toolbar. Double-click on the symbol to verify its
properties.

162

12:DisplaysandSymbols

Automaticallylinkingtagsandsymbols
You can configure a symbol to be the default representation of a Tag Type. In this way, every time
you paste a tag into the Draw Environment, a symbol will be automatically created mapping to
the inserted tag.
The tags of type Digital, Integer, Double, Decimal, Text, DateTime and TimeSpan have a default
visualization that is the name of tag and an input/output text box. If you select multiple lines at
Edit>Tags>Objects (click in one line, shift click in another line to mark a range), right-click to
copy those lines to the clipboard, and paste into the displays, the system will automatically create
one object to each of those tags.
If you want to change the properties of the objects created, for instance change the TextIO
dynamic from TwoWay to OutputOnly, select all the TextBox objects (clicking with the
mouse on the display. and keeping it pressed. select the area with the objects), and double-click at
any selected object to open the Edit Combined Dynamics dialog.

Tip
Hint: You can also copy the lines from Edit > Tags > Objects to Excel, add the columns Left and
Top into the Excel table, then copy and paste that table, including the header column, back to the
display; in this case the system will position the objects using the coordinates found in the table.

Note
Note: If you create a symbol with one dynamic parameters, and save it with the name Integer,
that will became the default visualization for the Integer tags. The same applies to any tag type.
MappingaSymboltoaTagTemplate
You can also define a symbol to be the default view for a tag template.

Go to Edit > Tags > Templates to create a new template.

FactoryStudioUserGuide

163

Go to Edit > Tags > Objects and create Tags with Type: Demo.

Back at the Draw environment insert some objects that you want to be part of the
symbol.
In the example we use a TextBlock and TextBox with the parameters #Tag:
(Tag.Demo.Integer1) in their dynamic properties

164

Now select the TextBox and the TextBlock and right-click and make it a New Symbol
with the Name and Folder called Demo. The parentheses () in the expression of the
TextBox and TextBlock, defined the scope, on what should be replaced when you map
the symbol. The hash tag syntax #Label: when you paste the Tags, it is the placeholder
that will show where in the dynamic animations or expressions the name of tag should be
replaced.

Go to Edit>Tags and copy all tags with Type:Demo.

12:DisplaysandSymbols

Back to Draw environment and paste the tags.

When inserting tags of that template type, the system will look for a Symbol with the same name
of Template. If a match is found, that symbol is created and linked to the Tag you were inserting
at the display.

Note
Note: If you create symbols using only Tag Elements, not expressions, you dont need to explicitly
use the full syntax: #Label:(tag.Demo).Integer1 to define the label parameters. If you just use your
tag at in the object dynamic properties and execute the Make Symbol command, the system will
automatically search for tags in the symbol and create the related parameters. When using
expression, or when having multiple tags and templates in the same symbol, it is necessary to
explicitly use the hash tag # and the parentheses in order to define the scope of your symbols
customizable parameters.
LinkingTagsandSymbolsusingCategories
If you want to map a Symbol with a group of Tags, but you dont want to make this symbol map
all Tags with the same Type. you can use the Category column to link which symbols should be
used as the default interface to each group of tags.

Go to Run > Dictionaries > Categories and create new categories.

FactoryStudioUserGuide

165

Back to Draw Environment and insert one symbol.

Go to Draw > Symbols Tab and on the Category Column chose the respective category
for the symbol..

Note
Note: If the Category column is not visible, right-click in any Column name and select the check
columns you want to see.

Go to Edit > Tags and define the category for the tags.

166

12:DisplaysandSymbols

Select all Tags, copy then paste then into the Draw Environment. Each Tag will map to the
respective symbol, according to the association defined the Category column

DisplayRuntimeObjects
The namespace Display lists all displays with their properties and open and close methods.
The namespace Layout lists all layouts with their properties and open and close methods.
The namespace Client has the properties of the environment on each connected client computer
or mobile device.
See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects.

FactoryStudioUserGuide

167

168

12:DisplaysandSymbols

13:ReportsandDataAccess
The following sections describe how to generate reports:

Creating Reports on page 169

Using the Report Editor on page 170

CreatingReports
Reports let you configure the report format and basic formatting. Application users can then run
reports.
To create reports:
1. Go to Edit > Reports > Reports.
2. Enter or select information, as needed.
Column

Description

Name

Enter a name for the report. The system lets you know if the name is not valid.

Padding

Select padding to use when replacing a tag name with its value (field starts with
space for the same number of characters as the tag name):
CompactRemoves any extra characters and displays only they tag value.
PadRightPuts extra space for each character to the right of the tag value.
PadLeftPuts extra space for each character to the left of the tag value.

SaveFormat

Select the report format:


XPS
HTML
Unicode
ASCII
PDF

SaveFileName

Enter a string, along with {ObjectProperties}. Use the full path.

SaveTrigger

Enter with an object property to be the trigger.

Append
Size

Report size configuration.

Header

Choose another report to be the Header.

Footer

Choose another report to be the Footer.

FactoryStudioUserGuide

169

Column

Description

Description

Enter a description of this report.

[Other
columns]

For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.

Note

To change the report format between portrait and landscape, you need to change it in both
NovaPDF (printer used by FactoryStudio) and the target printer.

UsingtheReportEditor
You create the text, formatting, and values for the report using the text editor.
To use the text editor:
1. Go to Edit > Reports > TextEditor.
2. Create the text, tags, and formatting for the report.
3. Click Save.
4. Configure the report properties for the display dynamics or script that will run the report.

ReportRuntimeObjects
The namespace Report list all configured reports.
The most commonly used methods of the report is the Save Command:
Report.Report1.SaveCommand()

See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming


reference on runtime objects

170

13:ReportsandDataAccess

14:Run,TestandPublishProjects
The following sections describe how to build and test applications:

Running the Application on page 171

Using the Diagnostic Tools on page 172

Build and Pack Projects on page 176

Project Version Control on page 177

Information Runtime Objects on page 178

RunningtheApplication
You can test the application one of the following ways:

From Run > TestLets you run the project in safe mode, which runs the application with
some features protected. Historical, Alarm and Event data are logged to temporary files so they
will not effect the production logs, and drivers cannot write any data to the devices.

From Run > StartupLets you run the fully operational project, without building the project.

You can run the project using both test and startup at the same time.
For information about using the diagnostic tools available, see Using the Diagnostic Tools on
page 172.
To test the application:
1. Do one of the following:

Go to Run > Test.

Go to Run > Startup.

2. Enter or select information, as needed.


Field

Description

UserName

Enter a valid username to access the application.

Password

Enter the password that corresponds to the username.

Project Server

Read-only. Displays the IP address or name of the computer where the project
is based on the configuration on the Server tab. See Running Projects on
page 42.

FactoryStudioUserGuide

171

Field

Description

Port

Read-only. Displays the port FactoryStudio uses for access. For test, it uses
3201. For startup, it uses 3101. These ports must be open on the server.

Startup
Computer

Read-only. Displays whether the configured server is the local computer or a


remote server.

Execution Path Overrides the default execution path, which is the project file location.
Module
Information

Run the Module Information tool.

Property Watch Run the Property Watch tool.


Trace Window

Run the TraceWindow tool.

Run Modules

Select which Modules execute when running the project.

Status

Field shows current running and connected or disconnected status.


Click Try to Connect to connect to the running application. Required to let
changes you make to the project apply immediately to the test or startup
runtime.
Click Disconnect if you do not want changes you make to the project to
apply immediately to the test or startup runtime.
Click Stop to stop the execution of the application.

Enable Online
Configuration

Select to let changes you make to the project apply immediately to the test
runtime. You must also be connected to the running project (see Status setting
above).

Note

You can use Enable Online Configuration to apply changes on real-time. All changes must be
saved before they can appear on-screen.
3. Click either Run Test or Run Startup.

UsingtheDiagnosticTools
After starting the project, the Startup window, lets you select diagnostic tools: PropertyWatch (Watch),
TraceWindow (Trace), and ModuleInformation (Info).

172

14:Run,TestandPublishProjects

PropertyWatch
The Property Watch is a diagnostic tool used to access tags and internal properties of the system for
reading or writing. Type the name of the property in the Object column and have to see its value in the
Value column.

For example, Tag.Coils, Device.Channel.Modbus.Status. On the right side are additional properties of
the selected object.

FactoryStudioUserGuide

173

TraceWindow
The Trace Window is a tool that displays system messages in a data grid interface. The messages
contain status information (based on Edit > Channels > Settings column) about reads, writes,
unsolicited, TX frames (sent), and RX (received).

Tip

WhencheckingtheDevicescheckboxintheSettings,enableonlytheerror,infoandwarning
information,notthedebuginformation,otherwiseyouwillcreatetoomuchdata.For
ControlLogixdevices,itisveryimportanttousethistool,asthesystemwilldisplaythe
invalidaddressesintheconfiguration.

Click Settings in the Trace Window to select options for which message types and modules, data
format, or to save to file. You can also configure a tag in the Object Name field and click Add to select
that object to include on the monitoring.

174

14:Run,TestandPublishProjects

ModuleInformation
Module Information contains information about the operation of the modules. Select the Devices
Module and a specific channel for information about the functioning of the communication channel.
The Read Groups Information provides information about the virtual reading groups, runtime of each
item, quantities of readings and readings, that have failed, and also reports on the code and date/time of
the last error.

To use the Module Information:


1. Go to Read Groups Information to look at the number of Success and Failed
communications, to quickly identify the communication blocks.
2. If you have systematic errors in all blocks or status codes with negative values, typically it
means you cannot access the remote device. Verify if the node address is correct.
3. If you have a block with systematic errors, verify the tags and addresses connected with
that block. Use the Trace Window with Device information to collect information about
those communication errors.
4. For some protocols, such as OPC, the Discarded items will show the wrong addresses in
the configuration.

FactoryStudioUserGuide

175

When running the Enterprise version in test mode, the system only reads from the field devices, even
if you have a configuration to write to field.
You can run the application with online configuration enabled, so you dont need to start and stop the
application when modifying the configuration. You can modify PLC addresses, access types, and most of
the application and see the real-time the results on your running application. You can use the Startup
window or the PropertyWatch to start and stop only one module, like the Devices, instead of restarting
the whole runtime system.

BuildandPackProjects
FactoryStudio is constantly compiling the module you are editing in the background and validating all
scripts and displays. If you have not run a full build, the BuildStatus column reflects any warnings or
errors found during the background compile process.
Double-click a row with a red X to go to the source of the warning or error. Warnings are
informational and do stop the script from running. Errors prevent the specified script from running, but
do not affect the whole application. If a script or display has a warning, it will still run.
Periodically, you should run a full build:

When you have made many changes and you want a full validation and recompile of the whole
project.

When you want to assign a build number to a version.

When you want to pack the database. When the build executes, the system creates a backup of the
current project file. If you want to save the project as it was for this build, rename the backup file.

When you are getting ready to publish, that is, create the read-only runtime application
To build the application:
1. Go to Run > Build > Messages.
2. If you want to pack the database, select the Pack Database after Build option.

Select this option to significantly reduce the size of the project file. The system
creates a file with the backup extension, which is the database before the packing.
Typically, you want to pack the database every time you run a build.

3. If you want to save all displays, select the Save all Displays when Building option.

Be sure to use this option if you have made changes to the symbol library. This
option applies to all symbol library changes throughout the project.

4. Click Build.
Tip

Whenchecked,abackupofprojectconnectedwiththatbuildisautomaticallycreated.Itis
alsopossibletopackaprojectwithoutbuilding,justclickonthePackbutton

176

14:Run,TestandPublishProjects

ProjectVersionControl
Trackingconfigurationchanges
FactoryStudio provides many ways to help you to keep track of the project configuration changes:

All configuration tables have the DateCreated and the DateModified information.

The Run-Build-History shows all Build commands executed to that project. A backup of the
project in that state my be available according the user settings.

The Info > Track > Tables shows all configuration tables, listing the number of rows and if the
tables where changed.

The Info > Track > Changes shows all project objects that have been modified. In order to
enable or disable that, you must be logged as Administrator. By default, the object tracking is only
enabled after you publish the project, but you can enable that anytime, independently of using or
not the publish feature.

PublishingtheProject
Publishing the project creates a read-only version of the project.
It is NOT necessary to publish the project to install it for production. In scenarios that you intend to
have continuous changes to the project in field, it is simpler to put the main project file, TPROJ, directly
on the production computer.
The benefits of publishing is that the system created a compacted and real-only version of the project
file. The file created has the same name of the project file, with the publish version number and the
extension TRUN.
This allows the system to comply with regulated industries.
The typical scenarios to the publish command are:

You want to deploy a read-only version of the project, for instance to be in compliance with
certified and regulated environments.

You want to use the automatic version numbering system. The result of publishing is a .TENG
file that also contains a major (1.0) or minor (0.1) version number as part of the file name. In
addition, Info > Track helps you manage the files published to the field, including which project
build they are.

You want a smaller footprint and faster loading of the project, for instance on machines, OEM
and embedded systems. The TRUN file can be up to 5 to 10 times smaller than the TPROJ file.

You want to protect the project from modification.

FactoryStudioUserGuide

177

Caution

The TRUN file is always read-only, but if the project configuration will not be visible to end-user,
it is an independent option defined in the Security System. If you dont want end-users to see the
project configuration remove the permission of the GUEST user and other users to edit the
project before publishing it.
To publish the project:
1. Go to Run > Build > Messages.
2. Select the desired build settings and Click Build.
3. Go to Run > Publish.

The Current Project Settings fields show the read-only status of the project.

4. Select the Publish Settings you want.


5. Click Publish.

InformationRuntimeObjects
There names a few runtime objects that provide information about running the project.
The Info namespace in the main location for runtime status. The main objects on that namespace are:
Info.Project: information about the project that is running
Info.License: information on the license
Info.Module: Information and start/stop command to Modules
Info.Trace(): displays a message on the TraceWindow
Info.TestMode: shows if the project is running in Test Mode

The Server namespace has information about the server computer.


The Client namespace has information about each client computer. running a graphical interface.
See http://www.tatsoft.com/help/fs-2014/runtime/index.html for the complete programming
reference on runtime objects.

178

14:Run,TestandPublishProjects

15:DeployingFactoryStudioProjects
FactoryStudio projects can be deployed to run locally on a stand-alone computer or embedded
device, as well in a client-server distributed architecture or on the cloud.
The following sections describe how to deploy the runtime application:

Local and Distributed Systems on page 179

Product installation on the target computer on page 180

License and Project Settings Verification on page 181

Installing the Project Configuration files on page 181

Setup the server to start the runtime on page 182

Remote Client Users Setup on page 187

Deploying Redundant Systems on page 190

LocalandDistributedSystems
When you are finished developing and testing the application, you can deploy the runtime
application for use by the end-user clients.
FactoryStudio supports many deployment scenarios such as:

Embedded devices with no local user interface.

Stand-alone panels or computers with local user interface.

Distributed systems with many client stations accessing a server.

Redundant servers with multiple users connected.

The setup procedures to each scenario have many common steps. For all the systems, even the
stand-alone installations, FactoryStudio has the concept of the Server and Client components.
The Server components is the Project file and the Modules that run the server side tasks, such as
data-acquisition, alarms and data logging.
The Client component are the Graphical User Interfaces and related scripts.
When you have a local or stand-alone project the server and the client components are just
running on the same machine.
The client technologies used by FactoryStudio simplify a lot the deployment as you have to install
the project on the server computer; all the clients stations will use the project from its server.
In order to setup the server components or stand-alone configurations refer to sections:
FactoryStudioUserGuide

179

Product installation on the target computer on page 180


License and Project Settings Verification on page 181
Installing the Project Configuration files on page 181
The client setup can be slightly different according to its type. FactoryStudio supports the
following client technologies:

Windows rich clientSee Windows Rich Clients on page 187

Windows smart clientSee Windows Smart Clients on page 187

Windows web-basedSee Windows Web Clients on page 188

iOSSee iOS, iPhone and iPads, Clients on page 189

Active-X, COM, and JavaScriptYou can access the runtime application using the
DataAccess API, which is a COM interface to provide integration with Active-X,
JavaScript on web pages, or legacy programming languages such as VBScript. Contact
support for assistance.

For redundant scenarios see Deploying Redundant Systems on page 190

Productinstallationonthetargetcomputer

Access to all referenced PLCs and their data.

Full installation of FactoryStudio, including either the embedded web server


(TWebServer) or IIS.

The installation requires .NET. See Getting Help on page 2.


The stand-alone computer or the server components on distributed systems must that have the
FactoryStudio installed and licensed.
The section Installing FactoryStudio on page 3 describes the standard way to install and license
FactoryStudio.
When you are not using components that require the setup of the Windows Registry, such as the
OPC components, you also just copy the product files without running any installation (that is
very useful to embed the software on devices), removing project examples or engineering
components, adding custom protocols.
On distributed systems, the client computers dont require a license, they just need to be allowed
to connect with the server based on number of runtime users enabled on the server. For more
information on the client setup, see Remote Client Users Setup on page 187.
If the system will have remote users, the TWebServer or IIS must be installed and running on the
server computer.

180

15:DeployingFactoryStudioProjects

LicenseandProjectSettingsVerification
The FactoryStudio project is created targeting one specific Product Family and Product Model, as
defined on the Info > Project > Settings page.
It is necessary to ensure that the License on the server computer is greater than or equal to
the requirements of the project, which means the following check-list:

The Family defined in the license must be the same as the Family in the project or a
higher hierarchy family.

Enterprise licenses can run all projects (Enterprise, HMI and OPCServer)

HMI licenses can run HMI and OPC Server projects

OPCServer licenses can run only OPC server projects

Express licenses or projects are not authorized for production environments.

The Model in the license must support a number of communication points equal to or
greater than the project that will run on the server computer.

The License Type on the target computer must be Engineering or Runtime. The
license of type DEV (Development) are only for System Integrators internal work and
shall not be used in production environments.

If the Project requires any additional interfaces, such as OSIsoft(tm) PI System, or IEC
protocols, make sure the license on the target computer is enabled for those interfaces.

Verify if the number of remote clients enabled meets your project requirements.

For more Information about product and license models refer to FactoryStudio Versions and
Licenses on page 193.

InstallingtheProjectConfigurationfiles
The project configuration is just one file, with extension TPROJ or TRUN, according to whether
you want to install for production the main project configuration file or a published version.
The Project Management utility allows you to connect with remote servers and download the
project files to remote computers.
Although that one file contains the entire project configuration, you should use the following
check-list to ensure that any external dependencies are also taken care of.

If the folder structures on the Production computer is not the same you used for
development, make sure that all the places you have FILE PATHS in your project are
mapped correctly to the production computer. FactoryStudio has many features and
macros to define paths relative to the Project location, product installation or execution
path; whenever possible avoid using fixed path locations in your projects.

FactoryStudioUserGuide

181

Any external WPF controls should also be copied the target computer. For remote web
access those files should be located at the folder WpfControl and the utility to update the
web manifest must be executed.

If the application is referencing external DLL or .NET assemblies ensure they are
available and at the correct paths on the target computer.

If the project uses RETENTIVE values, you must decide if the target computer will
create a new Retentive database or you if you will copy one with some predefined values.

Enable Firewall to allow remote clients. Ports 3101 for startup (optionally port 3201 to
Test Mode). For web and iOS clients, data web services enabled on port 80.

If the application is using external DLLs, WpfControls, configuration files or embedded


databases, make sure you copy those files to the target machine and double check if the
PATHNAMES you used in the project configuration are compatible.

Setuptheservertostarttheruntime
You can run the project in any of the following ways:

Start manually, from the FactoryStudio main window and project list, right-click the
project and select Run Project.

Start manually, when configuring the project, go to Run > Startup and click Run
Startup.

Start the project automatically, which is the best option for production environments.

The best way to define an automated startup of the product, it is to use the configuration
interface available on the Project Management tools, at the SERVER tab.

182

15:DeployingFactoryStudioProjects

We recommend to start manually during the project development or installation where it is


necessary for an operator during the startup process, otherwise the automated startup is more
suitable for production computers.
You should use the login option, the startup shortcut, when testing the project or in scenarios
where the application will always run in the same Windows user profile.
Use the Windows Service on production servers when you need different Windows users to login
on the computer, while keeping the server side runtime components running at all times.
We support the OPC client activation, in order to be in full OPC compliance, but we dont
recommend its use, because, as a good practice principle, it not desirable to allow the status of
remote client connections to control if a server side application is running or not.
The following sections will describe what those automated settings are doing if, for some reason,
you need to setup those startup settings without using the configuration tools.

UsingaShortcutonWindowsStartup
You can configure a Windows server to automatically start a project using a startup shortcut. The
startup shortcut only starts the application when a user logs in to Windows. and the application
stops running when the user logs off of Windows.
This procedure is automatically executed by the system when the startup mode is selected, as
described in Setup the server to start the runtime on page 182. This section will explain how to
manually setup those shortcuts.
The Project runtime startup is executed by the program TStartup.exe.
Note

When using this example, make sure to change the installation path and version of the
FactoryStudio to the installation on your computer.
Command lines parameters:
/project: Project Path and Name between double quotes
/username: (optional), username that will be used to start the server , if you do not specify, the
user guest will be used.
/testmode:true, execute the project in TEST mode, default is false
/redundancy: indicates that the server redundancy is being used (requires ip1 and ip2)
/autoswitc (optional) in redundancy scenarios, this optoin will make the Primary computer to
became active when starting, even if the secondary computer was already running.
/timeautoswitch:xx xx is the number of seconds to wait before the executing the autoswitch
/connectiontimeout:xx , where xx is the number of seconds the standby computer will wait
before the switch. It allows decimals points (for instance 0.5 = 500 ms)
/connection retry:xx where is the number of connection retry before switch the active server
/ip1: IP Address of the Primary FactoryStudio Server
FactoryStudioUserGuide

183

/port1: TCP port of the Primary FactoryStudio Server


/ip2: IP Address of the Secondary FactoryStudio Server
/port2: TCP port of the Secondary FactoryStudio Server
The modules that will be started are configured in the project, at Run.Startup.

Examples:
"C:\Program Files\Studio\fs-2012.1\TStartup.exe" /project:"C:\Studio
Projects\Project1.tproj"
C:\Program Files\Studio\fs-2012.1\TStartup.exe" /project:"C:\Studio
Projects\Project1.tproj" /port1:3101
Server Redundancy:
"C:\Program Files\Studio\fs-2012.1\TStartup.exe" /project:"C:\Studio
Projects\Project1.tproj" /username:Administrator /redundancy /ip1:192.168.1.1 /port1:3101 /
ip2:192.168.1.2 /port2:3101
Clientparameters

The following parameters can be applied to


/viewonly: indicates that the client in view only mode
/wa: indicates that the connection uses Windows Authentication

Creatingtheshortcut
Go to Start > All Programs, and right-click the Startup folder, and select Open.
1. In the Startup folder, right-click and select New > Shortcut.
2. In the Create Shortcut window, paste into the field that displays.
3. If you are not using redundancy, delete the redundancy part of the text.
Note

In the examples below, be sure to change the installation path and version of the FactoryStudio to
the installation on your computer.

184

15:DeployingFactoryStudioProjects

4. Type or paste the full command line, examples: "C:\Program Files\Studio\fs2012.1\TStartup.exe" /project:"C:\Studio Projects\Project1.tproj"
5. Click Next.
6. Enter a name for the shortcut.
7. Click Finish.

When you restart the computer next, the project will start automatically.

UsingaWindowsServicetoStartup
You can configure a Windows server to automatically start a project when the computer starts
using a Windows Service. The Windows Service starts the application as soon as the computer is
powered on and the Windows Operating System starts, even if no user has logged in to Windows.
This procedure is automatically executed by the system when selected for startup mode, as
describe on Setup the server to start the runtime on page 182. This section will explain how to
setup it manually.
Note

These methods do not start the client (user interface with the displays). To automate the client
startup, see Automatically Starting Windows Clients on page 188.
Use the Windows Service only on production servers that you are not using as engineering
stations, and only if you need the ability to differentiate Windows users logging in while the
project is running.
The first several steps of the procedure below are required to let you set up the Windows Service.
To run your application as a Windows Service:
1. Go to Info > Project > Redundancy.
2. Enter or select the information, as needed.
Field

Description

Enable
Configuration

Select to enable the configuration.

Primary Server IP
and Target Port

Enter the IP address and port of the primary server.

Secondary Server IP Enter the IP address and port of the secondary server, if any.
and Target Port
On Primary Startup

Select the option you want.

Historian Replication Select how to handle historian replication.


Connection Timeout Connection timeout time, in seconds, to switch to secondary server.
FactoryStudioUserGuide

185

Field

Description

Server Command
Line

Read-only field populated based on the fields above. Click Copy to


Clipboard to copy the command for use.

Rich Client
command

The commands to start a Rich Client with the project selected parameters

Smart Client url

The URL to access the Smart Client with the projects parameters

Web Client url

The URL to access the Web Client with the projects parameters

View-Only

If checked, apply View-Only parameter to Rich and Smart Clients url

Windows
Authentication

If checked, apply Windows Authentication logon parameter to Rich and


Smart Clients url

3. Next to the Server Command Line field, click Copy to Clipboard.

This copies the read-only field that was populated based on the fields above it.

4. Open a text file, paste, and continue with steps 5 through 7 in the file.
5. If you are not using redundancy, delete the redundancy part of the text.
6. At the beginning of the command line, enter or paste the full path to the FactoryStudio
installation folder and put quotes around it.

It should look something like this:


C:\Program Files (x86)\Tatsoft\FactoryStudio\fs-2014.1.3\tStartup.exe

7. Before the tproj text, enter or paste the full path to the project.

It should look something like this:


/project:C:\FactoryStudio Projects\<project_name>.tproj

The whole command line should look something like this:


C:\Program Files (x86)\Tatsoft\FactoryStudio\fs-2014.1.3\tStartup.exe /
project:C:\Factory Studio Projects\<project_name>.tproj /username:<username>

8. Leave the text file open for use in step 10.


9. From the DOS prompt, go to the <.NET Framework Install Path> and execute the
following command:
installutil <InstallPath>\<fs-version>\TStartupAsService.exe

Example:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>installutil c:\Program
files\Tatsoft\FactoryStudio\fs-2014.1\TStartupAsService.exe

10. Copy and paste the command you created in the text file.
11. In the Windows Registry, set up the parameters on:
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TStartup\Image
Path"

186

Example:
"c:\\tatsoft\fs-2014.1\TStartupAsService.exe" "/project:C:\FactoryStudio
Projects\Project1.tproj"

15:DeployingFactoryStudioProjects

12. In the Windows Services (Administrative Tools), set "TStartup Service" to Automatic, so
the selected project will start when the computer starts.

RemoteClientUsersSetup
WindowsRichClients
You can deploy your application for use by Windows rich clients.
Table 1 describes how the rich client deployment works.
Table1:Windowsrichclientdeployment

Installation

Install FactoryStudio on the client computer. See Installing FactoryStudio on


page 3.

Howtostart

Run the TRichClient.exe program.For an example of how to automatically start the


client when a user logs in to Windows, see Automatically Starting Windows
Clients on page 188.

Execution

Runs in its own window. It allows very strong user security, including the ability to
disable Windows task-switch, according the login on the running project.
When running the TRichClientt.exe on 64-bit machines, the application runs in 64bit native code. If you need run the 32-bit version, for instance to ensure
compatibility with legacy COM and Active-X components, you can use the
TRichClient32.exe program.

Communication

Communicates with the server using WCF (port configurable, default 3101).

WindowsSmartClients
You can deploy your application for use by Windows smart clients.
The smart client runs like the rich client, that is, they work the exact same way, but the smart
client uses the ClickOnce installation. This technology lets you have the same functionality as
the rich client, but without having to install FactoryStudio on your computer.
The first time you access the application, the system automatically downloads the necessary
components to run the application. The next time you access the application, the system verifies
if the local cache is the same version of the application that is on the server, and if necessary,
updates the local cache before running the application. If the version is the same, the application
starts immediately.
Table 2 describes how the smart client deployment works.

FactoryStudioUserGuide

187

Table2:Windowssmartclientdeployment

Installation

No installation required. You just need .NET Framework 4.0 and Internet
Explorer 8.0 or later on the client computer.
The first time you start the application, it will automatically download the required
components from the server. Every time the application starts, it verifies
automatically if a new version is available on the server.

Howtostart

From Internet Explorer (or a shortcut) go to the URL:


http://<ServerIPAddressorName>/fs-2014.1/TSmartClient.application
For an example of how to automatically start the client when a user logs in to
Windows, see Automatically Starting Windows Clients on page 188.

Execution

Runs exactly the same as the rich client. The functionality of the rich client and the
smart client are the same; only the installation and activation methods are different.

Communication

Communicates with the server using WCF (port configurable, default 3101).

WindowsWebClients
You can deploy your application for use by Windows web clients.
Table 3 describes how the web client deployment works.
Table3:Windowswebclientdeployment

Installation

No installation required. You just need .NET Framework 4.0 and Internet Explorer
8.0 or later on the client computer.
The first time you start the application, will automatically download from the server
the required components. Every time the application starts, it verifies automatically
if a new version is available on the server.

Howtostart

From Internet Explorer (or a shortcut) go to the URL:


http://<ServerIPAddressorName>/fs-2014.1/TWebClient.Xbap
For an example of how to automatically start the client when a user logs in to
Windows, see Automatically Starting Windows Clients on page 188.

Execution

Runs inside a web browser windows using Partial Trust (Sandbox Security).

Communication

Communicates with the server using HTTP or HTTPS (port 80).

AutomaticallyStartingWindowsClients
You can create a shortcut to the appropriate executable, depending on the client type, to
automatically start the application on a Windows client. You can create the shortcut on the
desktop or put it into the Startup folder, as described below.
For the web client, you can also configure the application as the home page in Internet Explorer.

188

15:DeployingFactoryStudioProjects

ToGo to Start > All Programs, and right-click the Startup folder, and select Open to open
the Startup folder.
13. In the Startup folder, right-click and select New > Shortcut.
14. In the Create Shortcut window, paste into the field that displays.
15. If you are not using redundancy, delete the redundancy part of the text.
16. Do one of the following:

For a rich clientAt the beginning of the command line, enter or paste the full path
to the FactoryStudio installation folder and put quotes around it.

It should look something like this:


C:\Program Files (x86)\Tatsoft\FactoryStudio\fs-2014.1.3\TRichClient.exe /
ip1:<IP_address>

For a smart or web clientAt the beginning of the command line, enter or paste the
full path to the Internet Explorer installation folder and put quotes around it.

It should look something like this:


C:\Program Files (x86)\Internet Explorer\iexplorer.exe http:<IP_address>/
fs-2014.1/TSmartClient.application
C:\Program Files (x86)\Internet Explorer\iexplorer.exe http:<IP_address>/
fs-2014.1/TWebClient.Xbap

17. Click Next.


18. Enter a name for the shortcut.
19. Click Finish.

When you next restart the computer, the project will start automatically.

iOS,iPhoneandiPads,Clients
You can deploy your application for use by iOS clients: iPad, iPhone, and iTouch. For other tablet
devices, contact support.
Table 4 describes how the iOS deployment works.
Table4:iOSdeployment

Installation

Install the SCADA HMI Client app from the Apple Store.

Howtostart

Start the SCADA HMI Client app and follow the initial setup options.

FactoryStudioUserGuide

189

Table4:iOSdeployment(Continued)

Execution

On iOS, it runs natively, thus providing higher performance, enhanced security, and
access to native graphical components, compared to other applications using
Terminal Client, Remote Desktop, or HTML web.

Communication

Communicates with the server by calling a web service using port 80. The server
must be on the same VPN or local network as the iOS device, or it can be a public
IP address, as long as HTTP access is enabled.

To deploy on an iOS device:


1. From your iOS device, tap the App Store icon.

You can also go to the Apple App Store from iTunes.

2. Search for and install the SCADA HMI Client app.


3. Start the SCADA HMI Client app.
4. Enter the following information:
Field

Description

Host Server

IP address or name of the project server.

Port

Port 80.

Polling

Defines the refresh rate between the client and the server, expressed in
quarters of a second. The default value of 1, means the client gets new data
from the server every 250 ms. When connecting to servers located on the
Internet or low bandwidth networks, that value should be increased. For
more information, refer to the help for the app.

User

Project user name as configured in the project. The default is guest.

Password

Project password associated with the user name.

Project

Project name on the remote project server.

5. Tap Login.

The graphics and displays download, then the application starts. The application
startup the first time may take a little longer than subsequent startups.

DeployingRedundantSystems
ConfiguringRedundancyoptions
You can configure application redundancy by configuring two computers as servers. One
computer will be the primary, and the other will be the secondary or hot standby. If the primary
computer or connection to the computer fails, the system automatically fails over to the
secondary computer.
190

15:DeployingFactoryStudioProjects

Note

If you selected HMI as the Product Family, the redundancy configuration is not available.
To configure redundancy:
1. Go to Info >Project > Redundancy.
2. Enter or select the information, as needed.
Field

Description

Enable
Configuration

Select to enable the redundancy configuration.

Primary Server IP
and Port

Enter the IP address and port of the primary server.

Secondary Server IP Enter the IP address and port of the secondary server.
and Port
On Primary Startup

Select the option you want.

Historian Replication Select how to handle historian replication.


Connection Timeout Connection timeout time, in seconds, to switch to secondary server.
Server Command
Line

Read-only field populated based on the fields above. Click Copy to


Clipboard to copy the command for use.

Rich Client
Command

Read-only field populated based on the fields above. Click Copy to copy
the command for use.

Smart Client URL

Read-only field populated based on the fields above. Click Copy to copy
the command for use.

Web Client URL

Read-only field populated based on the fields above. Click Copy to copy
the command for use.

Automatically start the application on a Windows client:


1. Go to Info > Project > Redundancy.
2. Enter or select the information, as needed.
Field

Description

Enable
Configuration

Select to enable the configuration.

Primary Server IP
and Port

Enter the IP address and port of the primary server.

Secondary Server IP Enter the IP address and port of the secondary server, if any.
and Port
On Primary Startup

FactoryStudioUserGuide

Select the option you want.

191

Field

Description

Historian Replication Select how to handle historian replication.


Connection Timeout Connection timeout time, in seconds, to switch to secondary server.
Rich Client
Command

Read-only field populated based on the fields above. Click Copy to copy
the command for use.

Smart Client URL

Read-only field populated based on the fields above. Click Copy to copy
the command for use.

Web Client URL

Read-only field populated based on the fields above. Click Copy to copy
the command for use.

3. Click the Copy button next to the type of client you want to start automatically.

192

15:DeployingFactoryStudioProjects

16:FactoryStudioVersionsandLicenses
FactoryStudio has a flexible features that let you manage product version and licensing:

FactoryStudio Version numbers on page 193

FactoryStudio Licenses Types on page 194

Product Family and Model on page 194

Remote Project Access on page 195

Project Settings versus License on page 196

Using Multiple Versions Concurrently on page 196

FactoryStudioVersionnumbers
The FactoryStudio version is a string like: fs-2014.1.10.
The meaning of that string is: <product_ID>-<Major_version>.<Minor_version>.<Update>.
So in this example:

Product ID = fs

Major version = 2014

A major version is a major release, which happens every one to two years. It includes
major changes to the product documentation or features. Existing customers must
either have the maintenance plan or purchase an upgrade to have access to it.

The new version installs to a new folder, so it does not affect any projects or product
installation of previous versions. The license protection, either hardkey or softkey
(dongle), must be updated to use that release.

Minor version = 1

A minor version is typically released every three to nine months and is not verified by
the license. It includes product enhancements and corrections.

A minor release is similar to what is sometimes called a Service Pack. However, with
FactoryStudio, you can have multiple minor releases installed in different folders and
use all of them at the same time on the same computer.

Update = 10

The update number reflects small modifications on top of the current version.
Updates are always compatible with the current release.

FactoryStudioUserGuide

193

Updates install on top of the product version they are targeting. If you try to open a
project created with an update you do not have on your computer, you can run that
project, but the engineering tools will open in read-only mode. Unless you have a
specific requirement or problem you need the update, you do not have to update.

FactoryStudioLicensesTypes
You can verify your license from the License tab, on the main page or when editing any project
from Info > License > Current.
For information about how to install or update a license, see Licensing FactoryStudio on
page 5.

ProductFamilyandModel
FactoryStudio has different product families and models that address requirements for different
markets. Your license defines the highest product family and model you can use. You can always
create projects that use a lower family or model.
The product family defined in your license affects the features and functions available. The
product families available are, in hierarchical order (highest to lowest):

FactoryStudio Enterprise

FactoryStudio HMI

FactoryStudio OPC-Server

FactoryStudio Express

If you do not have a license, the system defaults to FactoryStudio Express, which is for evaluation
and training only. Its runtime execution times out and stops automatically. Using the Express
version, you can only edit and run projects created with the Express product family. When editing
a project, a message displays in the top-right when you are running the Express version.
The web site has the updated information on the product families description and differences:
http://www.tatsoft.com/products/overview/.
The product model defined in your license defines the maximum number of communication
points and tags allowed. For more information, see Running Projects on page 42.

UnlimitedNo limit on the number of real-time communication points. Your computer memory and
performance are the only limitations.
ServerLargeUp to 100,000 real-time communication points.
ServerMediumUp to 50,000 real-time communication points.
ServerSmallUp to 25,000 real-time communication points.
PlantUp to 15,000 real-time communication points.
SupervisorUp to 5,000 real-time communication points.
LineUp to 2,500 real-time communication points.

194

16:FactoryStudioVersionsandLicenses

Work CellUp to 1,500 real-time communication points.


MachineUp to 500 real-time communication points.
PanelUp to 300 real-time communication points.
InstrumentUp to 150 real-time communication points.
Express-Up to 75 real-time communication points.
You can change this setting later, if needed.

Family

Depending on your FactoryStudio license, you may have options here to


build applications for a specific version of FactoryStudio. Be sure you
know what runtime version your end users will use. The option you select
determines how many communication points you can create for the
project:
EnterpriseUse for larger, more complex applications, with unlimited
real-time communication points.
HMIUse for smaller applications that manage hardware with up to
1,500 real-time communication points.
ExpressUse only for test or demonstration purposes.
OPCServerUse when you know you will use only OPC functions.
You can change this setting later, if needed.

Model

Depending on your FactoryStudio license, you may have options here to


build applications for a specific product model. Select which model based
on the number of real-time data points you will have in the projects.
UnlimitedNo limit on the number of real-time communication
points. Your computer memory and performance are the only
limitations.
ServerLargeUp to 100,000 real-time communication points.
ServerMediumUp to 50,000 real-time communication points.
ServerSmallUp to 25,000 real-time communication points.
PlantUp to 15,000 real-time communication points.
SupervisorUp to 5,000 real-time communication points.
LineUp to 2,500 real-time communication points.
Work CellUp to 1,500 real-time communication points.
MachineUp to 500 real-time communication points.
PanelUp to 300 real-time communication points.
InstrumentUp to 150 real-time communication points.
You can change this setting later, if needed.

RemoteProjectAccess
In addition to the product family and product model, your license also has a licence type:

EngineeringLets you configure and execute projects.

RuntimeLets you execute projects.

FactoryStudioUserGuide

195

DeveloperAvailable only to VAR partners to create and execute projects in testing


scenarios, not for production.

When you connect to a remote computer to open or run a project, the license that is verified is
the license on the server, not the license on your local computer.
However, if you connect to a remote computer that has only runtime license, but you have an
engineering license on your computer, you will be able to configure and execute the remote
project (as long has you have also the project security passwords and authorization). This is useful
to let engineers handle changes needed in the field.

ProjectSettingsversusLicense
When editing projects, the information about product family on Info > License >Current
reflects the license on your computer (or on the server if you are opening the project from a
server).
The project family and project model on Info > Project > Version reflects the settings for that
specific project and can be changed from Info > Project > Settings.
The features and functions available in a project are based on the project family set for the project
(as defined on Info > Project > Version), not your license. If you have an Enterprise license, but
a project was created with the project family set to HMI, the system only lets you use the features
and functions that are valid for the HMI product family.
If you try to open a project that has a higher requirement than the license you have, you will not
be allowed and a message on the top-right side will be displayed.

UsingMultipleVersionsConcurrently
Major or minor releases install to different folders from previous releases. This lets you keep
different FactoryStudio releases concurrently installed on the same computer.
The folder structure is:

\FactoryStudioFolder with the project selection and management tools.

\FactoryStudio\fs-2014.1Files specific to version fs-2014.1.

\FactoryStudio\fs-2012.1Files specific to version fs-2012.1.

You will have as many sub folders as product versions are installed in your computer.
Note

Because the installation footprint is very small, only around 100MB, we strongly recommend that
196

16:FactoryStudioVersionsandLicenses

you keep all versions. When opening a project, the system automatically verifies which version the
project was created with, and it will open the version that matches the project.
If you try to open a project created with a new product version (for instance you have fs-2012.1
and are trying to open a project created with version 2014.1), the system will not open or run that
project.At the top-right left area of the your workspace you will see warning message explaining
why the project cannot be opened.
If you try to open a project last used with a newer update, for instance, you have version fs2014.1.10 and you try to open a project that was used with version fs-fs-2014.1.20, as long your
have the license for fs-2014, you still are able to run that project, and open the engineering
configuration, even if the project is using an update that is newer that what you have in your
computer. For protection and to avoid inconsistencies, we dont allow that project to be modified
though, in this scenario it opens in read-only. On the top-right left of your engineering tool you
have a message when that scenario occurs.
If you have a project that was created in a previous product release (either major or minor), you
can upgrade it to the version you are currently using. For more information, seeUpgrading
Projects on page 42

FactoryStudioUserGuide

197

198

16:FactoryStudioVersionsandLicenses

A:RuntimeNamespaces
Project Runtime Objects
All the Project components, such as Tags, Alarms, Devices have associated .NET classes and objects, with
properties and methods accessible by the runtime system, as explained on Object Model and
Namespaces on page 21. The .NET documentation for those Namespaces, following the MSDN layout,
is accessible at http://www.tatsoft.com/help/fs-2014/runtime/index.html
Microsoft .NET Framework classes
FactoryStudio Runtime has access to all the features of the Microsoft .NET Framework, as a pure
managed code application. For information about the C# and VB.NET classes refer to Microsoft MSDN
.Net Framework 4 online documentation at http://msdn.microsoft.com/en-us/library/
gg145045(v=vs.100).aspx
Script Toolkit
When creating code inside FactoryStudio, we provide a set of utility methods, which we call the Script
Toolkit. Those methods are available at the namespace TK from any code inside the project. The
methods available are defined at http://www.tatsoft.com/help/fs-2014/runtime/index.html

Custom On-Screen Keyboards


When using touchscreen panels, you can customize the on-screen keyboard or add your own. Contact us
for source code examples on implementing custom keyboards.
WPF Controls Toolkit
You can add any WPF control directly on FactoryStudio displays with no toolkit required. But, if you want
to have a custom configuration dialog, accessing the Tags in the application, you can use the WK (WPF
Controls Toolkit) interfaces. Contact us to get examples on creating WPF controls, or if you need
assistance to encapsulate Active-X controls or .NET controls to use them within FactoryStudio displays.
Data Access COM API
If you need to access the real-time database from external applications, using any programming language
or even JavaScript code on web browsers, you can use the Data Access COM API, described at http://
www.tatsoft.com/help/fs-2014/runtime/index.html
Import Wizards and Driver Toolkit
FactoryStudio has extensions to allow you to create your own Device Communication Drivers, using the
Driver Toolkit, as well, custom importing tools and add-in components. Contact Tatsoft if you need
information on those additional extensions.

FactoryStudioUserGuide

199

200

A:RuntimeNamespaces

B:Glossary
Every knowledge area has its own terminology, the same applies to software applications. Certainly the
nomenclature FactoryStudio uses follows market standards whenever possible, but there are specific terms
related to the system and other common words may have a special meaning when using in this context.
This glossary has most the terms and keywords used by FactoryStudio and also concepts and related
technologies that are relevant to our context.

It is extremely recommended to at least read of this glossary once, after you used FactoryStudio for a
couple of months. Doing a review of the definitions and nomenclature used by the FactoryStudio
platform and Tatsoft development and engineering teams, combined with your experience with the
product, will put your understanding of system and efficient on creating applications to a new higher level.
.
AppDomainor
ApplicationDomain

Represents the virtual isolated computer environment, where a .NET


application runs. Isolated, in its context, means that the memory areas
and components used by programing running in that environment are
completely isolated from other programs running in the same
computer.
The inherent isolation of the .NET domains creates an intrinsically
safe protection for the running projects, as it prevents one process
from interfering with another, allowing even two different versions of
the same program to run side by side.
A more technical definition if AppDomain is the boundaries that the
CLR (Common Language Runtime) provides around the objects
created from the same application.

Application

Refers to solution or final system created using FactoryStudio. The


terms Application and Project are used with close meanings: Project
refers engineering configuration and files necessary to implement the
Solution and Application refers to conceptual solution that was
created.

Assembly

Refers to an executable file (.EXE or Library.DLL) created using


managed code and Microsoft .NET framework.

Designer

Component of the Engineering Workspace used to draw and animate


displays and synoptic screens.

DLLHell

Term used to refer the complications on running the legacy Windows


applications as there is no built-in isolation on the DLL libraries,
memory and COM objects used by the applications. The .NET
Framework completely eliminated that problem.

FactoryStudioUserGuide

201

Domain,Server
Refers to the values and location of objects at run time. Domain server
Domain,ClientDomain objects running on the server are the objects running on the server
during runtime. Values associated with this object are system-wide.
Client domain means that the object is running on the client station
and each machine can have different values.
InternalModule

Features and programs that implement internal system functions that


run without any user configuration.
Examples are the Network Synchronization task and the Background
Report Generator. Some Studio tools e.g., ModuleInformation.exe,
may display status information of those internal Modules, however that
information is required only for advanced system optimizations.

202

MainProjectFile

Refers to the SQL Studio encoded database that contains the project
configuration. The extension.TPROJ references the current project
still under development. The extension.TRUN references read-only
published projects.

Modifier(Device/
Points)

Auxiliary parameter to effect read and write points for a device, the
treatment of Arrays, bit masks, strings, swap and other operations in
which a DataType definition can not define them completely.

Module

A program that accesses the database in real time (RtDB) and can be
composed of one or more Assemblies.

Namespace

An address space. All objects created with a Namespace have unique


names. "Address space" can also be understood as a form of tier
objects. All process variables are grouped in the tag namespace; all
reports grouped in the namespace report. The name of an object
should be unique within the namespace to which the object belongs.

ObjectType(RunObj
type)

Determines the type of runtime object (display, report, script).

Objects,Runtime
Objects

Runtime objects are those objects visible (through their names) to


access the project via scripts and displays, such as Tags, Reports,
Alarms, Displays among others. The namespaces also identify which
execution module is reponsible to update those values, for example the
Alarm Module will start and will update the values of the runtime
objects associated with the alarms.

ObjectValues,
PropertyValue

Runtime objects (for example, Tags, deviceNodes, etc.) can have one
or more properties defined. The TAG (and the property value), for
example, MIN, MAX, description, among other properties.

PropertyWatch

Diagnostic utility to check and modify the values of the objects at


runtime.

Parameters(Tag
Configuration)

Definition of the parameters of behavior and values processing for


Tags.

Project

A configuration set Studio sketches of displays, reports, scripts and


user notes created and edited with a single entity.

B:Glossary

projectDB/
ProjectDatabase

ProjectDB (or project database) is a database that contains


configuration information. Matches files with the extension
<Project>.Tproj (current type, for example) or <Project>_
version.Teng (type released, for example).

PropertyorAtribute

Property (value) associated with a Tag or object.

RunDB,Runtime
Database/RtDB

The real time database created when the project is running. All objects
running accessible (such as Tags, Displays, Reports) are objects on the
Runtime Database, also called Real-Time Database or RtDB.

Runtime

Refer to a project with modules loaded and running.

RuntimeStartup

Operation that is the project at run time. This operation can be


performed from the program TStartup.exe in the current version of
FactoryStudio, or TServer.exe in the published version of the project.

Tag

A process variable. Name of a Namespace that includes all the


variables created by the user in a project configuration.

TagType

Defines the type of objects in the Tag Namespace: Digital, analog, text.
These Tags are a class of compounds or properties accessed directly
such as minimum, maximum, Value, quality. Each property is internally
created as ValueType.

Task(Script.Task)

Task program written in VB.NET (or C #) that runs on the server or


client during the runtime of a project. The execution will be on the
server or client, depending on the configuration of the domain
property in the script.

TManager

The program that performs the configuration of a project.

Toggle

Reverses the value of a variable. Values greater than zero are converted
to zero; zero is converted to the value "1".

Trust,PartialTrust,Full Partial Trust: Environment in which an application has limited access


Trust
to resources (restricted access to files from particular folders, running
other applications, etc.). XBAP applications that run within a browser
(e.g., Internet Explorer) should run in "Partial Trust".
Full Trust: Environment in which an application has access to all
system resources. Applications installed on a computer usually run in
"Full Trust" mode.

FactoryStudioUserGuide

203

Visibility(TagVisibility) Refers to the tagging system; Tags can be Private, Public or Protected.
Public:
The value of the Tag during the execution of the Runtime is available
for access to external Programs via TCP / IP or OPC Server. Also, the
value of Tag is necessarily global or shared in all the client stations
(Server Domain).
Protected:
Read-only.
Private:
A Tag set to "Private" can not be accessed by external applications
(OPC Server, TCP / IP) and will run in Client or Server machines
according to the application configuration with the following
characteristics:
Tags used only in modules called by the client (such as displays and
Reports) run in the scope of the client, or may have different values on
each client machine (Client Domain);
Tags used in server modules, such as Devices and Alarms have a
unique value in the system (Server Domain).
XBAP

204

Xaml Browser Application (XBAP) is a graphical application using the


XAML technology that runs inside a browser (Internet Explorer).

B:Glossary


A
access types
configuring 93
accessing projects remotely 41
adding
columns to tables 53
users 77
alarm window, configuring 149
alarms
configuring events for 101
configuring general settings 99
configuring groups for 100
applications
building 176
publishing 177
testing 171
assets
creating 68
automatically starting applications on the server 185
B
bar chart, configuring 148
building
applications 176
C
categories
creating 68
circular panel, configuring 148
classes
configuring 116
clients
configuring for deployment 187, 188, 189
configuring settings for desktop 129
described 179
code
creating for displays 128
editing 117
code editor
using 117
columns
adding 53
definitions for common 54
removing 53
configuring
access types 93
alarm events 101
alarm groups 100
data points 92
dynamics 137
event logging 99
external databases 105
general alarm and event settings 99
localization 57
nodes 87
permissions 78
policies 79
preferences 59
redundancy 190
tag historian tables 72
tasks 115
conventions, typographic 2
copying
rows 54
creating
assets 68
categories 68


classes 116
code for displays 128
displays 123
layouts 127
projects 38
reports 169
scripts 115
tag templates 67
tags 61
customer support 2
D
data grid window, configuring 153
data points
configuring 92
data, importing 55
database
configuring for tables for tag historian 72
databases
configuring external 105
configuring queries for external 112
configuring tables for external 111
date formats, valid for tags 66
deploying
iOS 189
Windows rich clients 187
Windows smart clients 187
Windows web clients 188
desktop clients
configuring settings for 129
devices
configuring 87, 92
disabling
users 80
displays
configuring desktop client settings for 129
configuring dynamics for 137
configuring iOS client settings for 129
creating 123
creating code behind 128
drawing tools
using 131
dynamics
configuring 137
E
editing
scripts 117
tables 51
tags 61
users 77
events
configuring for alarms 101
configuring general settings 99
configuring logging 99
expressions
described 118
external databases
configuring 105
configuring queries 112
configuring tables for 111
F
FactoryStudio
installing 3
licensing 5
main page, described 38


managing multiple versions of 196
object model, described 21
starting 5
understanding version numbering 193
finding
objects 47
projects 39, 40
formats, valid for tags 66
G
Guest user, defined 77
H
historian
configuring tables for 72
I
importing
data 55
installing
FactoryStudio 3
iOS
deploying 189
iOS clients
configuring settings for 129
iPad/iPhone clients
configuring settings for 129
L
layouts
creating 127
libraries
built-in methods 115
Visual Studio 115
licensing
FactoryStudio 5
product family 194
product model 194
project settings vs license 196
types and remote access 195
localization, configuring 57
logging
configuring tables for 72
for events 99
M
main page, described 38
major version, described 193
managing
project information 43
menus, using in FactoryStudio 48
minor version, described 193
N
navigating in FactoryStudio 48
nodes
configuring 87
numeric formats, valid for tags 66
O
object model, described 21
objects
finding 47
tracking use of 55
P
pasting rows 54


permissions
configuring 78
pie chart, configuring 148
policies
configuring 79
preferences
configuring 59
product family
described 194
project vs license 196
product model
described 194
project vs license 196
projects
accessing remotely 41
building 176
configuring redundancy for 190
creating 38
finding 39, 40
license types and remote access 195
managing information for 43
managing remote access to 39, 40
opening in different version 196
publishing 177
settings vs. license 196
testing 171
upgrading 42
publishing
applications 177
Q
queries
configuring for external databases 112
R
redo button 46
redundancy
configuring 190
remote access
and license types 195
managing 39, 40
using for projects 41
removing
columns from tables 53
users 80
reports
creating 169
using the text editor 170
rich clients, deploying 187
rows
copying and pasting 54
runtime components, described 179
runtime objects reference 115
S
scripts
configuring classes 116
configuring tasks 115
editing 117
searching
for objects 47
servers
automatically starting application as a service 185
described 179
service, using to automatically start applications 185
smart clients, deploying 187
starting


FactoryStudio 5
support, technical 2
symbols used in this manual 2
system requirements 3
T
tables
adding columns 53
common column definitions 54
configuring for external databases 111
configuring for the tag historian 72
copying and pasting rows 54
editing 51
removing columns 53
tags
creating 61
creating templates for 67
editing 61
valid formats 66
tasks
configuring 115
technical support 2
templates
creating for tags 67
testing
applications 171
text editor
using 170
time formats, valid for tags 66
toolbar
using 46
toolbars
drawing, described 131
toolkit
Visual Studio library 115
toolkits
built-in methods 115
tooltips, using 52
tracking
object use 55
translation, configuring 57
trend window
configuring 150
typographic conventions 2
U
undo button 46
update version, described 193
upgrading
projects 42
user interface
configuring desktop client settings for 129
configuring iOS client settings for 129
creating displays for 123
creating layouts for 127
users
adding 77
configuring permissions for 78
configuring policies for 79
disabling 80
editing 77
removing 80
users, Guest, defined 77
V
validation, described 52
versions


managing multiple concurrently 196
opening projects with different 196
versions, understanding number of 193
W
web clients, deploying 188
Windows
automatically starting applications on 185
Windows clients
configuring settings for 129
deploying rich clients 187
deploying smart clients 187
deploying web clients 188

You might also like