Factory Studio User Guide
Factory Studio User Guide
UserGuide
www.tatsoft.com
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
3: ManagingProjects
37
4: EngineeringWorkspace
45
5: Tags,AssetsandTemplates
61
6: HistorianandDataLogging
71
Contents
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
10:DatasetsandDataExchange
105
11:Scriptsand.NETFramework
115
iii
12:DisplaysandSymbols
123
13:ReportsandDataAccess
169
14:Run,TestandPublishProjects
171
Contents
15:DeployingFactoryStudioProjects
179
16:FactoryStudioVersionsandLicenses
193
A: RuntimeNamespaces
199
B: Glossary
201
FactoryStudioUserGuide
vi
Contents
1:GettingStarted
The following sections will help you get started with FactoryStudio:
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
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.
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.
SystemRequirements
Following are the system requirements for FactoryStudio:
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.
Display resolution:
For the application runtimeDisplays are resolution independent, so you can create
applications ranging from small 6" panels up to large high definition monitors.
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.
3. Click Next.
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.
5. Read the license agreement and if you agree to it, click Accept.
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.
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 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.
FactoryStudioUserGuide
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:
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
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.
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
AliasTProjectServer
Application PoolConfigure any pool based on .NET 4.0. Example: ASP.NET v4.0
Note:YoushouldallowEveryoneaccess,atleastforreading
Aliasfs-2012.1
FactoryStudioUserGuide
Application PoolConfigure any pool based on .NET 4.0. Example: ASP.NET v4.0
Note:Securityshouldenableanyuser(Everyone),atleastforreading.
AliasiDataPanel
Application PoolConfigure any pool based on .NET 4.0. Example: ASP.NET v4.0
Note:Securityshouldenableanyuser(Everyone),atleastforreading.
10
1:GettingStarted
AliasiDataPanelImages
11. Setup the Compression module. If it is not installed, you will see the alert boxes.
FactoryStudioUserGuide
11
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:
12
1:GettingStarted
Then click on Dynamic Types and now that you're in the list editor. Add application/json as seen
below.
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:
Testing and Running Projects on page 31 expose the basic concepts on running and
testing an application
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.
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
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
Combine flexibility and easy User Interface, allowing efficient use and open integration
with future systems and requirements.
FactoryStudioUserGuide
19
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
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[]
DateTime
DateTimeOffset
DateTime, DateTimeOffset
TimeSpan
TimeSpan
Time
Timer
int32
int
Image
byte[]
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
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.
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.
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
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.
FactoryStudioUserGuide
33
InformationandVersionControl
The Info environment provides access to current Project configuration details
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.
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:
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
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.
3:ManagingProjects
Field
Description
Name
Description
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..
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
The Find Project page displays with a list of the existing search paths.
Description
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.
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
Virtual Path
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.
Toaccessaprojectonthecloud
service
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.
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.
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:
The main page displays. Any existing projects display in the lower part of the page.
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
ProjectPath
FactoryStudioUserGuide
43
Field
Description
Family
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
Select the default resolution for new layouts in the project. This does not
affect existing layouts.
Select the default resolution for new pages in the project. This does not
affect existing pages.
3:ManagingProjects
4:EngineeringWorkspace
The following sections describe how to create and manage projects:
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
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.
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:
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.
If the column is a selection field, click again, then select items from the drop-down
list or pop-up window that displays.
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.
52
4:EngineeringWorkspace
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
A list of all available columns for that table displays. Columns with a check mark next
to them currently display in the table.
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
DateCreated
Description
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
The copy automatically includes all available column headings for the tab you are in.
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.
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
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.
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.
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
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
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
FactoryStudioUserGuide
59
Setting
Description
Allow to duplicate
Tags on
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:
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.
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
Description
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
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
Max
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
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.
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:
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
(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
N3
Currency
Specifier
Description
T (only)
d (only)
dd
ddd
dddd
MM
MMM
yy
Seealso:NavigatingintheWorkspaceonpage 48,NavigatingintheWorkspaceonpage 48
66
5:Tags,AssetsandTemplates
Table2:Date/timeformatexamples
Specifier
Description
yyyy
hh
HH
mm
ss
fff
tt
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.
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
[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.
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
Digital
Analog
AnalogInt
AnalogLong
AnalogDecimal
AnalogDouble
Text
TDateTime
Timer
TTimeSpan
Reference
TDataTable
UserType
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.
Seealso:WorkspaceOverviewonpage 45,NavigatingintheWorkspaceonpage 48
FactoryStudioUserGuide
71
Column
Description
Name
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.
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
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.
Description
Database
Table Name
Auto Create
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.
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
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
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:
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:
GuestUsed by default to access FactoryStudio and when you log off as another 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
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
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
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:
Ctrl + ESC
Alt + Tab
lt + F4
Windows Logo + L
Note
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
The policies you create are available for use on the Users tab.
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.
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 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
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
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
OPC UA Client
Ping - IT Infra-structure
Rockwell/AB ControlLogix
Rockwell / AB MicroLogix
Siemens S7 Protocol
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
Reliance CP3000
Smar CD600
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:
IEC 61850
IEC-870-5-101
IEC-870-5-104
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.
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
Description
4. Click OK.
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
ProtocolOptions
86
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.
Timeout
Configure the timeout options for this channel. Typically, keep the default
value.
IntialState
Description
[Other columns]
For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.
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
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
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.
For Rockwell ControlLogix devices, you can import from L5k definition files.
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
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
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.
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
Address
Enter the register address, based on the PLC and protocol for this data
point and tag.
Note
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.
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
Description
Name
Read
ReadPolling
ReadPollingRate
ReadTrigger
Enter an object property to tell the system when to read the value.
ReadOnStartup
ReadStatus
ReadCompleted
Write
WriteEventEnable
WriteEvent
WriteTrigger
Enter an object property to tell the system when to write the value.
WriteStatus
WriteCompleted
Settings
AcceptUnsolicited
When selected, the system accepts values from the PLC, even if the
polling time has not yet elapsed.
UseStaticBlocks
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
[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
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
98
8:DevicesandInterfaces
9:Alarms,EventsandAuditTrail
The following sections describe how to configure alarms and events:
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.
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:
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
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
[Other
columns]
For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.
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
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
[Other
columns]
For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.
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:
Tag properties.
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
104
9:Alarms,EventsandAuditTrail
10:DatasetsandDataExchange
The following sections describe how to configure databases:
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.
Description
Name
Enter a name for the database configuration. The system lets you know if the
name is not valid.
Description
FactoryStudioUserGuide
105
Column
Description
Provider
Database
4. Click OK.
Description
Name
Enter a name for the database configuration. The system lets you know if
the name is not valid.
Provider
Database
ConnectionString
LogonName
LogonPassword
ServerIP
Description
[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.
106
The databases you create are available for use on the Tags > Historian tab, in
displays, and in scripts.
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".
FactoryStudioUserGuide
107
Name the selection (e.g., "itemsTable"). The Excel file is now ready for use.
There are several methods for communicating using ODBC:
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
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
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
TableName
WhereCondition
Specify parameters to filter the data using SQL syntax. E.g. ColumnName
= {@tag.tagInt}
Access
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.
[Other columns]
For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.
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
SqlStatement
Mapping
Click ... to select the tags that you want to populate with data from the
query with data from specific columns.
Description
[Other columns]
For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.
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
FileType
Objects
Click ... to select the tags that you want to populate with data from the file
with data from specific columns.
Description
[Other columns]
For definitions of other columns that are available in many tables, see
Common Column Definitions on page 54.
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:
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).
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
Domain
InitialState
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
Description
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:
To configure classes:
1. Go to Edit > Scripts > Classes.
116
11:Scriptsand.NETFramework
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
BuildStatus
BuildErrors
Description
Double-click the row to access the Code Editor tab. See Working with the Code
Editor on page 117.
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
Expression
Domain
Execution
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
BuildErrors
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:
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
Mode
Preview
AllowSelection Select to allow users to select the display from the PageSelector.
EditSecurity
RunSecurity
Description
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
If you do not see this button in the toolbar, make your window wider.
124
Column
Description
Display Name
12:DisplaysandSymbols
Column
Description
Description
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
Background
Width
Height
Border
CloseButton
Select to display Close button. Available only for Popups and Dialogs.
Animation
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
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
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.
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.
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.
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.
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
Layout
Description
4. Click OK.
5. At the top right of the Layouts tab, enter or select information, as needed.
Column
Description
Width
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
The displays you add here are the first displays the layout uses.
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
HorizontalAlign
VerticalAlign
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
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
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
Title
MinimizeBox
MaximizeBox
CloseBox
ResizeBox
FactoryStudioUserGuide
129
Column
Description
Menus
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
When Mouse Is
Over Command
Areas
Mouse Cursor
Visible
Disable Web
Comments
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 the display that iPad users see when they start the application.
Select the display that iPhone users see when they start the application.
Stretch Fill
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.
FactoryStudioUserGuide
131
Table1:Verticaltoolbarcommands
Commands
Selection Tool
Description
Hand Tool
Geometric objects tools
Rectangle
Ellipse
Polygon
Polyline
Button
LabelBox
Text Output
Text Box
132
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
FactoryStudioUserGuide
133
Table1:Verticaltoolbarcommands(Continued)
Commands
Description
Alarm Window
Trend Window
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.
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
136
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
Shine
TextIO
HyperLink
Opens a hyperlink.
Security
FillColor
LineColor
TextColor
Bargraph
Bargraph dynamic.
Visibility
MoveDrag
Scale
Rotate
Skew
TextOutput
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
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
Increment a tag.
ExpressiontagCounter + 1.
ResulttagCounter.
FactoryStudioUserGuide
139
ShineDynamic
Table5:ShineDynamicconfiguration
Setting
Description
Shine
IsMouseOver
OverValue
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
Is Selected Appearance
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
Object or Expression
Object (input) or Expression (output only) connected with the Text Box.
DesignModeCaption
Input Range
MaxLength
HyperlinkandSecuritydynamic
Table7:HyperlinkDynamicconfiguration
Setting
Description
HyperLink
Opens a hyperlink.
HyperLinkType
Url
FactoryStudioUserGuide
141
Table8:SecurityDynamicconfiguration
Setting
Description
Security
Disable
Verify Permissions
When selected, only the chosen permission groups can access the object.
Confirm Message
Fill,LineandTextColorDynamic
Table9:Fill,LineandTextColorDynamicconfiguration
Setting
Description
FillColor
Expression
Change Color
LineColor
Expression
142
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.
Expression
Change Color
BargraphDynamic
Table10:BargraphDynamicconfiguration
Setting
Description
Bargraph
Bargraph dynamic.
Expression
Value Range
The minimum and maximum values that will correspond to the minimum
and maximum fill percentage.
Fill (%)
FactoryStudioUserGuide
143
Table10:BargraphDynamicconfiguration(Continued)
Setting
Description
Bar Color
Orientation
VisibilityDynamic
Table11:VisibilityDynamicconfiguration
Setting
Description
Visibility
Visible
Tooltip
Opacity
MoveDragDynamic
Table12:MoveDragDynamicconfiguration
Setting
Description
MoveDrag
BindingMode
144
Table12:MoveDragDynamicconfiguration(Continued)
Setting
Horizontal Move
Description
Vertical Move
ScaleDynamic
Table13:ScaleDynamicconfiguration
Setting
Description
Scale
Width Scale
Height Scale
Scale Reference:
RotateDynamic
Table14:RotateDynamicconfiguration
Setting
Description
Rotate
Expression
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
RPM
Center Reference
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
X-axis Skew
146
12:DisplaysandSymbols
Table15:SkewDynamicconfiguration(Continued)
Setting
Y axis skew
Description
Skew Reference
TextOutputDynamic
Table16:TextOuputDynamicconfiguration
Setting
Description
TextOutput
Expression
Localizable
Indicates whether the text must be translated when the dictionary changes.
DesignModeCaption
MaxLength
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
Preview
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
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
LinkedValue
Enter a tag name as the data source for the data item.
Brush
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
Data Source
Grid Lines
Window
Table19:BarChartconfiguration(Continued)
Field
Description
Labels
Show Horizontal
Labels 45
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
Min.
Max.
Brush
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
List
Merge Hi and
HiHi Lines
History Interval/
To
Show Column
Titles
Ack by Page
Enter a tag name, which when triggered, acknowledges the alarms in the alarm
window.
Show Group
Control, Label
AllowSort
FactoryStudioUserGuide
149
Table20:Alarmwindowconfiguration(Continued)
Field
Description
Allow Column
Reorder
Filter
Refresh
Enter a tag name that will trigger a refresh of the alarm data.
Display
Millisecond
For each column in the list, select the column and configure the settings to the right
of the list (described below).
Visible
Allow Filter
Show in Column
Chooser
Select to include the column in the column chooser, which lets users select the
columns to display.
Title
Width
Sort
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
Bind to Tag
Enter with an object property where the Trend configuration will be saved.
Enter with an object property where the Pen values will be saved.
Orientation
150
Horizontal.
Vertical, top to bottom.
Vertical, bottom to top.
Window
Labels
Grid Lines
Table21:Trendwindowsettings(Continued)
Field
Description
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
Pens Legend
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 -
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
Table21:Trendwindowsettings(Continued)
Field
SPCSettings
Description
Click to open the SPC settings.
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
0(online) 1(history)
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
Labels
Cursor Enable
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
Pens Legend
Y Axis
Range
Labels
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
Labels
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
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
CursorValue
Set the tag that will receive the real value of the Y-axis, according to the
cursor position. For example: Tag.pen1CursorValue.
FieldName
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
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
Theme
BindindMode
AllowInsert
Show Group
Control, Label
Show Column
Titles
AllowSort
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
Refresh
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
Editable
Show in Column
Chooser
Select to include the column in the column chooser, which lets users select the
columns to display.
FieldName
FieldType
Title
Width
Sort
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:
Column
Description
Name
Description
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.
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
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.
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.
12:DisplaysandSymbols
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.
FactoryStudioUserGuide
165
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:
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
SaveFileName
SaveTrigger
Append
Size
Header
Footer
FactoryStudioUserGuide
169
Column
Description
Description
[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()
170
13:ReportsandDataAccess
14:Run,TestandPublishProjects
The following sections describe how to build and test applications:
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:
Description
UserName
Password
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
Execution Path Overrides the default execution path, which is the project file location.
Module
Information
Run Modules
Status
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.
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 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.
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.
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
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:
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:
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
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.
Productinstallationonthetargetcomputer
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)
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.
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
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
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
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
Primary Server IP
and Target Port
Secondary Server IP Enter the IP address and port of the secondary server, if any.
and Target Port
On Primary Startup
185
Field
Description
Server Command
Line
Rich Client
command
The commands to start a Rich Client with the project selected parameters
The URL to access the Smart Client with the projects parameters
The URL to access the Web Client with the projects parameters
View-Only
Windows
Authentication
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.
7. Before the tproj text, enter or paste the full path to the project.
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
Howtostart
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
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
Execution
Runs inside a web browser windows using Partial Trust (Sandbox Security).
Communication
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.
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.
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.
Description
Host 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
Password
Project
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
Primary Server IP
and Port
Secondary Server IP Enter the IP address and port of the secondary server.
and Port
On Primary Startup
Rich Client
Command
Read-only field populated based on the fields above. Click Copy to copy
the command for use.
Read-only field populated based on the fields above. Click Copy to copy
the command for use.
Read-only field populated based on the fields above. Click Copy to copy
the command for use.
Description
Enable
Configuration
Primary Server IP
and Port
Secondary Server IP Enter the IP address and port of the secondary server, if any.
and Port
On Primary Startup
FactoryStudioUserGuide
191
Field
Description
Read-only field populated based on the fields above. Click Copy to copy
the command for use.
Read-only field populated based on the fields above. Click Copy to copy
the command for use.
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:
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
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
Family
Model
RemoteProjectAccess
In addition to the product family and product model, your license also has a licence type:
FactoryStudioUserGuide
195
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:
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
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
Application
Assembly
Designer
DLLHell
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
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
ObjectType(RunObj
type)
Objects,Runtime
Objects
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
Parameters(Tag
Configuration)
Project
B:Glossary
projectDB/
ProjectDatabase
PropertyorAtribute
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
RuntimeStartup
Tag
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)
TManager
Toggle
Reverses the value of a variable. Values greater than zero are converted
to zero; zero is converted to the value "1".
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
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