Professional Documents
Culture Documents
Manual General en
Manual General en
NET™
User Guide
www.spinengenharia.com.br
Spin™ Action.NET™ User Guide
© 2014 Action.NET™
Spin and Action.NET are trademarks of Spin Engenharia de Automação Ltda.
Other product and company names may be trademarks of their respective owners.
Contents
1: Getting Started 1
Welcome to Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
About This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
System Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Installing Action.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Starting Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Licensing Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Installing services on IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installation Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2: Technical Overview 15
Action.NET Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
What is Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Application Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Network Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Real-time, in-memory database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Object Model and Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Action.NET Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Action.NET Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Realtime Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Graphical Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Security and Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Trend and Historian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Devices Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Alarms and Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Datasets and SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Scripts and .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Reporting and Data Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Testing and Running Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Information and Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3: Managing Projects 35
Viewing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Finding Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Allowing Remote Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Accessing Remote Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Running Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Action.NET User Guide i
D raftSeptem ber10,2013
Upgrading Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Engineering Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
SQL-Centric Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Multi-User, Multi-Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Project Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Project Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
4: Engineering Workspace 43
Workspace Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Grid Splitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Using the Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Undoing and Redoing Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Smart Cut, Copy and Paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Print, Save to a File or Import. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
Finding Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
New Tag and Tag Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Security Logon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Help Button. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Navigating in the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Working with DataGrid Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Editing Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Tooltips and Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Sorting, Filtering, and Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Adding and Removing Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Common Column Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Copying and Pasting Rows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Importing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Using the Cross-Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Intellisense and Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Dictionaries and Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Runtime Language localization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Enumeration Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Categories Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Import Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Import Action.NET Projects: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Import Rockwell ControlLogix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Import OPC server configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Import From OSIsoft PI System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Importing XML tag templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Importing .NET classes from a DLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Configuring Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
ii Contents
D raftSeptem ber10,2013
Tag Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Creating Tag Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Creating Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Creating Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Tag Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Tag Namespace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Action.NET User Guide iii
D raftSeptem ber10,2013
iv Contents
D raftSeptem ber10,2013
Action.NET User Guide v
D raftSeptem ber10,2013
18:Glossary 181
vi Contents
1: Getting Started
The following sections will help you get started with Action.NET:
“Welcome to Action.NET” on page 1
“About This Guide” on page 2
“Getting Help” on page 2
“Installing Action.NET” on page 4
“Licensing Action.NET” on page 5
“Starting Action.NET” on page 5
“Licensing Action.NET” on page 5
“Installing services on IIS” on page 6
Welcome to Action.NET
Action.NET software (Action.NET) is a powerful platform/framework to develop and
deliver applications. Action.NET 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.
Action.NET’s 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.
Action.NET was built from the ground up, without using any legacy code. It is a 100%
managed-code application that lets you leverage and take advantage of the full potential
of the Microsoft .NET Framework today as well as tomorrow. Action.NET 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.
Action.NET User Guide 1
About This Guide
This guide is for users of Action.NET 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
Warning system.
Getting Help
User Guide and Google Search
The Action.NET 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 Spin
website, the advantage of the Google Search is that it includes all the on line help files,
plus all content on the Spin 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 Spin Site without leaving
Action.NET window.
Online Forum, E-mail and Phone
Registered users have free access to the Online Forum at the Spin site. If you have any
difficulties creating your account, send an email to support@spin.com, this email account
is also the entry point to open technical support tickets for licensed users.
If you are not yet a licensed user and are evaluating the product, you are also entitled to
support, send your questions and requests to info@spin.com.
2 1: Getting Started
Licensed users also have access to phone support. Contact us for special agreements
(charges may apply) regarding support outside business hours, 24 hours support or on
line sessions.
Distributor Support
In many countries and in the USA, Action.NET is sold through formal Distributor partners.
A Spin Distributor always has an internal technical staff, trained by Spin, 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 Action.NET training sessions.
System Integrators and VARs
Spin has a System Integrator and VAR program to fully support companies developing
applications and solutions on top of Action.NET platform. The System Integrators and
VARs are the primary source to support end-users questions that are specific to the
project configurations and solutions created by them.
System Requirements
Following are the system requirements for Action.NET:
Microsoft .NET Framework v4.0
Operating systems: Any Operating System able to run the Microsoft .NET
Framework 4.0 or Virtual Machines compatible with the Microsoft .NET
Framework..
Windows 7, Windows 8, Windows Vista, Windows Server 2008 and
Windows Server 2012 all come with Microsoft .Net installed.
For Windows XP, you must install Microsoft .NET Framework v4.0.
RAM Minimum requirements: Runtime 1 GB, Engineering 2 GB
Disk space—150 MB.
Display resolution:
For developing applications—Minimum of 1024 x 768.
For the application runtime—Displays are resolution independent, so you
can create applications ranging from small 6" panels up to large high
definition monitors.
For access to web-based installations, Internet Explorer v8 or later.
Action.NET User Guide 3
Installing Action.NET
Action.NET 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.
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 Action.NET 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 Action.NET as described at section “Installing
services on IIS” on page 6.
Use Windows Update to make sure you have all of the latest critical updates installed.
Some anti-virus, such as Bit-defender, shall be disabled before running the installation.
1. If you are using Windows XP, install Microsoft .NET Framework 4.0.
If you have Microsoft Office installed, this is typically already installed. If
needed, you can install it from http://www.microsoft.com/en-us/download/
details.aspx?id=17851.
2. Double-click the installation file.
The Welcome window displays.
3. Click Next.
The “Choose setup type” window displays.
4. Select the type of installation you want and click Next:
Typical—Select for most installations.
Custom—Select only when you know you need to use specific protocols,
and you do not want to install additional protocols. Deselect the protocols
you do not need.
The “License agreement” window displays.
5. Read the license agreement and if you agree to it, click Accept.
The “Select installation folder” window displays.
6. If you want to install to a different directory from the default, click Browse and
navigate to where you want to install.
7. Click Next.
8. Click Install.
4 1: Getting Started
When the installation is complete, click Finish.
If you purchased a license, you can license your installation. For more
information, see “Licensing Action.NET” on page 5. If you did not purchase
a license, you can use the Express version for evaluation and learning
purposes.
Starting Action.NET
After you install Action.NET, you should have a shortcut on your computer’s desktop and
an item on your Start menu.
To start Action.NET:
1. Do one of the following:
From your computer’s desktop, double-click the Action.NET icon.
From the Start menu, select All Programs > Spin > Action.NET.
The main page displays. From this page, you can create, open, and
search for projects. The section “Managing Projects” on page 39
explain how use the Project selection interface.
Tabs
Click to select
adifferentview
ofthe project
Licensing Action.NET
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 hardkey’s license settings.
Action.NET User Guide 5
Use the same procedure as below to update a license for both softkey and hardkey
licenses.
For more information about licensing, see “Action.NET Versions and Licenses” on
page 187.
To license Action.NET:
1. Make sure that the logged in user has local administrator privileges of the
machine.
2. M ake sure thatatthe U serAccountControlsettingsthe option "N evernotify" isselected.
G o to ControlPanel> U serAccounts> Change U serAccountControlsettings.In
the window thatopens,the leftside ofthe barshould be placed in the position below
indicating "N evernotify." You m ay need to restartthe com puterforthe notification
to take effect.
3. StartAction.N ET.
See “Starting Action.NET” on page 5.
4. From the main Action.NET page, click License.
Or go to Info > License > Register. when editing a project.
5. If you are using a dongle, connect it to your computer.
6. Click Get Site Code.
7. Navigate to where you want save the file, accept the default file name, and
click Save.
8. When the confirmation message displays, click OK.
9. Send the file to your distributor or to sales@spin.com.
10. After you receive the license key file via email, place the license key file in a
folder on your computer or network.
11. If you are using a dongle, connect it to your computer.
12. Start Action.NET.
13. From the main Action.NET page, click License.
14. Click Load Licensekey.
15. Navigate to the folder with the license key file and select the file.
16. Click Open
17. Verify the License Information, that shall show the serial number and the new
license settings.
6 1: Getting Started
Installing services on IIS
When installing Action.NET, if IIS was previously installed, you will not be able to install
our embedded web server (TWebServer.exe).
The Action.NET software will run without the web server, except by remotely accessing
project configurations and serving runtime web pages; all other Action.NET 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 Action.NET services in IIS or enabled the TWebServer embedded web
server. Another scenario where IIS is necessary is when you want to run the RUNTIME
as a Windows Service, and also to provide remote access to project web pages, iPad
displays and project engineering.
In order to enable the TWebServer stop the IIS server or other applications potentially
using port 80 and run the product installation. In order to setup the IIS server, follow the
procedure in this chapter.
This section is the explanation of how to install those services in IIS. The explanation
targets IIS 7.x and 8, but other versions should be similar.
You are going to install three services inside IIS:
TProjectServer —Allows you to remotely access your project configurations.
TVisualizerWeb/TVisualizerRemote —Allows remote access to runtime
displays.
iDataPanel—Is the service to provide data to iOS devices.
Installation Procedure
1. Verify that IIS is installed by going to Control Panel > Administrative Tools
and looking for Internet Information Services (IIS) Manager in the list.
2. Enable ASP.Net and .Svc Handlers for the WCF Service.
On IIS 7.x:
If IIS was installed after the installation of the .NET Framework it is necessary to run and
verify a procedure as described on http://msdn.microsoft.com/en-us/library/
ms752252.aspx which is to run the following programs using the command prompt as
Administrator:
From the Microsoft .Net folder, open the Command Prompt and rung the
following commands:
aspnet_regiis.exe –i –enable
ServiceModelReg.exe -r
Microsoft .Net is installed in one of the following folders:
C:\Windows\Microsoft.NET\Framework\v4.0.30319 (for 32-bit
operating systems)
Action.NET User Guide 7
C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (for 64-bit
operating systems)
For IIS 8.0:
From the Control Panel, go to Program and Features, then click “Turn
Windows features on or off.”
Enable the ASP.NET 4.5 option. Navigate the tree: Internet Information
Services > World Wide Web Services > Application Development
Features > ASP.NET 4.5:
Enable the HTTP Activation option (under .Net Framework 4.5 Advanced
Services).
3. From the IIS Manager, verify that the extension .svc is mapped to
aspnet_isapi.dll.
8 1: Getting Started
If needed, follow the procedure described on http://msdn.microsoft.com/
en-us/library/ms752252.aspx for the version of IIS you are using.
The .NET Framework installation directory usually is:
C:\Windows\Microsoft.NET\Framework\v4.0.30319, or
C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (for x64
Windows)
5. From IIS Manager, go to Sites > Default Web Site > Add Application and
configure the information for the services as described in following steps
Action.NET User Guide 9
Physical Path—C:\Program Files\Spin\Action.NET (Default folder. Make
sure you use the correct path to the Action.NET installation folder.)
Application Pool—Configure any pool based on .NET 4.0. Example:
ASP.NET v4.0
10 1: Getting Started
Note: Security should enable any user (Everyone), at least for reading.
On IE, test the URL http://localhost/an-2014.1/service.svc to verify the
service was correctly installed. It should show a page with information
about the service.
8. For iDataPanel Service, configure:
Alias—iDataPanel
Physical Path—C:\Program Files\Spin\Action.NET\an-2014.1 (Default
folder. Make sure you use the correct path to the Action.NET installation
folder.)
Application Pool—Configure any pool based on .NET 4.0. Example:
ASP.NET v4.0
Note: Security should enable any user (Everyone), at least for reading.
Alias—iDataPanelImages
Physical Path—C:\Action.NET Projects\iDataPanelImages
Action.NET User Guide 11
10. Enable Anonymous Authentication for each of the services.
11. Setup the Compression module. If it is not installed, you will see the alert
boxes.
12 1: Getting Started
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:
Then click on Dynamic Types and now that you're in the list editor. Add application/json
as seen below.
Action.NET User Guide 13
After you've added them and closed the dialog.
12. If your remote users cannot access the Action.NET, you should allow
Everyone access to the Action.NET folder, at least for reading. Right-click the
folder, click the Security tab, click Edit, then add read permissions for
Everyone.
W arning
IIS must be restarted after configuring the services.
14 1: Getting Started
2: Technical Overview
This chapter provides a technical overview of the Action.NET product and a quick start guide
to understand the application areas and available configuration tools. The content is
organized in the following sections:
“Action.NET Platform” on page 16 contains information about:
“What is Action.NET” on page 16,
“Application Areas” on page 17 and
“Network Topology” on page 18
“System Architecture” on page 19 contains information on key concepts such
as:
“Real-time, in-memory database” on page 19,
“Object Model and Namespaces” on page 21
“Action.NET Projects” on page 23 presents the Project Selection and
configuration user interface
“Action.NET Modules” on page 25 contains information about the main system
modules, including:
“ Realtime Tags” on page 26
“Graphical Displays” on page 27
“Security and Redundancy” on page 29
“Trend and Historian” on page 29
“Devices Communication” on page 29
“Alarms and Events” on page 30
“Datasets and SQL” on page 30
“Scripts and .NET” on page 31
“Reporting and Data Access” on page 32
“Testing and Running Projects” on page 33 expose the basic concepts on
running and testing an application
“Information and Version Control” on page 36 explains some of features
available to manage the project life-cycle.
Action.NET User Guide 15
Action.NET Platform
What is Action.NET
Action.NET 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 real-time tag database, assets and templates, alarms and events,
historian, recipes, SQL queries and database access, reporting, .NET languages scripting,
client and server OPC, WCF, Electrical protocols 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.
Action.NET is vertical industry agnostic, with a flexible infra-structure for real-time data
management, it has been applied to Power & Utilities, Renewable Energy, Data-centers, Oil
& gas, Machinery, Water and waste-water and Building Automation systems.
Technology Advantages
Action.NET’s 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 Action.NET is based on, it is to provide a unified complete solution,
so the users don’t 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: Technical Overview
Application Areas
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.
Action.NET 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. Action.NET 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: Action.NET 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: Action.NET 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 Action.NET 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 Action.NET an excellent tool to create Operational
Dashboards, Historian, Manufacturing Intelligence (MI), Operational Dashboards, OEE and
KPI calculation and situational-awareness applications.
SCADA, MES and PIMS: Besides having the full spectrum of expected SCADA functionality,
Action.NET 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.
Action.NET User Guide 17
Network Topology
Action.NET can be applied in different network topologies and scenarios. The most common
applications, from the Factory Floor to the IT, includes:
Local HMI panel or embedded device, running native protocols data
acquisition and local operation.
OPC server and data gateway
Supervisory and SCADA system on automation islands
Central server for Operations Centers and Integrated Control Rooms
Data Server to cloud-ready source-independent Presentation Layer
MES, Real-time dashboard and Plant Information Management applications.
The Action.NET 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: Technical Overview
System Architecture
Action.NET User Guide 19
Distributed architecture, both internally (multi-core CPUs) as external (multiple
users and projects)
Use operating platforms for software and hardware of broad support and
longevity
Increase modularity for lower costs of deployment and maintenance.
Combine flexibility and easy User Interface, allowing efficient use and open
integration with future systems and requirements.
20 2: Technical Overview
Table 1: Real‐time database new generation
HMI/SCADA databases Action.NET real‐time database
Basic Tags Types, such as In addition to these, also manages events, dates,
boolean, int, float (real) and texts tables, queries, and structured data.
Action.NET User Guide 21
dataset, and display required information or take action directly through their built-in
properties
Action.NET 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 Action.NET:
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 don’t 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 Action.NET 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.
22 2: Technical Overview
Action.NET Projects
The Action.NET 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.
Multiple users can work on the same project simultaneously.
The project is one single file in the local computer, remote server or in the cloud!
This design allows for more efficient access to the to projects located in the local computer,
remote stations or cloud servers
Action.NET 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 Action.NET. That simple structure, simplifies a lot the back-up
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)
Action.NET User Guide 23
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, Action.NET 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 49
24 2: Technical Overview
Action.NET Modules
The Edit button on the Engineering workspace provides access to the configuration of the
Action.NET Modules.
Consistent with the SQL-centric project configuration, the setup of each Module is just to fill
the configuration tables connected with that module.
Action.NET User Guide 25
Realtime Tags
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. Action.NET has the most complete set of real-time entities. It was the first platform
to deliver the complete correspondence of real-time tags, .NET types and SQL columns, as
show on following table.
26 2: Technical Overview
Graphical Displays
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.
Action.NET 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.
Action.NET 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
Action.NET User Guide 27
experience and security of a native app with the benefits of have only on project
configuration.
See more at “Chapter 12, Displays and Symbols” on page 131
28 2: Technical Overview
Security and Redundancy
In Action.NET, Security is used to determine which Users have access to
various components of the project. These include the ability to change Tag
values, execute commands, open Displays, generate Reports, and more.
User Sessions can be controlled so that the User is automatically logged
out of the system based on inactivity, duration of the system, or both.
Both Alarm and Security on-line conditions are automatically replicated on redundant
applications.
Together with the Alarm and Event features, the Security tools provide all the tools
necessary to create FDA-CFR 21 Part 11 compliant applications.
See more at “Chapter 7, Security and Users” on page 83
Devices Communication
This module handles communication with the programmable
controllers and field equipment.
Action.NET supports embedded communication protocol drivers to
directly access Relays, PLCs, BacNET, Remote IO, Fieldbus standards, single and multi-
loops, scanners, bar-codes, RFID devices and digital displays. The most important electrical
protocols are supported (DNP3.0, IEC-60870-5-101, IEC-60870-5-104, IEC61850, Modbus,
etc.). OPC DA is also supported, but in most cases is not required, for best performance,
easier setup and higher message control, the native protocols are used when available,
reserving the use of OPC when a native driver is not available or when the architecture
specification requires it.
The Device Configuration Tool can import databases from OPC servers, CSV or text files. If
the device is compatible, it automatically implements multi-threading on TCP/IP networks.
Action.NET User Guide 29
The addressing syntax follows the naming convention of the remote device, making
configuration and maintenance much easier; a complete set of performance and diagnostics
tools is included.
See more at “Chapter 8, Devices and Interfaces” on page 89
30 2: Technical Overview
Scripts and .NET
Action.NET fully supports the Microsoft .NET Framework in a built-in
integrated environment. Inside the Action.NET 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 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 isAction.NET
.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 processes, since
the interfaces for reading values and historic data, firing
events and writing values are standard functions and
components already supplied by Action.NET
See more at “Chapter 11, Scripts and .NET Framework” on page 123
Action.NET User Guide 31
Reporting and Data Access
Action.NET 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 161
32 2: Technical Overview
Testing and Running Projects
BUILD
Build compiles all displays and scripts for final verification before deploying
a project for production. Build provides complete verification of the
application logics when preparing for final production, but is not necessary
during development as all modifications in the project are automatically and transparently
being compiled in the background while you are editing.
Action.NET User Guide 33
TESTING THE PROJECT
Test lets you run the project in Test mode, which means enabling protections
that allow it to run even on the same machine that the project is running in
Startup. The Historian and Alarm logging functions are directed to use
temporary files instead of the defined database for the project production.
Optionally you can enable diagnostic tools to help resolve any issues you may be working
through. You can also decide which modules will run during your test.
PROJECT STARTUP
Startup is where you configure how your project will run in production mode.
This means enabling the Historian and Alarm logging functions to use
databases as defined in the project instead of the temporary files used in
Test.
34 2: Technical Overview
The Online Configuration checkbox allows you to establish on-line configuration. When the
Project is running you can attach to the execution, which means modifications to the project
we be shown in the running project when made.
PUBLISHING THE PROJECT
Publish creates a read-only protected version of projects suitable for
deploying in the field.
When the Publish command is executed a new Project file (with extension "teng") is created
with the version number selected.
The Published Projects ("tproj" extensions) are similar to the current project (".proj"
extension) and can be opened only in read-only mode. This provides you with a safe backup
version of published applications.
See more at “Chapter 14, Run, Test and Publish Projects” on page 163
Action.NET User Guide 35
Information and Version Control
.
Verifying Project Information
Action.NET helps you to gather and store information about your Project. In
managing the versions of projects you may be developing, installing,
commissioning, or maintaining, it’s important to make certain you know the
versions of the software, license, project, and other settings and information.
The Project tab displays this information and allows you to change the information if needed.
Some of these fields are also available during runtime if needed.
36 2: Technical Overview
This is important because you need to be able to verify which version of a project you are
using when developing enhancements and working through diagnostics.
Action.NET tracks changes to every aspect of the project configuration. Table names
displayed, and indication is made where changes have occurred. Double-clicking on any line
in the table brings you to the editor which generated in the change.
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.
Reference
Reference tab calls help information, local or on-line. The same does the
“Question” mark at upper right corner of Manager Tool Framework.
License Information
The License tab presents information regarding the currently installed
license for Action.NET.
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 173
Action.NET User Guide 37
38 2: Technical Overview
3: Managing Projects
Viewing Projects
When you start Action.NET (See “Starting Action.NET” 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).
Action.NET User Guide 39
To view the meta data information about the project, Click in the lower-right corner to
rotate the selected project icon showing the Project Information. See “Project Configuration”
on page 46 for details about the project metadata information
A Project in Action.NET stores all of the configuration for a specific application. That project
configuration is stored in a single file with extension tproj.
Tip
If the list is not showing any projects, it is because the system was unable to located Project
files on the selected Server and Search paths. Use the “Find Projects” to search projects in
the local computer, use the “Server” tab to connect to a new Project Server, or use the “Create
Project” to create a new project.
Using the ComboBox, at upper right corner of the projects window, you select on CardView
and TableView, for different views of your project list.
40 3: Managing Projects
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 42.
Projects located on remote computers or on cloud servers can also me managed using the
Server configuration, see “Accessing Remote Projects” on page 44.
Projects retain information about the version of Action.NET 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 45.
Creating a Project
To create a project:
1. Click New Project.
The New Project page displays.
2. Enter or select the information, as needed.
Field Description
Name Enter a name for the project.
Description (Optional) Enter a description of the project.
Location Click the ... button to select or create a new folder for the project.
Note: You configure remote access to projects on a folder basis. Be sure
to place local projects into a different folder from projects that you permit
remote access to.
Action.NET User Guide 41
Field Description
Product Family Depending on your Action.NET license, you may have options here to
build applications for a specific version of Action.NET.
Tip
If you don’t have a license, only the Express family will show.
Even when you have a license you may want to create Express
projects to share demos and tutorials with users that don’t have a
license installed.
Product Model Depending on your Action.NET 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 “Action.NET Versions and Licenses” on page 187, for more
information about the product model.
Finding Projects
When accessing your local computer, Action.NET 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,
Action.NET does not know to look in that folder for a project. You can add that folder to the
search path, so Action.NET knows to look in the folder.
You can also remove folders from the search path, if you no longer need those folders for
Action.NET projects or want to reduce the list of folders.
To find projects and manage remote access:
4. Click Find Project.
The Find Project page displays with a list of the existing search paths.
5. Enter or select the information, as needed.
42 3: Managing Projects
Field Description
Current Project Server Display-only. Lists where the current project is running.
Include Sample Projects Selected by default. Deselect to exclude sample projects from the
list.
Include Published Selected by default. Deselect to exclude published projects from
Projects 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.
Note
When adding a project, or a folder, all the projects in the selected folder are added to
Project List at the main page.
This page also contains the settings to allow users on remote computers to access the
projects, as described in the next section
Action.NET User Guide 43
Field Description
Allow Remote Access Selected by default. De-select to deny remote access to
the selected folder for editing Action.NET projects.
Allow Remote Run Selected by default. De-select to deny remote access to
the selected folder for running a Action.NET runtime.
Virtual Path Enter to provide access to just the selected folder. Anyone
accessing your computer remotely through Action.NET
can see all folders that are configured for remote access
and that do not have a Virtual Path.
To access a project on a remote computer To access a project on the cloud
service
1. Select the Remote option. 1. Select the Cloud option.
2. Enter the IP address of the computer 2. Enter your Account and
where the project is. Password.
3. If configured, enter the Virtual Path of the
folder.
The person who created the project may
have configured the virtual path.
44 3: Managing Projects
If you did not enter a virtual path, you see all projects in folders
configured for remote access, but not projects in folders that have a
virtual path configured.
If you did enter a virtual path, you see all projects in the folders
configured with the virtual path you entered.
15. Double-click the project you want to open.
Running Projects
You can run the project in any of the following ways:
From the Action.NET main window and project list, right-click the project and
select Run Project.
When configuring the project, go to Run > Startup and click Run Startup.
For more information, see “Running the Application” on page 163.
Automatically using the auto-startup settings on the Server tab.
Upgrading Projects
Projects retain information about the version of Action.NET 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 Action.NET, you can upgrade a project to use the newer
version.
To upgrade a project:
1. Start Action.NET:
See “Starting Action.NET” on page 5.
The main page displays. Any existing projects display in the lower part of the
page.
2. Select the project you want.
3. For any project that displays a ProductVersion that is older than your current
version, right-click and select Upgrade Project.
If this option is not available, the project is already on the same version as the
current version of Action.NET.
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.
Action.NET User Guide 45
Project Configuration
Engineering Tools
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 49.
SQL-Centric Configuration
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 169, you can also
create read-only versions of the project for runtime execution only, that will have the
extension TRUN.
Multi-User, Multi-Project
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.
Project Information
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 > Version.
Most of the information is read-only.
Project Settings
You can view and change the project settings that you configured when you created
the project.
46 3: Managing Projects
Note
Changing some project settings may cause some configurations to be invalid. For
example, some features are only available in the Enterprise version.
To view and change project settings, open the Project with the configuration tools and go to
Info > Project > Settings.
Field Description
Product Read-only name of the product used to create the project.
ProjectPath Read-only path to the project.
Product Family Refer to “Action.NET Versions and Licenses” on page 187, for
more information about the product families. A basic description
of the product families is
Enterprise—Complete Action.NET functionality
Warning
Changing this settings changes the storage format
and the data on previous format is not automatically
converted.
Default Page Size Select the default resolution for new pages in the project. This
does not affect existing pages.
Action.NET User Guide 47
48 3: Managing Projects
4: Engineering Workspace
Workspace Overview
The application TManager.exe provides access to edit your project configuration in
Action.NET. 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.
Recent items Configure workspace theme and
user preferences
Back/forward
Toolbar
Status
Main menu messages
Tabs
Submenu of
the selected
main menu
Action.NET User Guide 49
Grid Splitter
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
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.
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 55.
50 4: Engineering Workspace
When editing documents (in the Draw, Reports, and Scripts areas), undo and redo
are available until you save changes.
Tip
When copying from Excel make sure to select the Row Titles. You can also copy Rows from
the Tags tables to the Historian directly to enable data logging of those tags.
Finding Objects
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 60
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
Action.NET User Guide 51
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.
Security Logon
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 83
Help Button
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.
52 4: Engineering Workspace
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.
To configure the basic elements of your project, from the Main Menu, click on the
“Edit” icon.
Action.NET User Guide 53
To configure dynamic displays, select the Display on Edit-Displays and click on the Draw icon to
access the graphical Designer.
54 4: Engineering Workspace
Project and product Version, location of project, Local
Language, License information.
Find information regarding published project release number
and project changes.
Editing Tables
Action.NET 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.
Action.NET User Guide 55
After you click a column in the row, the * becomes a pencil icon, showing
that you are now editing that row.
56 4: Engineering Workspace
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.
Action.NET User Guide 57
2. To remove the grouping, drag the column name back to the column headers
area.
5. To reset the columns to the default, click Reset Grid to Default Settings.
58 4: Engineering Workspace
Table 1: Common column descriptions
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 74.
Category Select one or more categories for this attribute. See “Categories
Dictionary” on page 63.
DateModified Date the object was last changed.
DateCreated Date the object was created.
Description Enter a description of the object.
Action.NET User Guide 59
The paste automatically places the data into the corresponding columns.
Any empty cells are ignored.
Importing Data
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 59.
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 Action.NET expects.
2. Save the file as a .csv.
3. From the corresponding table in Action.NET, click Import from a CSV file.
4. Navigate to the .csv file and select it.
5. Click Open.
The system imports the data into the table.
To find objects:
1. Do one of the following:
From the table that has an occurrence of the object you want to find, select
the object. For example, select the tag you want to find elsewhere in the
project.
The Find field in the toolbar auto-populates with the name of the
selected tag.
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).
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.
60 4: Engineering Workspace
Next to the Find field, click .... .The Select Object window displays with a
list of all the object types. When you select an object type, the names of
that type display.
2. Click Find or from the Select Object window, click OK.
The results of the search display at the bottom of the page.
3. Double-click any row in the find results to go to that item.
4. To close the results pane, click Find window at the bottom of the page.
Action.NET User Guide 61
Dictionaries and Localization
Note
To localize user interface text, be sure to select the Localizable option (Dynamics
Configuration window, TextOutput options) for each display component that you need
to localize.
To configure localization:
1. Go to Run > Dictionaries -> Localization.
2. Click New.
The Create New Localization Dictionary window displays.
3. Enter a name for the dictionary.
4. Click OK.
5. Click Load Strings to populate the table with all controls that have strings that
are set to Localizable. In the TranslatedText column, enter the text in the
dictionary language.
6. Create controls in a display or write a script to use the object called
Client.Dictionary to configure the dictionary or dictionary options for the user.
When the dictionary changes, the dictionary changes throughout the
application.
The alarm messages can also be included in the localization if the related check-box
is set.
On Info-Project-Settings, you can also define the default Culture Information that the
application is using and the runtime property Client.CultureInfo allows you to change
it during runtime. Some display controls may get the Culture Info directly from the
Operating System, so the correct procedure is to have both the Operating System
setting and the project settings with the target culture to run the application.
Enumeration Sets
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.”
62 4: Engineering Workspace
To configure Enumeration sets:
1. Go to Run > Dictionaries > Enumeration Sets.
2. Click New.
The Create New Dictionary window displays.
3. Enter a name for the dictionary.
4. Click OK.
5. In the Value column, enter the numeric value, and in the Translated Text
column, enter the string to display.
6. For tags that use the numeric values as Enumeration Set, configure the
Parameters column to use this set.
7. When configuring a display component to use these tags, set the TextOutput
to one of the following:
8. Tagname or Tagname.Value show the numeric value of the tag.
9. Tagname.ValueAsString or Tagname.DisplayValue show the enumeration
string.
Categories Dictionary
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.
Import Wizards
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:
Action.NET User Guide 63
Import Action.NET Projects:
Add the components of the selected project into the current project.
Note
The Import PI wizard will only show on licensed installations with the PI Connection
module enabled.
Configuring Preferences
You can configure the Action.NET 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.
64 4: Engineering Workspace
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 Select how often you want the system to automatically save
document 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 Select to display a confirmation window every time you build
commands the project.
Allow to duplicate Historian Tables—Select to permit the same tag name more
Tags on than once in the historian tables. You may want duplicate
tags with different rates or on different groups.
Device Points—Select to permit the same tag name more
than once for device points. You may want duplicate tags for
different PLCs or different polling rates or when you have a
tag which is feed by a master protocol and also is a source
for a slave protocol.
Help file location Local Installation Path—Select to use the help file that was
installed on your computer with the Action.NET software.
Uri—Select if you want to access the help from the web site,
or you copied the help file (.chm) to a web server and want to
access the help from the web server. Enter the URI to the file
on the web server.
Action.NET User Guide 65
66 4: Engineering Workspace
5: Tags, Assets and Templates
In Action.NET and throughout this guide, the term “tag” refers to any real-time
variable or its associated historical data. Tags usually map to devices, such as PLC
registers or other physical equipment in the production process. A tag can also be
connected to entries on SQL databases, external data sources, or an internally
calculated value.
The following sections describe how to configure tags:
“Creating and Editing Tags” on page 67
“Creating Tag Templates” on page 73
“Creating Assets” on page 74
“Creating Categories” on page 75
Tip
Like any other configuration table, you can also import CSV files or copy/paste contents
directly from an Excel spreadsheet or other applications. Verify the chapter about the
“Workspace Overview” on page 49 and Action.NET for information about the DataGrid
functionality.
See also: “Navigating in the Workspace” on page 52,
Action.NET User Guide 67
EditTagsObjects table
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 70 or for user defined
type, see “Creating Tag Templates” on page 73.
Parameters If available, configure the parameters. The parameters vary based
on the tag type.
Array When not defined (blank) the Tag is not an Array.
When defining an Array with value N an Array is created from
position 0 to N.
For example, when creating a Tag array of size "5", the Array is
created from Tag[0] to Tag[5], this means that 6 elements are
created.
Two programming styles are accommodated by this method; count
from 0 to less than five and the style that interacts on the Array
counting from 1 to 5.
Description Enter a description for this tag.
3. To add or remove a column, right-click the column heading area and check or
uncheck the columns that will be visible.
Column Description
EngUnits Enter the engineering units of measure that you want to use as a
label for this tag.
StartValue Enter a starting value for this tag. This is the value the tag will be
initialized with when Action.NET starts.
Format Enter a default format for displaying the data. For example:
N0—Number with no decimal places.
C—Currency.
See also: “Navigating in the Workspace” on page 52,
68 5: Tags, Assets and Templates
Column Description
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.
None—Does not retain the value or properties.
Min Enter the minimum value that is valid for the object.
Max Enter the maximum value that is valid for the object.
Visibility Select the value visibility on the OPC server for remote projects:
Private—Tag is visible only to the local project and redundant pair.
Tip
With Action.NET you can replace names at any time, so an easy way to create a tag is to click
with the mouse on the Name column of insertion row, then press space and enter repetitive
times, the system will create a Tag from the same type of last one created. You can use the
mouse on the insertion row to select the Type, can click with the mouse in the header or any
other of that grid, that will also create a tag with a default name.
See also: “Navigating in the Workspace” on page 52
Action.NET User Guide 69
Built-in Tag Types
Warning
The Decimal type was created in .NET to allow calculation with more precision than
the double, 24 four digits against 14, what is necessary when dealing with high
numbers and no rounding allowed, such as Money calculation and some very large
and precise engineering metrics, however the math operations on a Decimal can be
40 times slower then the Double. So, use the Decimal type only in the context that the
Double precision is not enough.
Timer
Built-In integer value that is generated automatically by the system to implement
various timer models:
SquareWave: the value toggles between 0 and 1.
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
See also: “Navigating in the Workspace” on page 52,
70 5: Tags, Assets and Templates
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) .
Reference Tags
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 Action.NET.
Examples
@Tag.Reference1.Link = @Tag.TagName.GetName() (VB)
@Tag.Reference1.Link = @Tag.TagName.GetName(); (C#)
@Tag.Reference1.Link = “Tag.TagName” (C#)
See also: “Navigating in the Workspace” on page 52
Action.NET User Guide 71
@Tag.Reference1.Link = “Tag.TagNa” + “me”; (C#)
Note
The reason to use the methods GetName() instead of using directly the strings “”, is
even it is an allowed syntax, when using the method GetName() you retain the
benefits of Cross-Reference and Refactoring, that would be possible if you string
assignments or expressions.
Tag Formats
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.
Table 1: Numeric format examples
Specifier Description
N0 Number with no decimal places
N3 Number with 3 decimal places
X Hexadecimal (supported only for integral types)
C Currency
Table 2: Date/time format examples
Specifier Description
T (only) Long time pattern (equivalent to HH:mm:ss).
d (only) Short date pattern (equivalent to M/d/yyyy (month/day/year) for en-us).
dd Show the day of the month as a number from 01 through 31.
ddd Show the abbreviated name of the day of the week.
dddd Show the full name of the day of the week.
MM Show the month as a number from 01 through 12.
MMM Show the abbreviated name of the month.
See also: “Navigating in the Workspace” on page 52,
72 5: Tags, Assets and Templates
Table 2: Date/time format examples
Specifier Description
yy Show the year as a two-digit number.
yyyy Show the year as a four-digit number.
hh Show the hour as a number from 01 through 12.
HH Show the hour as a number from 00 through 23.
mm Show the minute as a number from 00 through 59.
ss Show the seconds as a number from 00 through 59.
fff Show the milliseconds as a number from 000 through 999.
tt Show the A.M./P.M. designator.
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 70 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).
See also: “Navigating in the Workspace” on page 52
Action.NET User Guide 73
Column Description
Description Enter a description of the attribute.
[Other The Columns on Template Members have the same usage of the
columns] columns at EditTagsObjects.
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.
Creating Assets
If you have the Enterprise version of Action.NET, assets let you configure additional
metadata for your project. For example, you can organize objects in your project,
such as tags, devices, and alarms, into a hierarchy. This lets you group tags that are
related to each other. The hierarchy may reflect such things as, areas of your
manufacturing floor or the location of your machinery.
To create assets:
1. Go to Edit > Tags > Assets.
2. Right-click the project name and select New Level.
3. Enter a name for the level.
4. Right-click the new level and select Insert Asset.
The Select Object window displays, with all objects, by type, on the left
side.
5. Select the object type from the left side and the object you want from the right
side.
6. Click OK.
The object becomes a child of the selected level.
7. Continue adding child or sibling levels and inserting assets, as needed.
If needed, right-click a level to rename or delete, or right-click an asset to
delete it.
8. On the Objects tab, for new or existing tags, select the new level in the Level
column.
See also: “Navigating in the Workspace” on page 52,
74 5: Tags, Assets and Templates
Creating Categories
If you have the Enterprise version of Action.NET, 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.
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.
Tag Namespace
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 68, 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 73, are implemented by the base class UserType.
Class Type Description.
TagObj Base classes to all Tag objects.
Digital Runtime properties for tags of Type Digital.
Analog Runtime properties for all Analog Tag Types.
AnalogInt Runtime properties for tags of Type Integer.
AnalogLong Runtime properties for tags of Type Long.
AnalogDecimal Runtime properties for tags of Type Decimal.
AnalogDouble Runtime properties for tags of Type Double.
Text Runtime properties for tags of Type Text.
See also: “Navigating in the Workspace” on page 52
Action.NET User Guide 75
TDateTime Runtime properties for tags of Type DateTime.
Timer Runtime properties for tags of Type Timer.
TTimeSpan Runtime properties for tags of Type TimeSpan.
Reference Runtime properties for tags of Type Reference.
TDataTable Runtime properties for tags of Type DataTable.
UserType Runtime Properties for tags from Templates.
See also: “Navigating in the Workspace” on page 52,
76 5: Tags, Assets and Templates
6: Historian and Data Logging
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 77.
“Configuring Historian Tables” on page 78.
“Historian Tables Schema” on page 80.
“Visualizing Trend Charts” on page 81.
“Customizing Getting Samples” on page 81.
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, Action.NET
uses an embedded SQL database (SpinDB) that has a maximum capacity of 10 GB,
for information on how to select the historian database, see “Historian Database
Provider” on page 79.
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 80.
See also: “Workspace Overview” on page 49, “Navigating in the Workspace” on page 52
Action.NET User Guide 77
Column Description
Name Enter a tag name or click ... to select a tag.
DeadBand When using the Save on Change option in the historian table, the
DeadBand is how much the value must change (in EngUnits) for the
system to store the value in the historian.
Deviation When using the Time DeadBand option in the historian table, the
Deviation is how much the value must change (in EngUnits) for the
system to store the value in the historian. This value overrides the
Time Deadband logging interval.
RateOfChang When using the Time DeadBand option in the historian table, the
e 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
HistorianTabl Select the table that has the settings you want to use for when to
e save and how long to retain this tag’s value.
See also: “Navigating in the Workspace” on page 52
78 6: Historian and Data Logging
3. Enter or select information, as needed.
Option Description
Database Display-only name of the current tag historian database.
Table Name Enter a name for table in the database.
Auto Create Select to have the system automatically create the table in
the database.
Save on Change Select to store data in the table (add a row) every time a
tag associated with the table changes.
Trigger Use to store data in the table every time a tag or tag
property changes. When used with the Save on Change
option, the system stores data in the table when either the
tag value changes or the Trigger value changes.
Time Deadband (Log Enter the minimum logging interval, that is, how long the
TimeSpan) system must wait after storing the value of a tag before
storing a new value. Use with the Save on Change option
to avoid creating too many records in the database.
Life Time Number of days to retain the historian data. After that time,
the older rows are automatically deleted from the
database. To never delete data, leave this field blank or
enter 0 (zero).
Compress Number of the days before compressing the data. The
compressed data is still available to trend charts and
scripts, but access is slower. To never compress the data,
leave this field blank or enter 0 (zero).
Caution
The SpinDB 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
See also: “Workspace Overview” on page 49
Action.NET User Guide 79
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 113, and name it TagHistorian.
Tip
The system does not allow duplicated names, so to create a DB connection with name
TagHistorian you must rename or delete the existing row using that name.
See also: “Navigating in the Workspace” on page 52
80 6: Historian and Data Logging
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.
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
_TagName_Q: Optional column with the quality of the data
See also: “Workspace Overview” on page 49
Action.NET User Guide 81
See also: “Navigating in the Workspace” on page 52
82 6: Historian and Data Logging
7: Security and Users
By default, the system logs you in as the Guest user when you start Action.NET. The
Guest user does not need to enter a user name or password.
If you want to secure access to your projects, you can add users and configure
passwords and other settings for each user.
The following sections describe how to configure security:
“Adding and Editing Users” on page 83.
“Configuring Permissions” on page 84.
“Configuring Policies” on page 85.
“Removing Users” on page 86.
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 84.
Action.NET User Guide 83
To add and edit users:
1. Go to Edit > Security > Users.
2. Enter or select information, as needed.
Column Description
Name Enter a user name. The system lets you know if the name is not
valid.
Permissions Select the permission group to use for this user. See “Configuring
Permissions” on page 84.
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 85.
PasswordHin Enter information that can help you remember the user’s password.
t
Policy Select the policy settings to use for this user. See “Configuring
Policies” on page 85.
Blocked Select to block the user’s access. You may want to use this for users
who are no longer with your company.
Deleted Select to block the user’s 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 user’s email address, phone number, and full name.
Configuring Permissions
You can configure which functions users can access when editing the project and
when using the runtime. You set permissions using Groups.
Action.NET 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.
84 7: Security and Users
Column Description
Name Enter a name for the group. The system lets you know if the name is
not valid.
Edit Select the functions users in the group can access when editing a
project.
Run Select the functions users in the group can access when using the
runtime.
Description Enter a description for the group.
Note
To allow to disable the keyboard short-cuts to switch applications, the file
DisableTaskSwitchProtection.bat must be run from the installation directory, in-order
to install the keyboard driver necessary to implement this feature.
Configuring Policies
You can configure settings that you can apply to users.
Action.NET 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.
Action.NET User Guide 85
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.
Esign For runtime only. Select to enable a timeout for the runtime login.
Enter the timeout period in minutes.
Session For runtime only. Use to enable a timeout for the runtime session.
Select what will cause an automatic logoff, then enter the
appropriate values for InactivityMinutes and DurationHours. This
setting only logs the user off. The application continues to run.
Description Enter a description for the policy.
Removing Users
You have three ways to disable users in Action.NET:
Blocking—Use to block the user’s access. You may want to use this for users
who are no longer with your company.
Flagging as deleted—Use to block the user’s 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.
Deleting—Removes the user completely from the system.
You can use the method that is best for your company.
To remove users:
1. Go to Edit > Security > Users.
2. Click the user you want to remove.
3. Do one of the following:
To block a user, select the Blocked column.
To flag a user as deleted, select the Deleted column.
To completely delete a user, right-click the row and select Delete selected
row.
86 7: Security and Users
Managing Runtime-only Users
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.
The Runtime-users are defined in the database RuntimeUsers defined in Datasets.
By default, that database is mapped to a SpinDB 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.spinengenharia.com.br/help/an-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.
Action.NET User Guide 87
Security Runtime Objects
The namespace Security has all the runtime information regarding the security
system.
The Client object has information about the current user logged at that client station:
Client.Username property is the name of current logged user.
Client.CurrentUser is a reference to a data structure with all the information of the
currently logged-in user.
See http://www.spinengenharia.com.br/help/an-2014/runtime/index.html for the
complete programming reference on runtime objects.
88 7: Security and Users
8: Devices and Interfaces
Devices in Action.NET are any live real-time data source. Typically a device is a PLC,
another Action.NET, 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 89 presents the protocols and interfaces are
supported.
“Configuring Channels” on page 91 explain the Channel configuration, Channel is
the name used by Action.NET to define a logical network running a selected
protocol
“Configuring Nodes” on page 93; nodes are the stations connected to each
channel, that means the devices that are connected to each logical network.
“Configuring Data Points” on page 95 defines the read or write addresses on each
device node that will be accessed;
“Configuring Access Types” on page 96 allows to customize how the data points
will be accessed, such as read or write, execution cycles and triggers.
Communication Protocols
Connectivity is a key feature on Action.NET platform, therefore the system has built-in
support to many industry standard protocols, such as OPC and Modbus, as well
Action.NET 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.
Included Protocols
The following communication protocols are included on the standard product distribution:
Listed by alphabetical order:
Automation Direction, KOYO, using ECOM protocol
Action.NET User Guide 89
Mitsubishi Melsec Q
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 DA Client - OPC client access to local or remote servers
Rockwell/AB ControlLogix
Rockwell / AB MicroLogix
Rockwell/AB DF1 Ethernet
Siemens S7 Protocol
TRemoteClient - Action.NET to Action.NET communication
TwinCAT - Beckhoff ADS interface
Supported Protocols
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:
Altus AL-1000, AL2000 and Nexto PLCs
Fatek Facon PLC
GE Fanuc SNP and SNP-X
Mitsubishi Series A and FX
Omron CS/CJ/CP-series CPU Unit or NSJ Controller
Reliance CP3000
Smar CD600
SMTP - Simple Network Management Protocol
Additional Interfaces
There are few interfaces that are available and not included on the product distribution as
they have its own installation packages or they are sold as an optional module. That
includes the following protocols, in alphabetical order:
DNP 3.0 Protocol
IEC 61850
90 8: Devices and Interfaces
IEC-870-5-101
IEC-870-5-104
OSIsoft PI System and PI AF, using AFSDK connector
Driver toolkit
Spin 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, Action.NET 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.
Configuring Channels
Channels in Action.NET are the protocols you use to communicate with your PLCs. Many
built-in protocols are available. You must set up a channel for each protocol you need to
use.
To configure channels:
1. Go to Edit > Devices > Channels.
2. Click Create New.
The Create New Channel window displays.
3. Enter or select information, as needed.
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.
Action.NET User Guide 91
Column Description
Interface Select the interface type for this channel.
Serial—Use to configure the serial parameters for RS232/485
networks.
MultiSerial—Use for configurations with multiple RS-232 ports.
4. Click OK.
The channel is added as a new row in the table.
5. Enter or select information, as needed.
To add or remove a column, right-click the column heading area and select or
deselect columns.
Column Description
Name Enter a name for the channel. The system lets you know if the
name is not valid.
Protocol Shows the Selected protocol
ProtocolOptions Configure the options for this protocol.
Note
The Protocol options are dependent upon the
Selected Protocol. Select the protocol on the
ComboBox on the top of the page and press the
HELP button on its side to access the specific
protocol documentation.
92 8: Devices and Interfaces
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.
Timeout Configure the timeout options for this channel. Typically, keep the
default value.
IntialState Select the initial state for this channel.
Description Enter a description for this channel
[Other columns] For definitions of other columns that are available in many tables,
see “Common Column Definitions” on page 58.
Configuring Nodes
Nodes in Action.NET 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 from an OPC Server” on page 95 and “Importing PLC Addresses” on page 95.
To configure nodes:
1. Go to Edit > Devices > Nodes.
Action.NET User Guide 93
2. Enter or select information, as needed.
To add or remove a column, right-click the column heading area and select or
deselect columns.
Column Description
Name Enter a name for the 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.
PrimaryStation Enter the information required to access the primary node, based
on the protocol selected.
Note
The Protocol options are dependent upon the
Selected Protocol. Select the protocol on the
ComboBox on the top of the page and press the
HELP button on its side to access the specific
protocol documentation.
94 8: Devices and Interfaces
3. Continue adding as many nodes as you need.
Action.NET User Guide 95
To add or remove a column, right-click the column heading area and select or
deselect columns.
Column Description
TagName Enter a tag name or click ... to select a tag. You can also create a
new tag.
Node Select the node for this data point.
Address Enter the register address, based on the PLC and protocol for this
data point and tag.
Note
The Protocol options are dependent upon the
Selected Protocol. Select the protocol on the
ComboBox on the top of the page and press the
HELP button on its side to access the specific
protocol documentation.
DataType Select the data type you want to use. Most protocols should use
the Native option. When Native is used, the protocol will
automatically handle the data conversion.
Selecting a different data types overrides the defaults. Some
options may not be applicable to the selected node. Make sure
you know the applicable data types.
Modifiers If the PLC uses a different byte order, select the options you want.
You can change the position bit, byte, Word, or Dword of the data
that is communicated.
AccessType Select the access type for this point. You can configure access
types. See “Configuring Access Types” on page 96.
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:
Div—The system will divide the register value by what you
enter here.
Add—The 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 58.
96 8: Devices and Interfaces
Configuring Access Types
You can configure access types that control the read, write, and other settings when the
application accesses PLC data.
Action.NET comes with a few predefined access types that you can use, or you can
create your own.
To configure access types:
1. Go to Edit > Devices > AccessTypes.
2. Do one of the following:
To edit an existing access type, double-click a field.
To create a new access type, click Create New.
3. Enter or select information, as needed.
Column Description
Name Enter a name for this access type.
Read
ReadPolling Select when you want to enable read polling.
PollingRate Enter how often to retrieve the address value.
ReadTrigger Enter an object property to tell the system when to read the
value.
OnStartup When selected, the system reads the value on startup.
Write
WriteEnable Select to enable writing of values to the PLC.
WriteEvent Select when to write the value.
WriteTrigger Enter an object property to tell the system when to write the
value.
Settings
AcceptUnsolicited When selected, the system accepts values from the PLC, even
if the polling time has not yet elapsed.
UseStaticBlocks
Description Enter a description for the access type.
[Other columns] For definitions of other columns that are available in many
tables, see “Common Column Definitions” on page 58.
Action.NET User Guide 97
Diagnostics tools
After starting the project, the Startup window, we can select some diagnostic tools, they
are: PropertyWatch (Watch), TraceWindow (Trace), and ModuleInformation (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.
Module Information
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.
98 8: Devices and Interfaces
This is the typical steps when using the Module Information:
1. Go to Read Groups Information, to look at the number Success and Failed
communication, in order to quickly identify the communication blocks.
2. If you have systematic error in all blocks, or status codes with negative values,
typically it means you cannot access the remote device. Verify if the node address
is right.
3. If you have one or another block with systematic error, verify the tags and
addresses connected with that block. Use the TraceWindow with Device
information to collect information about those communication errors.
4. For some protocols, such as OPC, the Discarded items will show the wrong
addresses in the configuration.
When running Enterprise application in TEST mode, keep in mind that in this mode, we
only READ from the field devices, even you have a configuration to write to field.
It is very useful to run the application with ONLINE CONFIGURATION enabled, so you
don’t need to start and stop the driver when modifying the configuration. You can modify
PLC addresses, AccessTypes and most of the application and see in real-time the results
on your running application. You can use the Startup-Window or the PropertyWatch to
start and stop only one module, like the Devices, instead of restarting all the runtime
system.
Property Watch
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.
Action.NET User Guide 99
Ex: Tag.Coils, Device.Channel.Modbus.Status . On the right side we have additional
properties of the selected object.
Trace Window
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
When checking the Devices CheckBox on the Settings, enable only the ERROR, INFO and
Warning information, not the Debug information, otherwise you will create too much data. For
ControlLogix devices it is very important to use this tool, as the system will present here the
invalid addresses on the configuration.
100 8: Devices and Interfaces
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.
Action.NET User Guide 101
102 8: Devices and Interfaces
9: Alarms, Events and AuditTrail
Action.NET User Guide 103
The AuditTrail window displays.
104 9: Alarms, Events and AuditTrail
Configuring Alarm Groups
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.
Action.NET comes with a few predefined alarm groups that you can use, or you can
create your own.
Define the Group name in EditAlarmGroups where the Alarm item behavior is
specified.
The pre-defined Groups are:
· Critical (Critical Messages that require acknowledgment)
· SystemEvent (System Events log)
· Warning (Warning messages that do not require acknowledgment)
To configure alarm groups:
1. Go to Edit > Alarms > Groups.
2. Enter or select information, as needed.
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
Action.NET User Guide 105
Column Description
LogEvents Select when you want the alarm to be logged to the alarm historian:
None—Alarms are not logged.
Colors Select the colors you want to use for each state:
Active—Configured alarm is in the alarm state.
106 9: Alarms, Events and AuditTrail
Column Description
TagName Enter a tag name or click “...” to select a tag.
Condition Select the condition you want to use for this alarm event.
For DeviationMinor or DeviationMajor, specify a limit, then use the
Setpoint column to set a value or a tag to compare for the deviation.
Limit Enter a value for the alarm limit that corresponds to the condition you
selected.
Group Select an alarm group that controls what happens when an alarm
occurs. See “Configuring Alarm Groups” on page 105.
Priority Enter a priority value that controls where the alarm displays in the
list. The higher the number the higher the priority. You can use the
same priority for more than one alarm event. Enter 0 (zero) for
alarms to be at the end of the list.
Message Enter the text that displays in the alarm list.
[Other For definitions of other columns that are available in many tables,
columns] see “Common Column Definitions” on page 58.
Action.NET User Guide 107
EditAlarmsItems.Condition
Evaluation condition to generate alarms. You can choose from
the following events. See in each case the evaluation condition
which is used for the generation of alarm events.:
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.
108 9: Alarms, Events and AuditTrail
(signaling state of equipment).
Action.NET User Guide 109
Visualizing Alarms and Events
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 156, for more
information.
Alarm Acknowledgment
There are several methods for acknowledging alarms:
Using Alarm visualization object in the displays.
Tag properties.
Alarm group or Alarm item runtime properties.
Acknowledge All Alarms
You can use the <Alarm.AckAll> property that acknowledges all active Alarms.
To verify the contents of the IDxx Alarm columns, go to Alarm item and add the
ID column (right-click in the table and select "ID").
Subscribing Notifications
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)
With each new transition event alarm generated this method will be called.
110 9: Alarms, Events and AuditTrail
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.spinengenharia.com.br/help/an-2014/runtime/
index.html.
Caution
The SpinDB 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 113, and name it AlarmHistorian.
Tip
The system does not allow duplicated names, so to create a DB connection with name
AlarmHistorian you must rename or delete the existing row using that name.
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 SpinDB as the alarm logging database.
Action.NET User Guide 111
See http://www.spinengenharia.com.br/help/an-2014/runtime/index.html for the
complete programming reference on runtime objects.
112 9: Alarms, Events and AuditTrail
10: Datasets and Data Exchange
Action.NET User Guide 113
Column Description
Name Enter a name for the database configuration. The system lets you
know if the name is not valid.
Description Enter a description for the database.
Provider Select the database provider.
Database If options display here, select the database type.
4. Click OK.
The database is added as a new row in the table.
5. Enter or select information, as needed.
Column Description
Name Enter a name for the database configuration. The system lets you
know if the name is not valid.
Provider Select the database provider.
Database If options display here, select the database type.
ConnectionString Enter the information needed to connect to the database.
LogonName Enter a valid login name for the database.
LogonPassword Enter the password that corresponds to the database login.
Description Enter a description for the database.
[Other columns] For definitions of other columns that are available in many tables,
see “Common Column Definitions” on page 58.
6. If you are using the new external database for the alarm or tag historian,
rename the existing TagHistorian or AlarmHistorian database to something
else, then rename the new database configuration to TagHistorian or
AlarmHistorian.
For the tag or alarm historian databases, the database configuration on
this tab must be named TagHistorian or AlarmHistorian. You cannot have
two databases with the same name.
7. Continue adding as many database configurations as you need.
The databases you create are available for use on the Tags > Historian
tab, in displays, and in scripts.
If needed, right-click a row to cut, copy, paste, or delete the row.
See the following sections related to the other Dataset tabs:
“Configuring Database Tables Access” on page 119
“Configuring Database Queries” on page 120
“Configuring Files for Data Exchange” on page 120
114 10: Datasets and Data Exchange
Accessing Microsoft Excel
Action.NET User Guide 115
Name the selection (e.g., "itemsTable"). The Excel file is now ready for use.
There are several methods for communicating using ODBC:
Using ODBC Microsoft Excel Driver:
1. In the Datasets namespace, choose "DBs" tab and create a new Provider by
clicking Create new.
2. Select "Odbc Data Provider" in the "Provider" data field.
3. "Database" field choose "Microsoft Excel Database".
4. Click Ok.
5. A new row is created in the data grid, click the "ConnectionString" column.
6. In the pop-up window enter the path and the filename in the "Dbq" field.
7. Click the "Test" button to ensure that the connection is OK.
Note: "Test" is optional.
116 10: Datasets and Data Exchange
1.Go to your computer's "Control Panel", select "Administrative Tools".
2.Double-click on "Data Sources (ODBC)".
3. In the "ODBC Data Source Administrator" window click Add. You are prompted to
select a driver.
4. Select the "Microsoft Excel Driver (*.xls)".
5. Click Select Workbook, then select the name of the Excel file created previously.
6. Name the Data Source, (e.g., "excelDatasource").
7. For Write access uncheck the "ReadOnly" checkbox.
Action.NET User Guide 117
8. In the Datasets namespace, choose "DBs" tab and create a new Provider by
clicking Create new.
9. Under "Odbc Data Provider" options, choose "ODBC using DSN" then click Ok.
10. Click the ConnectionString column of the new row, then enter the DSN in the
"DSN" field.
OLEDB
1.In the Datasets namespace, choose the "DBs" tab.
2 Select the "OleDb data provider" option of the combo-box and create a new
Provider by clicking Create new.
3.Choose "Microsoft Excel Database" then click Ok.
4.Click the ConnectionString column of the new row, then enter the path and the
name of the Excel (.xls) file in the "DataSource" field.
118 10: Datasets and Data Exchange
Configuring Database Tables Access
If you are using an external database as a data source in your application, you can
specify which table to use from the database.
To configure database tables:
1. Go to Edit > Datasets > Tables.
2. Enter or select information, as needed.
Column Description
Name Enter a name for the table configuration. The system lets you
know if the name is not valid.
DB Select the database configuration.
TableName Select the table name.
WhereCondition Specify parameters to filter the data using SQL syntax.
Access Select the access permissions for the table.
Mapping Click ... to select the tags that you want to populate with data from
the first row of the table with data from specific columns.
Description Enter a description for the table configuration.
[Other columns] For definitions of other columns that are available in many tables,
see “Common Column Definitions” on page 58.
Action.NET User Guide 119
Configuring Database Queries
You can configure queries to perform more advanced functions with SQL statements
to work with data from external databases.
To configure database queries:
1. Go to Edit > Datasets > Queries.
2. Enter or select information, as needed.
Column Description
Name Enter a name for the query. The system lets you know if the name
is not valid.
DB Select the database configuration.
SqlStatement Enter the query using SQL syntax.
Mapping Click ... to select the tags that you want to populate with data from
the query with data from specific columns.
Description Enter a description for the table configuration.
[Other columns] For definitions of other columns that are available in many tables,
see “Common Column Definitions” on page 58.
120 10: Datasets and Data Exchange
Column Description
Name Enter a name for the file configuration. The system lets you know
if the name is not valid.
FileName Enter the full path to the file.
FileType Select the type of file.
Objects Click ... to select the tags that you want to populate with data from
the file with data from specific columns.
Description Enter a description for the file configuration.
[Other columns] For definitions of other columns that are available in many tables,
see “Common Column Definitions” on page 58.
Action.NET User Guide 121
122 10: Datasets and Data Exchange
11: Scripts and .NET Framework
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 163.
For more information about the runtime objects included in Action.NET, see the
RuntimeObjects.pdf.
Two .Net libraries are available for use with Action.NET:
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
Action.NET. For more information about this library, see the Toolkits.pdf.
Configuring Tasks
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.
Action.NET comes with the following built-in tasks:
ServerStartup—Executed when the project starts running. Runs on the server
(computer running TServer.exe).
ServerShutdown—Executed when the project shuts down. Runs on the server.
ClientStartup—Executed on each client when the TVisualizer.exe (Displays
module) starts running.
ClientShutdown—Executed on each client when the Display module closes.
To configure tasks:
Action.NET User Guide 123
1. Go to Edit > Scripts > Tasks.
2. Enter or select information, as needed.
Column Description
Name Enter a name for the task. The system lets you know if the name is
not valid.
Code Read-only. This defaults to the language selected when you created
the project. From the Code Editor tab, you can change the code
language. To change the project default, go to Info > Settings.
Trigger Enter or select the event (tag or object) that triggers the task
execution. The task executes when the value of the object changes.
Period Enter how often the task should execute.
Domain Select where the script executes:
Client—Task executes on each client system. These are tasks that
apply locally (on the user’s computer), for example, report
generation.
Server—Task executes on the server system. These are tasks that
apply across the application, that is, globally.
InitialState Select the tasks’s initial state:
Enable—Task is ready to run.
Disabled—Task is not ready to run. Lets you enable the task under
specific conditions.
BuildStatus Read-only. Status of the task code from the continuous compiling
process.
Green check mark—Task runs without errors.
124 11: Scripts and .NET Framework
Configuring Classes
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).
Action.NET comes with the following built-in classes:
ServerMain—Methods library available for all server tasks.
ClientMain—Methods library available for all clients.
To configure classes:
1. Go to Edit > Scripts > Classes.
2. Enter or select information, as needed.
Column Description
Name Enter a name for the class. The system lets you know if the name is
not valid.
Code Read-only. This defaults to the language selected when you created
the project. From the Code Editor tab, you can change the code
language. To change the project default, go to Info > Settings.
Domain Select where the class executes:
Client—Class executes on each client system. These are Classes
that apply locally (on the user’s computer), for example, report
generation.
Server—Class executes on the server system. These are classes
that apply across the application, that is, globally.
BuildStatus Read-only. Status of the class code from constant compiling process.
Green check mark—Class runs without errors.
Action.NET User Guide 125
Working with the Code Editor
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.
Action.NET 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:
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 123 or
“Configuring Classes” on page 124.
3. If needed, from the code editor toolbar, select a different code language.
4. Click Save.
Configuring Expressions
Besides the Edit > Script > Expressions table, in several places in Action.NET, 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.
126 11: Scripts and .NET Framework
Action.NET 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.
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 Action.NET 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 124.
To configure expressions:
1. Go to Edit > Scripts > Expressions.
2. Enter or select information, as needed.
Column Description
Object Select an existing tag or object.
Expression Enter the expression. The expression can be basic mathematical
expression, use a class, or a conditional expression.
Action.NET User Guide 127
Column Description
Domain Select where the expression executes:
Client—Expression executes on each client system. These are
expressions that apply locally (on the user’s computer), for
example, report generation.
Server—Expression executes on the server system. These are
expressions that apply across the application, that is, globally.
Execution Select when the expression executes:
OnChange—The expression executes when the value of any
tag in the expression changes.
TriggerOrPeriod—The expression executes when the trigger
event occurs or when the interval set in the Period elapses.
ChangeOrStartup—The expression executes when the value of
any tag in the expression changes or at startup.
Trigger Enter or select the tag or object that triggers the expression
execution. The expression executes when the value of the object
changes.
DisableConditio Enter or select the tag or object that disables the expression
n execution.
BuildStatus Read-only. Set after you click Verify.
Green check mark—Expression runs without errors.
BuildErrors Read-only. Displays any errors encountered during the last build.
128 11: Scripts and .NET Framework
Attaching the .NET debugger
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.
Action.NET User Guide 129
130 11: Scripts and .NET Framework
12: Displays and Symbols
The following sections describe how to design the application user interface:
“To select displays:” on page 131
“Selecting and Creating Displays” on page 131
“Designer Drawing Tools” on page 139
“Dynamics and Animations” on page 144
“Chapter 12, User Interface Controls” on page 153
“Managing Images and Symbols” on page 159
“Display Runtime Objects” on page 160
Column Description
Name Read-only. Configured in Draw.
Mode Read-only. Configured in Draw.
Preview Read-only. Shows a thumbnail of the display.
AllowSelectio Select to allow users to select the display from the PageSelector.
n
EditSecurity Select which types of users have access to edit this display.
RunSecurity Select which types of users have access to this display at runtime.
Description Enter a description for this display.
Action.NET User Guide 131
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.
Column Description
Display Name Enter a name for the display.
132 12: Displays and Symbols
Column Description
Description Enter a description for the display.
iPad/iPhone Note: If you plan to use this display for iPad and iPhone users, be
iOS Target 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.
Column Description
Mode Select the type of display you want to create:
Page—Default. Opening a page automatically closes the last
page on the current layout and displays in the area last in the list
on Displays > Layouts page. Only pages display in the layout.
Popup—A popup opens on the top of all other displays. When
you open a new page, by default, all popup displays are closed.
Controls on other displays are available.
Dialog—A dialog opens as a modal dialog, which disables the
controls on all other open displays until you close the dialog.
Clicking OK executes the OnOK method on the display
CodeBehind.
Background Select the background color for the display.
Width Enter the width of the display, in WPF units (device-independent
pixels). Be sure to take into account the size of the layout.
Height Enter the width of the display, in WPF units (device-independent
pixels). Be sure to take into account the size of the layout.
Border Select the type of border.
CloseButton Select to display Close button. Available only for Popups and
Dialogs.
Action.NET User Guide 133
Column Description
Animation Select the type of animation to use when displaying this display.
Show on Select to include this display in the page selector that lets users go
PageSelector directly to a different display in the application.
Object
iPad/iPhone Read-only. Shows whether you selected the iPad/iPhone iOS
iOS target Target option when you created the display.
Placement Select where on the layout you want to place the display. Available
only for Popups and Dialogs.
Target Select whether the display appears relative to the mouse position
or relative to whole window. Available only for Popups and
Dialogs.
DialogButtons Select the buttons you want on the dialog. Available only for
Dialogs.
Title Enter a title that appears at the top the display.
Title Select a color for the title background.
Background
Stays Open on Leave the popup window open when the user clicks something
Page Change that opens a different display. Available only for Popups.
Stays Open Leave the popup window open when the user clicks a different
After Losing display. Available only for Popups.
Focus
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.
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.
134 12: Displays and Symbols
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 139.
3. Click Save Display.
4. Continue with “Creating Layouts” on page 135.
Creating Layouts
A layout defines the size of the application window and the basic arrangement of
display components in the runtime application. Be sure to plan how you want to use
displays. For example, consider whether you want a menu bar, toolbar, or other
elements to always display at the top of application window.
You may need only one layout to handle the information in the application.
Note
The last display listed in the Layout tab is the one that is replaced when you change
the display. For example, new projects include a default layout called Startup. The
MainPage display that is listed last is the default area that changes when you tell the
application to open a display.
To create a layout:
1. Go to Edit > Displays > Layouts.
2. Click New.
3. Enter or select information, as needed.
Column Description
Layout name Enter a name for the layout.
Layout Select the layout type:
DockPanel—Select to position displays relative to the layout and
other displays.
Canvas—Select to position displays in an absolute position by
entering the position in WPF units (device-independent pixels).
Description Enter a description of this layout.
4. Click OK.
5. At the top right of the Layouts tab, enter or select information, as needed.
Action.NET User Guide 135
Column Description
Width Enter a name for the layout.
Height Enter the height, in WPF units (device-independent pixels), of the
layout. This is the height of the runtime application.
Background Enter the width, in WPF units (device-independent pixels), of the
layout. This is the width of the runtime application
Column Description
Page Select a display you want to include in the layout. Only page
displays are available for use in a layout.
Docking Select the docking location for this display:
Left
Top
Right
Bottom
Center
Right
Center
Bottom
136 12: Displays and Symbols
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:
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.
Returning 1 allows the dialog to close.
Returning 0 prevents the dialog from closing.
You can add your own .NET variables and methods to this page.
Note
Because the client displays are designed to run on distributed and web environments,
we recommend avoiding the use of functions that do not allow partial trust execution
or that refer to physical file paths.
Action.NET User Guide 137
Column Description
Maximize When Select to maximize the client window to fit the monitor.
Open
Stretch Select how the layout stretches when clients use the application:
None—Layout does not resize; it displays the exact size you
configured for the layout. We recommend selecting the
Scrollbar option.
Fill—Layout resizes to completely fill the available space on the
client’s monitor., without regard to the layout’s aspect ratio.
Uniform—Layout resizes proportionally to the client’s monitor
size, maintaining the layout’s aspect ratio.
UniformToFill—Layout resizes to both maintain the aspect ratio
and to completely fill the available space on the client’s
monitor. This can result in cutting off some parts of the layout.
Scrollbar Select to have a scrollbar display in the client window.
Title Enter a title for the client window.
MinimizeBox Select to display the standard minimize button.
MaximizeBox Select to display the standard maximize button.
CloseBox Select to display the standard close button.
ResizeBox Select to display the standard resize handle.
Menus Select which menus display:
File
Tools
Security
138 12: Displays and Symbols
4. If needed, configure the Desktop Settings for iOS client by clicking iOS
devices.
5. Enter or select information, as needed, and click OK.
Column Description
Disable Commands Select to prohibit application users from sending commands to
the PLC.
iPad Initial Page Select the display that iPad users see when they start the
application.
iPhone Initial Page Select the display that iPhone users see when they start the
application.
Stretch Fill Select to resize the application to fill the device screen.
Action.NET User Guide 139
To configure dynamic graphic displays, from the Main Menu, click on the “Draw” icon.
140 12: Displays and Symbols
Table 1: Vertical toolbar buttons
Button Description
Click an object to select it.
Selection Tool
CTRL+click to select multiple objects (and object groups), one at
a time. Hold down the CTRL key as you click each object.
Shift+click to toggle selected object from among more than one
selected objects.
Click in an open area of the display then select a group of
elements by highlighting the elements while holding down the
left mouse button.
Double-click an object to open the Dynamics Configuration
window, which provides settings for dynamic object properties.
Use this tool to select an object inside a group (and modify its
Direct Selection Tool properties). Click the object to select it.
You can also add, remove, and modify the points in a Polyline
with the Direct Selection Tool:
To move the point select it by clicking the point and holding
the left mouse button down. Drag the point to its new
position.
Double-click a point to add a new point adjacent to the
selected point.
Right-click a point to delete the selected point.
Use the Hand Tool to modify the view window by clicking the
Hand Tool display background and holding down the left mouse button then
shift the display to the desired position.
Geometric objects tools 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.
Rectangle
Creates an ellipse object.
Ellipse
Creates a polygon object.
Polygon
Creates a polyline object.
Polyline
Creates a button object.
Button
Creates a text output object.
Text Output
Creates a text input/output (I/O) object.
Text Box
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.
Action.NET User Guide 141
Table 1: Vertical toolbar buttons (Continued)
Button Description
Creates a check box object. Right-click this button to access the
CheckBox following tools:
142 12: Displays and Symbols
Table 1: Vertical toolbar buttons (Continued)
Button Description
Creates an alarm window. Position the alarm window and double-
Alarm Window click to configure the alarm window settings. For more information,
see “Configuring an Alarm Window” on page 155.
Creates a trend window. Position the trend window and double-
Trend Window click to configure the trend window settings. For more information,
see “Configuring the Trend Window” on page 156.
Creates a data grid window. Position the data grid window and
DataGrid Window double-click to configure the data grid window settings. For more
information, see “Configuring a DataGrid Window” on page 157.
Table 2: Horizontal toolbar buttons
Button Description
Grid definition
Screen Zoom
Group
Ungroup
Union
Intersect
Exclude
Exclusive-Or
AlignLeft
AlignHorizontalCenter
AlignRight
AlignTop
AlignVerticalCenter
AlignBottom
Action.NET User Guide 143
Table 2: Horizontal toolbar buttons (Continued)
Button Description
Move To The Back
Resize Width
Resize Height
SpaceEvenlyHorizontal
SpaceEvenlyVertical
FlipHorizontally
144 12: Displays and Symbols
Table 3: Dynamics animations
Setting Description
Action Executes actions and commands triggered by the user interface.
Shine Changes the object appearance dynamically.
TextIO Text input and text output Dynamic.
HyperLink Opens a hyperlink.
Security Sets the object runtime permissions to execute actions.
FillColor Changes the object fill color dynamically.
LineColor Changes the object line color dynamically.
TextColor Changes the object text color dynamically.
Bargraph Bargraph dynamic.
Visibility Changes the object visibility and opacity dynamically.
MoveDrag Moves the object dynamically.
Scale Changes the object size dynamically.
Rotate Rotates the object dynamically.
Skew Skews the object dynamically.
TextOutput Text output dynamic.
Action Dynamic
Table 4: Action Dynamic configuration
Setting Description
Action Executes action triggered by the user interface:.
Action.NET User Guide 145
Table 4: Action Dynamic configuration (Continued)
Setting Description
Event Choose one of the Mouse events. More than one event can be
selected for each action. For example: One action for
MouseLeftButtonDown and another action for MouseLeftButtonUp.
Action Select an action for the given event:
None—No action.
OpenDisplay—Opens a display.
CloseDisplay—Closes a display.
OpenLayout—Opens a layout.
Expression—Tag.quantity1 + Tag.quantity2.
Result—Tag.totalQuantity.
Increment a tag.
Expression—tagCounter + 1.
Result—tagCounter.
Increment a tag (0 - 10).
Expression—If(tagCounter < 10,tagCounter + 1,0).
Result:—tagCounter.
For more information, see “Configuring Expressions” on page 126.
146 12: Displays and Symbols
Shine Dynamic
Table 5: Shine Dynamic configuration
Setting Description
Shine Changes the object appearance dynamically.
IsMouseOver Enter a tag that will receive the OverValue or the NotOverValue.
OverValue The IsMouseOver value when the mouse is over the object.
NotOverValue The IsMouseOver value when the mouse is not over the object.
Mouse Over The object appearance when the mouse is over it.
Appearance Opacity—The object opacity (0 = transparent, 1 = opaque).
Scale—The object size (0.5 = half, 1 = the same size, 1.5 = one
and a half, 2 = double size).
OuterGlow—Defines the OuterGlow color, the check box enables
or disables it.
TextColor—Defines the text color, the check box enables or
disables it.
Mouse Not Over The object appearance when the mouse is Not over it:
Appearance Opacity—The object opacity (0 = transparent, 1 = opaque).
Scale—The object size (0.5 = half, 1 = the same size, 1.5 = one
and a half, 2 = double size).
Is Selected The object appearance when it is selected:
Appearance IsSelected—Defines whether the object is selected.
Scale—The object size (0.5 = half, 1 = the same size, 1.5 = one
and a half, 2 = double size).
Scale Reference
Center
Left
Up
Right
Down
Action.NET User Guide 147
Text I/O dynamic
Table 6: Text I/O Dynamic configuration
Setting Description
TextIO Text input and text output Dynamic. If text is a tag value or a
property, it must be between curly brackets. For example:
{Tag.analogInt1}
Binding Mode Associate an object with a tag:
TwoWay—Input and output allowed.
Object or Expression Object (input) or Expression (output only) connected with the Text
Box.
DesignModeCaption The value shown in design mode:
ShowObjectNames—The content of the text field is shown
exactly as it is.
ShowPlaceHolders—The characters ### are shown, the number
of characters is defined by the MaxLength field.
Input Range Defines the numeric range for the entered value.
MaxLength Defines the maximum number of characters.
Hyperlink dynamic
Table 7: Hyperlink Dynamic configuration
Setting Description
HyperLink Opens a hyperlink.
HyperLinkType Select the hyperlink type:
http
ftp
file
mailto
telnet
148 12: Displays and Symbols
Table 8: Security Dynamic configuration
Setting Description
Security Set the object runtime permissions:.
Disable Enter a tag, a property, or an expression returning a value.
Considering the resulted value:
Zero—Object will be enabled.
Setting Description
FillColor Changes the object fill color dynamically.
Expression the value used for the FillColor dynamic.
Change Color UsingLimits—The resulting color is determined when the value is
equal or higher than one of the limits.
AbsoluteValue—The color will be the expression value. The
value must be a valid color name or hexadecimal color. For
example: "White" or "#FFFFFFFF"
Example
Limits:
1 - Red
10 - Blue
When the value is 0, the object will have its own color (fill color
dynamic will not do anything)
When the value is 1 to 9, the object will have the red color.
When the value is greater than 10, the object will have the blue
color.
LineColor Changes the object line color dynamically:.
Expression the value used for the LineColor dynamic.
Action.NET User Guide 149
Table 9: Fill, Line and Text Color Dynamic configuration (Continued)
Setting Description
Change Color UsingLimits—The resulting color is determined when the value is
equal or higher than one of the limits.
AbsoluteValue—The 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.
TextColor Changes the object text color dynamically:.
Expression the value used for the TextColor dynamic.
Change Color UsingLimits—The resulting color is determined when the value is
equal or higher than one of the limits.
AbsoluteValue—The 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.
Bargraph Dynamic
Table 10: Bargraph Dynamic configuration
Setting Description
Bargraph Bargraph dynamic.
Expression the value used for the bargraph dynamic.
Value Range The minimum and maximum values that will correspond to the
minimum and maximum fill percentage.
Fill (%) The minimum and maximum bargraph fill percentage.
150 12: Displays and Symbols
Table 10: Bargraph Dynamic configuration (Continued)
Setting Description
Bar Color The bar graph color.
Orientation The bar graph orientation:
to up
horizontal center
to down
to right
vertical center
to left
Visibility Dynamic
Table 11: Visibility Dynamic configuration
Setting Description
Visibility Changes the object visibility and opacity dynamically.
Visible Enter a tag, a property, or an expression returning a value.
Considering the resulting value:
Zero - Object will be visible.
MoveDrag Dynamic
Table 12: MoveDrag Dynamic configuration
Setting Description
MoveDrag Moves the object dynamically.
BindingMode TwoWay—Input moving and output moving.
InputOnly—Input moving only. The object does not move when
the object value changes.
OutputOnly—Output moving only. The object does not move with
user interaction.
Action.NET User Guide 151
Table 12: MoveDrag Dynamic configuration (Continued)
Setting Description
Horizontal Move Expression with the horizontal move reference.
Range—The minimum and maximum values that will correspond
to the minimum and maximum horizontal position.
Position—The minimum and maximum horizontal position.
Vertical Move Expression with the vertical move range.
Range—The minimum and maximum values that will correspond
to the minimum and maximum vertical position.
Position—The minimum and maximum vertical position.
Scale Dynamic
Table 13: Scale Dynamic configuration
Setting Description
Scale Changes the object size dynamically.
Width Scale Expression—the value used for the width scaling.
Range—The minimum and maximum values that will correspond
to the minimum and maximum width scale percentage.
Scale (%)—The minimum and maximum width scaling
percentage.
Height Scale Expression—the value used for the height scaling.
Range—The minimum and maximum values that will correspond
to the minimum and maximum height scale percentage.
Scale (%)—The minimum and maximum height scaling
percentage.
Scale Reference:
Center
Left
Up
Right
Down
Rotate Dynamic
Table 14: Rotate Dynamic configuration
Setting Description
Rotate Rotates the object dynamically.
Expression the value used for the rotation.
152 12: Displays and Symbols
Table 14: Rotate Dynamic configuration (Continued)
Setting Description
Value Range The minimum and maximum values that will correspond to the
minimum and maximum angle. For example: 0 to 100
Angle ºThe minimum and maximum rotation angle. For example: 0 to 360
Center Reference
Center
Left
Up
Right
Down
Skew Dynamic
Table 15: Skew Dynamic configuration
Setting Description
Skew Skews the object dynamically.
X-axis Skew ObjectValue— the value used for the X-axis skewing.
Range—The minimum and maximum values that will correspond
to the minimum and maximum X-axis skewing angle. For
example: 0 to 100.
Skew (º)— The minimum and maximum X-axis skewing angle.
For example: 0 to 180º.
Y axis skew ObjectValue— the value used for the Y-axis skewing.
Range—The minimum and maximum values that will correspond
to the minimum and maximum Y-axis skewing angle. For
example: 0 to 100.
Skew (º)— The minimum and maximum Y-axis skewing angle.
For example: 0 to 180º.
Skew Reference
Center
Left
Up
Right
Down
Action.NET User Guide 153
TextOutput Dynamic
Table 16: TextOuput Dynamic configuration
Setting Description
TextOutput Text output dynamic.
Expression Indicates the text that will be shown in the object.
Localizable Indicates whether the text must be translated when the dictionary
changes.
DesignModeCaption The value shown in design mode:
ShowObjectNames—The content of the text field is shown
exactly as it is.
ShowPlaceHolders—The characters ### are shown, the number
of characters is defined by the MaxLength field.
MaxLength Defines the maximum number of characters.
Table 17: Circular Panel configuration
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 136.
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.
154 12: Displays and Symbols
Table 17: Circular Panel configuration (Continued)
Field Description
Image Select a resource image to display.
Preview Read-only display of selected image.
Configuring a PieChart
Double-click any PieChart object in the display to configure it. Table 18 describes the
Pie Chart configuration.
Table 18: Pie Chart configuration
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 136.
ChartType Select the type of chart.
Data Items For each value that you want to include, select a section and configure the
settings to the right of the list (described below). The chart displays a
section for each data item.
FieldName Enter a name for the data item.
LinkedValue Enter a tag name as the data source for the data item.
Brush Click to select the color for the data item.
Configuring a BarChart
Double-click any BarChart object in the display to configure it. Table 19 describes the
Bar Chart configuration.
Table 19: Bar Chart configuration
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 136.
Type Select the type of chart.
Data Source Enter the dataset table or query to use for the chart.
Grid Lines Click to select the color for the grid lines.
Window Click to select the color for the window background.
Labels Click to select the color for the labels.
Show Select to angle the labels below each bar at 45°.
Horizontal
Labels 45°
Show value Select to display the bar value above the bar.
over bar
Action.NET User Guide 155
Table 19: Bar Chart configuration (Continued)
Field Description
Data Items For each column in the data source that you want to include, select a bar
and configure the settings to the right of the list (described below). The
chart displays a bar for each row.
FieldValue Name of the column in the database.
Min. Enter a tag to define the minimum value.
Max. Enter a tag to define the maximum value.
Brush Click to select the color for the data item.
Table 20: Alarm window configuration
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 136.
MaxLines Maximum number of lines to display in the window.
List Select the type of alarms to display in the window:
OnlineAlarms—Displays only active alarms. Alarms only display while
the alarm is in the alarm state.
AlarmHistory—Displays only past alarms.
Merge Hi and Combines alarms configured as Hi and HiHi into a single row.
HiHi Lines
History Interval/ Enter the start and end dates for the alarms.
To
Show Column Select to display the column titles.
Titles
Ack by Page Enter a tag name, which when triggered, acknowledges the alarms in the
alarm window.
Show Group Enter text to display above the column titles.
Control, Label
AllowSort Select to let users sort the data by column.
Allow Column Select to let users change the order of the columns.
Reorder
Filter Enter SQL statement to limit the alarms displayed.
Refresh Enter a tag name that will trigger a refresh of the alarm data.
156 12: Displays and Symbols
Table 20: Alarm window configuration (Continued)
Field Description
Display Select to include milliseconds in the alarm time.
Millisecond
Ack Selected Configure settings for acknowledging an alarm.
Line
Columns For each column in the list, select the column and configure the settings to
the right of the list (described below).
Visible Select for column to display in the alarm window.
Allow Filter Select to let users filter the column.
Show in Select to include the column in the column chooser, which lets users select
Column the columns to display.
Chooser
Title Enter the text for the column title.
Width Enter the initial column width, in WPF units (device-independent pixels).
Sort Select how to initially sort the column.
Table 21: Trend window settings
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 136.
0(online) 1(history) 0 - the control shows the online data.
1 - the control shows the history data. For example:
Tag.onLineHist.
OnlineTrigger The refresh rate of the online trend control. For example, 00:00:01
or {Tag.trendTimeSpan}.
HistoryDateTime The initial point for the history trend control. For example,
{Tag.initialTrendHistory}.
Max Samples Set the maximum number of samples that will be collected from
the database.
Window Set the trend control background color.
Labels Set the color of the trend control labels.
Cursor Enable Enables (selected) or disables (deselected) the vertical cursor.
CursorPosition (%) Indicates the cursor position, where 0 means initial position and
100 means end position. For example: Tag.cursorPos.
Action.NET User Guide 157
Table 21: Trend window settings (Continued)
Field Description
Cursor Output Indicates the X axis value for the current cursor position. For
example, Tag.cursorOut.
Cursor Color Defines the cursor color.
Pens Legend Defines the position of the pens legend in the trend control.
Y Axis
Range Defines the minimum and maximum values for the Y-axis.
Labels Defines the quantity of horizontal grid lines.
Format The format of the values in the Y-axis. For valid numeric formats,
see “Tag Formats” on page 72. For example, N1 (number with 1
decimal place).
X Axis
Interval Defines the X-axis time span.
Labels Defines the quantity of horizontal grid lines.
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 72. For example, T (Time) for
the first line format, d (short date) for the second line format.
Pens
Visible Shows (1) or hides (0) the selected pen. Ex 1 or {showPen1}.
Tag Set tag that will provide the value for the pen.
Min Linear scale reference for the tag value, according to the Y-axis
range.
Max Linear scale reference for the tag value, according to the Y-axis
range.
Pen Choose the style, the color, and the thickness of the pen line.
Mark Set the mark for each point in the trend line.
CursorValue Set the tag that will receive the real value of the Y-axis, according
to the cursor position. For example: Tag.pen1CursorValue.
FieldName Set the pen name.
158 12: Displays and Symbols
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).
Table 22: Data Grid window configuration
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 136.
Data Source Enter the dataset table or query to use for the window.
SelectedValues Enter a string tag or array tag to receive the contents of the selected row.
SelectedIndex Enter a tag to receive the number of the currently selected row. Row
numbering starts with 0.
LinesCount Select a tag to receive the number of lines in the window.
Theme Select the theme for the window.
BindindMode Select the binding mode to use. See http://msdn.microsoft.com/en-us/
library/system.windows.data.bindingmode.aspx.
AllowInsert Select to let users add rows.
Show Group Enter text to display above the column titles.
Control, Label
Show Column Select to display column titles.
Titles
AllowSort Select to let users sort the data by column.
Auto Create Select to have the system automatically include all table or query
Column columns in the window. If selected, you do not have to configure the
columns below. To customize specific columns, add the column to the
column list and configure the settings to the right (described below).
Deselect to manually configure each column that you want to include
using the Columns list and settings to the right (described below).
Filter Enter SQL statement to limit the data displayed.
Refresh Enter a tag name that will trigger a refresh of the data.
Columns For each column you want to customize or include manually, add the
column and configure the settings to the right of the list (described below).
Visible Select for column to display in the data grid window.
Action.NET User Guide 159
Table 22: Data Grid window configuration (Continued)
Field Description
Editable Select to let users edit the column.
Show in Select to include the column in the column chooser, which lets users select
Column the columns to display.
Chooser
FieldName Enter a name for the column.
FieldType Select the column data type.
Title Enter the text for the column header.
Width Enter the initial column width, in WPF units (device-independent pixels).
Sort Select how to initially sort the column.
Image Resources
You should import any images you want to use in your displays or reports through the
Resources tab. This creates a repository of images for the application.
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
.tiff
.wdp
To manage resources:
1. Go to Edit > Displays > Resources.
2. Click Import Images.
3. Navigate to where the images are that you want to import.
160 12: Displays and Symbols
4. Select the image files and click Open.
5. In each row, enter or select information, as needed.
Column Description
Name Edit the default name.
Description Enter a description of this image.
Managing Symbols
The symbols library comes with a number of graphics you can use. You can also
create symbols to add to the library. Symbols can be just a graphic or a graphic and
dynamics.
To view symbols:
1. Do one of the following:
To see only the symbols used in this project, go to Draw > Symbols.
To see all available symbols, go to Draw > Drawing, and click Open
Symbol Library.
2. To save a symbol as an image file, select the row and click Save to Image.
To add a symbol:
1. Go to Draw > Drawing.
2. Draw the object you want to become a symbol.
3. Select the whole object and right-click.
4. Select Make New Symbol.
Action.NET User Guide 161
162 12: Displays and Symbols
13: Reports and Data Access
Creating Reports
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):
Compact—Removes any extra characters and displays only they
tag value.
PadRight—Puts extra space for each character to the right of the
tag value.
PadLeft—Puts extra space for each character to the left of the tag
value.
SaveFormat Select the report format:
XPS
HTML
Unicode
ASCII
SaveFileNam Enter a string, along with {ObjectProperties}. Use the full path.
e
Action.NET User Guide 161
Column Description
Description Enter a description of this report.
[Other For definitions of other columns that are available in many tables,
columns] see “Common Column Definitions” on page 58.
162 13: Reports and Data Access
14: Run, Test and Publish Projects
Field Description
UserName Enter a valid username to access the application.
Password Enter the password that corresponds to the username.
Project Read-only. Displays the IP address or name of the computer where
Server the project is based on the configuration on the Server tab. See
“Running Projects” on page 45.
Action.NET User Guide 163
Field Description
Port Read-only. Displays the port Action.NET uses for access. For test, it
uses 3201. For startup, it uses 3101. These ports must be open on
the server.
Startup Read-only. Displays whether the configured server is the local
Computer computer or a remote server.
Execution Overrides the default execution path, which is the project file
Path location.
Module Run the Module Information tool.
Information
Property Run the Property Watch tool.
Watch
Trace Run the TraceWindow tool.
Window
Run Modules Select which Modules execute when running the project.
Status Field shows current running and connected or disconnected status.
Click Try to Connect to connect to the running application.
Required to let changes you make to the project apply immediately
to the test or startup runtime.
Click Disconnect if you do not want changes you make to the
project to apply immediately to the test or startup runtime.
Click Stop to stop the execution of the application.
Online Select to let changes you make to the project apply immediately to
Configuration the test runtime. You must also be connected to the running project
Enabled (see Status setting above).
164 14: Run, Test and Publish Projects
Property Watch
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.
Action.NET User Guide 165
Trace Window
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
When checking the Devices check box in the Settings, enable only the error, info and warning
information, not the debug information, otherwise you will create too much data. For
ControlLogix devices, it is very important to use this tool, as the system will display the invalid
addresses in the configuration.
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.
166 14: Run, Test and Publish Projects
Module Information
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.
Action.NET User Guide 167
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 don’t 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.
168 14: Run, Test and Publish Projects
Tip
When checked, a backup of project connected with that build is automatically created.
Action.NET User Guide 169
You want a smaller footprint and faster loading of the project, for instance on
machines, OEM and embedded systems. The TRUN file can be up to 5 to 10 times
smaller than the TPROJ file.
You want to protect the project from modification.
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 don’t 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.
170 14: Run, Test and Publish Projects
15: Deploying Action.NET Projects
Action.NET User Guide 171
In order to setup the server components or stand-alone configurations refer to
sections:
“Product installation on the target computer” on page 172
“License and Project Settings Verification” on page 173
“Installing the Project Configuration files” on page 173
The client setup can be slightly different according to its type. Action.NET supports
the following client technologies:
Windows rich client—See “Windows Rich Clients” on page 179
Windows smart client—See “Windows Smart Clients” on page 179
Windows web-based—See “Windows Web Clients” on page 180
iOS—See “iOS, iPhone and iPads, Clients” on page 181
Active-X, COM, and JavaScript—You can access the runtime application
using the DataAccess API, which is a COM interface to provide integration
with Active-X, JavaScript on web pages, or legacy programming languages
such as VBScript. Contact support for assistance.
For redundant scenarios see “Deploying Redundant Systems” on page 183
172 15: Deploying Action.NET Projects
License and Project Settings Verification
The Action.NET project is created targeting one specific Product Family and Product
Model, as defined on the Info > Project > Settings page.
It is necessary to ensure that the License on the server computer is “greater than or
equal” to the requirements of the project, which means the following check-list:
The Family defined in the license must be the same as the Family in the
project or a higher hierarchy family.
Enterprise licenses can run all projects (Enterprise, HMI and
OPCServer)
HMI licenses can run HMI and OPC Server projects
OPCServer licenses can run only OPC server projects
Express licenses or projects are not authorized for production
environments.
The Model in the license must support a number of communication points
equal to or greater than the project that will run on the server computer.
The License Type on the target computer must be Engineering or Runtime.
The license of type DEV (Development) are only for System Integrators
internal work and shall not be used in production environments.
If the Project requires any additional interfaces, such as OSIsoft(tm) PI System,
or IEC protocols, make sure the license on the target computer is enabled for
those interfaces.
Verify if the number of remote clients enabled meets your project
requirements.
For more Information about product and license models refer to “Action.NET Versions
and Licenses” on page 173.
Action.NET User Guide 173
project are mapped correctly to the production computer. Action.NET 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.
Any external WPF controls should also be copied the target computer. For
remote web access those files should be located at the folder WpfControl and
the utility to update the web manifest must be executed.
If the application is referencing external DLL or .NET assemblies ensure they
are available and at the correct paths on the target computer.
If the project uses RETENTIVE values, you must decide if the target computer
will create a new Retentive database or you if you will copy one with some
predefined values.
Enable Firewall to allow remote clients. Ports 3101 for startup (optionally port
3201 to Test Mode). For web and iOS clients, data web services enabled on
port 80.
If the application is using external DLLs, WpfControls, configuration files or
embedded databases, make sure you copy those files to the target machine
and double check if the PATHNAMES you used in the project configuration are
compatible.
174 15: Deploying Action.NET Projects
We recommend to start manually during the project development or installation where
it is necessary for an operator during the startup process, otherwise the automated
startup is more suitable for production computers.
You should use the login option, the startup shortcut, when testing the project or in
scenarios where the application will always run in the same Windows user profile.
Use the Windows Service on production servers when you need different Windows
users to login on the computer, while keeping the server side runtime components
running at all times.
We support the OPC client activation, in order to be in full OPC compliance, but we
don’t recommend its use, because, as a good practice principle, it not desirable to
allow the status of remote client connections to control if a server side application is
running or not.
The following sections will describe what those automated settings are doing if, for
some reason, you need to setup those startup settings without using the configuration
tools.
Action.NET User Guide 175
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 Action.NET to the installation on your computer.
Examples:
"C:\Program Files (x86)\Spin\Action.Net\an-2014.1\TStartup.exe" /
project:"C:\ActionNet Projects\Project1.tproj"
"C:\Program Files (x86)\Spin\Action.Net\an-2014.1\TStartup.exe" /
project:"C:\ActionNet Projects\Project1.tproj" /port1:3101
Server Redundancy:
"C:\Program Files (x86)\Spin\Action.Net\an-2014.1\TStartup.exe" /
project:"C:\ActionNet Projects\Project1.tproj" /username:Administrator /redundancy /
ip1:192.168.1.1 /port1:3101 /ip2:192.168.1.2 /port2:3101
176 15: Deploying Action.NET Projects
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
Action.NET to the installation on your computer.
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 181.
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.
Action.NET User Guide 177
Field Description
Enable Select to enable the configuration.
Configuration
Primary Server IP Enter the IP address and port of the primary server.
and Port
Secondary Server Enter the IP address and port of the secondary server, if any.
IP and Port
On Primary Select the option you want.
Startup
Historian Select how to handle historian replication.
Replication
Connection Connection timeout time, in seconds, to switch to secondary
Timeout server.
Server Command Read-only field populated based on the fields above. Click Copy
Line to Clipboard to copy the command for use.
178 15: Deploying Action.NET Projects
11. In the Windows Registry, set up the parameters on:
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TStartup\Im
agePath"
Example:
"c:\\Spin\an-2014.1\TStartupAsService.exe" "/project:C:\Action.NET
Projects\Project1.tproj"
12. In the Windows Services (Administrative Tools), set "TStartup Service" to
Automatic, so the selected project will start when the computer starts.
Table 1: Windows rich client deploymentAction.NET
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 64-bit 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).
Action.NET User Guide 179
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.
Table 2: Windows smart client deploymentAction.NET
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.
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).
Table 3: Windows web client deploymentAction.NET
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.
Execution Runs inside a web browser windows using “Partial Trust” (Sandbox
Security).
Communication Communicates with the server using HTTP or HTTPS (port 80).
180 15: Deploying Action.NET Projects
Automatically Starting Windows Clients
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.
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 client—At the beginning of the command line, enter or paste the
full path to the Action.NET installation folder and put quotes around it.
It should look something like this:
Action.NET User Guide 181
Table 4: iOS deploymentAction.NET
Installation Install the SCADA HMI Client app from the Apple Store.
How to start Start the SCADA HMI Client app and follow the initial setup options.
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.
Field Description
H ostServer IP address or name of the project server.
Port Port 80.
Polling Defines the refresh rate between the client and the server,
expressed in quarters of a second. The default value of 1, means
the client gets new data from the server every 250 ms. When
connecting to servers located on the Internet or low bandwidth
networks, that value should be increased. For more information,
refer to the help for the app.
U ser Project user name as configured in the project. The default is
guest.
Password Project password associated with the user name.
Project Project name on the remote project server.
5. Tap Login.
The graphics and displays download, then the application starts. The
application startup the first time may take a little longer than subsequent
startups.
182 15: Deploying Action.NET Projects
Deploying Redundant Systems
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 Select to enable the redundancy configuration.
Configuration
Primary Server IP Enter the IP address and port of the primary server.
and Port
Secondary Server Enter the IP address and port of the secondary server.
IP and Port
On Primary Select the option you want.
Startup
Historian Select how to handle historian replication.
Replication
Connection Connection timeout time, in seconds, to switch to secondary
Timeout server.
Server Command Read-only field populated based on the fields above. Click Copy
Line to Clipboard to copy the command for use.
Rich Client Read-only field populated based on the fields above. Click Copy
Command to copy the command for use.
Smart Client URL Read-only field populated based on the fields above. Click Copy
to copy the command for use.
Web Client URL Read-only field populated based on the fields above. Click Copy
to copy the command for use.
Action.NET User Guide 183
Automatically start the application on a Windows client:
1. Go to Info > Project > Redundancy.
2. Enter or select the information, as needed.
Field Description
Enable Select to enable the configuration.
Configuration
Primary Server IP Enter the IP address and port of the primary server.
and Port
Secondary Server Enter the IP address and port of the secondary server, if any.
IP and Port
On Primary Select the option you want.
Startup
Historian Select how to handle historian replication.
Replication
Connection Connection timeout time, in seconds, to switch to secondary
Timeout server.
Rich Client Read-only field populated based on the fields above. Click Copy
Command to copy the command for use.
Smart Client URL Read-only field populated based on the fields above. Click Copy
to copy the command for use.
Web Client URL Read-only field populated based on the fields above. Click Copy
to copy the command for use.
3. Click the Copy button next to the type of client you want to start automatically.
184 15: Deploying Action.NET Projects
16: Runtime Namespaces
Action.NET User Guide 185
186 16: Runtime Namespaces
17: Action.NET Versions and Licenses
Action.NET has a flexible features that let you manage product version and licensing:
“Action.NET Version numbers” on page 187
“Action.NET Licenses Types” on page 188
“Product Family and Model” on page 188
“Remote Project Access” on page 190
“Project Settings versus License” on page 190
“Using Multiple Versions Concurrently” on page 190
Action.NET User Guide 187
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.
188 17: Action.NET Versions and Licenses
ServerSmall—Up to 25,000 real-time communication points.
Plant—Up to 15,000 real-time communication points.
Action.NET User Guide 189
Remote Project Access
In addition to the product family and product model, your license also has a licence
type:
Engineering—Lets you configure and execute projects.
Runtime—Lets you execute projects.
Developer—Available only to VAR partners to create and execute projects in
testing scenarios, not for production.
When you connect to a remote computer to open or run a project, the license that is
verified is the license on the server, not the license on your local computer.
However, if you connect to a remote computer that has only runtime license, but you
have an engineering license on your computer, you will be able to configure and
execute the remote project (as long has you have also the project security passwords
and authorization). This is useful to let engineers handle changes needed in the field.
190 17: Action.NET Versions and Licenses
The folder structure is:
\Action.NET—Folder with the project selection and management tools.
\Action.NET\an-2014.1—Files specific to version an-2014.1.
You will have as many sub folders as product versions are installed in your computer.
Note
Because the installation footprint is very small, only around 100MB, we strongly
recommend that 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
an-2014.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 an-an-2014.1.10 and you try to open a project that was used with version an-
2014.1.20, as long your have the license for an-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 don’t 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, see“Upgrading Projects” on page 45
Action.NET User Guide 191
192 17: Action.NET Versions and Licenses
18: Glossary
Every knowledge area has its own terminology, the same applies to software applications.
Certainly the nomenclature Action.NET 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 Action.NET 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
Action.NET for a couple of months. Doing a review of the definitions and nomenclature used
by the Action.NET platform and Spin 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.
Action.NET User Guide 193
DLL Hell Term used to refer the complications on running the legacy
Windows applications as there is no built-in isolation on the
DLL libraries, memory and COM objects used by the
applications. The .NET Framework completely eliminated that
problem.
Domain, Server Refers to the values and location of objects at run time.
Domain, Client Domain server objects running on the server are the objects
Domain 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.
Internal Module Features and programs that implement internal system
functions that run without any user configuration.
Examples are the Network Synchronization task and the
Background Report Generator. Some Studio tools e.g.,
ModuleInformation.exe, may display status information of
those internal Modules, however that information is required
only for advanced system optimizations.
Main Project File 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/ Auxiliary parameter to effect read and write points for a
Points) device, the treatment of Arrays, bit masks, strings, swap and
other operations in which a DataType definition can not define
them completely.
Module A program that accesses the database in real time (RtDB) and
can be composed of one or more Assemblies.
Namespace An address space. All objects created with a Namespace
have unique names. "Address space" can also be understood
as a form of tier objects. All process variables are grouped in
the tag namespace; all reports grouped in the namespace
report. The name of an object should be unique within the
namespace to which the object belongs.
Object Type (RunObj Determines the type of runtime object (display, report, script).
type)
Objects, Runtime Runtime objects are those objects visible (through their
Objects names) to access the project via scripts and displays, such as
Tags, Reports, Alarms, Displays among others. The
namespaces also identify which execution module is
reponsible to update those values, for example the Alarm
Module will start and will update the values of the runtime
objects associated with the alarms.
194 18: Glossary
ObjectValues, Runtime objects (for example, Tags, deviceNodes, etc.) can
PropertyValue have one or more properties defined. The TAG (and the
property value), for example, MIN, MAX, description, among
other properties.
PropertyWatch Diagnostic utility to check and modify the values of the objects
at runtime.
Parameters(Tag Definition of the parameters of behavior and values
Configuration) processing for Tags.
Project A configuration set Studio sketches of displays, reports,
scripts and user notes created and edited with a single entity.
projectDB / ProjectDB (or project database) is a database that contains
ProjectDatabase configuration information. Matches files with the extension
<Project>.Tproj (current type, for example) or <Project>_
version.Teng (type released, for example).
Property or Atribute Property (value) associated with a Tag or object.
RunDB, Runtime The real time database created when the project is running.
Database/RtDB All objects running accessible (such as Tags, Displays,
Reports) are objects on the Runtime Database, also called
Real-Time Database or RtDB.
Runtime Refer to a project with modules loaded and running.
Runtime Startup Operation that is the project at run time. This operation can be
performed from the program TStartup.exe in the current
version of Action.NET, or TServer.exe in the published version
of the project.
Tag A process variable. Name of a Namespace that includes all
the variables created by the user in a project configuration.
Tag Type Defines the type of objects in the Tag Namespace: Digital,
analog, text. These Tags are a class of compounds or
properties accessed directly such as minimum, maximum,
Value, quality. Each property is internally created as
ValueType.
Task (Script.Task) Task program written in VB.NET (or C #) that runs on the
server or client during the runtime of a project. The execution
will be on the server or client, depending on the configuration
of the domain property in the script.
TManager The program that performs the configuration of a project.
Toggle Reverses the value of a variable. Values greater than zero are
converted to zero; zero is converted to the value "1".
Action.NET User Guide 195
Trust, Partial Trust, Partial Trust: Environment in which an application has limited
Full Trust access to resources (restricted access to files from particular
folders, running other applications, etc.). XBAP applications
that run within a browser (e.g., Internet Explorer) should run in
"Partial Trust".
Full Trust: Environment in which an application has access to
all system resources. Applications installed on a computer
usually run in "Full Trust" mode.
Visibility (Tag Refers to the tagging system; Tags can be Private, Public or
Visibility) 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).
196 18: Glossary
A
access types
configuring 96
accessing projects remotely 44
adding
columns to tables 58
users 83
alarm window, configuring 155
alarms
configuring events for 106
configuring general settings 104
configuring groups for 105
applications
building 168
publishing 169
testing 163
assets
creating 74
automatically starting applications on the server 177
B
bar chart, configuring 154
building
applications 168
C
categories
creating 75
circular panel, configuring 153
classes
configuring 124
clients
configuring for deployment 179, 180, 181
configuring settings for desktop 137
described 171
code
creating for displays 136
editing 125
code editor
using 125
columns
adding 58
definitions for common 58
removing 58
configuring
access types 96
alarm events 106
alarm groups 105
data points 95
dynamics 144
event logging 103
external databases 113
general alarm and event settings 104
localization 62
nodes 93
permissions 84
policies 85
preferences 64
redundancy 183
tag historian tables 78
tasks 123
conventions, typographic 2
copying
rows 59
creating
assets 74
categories 75
classes 124
code for displays 136
displays 131
layouts 135
projects 41
reports 161
scripts 123
tag templates 73
tags 67
customer support 2
D
data grid window, configuring 157
data points
configuring 95
data, importing 60
database
configuring for tables for tag historian 78
databases
configuring external 113
configuring queries for external 120
configuring tables for external 119
date formats, valid for tags 72
deploying
iOS 181
Windows rich clients 179
Windows smart clients 179
Windows web clients 180
desktop clients
configuring settings for 137
devices
configuring 93, 95
disabling
users 86
displays
configuring desktop client settings for 137
configuring dynamics for 144
configuring iOS client settings for 137
creating 131
creating code behind 136
drawing tools
using 139
dynamics
configuring 144
E
editing
scripts 125
tables 55
tags 67
users 83
events
configuring for alarms 106
configuring general settings 104
configuring logging 103
expressions
described 126
external databases
configuring 113
configuring queries 120
configuring tables for 119
F
FactoryStudio
installing 4
licensing 5
main page, described 41
G
graphics
managing 159
Guest user, defined 83
H
historian
configuring tables for 78
I
images
managing 159
importing
data 60
installing
FactoryStudio 4
iOS
deploying 181
iOS clients
configuring settings for 137
iPad/iPhone clients
configuring settings for 137
L
layouts
creating 135
libraries
built-in methods 123
Visual Studio 123
licensing
FactoryStudio 5
product family 188
product model 188
project settings vs license 190
types and remote access 190
localization, configuring 62
logging
configuring tables for 78
for events 103
M
main page, described 41
major version, described 187
managing
project information 46
symbols 159
menus, using in FactoryStudio 52
minor version, described 187
N
navigating in FactoryStudio 52
nodes
configuring 93
numeric formats, valid for tags 72
O
object model, described 21
objects
finding 51
tracking use of 60
P
pasting rows 59
permissions
configuring 84
pie chart, configuring 154
policies
configuring 85
preferences
configuring 64
product family
described 188
project vs license 190
product model
described 188
project vs license 190
projects
accessing remotely 44
building 168
configuring redundancy for 183
creating 41
finding 42, 43
license types and remote access 190
managing information for 46
managing remote access to 42, 43
opening in different version 190
publishing 169
settings vs. license 190
testing 163
upgrading 45
publishing
applications 169
Q
queries
configuring for external databases 120
R
redo button 50
redundancy
configuring 183
remote access
and license types 190
managing 42, 43
using for projects 44
removing
columns from tables 58
users 86
reports
creating 161
using the text editor 162
rich clients, deploying 179
rows
copying and pasting 59
runtime components, described 171
runtime objects reference 123
S
scripts
configuring classes 124
configuring tasks 123
editing 125
searching
for objects 51
servers
T
tables
adding columns 58
common column definitions 58
configuring for external databases 119
configuring for the tag historian 78
copying and pasting rows 59
editing 55
removing columns 58
tags
creating 67
creating templates for 73
editing 67
valid formats 72
tasks
configuring 123
technical support 2
templates
creating for tags 73
testing
applications 163
text editor
using 162
time formats, valid for tags 72
toolbar
using 50
toolbars
drawing, described 139
toolkit
Visual Studio library 123
toolkits
built-in methods 123
tooltips, using 56
tracking
object use 60
translation, configuring 62
trend window
configuring 156
typographic conventions 2
U
undo button 50
update version, described 187
upgrading
projects 45
user interface
configuring desktop client settings for 137
configuring iOS client settings for 137
creating displays for 131
creating layouts for 135
users
adding 83
configuring permissions for 84
configuring policies for 85
disabling 86
editing 83
removing 86
users, Guest, defined 83
V
validation, described 56
versions
managing multiple concurrently 190
opening projects with different 190
versions, understanding number of 187
W
web clients, deploying 180
Windows
automatically starting applications on 177
Windows clients
configuring settings for 137
deploying rich clients 179
deploying smart clients 179
deploying web clients 180