Action.NET™ User Guide · server and event notification module, a logging and reporting module,...

212
 Action.NET™ User Guide www.spinengenharia.com.br

Transcript of Action.NET™ User Guide · server and event notification module, a logging and reporting module,...

Page 1: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 Action.NET™User Guide

www.spinengenharia.com.br

Page 2: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Page 3: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Contents

1: Getting Started 1Welcome to Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1About This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2System Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Installing Action.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Starting Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Licensing Action.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Installing services on IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Installation Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2: Technical Overview 15Action.NET Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

What is Action.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Application Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Network Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Real-time, in-memory database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Object Model and Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Action.NET Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Action.NET Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Realtime Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Graphical Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Security and Redundancy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Trend and Historian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Devices Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Alarms and Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Datasets and SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Scripts and .NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Reporting and Data Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Testing and Running Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Information and Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3: Managing Projects 35Viewing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Creating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Finding Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Allowing Remote Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Accessing Remote Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Running Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Action.NET User Guide i

Page 4: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Draft Septem ber 10, 2013

Upgrading Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Engineering Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41SQL-Centric Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41Multi-User, Multi-Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41Project Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41Project Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41

4: Engineering Workspace 43Workspace Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Grid Splitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Using the Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Undoing and Redoing Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44Smart Cut, Copy and Paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45Print, Save to a File or Import. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45Finding Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45New Tag and Tag Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46Security Logon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46Help Button. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46

Navigating in the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Working with DataGrid Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Editing Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Tooltips and Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Sorting, Filtering, and Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Adding and Removing Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Common Column Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Copying and Pasting Rows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Importing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Using the Cross-Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Intellisense and Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Dictionaries and Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Runtime Language localization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Enumeration Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Categories Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Import Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Import Action.NET Projects: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56Import Rockwell ControlLogix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57Import OPC server configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57Import From OSIsoft PI System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57Importing XML tag templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57Importing .NET classes from a DLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57

Configuring Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5: Tags, Assets and Templates 59Creating and Editing Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Built-in Tag Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62Reference Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63

ii  Contents

Page 5: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Draft Septem ber 10, 2013

Tag Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Creating Tag Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Creating Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Creating Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Tag Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Tag Namespace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6: Historian and Data Logging 69Adding Tags for Data Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Configuring Historian Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Historian Database Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Using OSIsoft(tm) PI System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Historian Tables Schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Visualizing Trend Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Customizing Getting Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Historian Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7: Security and Users 75Adding and Editing Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Configuring Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Configuring Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Removing Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Managing Runtime-only Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Customizing Login Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Security Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

8: Devices and Interfaces 81Communication Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Included Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Supported Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Additional Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Driver toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Configuring Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Configuring Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Importing from an OPC Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Importing PLC Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Configuring Data Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Configuring Access Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Diagnostics tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Module Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Property Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Trace Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Device Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

9: Alarms, Events and AuditTrail 95Configuring Audit Trail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Configuring Alarm Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Configuring Alarm Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Action.NET User Guide iii

Page 6: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Draft Septem ber 10, 2013

Configuring Alarm Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97EditAlarmsItems.Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98

Visualizing Alarms and Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Alarm Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Subscribing Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Alarm Database and Table Schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Alarm Runtime Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

10:Datasets and Data Exchange 101Configuring Database Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Accessing Microsoft Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Configuring Database Tables Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Configuring Database Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Configuring Files for Data Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Dataset Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

11:Scripts and .NET Framework 111Configuring Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Configuring Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Working with the Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Configuring Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Using the .NET Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Creating debugger Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116Attaching the .NET debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116Breakpoints, steps and watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116

Script Runtime Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

12:Displays and Symbols 119Selecting and Creating Displays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Creating Layouts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Displays Code Behind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Desktop and iOS Client Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Designer Drawing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Dynamics and Animations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Action Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133Shine Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134Text I/O dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Hyperlink dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Fill, Line and Text Color Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136Bargraph Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137Visibility Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138MoveDrag Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138Scale Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139Rotate Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139Skew Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140TextOutput Dynamic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

User Interface Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Configuring a Circular Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

iv  Contents

Page 7: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Draft Septem ber 10, 2013

Configuring a PieChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Configuring a BarChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Configuring an Alarm Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Configuring the Trend Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Configuring a DataGrid Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Managing Images and Symbols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Image Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Managing Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Display Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

13:Reports and Data Access 149Creating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Using the Report Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Report Runtime Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

14:Run, Test and Publish Projects 151Running the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Using the Diagnostic Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Property Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Trace Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154Module Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Build and Pack Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Project Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Tracking configuration changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Publishing the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Information Runtime Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

15:Deploying Action.NET Projects 159Local and Distributed Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Product installation on the target computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160License and Project Settings Verification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Installing the Project Configuration files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Setup the server to start the runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Using a Shortcut on Windows Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Creating the shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Using a Windows Service to Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Remote Client Users Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Windows Rich Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Windows Smart Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Windows Web Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Automatically Starting Windows Clients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168iOS, iPhone and iPads, Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

Deploying Redundant Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170Configuring Redundancy options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

16:Runtime Namespaces 173

17:Action.NET Versions and Licenses 175

Action.NET User Guide v

Page 8: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Draft Septem ber 10, 2013

Action.NET Version numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Action.NET Licenses Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Product Family and Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Remote Project Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Project Settings versus License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178Using Multiple Versions Concurrently. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

18:Glossary 181

vi  Contents

Page 9: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.NETAction.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

Page 10: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

About This GuideThis 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.

Getting HelpUser 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 [email protected], 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 [email protected].

Convention Description

Bold Words in bold show items to select or click, such as menu items or buttons.

WarningWarning contain critical information that may affect your data and system.

TipTip contains useful information to enhance your application design and productivity.

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

2 1: Getting Started

Page 11: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 RequirementsFollowing 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

Page 12: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Installing Action.NETAction.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

Page 13: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.NETAfter 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.

Licensing Action.NETIf 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.

Tabs

Click to select a different view of the project

Action.NET User Guide 5

Page 14: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 that at the User Account Control settings the option "Never notify" is selected.

Go to Control Panel > User Accounts > Change User Account Control settings. In the window that opens, the left side of the bar should be placed in the position below indicating "Never notify." You m ay need to restart the com puter for the notification to take effect.

3. Start Action.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 [email protected].

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

Page 15: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 –enableServiceModelReg.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

Page 16: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 17: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

If needed, follow the procedure described on http://msdn.microsoft.com/en-us/library/ms752252.aspx for the version of IIS you are using.

The .NET Framework installation directory usually is: C:\Windows\Microsoft.NET\Framework\v4.0.30319, or C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (for x64 Windows)

4. From the Action.NET installation folder, run the utility: InstallTWebServer.exe /uninstall, which will remove the default TWebServer installation.

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

6. For TProjectServer, configure:

Alias—TProjectServer

Action.NET User Guide 9

Page 18: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Note: You should allow “Everyone” access, at least for reading

From IE, use the URL http://localhost/tprojectserver/service.svc to verify if the service was correctly installed. That should show a page with information about the service.

7. For TVisualizerWeb/TVisualizerRemote, configure:

Alias—an-2014.1

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

10 1: Getting Started

Page 19: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

9. For DataPanelImages (Virtual Directory), configure:

Alias—iDataPanelImages

Physical Path—C:\Action.NET Projects\iDataPanelImages

Action.NET User Guide 11

Page 20: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

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

12 1: Getting Started

Page 21: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

You can go back to compression for your site and ensure Dynamic Compression is checked. At this point, Dynamic Compression should be setup, but you really need to be specific about what mimeTypes will be compressed.

Back in IIS Manager, go to the page for the SERVER (not the SITE) and Click on Configuration Editor:

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

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

Page 22: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 arningIIS must be restarted after configuring the services.

14 1: Getting Started

Page 23: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 24: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Action.NET Platform

What is Action.NETAction.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

Page 25: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Application AreasProcess 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

Page 26: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Network TopologyAction.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

Page 27: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

System Architecture

Real-time, in-memory databaseA key differentiation point of the Action.NET platform is its ability to be applied in both hard Process Control with real-time, in-memory information and also on Level 2 and Level 3 applications, where the information is stored on SQL databases and exchanged with external applications.

The real-time core of Action.NET is an in-memory, event-driven database. That database is the result of more than 25 years of continuous learning and it is a complete new design, leveraging the current technologies and the past experiences.

The design specification included as a priority

Reliability and operational stability.

Action.NET User Guide 19

Page 28: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Real-time Information Management, IT and SCADA combined

The function of real-time database, shown in gray in the diagram, is to allow the modularity of the system, creating an abstraction layer that allows you to isolate tasks to communicate with relational databases, communication with other systems and with the field, the user interfaces and systems of calculation and optimization. Its structure enables synchronization between the various processes independent of values in real-time, event notification and update tables of information.

This Manager uses components designed specifically for the .NET platform with the infrastructure for tracking events. Making a comparison with a real-time supervisory, or a level 1, we have the following key differences:

20 2: Technical Overview

Page 29: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Persistence and redundancy

The Real-time database access to the original values and events in RAM, for the continuity of operations in the event of critical system failure, can be used both for a disk cache (Persistence or Retentiveness) or a TCP/IP synchronization with another station in a Hot-Standby architecture. Both solutions are built-in to the system and the best topology depends on the specific project requirements.

Engineering and Runtime

When creating an application, the Action.NET platform uses the concept of Engineering and Runtime

Engineering: Refers to the application configuration, or the creation of a Action.NET project. The Engineering tools are a set of configuration utilities, such as Table Editors, Drawing tools, which allow you to implement the application specifications at a higher level, using friendly configuration user interfaces, rather than low-level programming. When custom logic is necessary, guided user interfaces allow you to create C# and VB.Net code, in an easier are self-organized way, again providing a high-level access to the project components.

Runtime: Refers to execute the Project configuration, which means run the developed Application. The runtime system will execute the data acquisition, calculation, logging and alarms and provide real-time graphics displays, according the project engineering configuration.

Object Model and NamespacesMore advanced than most systems, where you must create Tags or Variables for all internal properties and custom logic for your projects, Action.NET allows your application(s) to directly access all the business objects that were created in your project. This means that user-created temporary tags are not required to manage the status of PLC network nodes, the total number of alarms in a group, or the number of rows in a dataset. You can now access runtime objects, business objects (representing a network node), an alarm group or

Table 1: Real‐time database new generation

HMI/SCADA databases Action.NET real‐time database

Basic Tags Types, such as boolean, int, float (real) and texts

In addition to these, also manages events, dates, tables, queries, and structured data.

Server-centric and centralized module processing

Distributed processing, multi-core and multi-processes, client and advanced control stations.

Proprietary access Interfaces Access via Interfaces classes.NET or web services

Definition of variables on databases on proprietary systems

Definition of variables in standard databases with support for SQL and ADO.NET

Does not allow hot swap (swapping the project configuration without stopping the application)

Allows hot updates with built-in version management.

Action.NET User Guide 21

Page 30: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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:

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:

@[email protected]

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.

Tags Dataset

Historian Script

Security Server

Alarm Client

Device Info

22 2: Technical Overview

Page 31: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Action.NET ProjectsThe 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

Page 32: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 33: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Action.NET ModulesThe 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.

To define, verify or edit tags to use in the project

Define USER permissions and Project access levels

Configure communication protocols and Device Data Acquisition

Configure Alarm tags and Alarm Groups to generate Alarms under defined conditions

Define data sources such as Files, Databases, Specific Tables, Pre-defined queries.

Configure .NET scripts in VB.Net or C-Sharp

Select dynamic graphical displays to configure

Configure reports which including updated graphical symbols, in XPS, HTML, ASCII, and Unicode formats

Action.NET User Guide 25

Page 34: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Realtime TagsThe 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.

Action.NET tag type .NET Framework type SQL database type

Digital Boolean Bit

Integer int32 int

Long int64 bigint

Double double float

Decimal decimal decimal

Text string char[] nchar, ntext, char, text, varchar

DateTime DateTimeOffset DateTime, DateTimeOffset

TimeSpan TimeSpan Time

Timer int32 int

Image byte[] Binary, Image, VarBinary

Guid Guid UniqueIdentifier

DataTable System.Data.DataTable

26 2: Technical Overview

Page 35: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Graphical DisplaysThe .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

Five types of remote clients are supported:

Rich Clients: Runs as a desktop application, allows the blocking of the Windows task-switch. This is ideal for process control applications that need high performance and enhanced security.

Smart Clients: Uses Click-Once technology, installs and updates on remote clients with a single click from a browser and it is automatically updated on the remote clients when it is updated on the server. It uses all the power of the remote computer yet retains the advantages of a centralized install.

Web Clients: Runs directly from the Web-Browser with no installation of any software required (nor any active-x controls!). The partial-trust security guarantees it runs in a completely isolated secure environment.

Thin Clients: Runs using remote desktop connection or Terminal server or other thin client technology. Typically used to run on tablets using Android or WinRT.

Tables, iPad native app. The same displays created on Windows computers are automatically rendered to run natively on iPads on iPhones, combining the rich user

Action.NET User Guide 27

Page 36: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 37: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Security and RedundancyIn 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

Trend and HistorianThe Historian Module allows an easy setup to log process variables in SQL databases. A built-in embedded SQL database is supplied for small and medium size databases. Large systems can be configured to use Microsoft SQL Server, Oracle or any database compatible with OLE-DB, ODBC or ADO.NET.

Action.NET also has the option to use the OSIsoft PI System for the Historian server, with no programming required, complete integration and seamless access.

The graphical tools include a powerful Trend chart object with support for quality information, annotations, vertical charts, batch comparing and more.

See more at “Chapter 6, Historian and Data Logging” on page 77

Devices CommunicationThis 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

Page 38: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Alarms and EventsAction.NET’s Alarm system provides for tremendous flexibility in managing Alarms in your system. Multiple alarm levels for each point/tag can be defined and a whole range of behaviors, such as logging, acknowledgment,

displaying, are built-in features to simplify the configuration.

The Alarm conditions are automatically replicated on redundant servers, making certain there are no lost Alarms in the event of a computer failure. The Alarm and Event tools are part of the tools necessary to create FDA-CFR 21 Part 11 compliant applications.

See more at “Chapter 9, Alarms, Events and AuditTrail” on page 95

Datasets and SQLThe Dataset Module included in Action.NET provides an easy-to-use interface to exchange data in real-time with external Databases, XML, CSV or text files and access SQL queries and tables.

For the most common databases and data sources (Microsoft SQL Server, Oracle, CSV files, Microsoft Access, PI, Firebird, Informix, Excel), Action.NET supplies predefined configurations that reduce the configuration to a mouse-click. Any database that supports ODBC, ADO.NET or OLE-DB can be accessed. A built-in SQL Database engine is also supplied as a local database for your application(s).

The data collected with the datasets can be dynamically mapped to real-time points/tags and can be used in scripts or reports, or presented on displays using a powerful Data Grid Visual Object, with cell-editors and support for multiple visualization themes.

See more at “Chapter 10, Datasets and Data Exchange” on page 113

30 2: Technical Overview

Page 39: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Scripts and .NETAction.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

Page 40: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Reporting and Data AccessAction.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

Page 41: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Testing and Running Projects

The Run environment provides access to all Project execution features.

Prepare a Project for execution and save the project’s build history.

Testing a Project provides a way to see the Project in action before publishing it to the server for execution.

Specify which Diagnostics Tools and Modules use when to run the Project.

Publish the Project to enable its final installation. Increment the Project Publish revision numbers.

Tallies the number of times Tags are used in the Project. Provides project objects cross reference

Customize your project to use other languages in Alarm Messages and displays texts

Import Configuration data already created for OPC Servers, any configuration table, or an entire project.

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

Page 42: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 43: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 44: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Information and Version Control

The Info environment provides access to current Project configuration details

Project Information and settings

Track configuration changes and project releases

Create and share project notes

Access local and on-line help contents

License information and register

.

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.

Tracking Project Changes

A key feature in Action.NET is the ability to track changes in the project configuration. This helps in verifying project configurations in various stages of development and implementation.

36 2: Technical Overview

Page 45: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Adding and sharing project notes

Many times during the development and implementation of a project, developers need to be able to leave notes for themselves, or for others collaborating on the project.

Within Action.NET, that can be done by using the Notes utility.

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

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

Page 46: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

38 2: Technical Overview

Page 47: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3: Managing Projects

The following sections describe how to create and manage projects:

“Viewing Projects” on page 39

“Creating a Project” on page 41

“Finding Projects” on page 42

“Allowing Remote Access” on page 43

“Accessing Remote Projects” on page 44

“Running Projects” on page 45

“Upgrading Projects” on page 45

“Project Configuration” on page 46

Viewing ProjectsWhen 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

Page 48: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 49: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 ProjectTo 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

Page 50: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Press Create Project

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.

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.

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

HMI—Use for smaller applications and embedded systems.

Express—Use only for test or demonstration purposes.

OPCServer—Create a project to work as a OPC server only, providing data to other applications from the native protocol drivers

You can change this setting later, if needed.

Product Model Depending on your 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.

Field Description

42 3: Managing Projects

Page 51: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

6. Click Back to return to the main window.

Note

When adding a project, or a folder, all the projects in the selected folder are added to Project List at the main page.

This page also contains the settings to allow users on remote computers to access the projects, as described in the next section

Allowing Remote AccessRemote users can only see and access projects from the local computer that you configure for remote access. If you want to permit remote access to one or more projects, but not to other projects, be sure to place those projects in separate folders. When you configure remote access (either for project editing or the runtime), you configure it for an entire folder. All projects in a folder configured to permit remote access will be accessible to remote users. For information about accessing a remote project, see “Running Projects” on page 45.

The software installation includes a web server (TWebServer) that permits remote access between computers with Action.NET installed. No other configuration is needed. If you are using the Microsoft IIS web server, see “Installing services on IIS” on page 6

To find projects and manage remote access:

7. Click Find Project.

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

Field Description

Current Project Server Display-only. Lists where the current project is running.

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

Include Published Projects

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

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

Search Paths Select the folder whose remote settings you want to change, then change the settings below.

Click + to add a folder the search path, so that all the projects on that folder displays in this list.

Select a folder, then click - to remove the selected folder from the search path, so the projects on that folder no longer displays in this list.

Action.NET User Guide 43

Page 52: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

9. Click Back to return to the main window.

Accessing Remote ProjectsYou can access and edit projects that are configured for remote access. Projects can be on any computer or server that you can access. If you subscribe to the cloud service, you can access projects configured on it. The Find Project function is not available when accessing a remote computer.

You can also upload a project to the remote computer.

To access a project remotely:

10. Click the Server tab.

This tab lets you configure and access remote projects.

11. Do one of the following:

12. Click Connect.

13. If you want to upload a project, click Upload Project.

14. Click the Projects tab.

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

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.

2. Enter the IP address of the computer where the project is.

3. If configured, enter the Virtual Path of the folder.

The person who created the project may have configured the virtual path.

1. Select the Cloud option.

2. Enter your Account and Password.

44 3: Managing Projects

Page 53: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 ProjectsYou 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 ProjectsProjects 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

Page 54: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 55: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

HMI—Use for smaller applications and embedded systems.

Express—Use only for test or demonstration purposes.

OPCServer—Create a project to work as a OPC server only, providing data to other applications from the native protocol drivers

Note: Changing the family settings may cause some configurations to be invalid. For example, some features are only available in the Enterprise version.

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.

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

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

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

Use Binary Historian

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

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

Page 56: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

48 3: Managing Projects

Page 57: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

4: Engineering Workspace

The following sections describe how to create and manage projects:

“Workspace Overview” on page 49

“Navigating in the Workspace” on page 52

“Working with DataGrid Tables” on page 55

“Using the Cross-Reference” on page 60

“Intellisense and Refactoring” on page 61

“Dictionaries and Localization” on page 62

“Import Wizards” on page 63 and “Configuring Preferences” on page 64

Workspace OverviewThe 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.

Figure 1: Action.NET project main page

Main menu

Submenu of the selected main menu

Tabs

Recent items

Toolbar

Status messages

Back/forward

Configure workspace theme and user preferences

Action.NET User Guide 49

Page 58: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Grid SplitterYou 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

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

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.

Figure 2: Toolbar right-click options

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.

Undoing and Redoing Changes

The Undo and Redo buttons on the toolbar let you undo or redo any operation. When editing tables, undo and redo are available for all changes during your editing session.

50 4: Engineering Workspace

Page 59: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

When editing documents (in the Draw, Reports, and Scripts areas), undo and redo are available until you save changes.

Smart Cut, Copy and Paste

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

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

Tip

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.

Print, Save to a File or Import

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

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

Page 60: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

New Tag and Tag Properties

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

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

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.

Navigating in the WorkspaceYou navigate in Action.NET using the workspace environment, sections and tabs.

52 4: Engineering Workspace

Page 61: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Define/Edit Tags to use in the project.

Define User permissions and Project access levels.

Configure Communication Protocols and Device Data Acquisition.

Configure Alarm Tags and Alarm Groups to generate Alarms under defined conditions.

Define data sources such as Files, Databases, Specific Tables, Pre-defined queries.

Configure .NET Scripts in VB.NET or C-Sharp.

Select dynamic graphical displays to configure.

Configure Reports, which including updated graphical symbols, in XPS, PDF, HTML, ASCII, and Unicode

formats.

Action.NET User Guide 53

Page 62: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

To configure dynamic displays, select the Display on Edit-Displays and click on the Draw icon to

access the graphical Designer.

The Run environment provides access to all project execution commands

Prepare a Project for execution and save the project's Build history.

Testing the project provides a way to see the project in action before publishing it to the server for use.

Run the project configuration in production mode.

Publish the Project to enable its final installation. Increment the project Publish Revision numbers.

Tallies the number of times Tags are used in the project. Provides project objects cross reference.

Customize your project to use other languages in Alarm Messages and Display text.

Import configuration data already created for OPC Servers, any configuration table, or an entire project.

Provide access to current Project information.

54 4: Engineering Workspace

Page 63: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Project and product Version, location of project, Local Language, License information.

Find information regarding published project release number and project changes.

Leave arbitrary notes for other project engineers.

Access local and on-line help contents

License information and register

Working with DataGrid TablesMany tabs in Action.NET display information in a table. All tables let you manipulate, copy, paste, and import data in the same way. The following sections describe how to use these functions:

“Editing Tables” on page 55

“Sorting, Filtering, and Grouping” on page 56

“Adding and Removing Columns” on page 58

“Common Column Definitions” on page 58

“Copying and Pasting Rows” on page 59

“Importing Data” on page 60

Editing TablesAction.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

Page 64: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

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

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

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

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

To edit an existing table row:

1. Click the column in the row that you want to change.

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

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

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

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

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

Sorting, Filtering, and GroupingInformation in many tabs within Action.NET displays in tables that you can sort, filter, and group.

By default, items in table are listed in the order in which you created them.

To sort a table:

56 4: Engineering Workspace

Page 65: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

1. From any table, click the column heading you want to use to sort.

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

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

3. Click the column heading again to return to the default order.

To filter a table:

1. From any table, hover over the column heading you want to use to filter.

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

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

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

4. To remove the filter, click the drop-down list and click (Clear Filter).

To group items in a table:

1. From any table, drag a column heading to the area above the columns to group by that column.

Action.NET User Guide 57

Page 66: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Adding and Removing ColumnsTables in Action.NET display a default set of columns. Every table has additional columns that you can display, and you can remove any of the default columns.

You can also change the order of the columns. For the definitions of columns that are available in all tables, see “Common Column Definitions” on page 58.

To add or remove a column:

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

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

2. Select or deselect columns in the list.

3. Click outside the list to close it.

4. To change the order of the columns, drag a column heading to a new location.

5. To reset the columns to the default, click Reset Grid to Default Settings.

Common Column DefinitionsSeveral common columns are available from many tables. These columns are defined below, rather than repeating them in the description of every applicable table.

58 4: Engineering Workspace

Page 67: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Copying and Pasting RowsYou can copy and paste rows into and from tables in Action.NET. The copy/paste functions let you copy rows from one table to another within Action.NET. For example, you can copy tags and paste them into the Historian tab or the Items tab under Alarms.

You can also copy and paste to and from a spreadsheet.

To copy rows to another tab in Action.NET:

1. From any table, select one or more rows.

2. Right-click and select Copy Selected Rows.

3. Go to another tab in Action.NET.

4. Right-click and select Paste Rows.

To copy rows to a spreadsheet:

1. From any table, select one or more rows.

2. Right-click and select Copy Selected Rows.

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

3. Go to a spreadsheet and paste.

To paste rows from a spreadsheet:

1. Set up the spreadsheet columns by following the copy steps above.

2. Enter the information you want.

3. Copy the information, including the headings, from the spreadsheet.

4. From the corresponding table, right-click and select Paste Rows.

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

Page 68: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Importing DataYou 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.

Using the Cross-ReferenceYou can view how many times each object in the project is used, as well as a list of objects that are not used.

To find objects:

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

Page 69: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

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

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

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

4. To close the results pane, click Find window at the bottom of the page.

To track object use:

1. Go to Run > Tools > UseCount.

To view objects that are not used, click the UnusedObjects tab.

Intellisense and RefactoringAll the input fields, either on the datagrids or at the drawing tools, where you can use tag names or object names, which are enabled through Intellisense.

The Intellisense feature presents a list of valid objects according the letters you are typing and the valid entries to that specific input field. You can insert the selected item in the list pressing enter, space, the dot key or other symbol keys.

The Intellisense fields also have built-in tooltips and validation. Putting the mouse over a field will present the expected entries to that field. When you have an invalid input, the border of the field will become red and the tooltip will show the error.

Refactoring is the procedure of changing the definition of Tag Names, or any other objects Names (such as alarm groups, device nodes and any other) after that symbolic name is already in use in the application.

Thanks to the centralized SQL configuration, Action.NET allows you to rename any object by simply typing the new name at the configuration table where that object is defined, all the references to that object will be valid, using the new name with no actions required.

For instance, to rename a tag that is already being used all across the project, just go to Edit-Tags-Objects and rename it. The same applies to Edit-Alarms-Groups, members at templates or any named object at the system.

Action.NET User Guide 61

Page 70: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Dictionaries and Localization

Runtime Language localizationYou can localize the text in your application in as many languages as needed. You create a dictionary for each language.

Note

To localize user interface text, be sure to select the Localizable option (Dynamics Configuration window, TextOutput options) for each display component that you need to localize.

To configure localization:

1. Go to Run > Dictionaries -> Localization.

2. Click New.

The Create New Localization Dictionary window displays.

3. Enter a name for the dictionary.

4. Click OK.

5. Click Load Strings to populate the table with all controls that have strings that are set to Localizable. In the TranslatedText column, enter the text in the dictionary language.

6. Create controls in a display or write a script to use the object called Client.Dictionary to configure the dictionary or dictionary options for the user. When the dictionary changes, the dictionary changes throughout the application.

The alarm messages can also be included in the localization if the related check-box is set.

On Info-Project-Settings, you can also define the default Culture Information that the application is using and the runtime property Client.CultureInfo allows you to change it during runtime. Some display controls may get the Culture Info directly from the Operating System, so the correct procedure is to have both the Operating System setting and the project settings with the target culture to run the application.

Enumeration SetsYou 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

Page 71: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 DictionaryYou 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 WizardsOn 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

Page 72: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Import Action.NET Projects:

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

Import Rockwell ControlLogix

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

Import OPC server configuration

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

Import From OSIsoft PI System

When connecting with PI System Historian Servers, it automatically creates the link with the PI Tags tags, elements and attributes from PI AF servers.

When connecting with PI AF, it automatically brings the definition of all templates and asset elements in the selected database, as well as the mapping to communicate with server.

Note

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

Importing XML tag templates

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

Importing .NET classes from a DLL

Creates Tag Templates that matches the selected .NET classes.

Configuring PreferencesYou 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

Page 73: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Click close in the upper-right corner.

Setting Description

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

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

Auto-save document

Select how often you want the system to automatically save changes when editing scripts, using the drawing tools, and creating reports.

Note: The system saves most changes automatically, regardless of this setting. This setting is only applicable to the functions listed above.

Confirm on Build commands

Select to display a confirmation window every time you build the project.

Allow to duplicate Tags on

Historian Tables—Select to permit the same tag name more than once in the historian tables. You may want duplicate tags with different rates or on different groups.

Device 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

Page 74: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

66 4: Engineering Workspace

Page 75: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Creating and Editing TagsTags are the process variables for your application. Use tags and their properties to set up the data model for your process. You can extend the types of tags available and create new types to fit your application needs, such as machine data, equipment status, vessels, or the representation of any asset attributes in your plant.

To create and edit tags:

1. Go to Edit > Tags > Objects.

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

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.

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

See also: “Navigating in the Workspace” on page 52, 

Action.NET User Guide 67

Page 76: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

EditTagsObjects table

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

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.

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.

N3—Number with three decimal places.

X—Hexadecimal (supported only for integral types).

C—Currency.

When configuring output on the Displays, it is possible to define the format to each output field individually, but in most scenarios it is easier to attach the default formatting to the tag itself

For more information, see “Tag Formats” on page 72.

See also: “Navigating in the Workspace” on page 52,

68 5: Tags, Assets and Templates

Page 77: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

4. Continue adding as many tags as you need.

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.

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.

ValueOnly—Retains only the value.

Properties—Retains all properties, including the value.

PropertiesOnly—Retains all properties, except the value.

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.

Protected—Read-only tag that is visible on the OPC server to remote projects and OPC clients.

Public—Tag is visible on the OPC server to remote projects and OPC clients.

Domain Tag value for the entire project or value specific to each client display.

Server—Tag value is consistent across the entire project and all remote client displays. Most tags in a project should be Server tags.

Client—Tag value is local to each remote computer running a client display (web or visualizer displays).

Use Local tags to denote temporary data specific to individual client computers. The most common use of Local tags is when temporary data is needed to manage the user interface on the displays. Local tags allow different values on each client computer.

Comment Enter any comments about this tag.

[Other columns]

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

Column Description

See also: “Navigating in the Workspace” on page 52

Action.NET User Guide 69

Page 78: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Pulse: the the tag changes to 0, then changes immediately to 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

Tag Type .Net Type Value RangeDigital System.Int32 0 through 1Integer System.Int32 2,147,483,648 through 2,147,483,647Long System.Int64 2,147,483,648 through 2,147,483,647

Double System.Double-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values; 4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values

Decimal System.Decimal0 through +/-79,228,162,514,264,337,593,543,950,335 with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest nonzero number is +/-0.000

Text System.String 0 to approximately 2 billion Unicode charactersTimer System.Int32 Same range of the Integer, but with Built-in Parameters to create timersDateTime System.DateTimeOffset from 12:00:00 midnight, January 1, 0001 to 11:59:59 P.M., December 31, 9999

TimeSpan TimeSpanData Interval, in Days, Hours, Minutes, Seconds and Milliseconds, where each of those properties can hold a Double value

Guid Guid Standard GUID unique identifierDataTable System.Data.DataTable Holds a in-memory DataTable

Image System.Byte[]Can hold an Image file contents or any binary contents. Maximum size of the contents is the long value

See also: “Navigating in the Workspace” on page 52,

70 5: Tags, Assets and Templates

Page 79: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 80: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

@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.

See Table 2 for date/time 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

Page 81: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Creating Tag TemplatesTag templates let you create new tag types that can have multiple attributes.

To create a tag template:

1. Go to Edit > Tags > Templates.

2. Click New.

The Create New Tag Template dialog shows.

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

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

4. Click the insertion row to create a new attribute for this tag template.

5. Enter or select information, as needed.

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).

Table 2: Date/time format examples

Specifier Description

See also: “Navigating in the Workspace” on page 52

Action.NET User Guide 73

Page 82: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 AssetsIf 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.

Description Enter a description of the attribute.

[Other columns]

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

Column Description

See also: “Navigating in the Workspace” on page 52,

74 5: Tags, Assets and Templates

Page 83: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Creating CategoriesIf 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 Runtime Objects

Tag NamespaceAll 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

Page 84: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

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

Page 85: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Adding Tags for Data LoggingAfter you configure your tables for the tag historian, you can configure the tags for the historian.

To configure the tags for the tag historian:

1. Go to Edit > Tags > Historian.

You can copy and paste tags from the Objects tab.

2. Enter or select information, as needed.

See also: “Workspace Overview” on page 49, “Navigating in the Workspace” on page 52

Action.NET User Guide 77

Page 86: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Continue adding as many tags as you need.

Configuring Historian TablesBy default, the tag historian database has one table configured. The table settings control when tag values are written to the historian and how long the values stay in the historian. If you want some tags to have different settings, you should configure additional tables with the settings you need and assign tags to the appropriate table.

The table configuration is independent of the Database selected to store the information, as described in “Historian Database Provider” on page 79.

If you want some tags to have different settings, such as the logging interval, you should configure additional tables with the settings you need and assign tags to the appropriate table. You can also edit the settings of the default table.

In general, do not store more data than you need. Storing a large amount of data slows the recovery of that data. You should use triggers and deadbands that are as large as possible, to ensure you have the information you need, without overloading the system.

To configure a historian table:

1. Go to Edit > Tags > Historian.

2. Do one of the following:

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

To create a new table click New.

Column Description

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

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

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

RateOfChange

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

HistorianTable

Select the table that has the settings you want to use for when to save and how long to retain this tag’s value.

See also: “Navigating in the Workspace” on page 52

78 6: Historian and Data Logging

Page 87: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Enter or select information, as needed.

Historian Database ProviderThe database used to store the Tag Historian is defined in Edit > Datasets > DBs by the database connection object named TagHistorian.

By default, when a new project is created, the TagHistorian is defined to use the Spin built-in embedded SQL database SpinDB.

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

Option Description

Database Display-only name of the current tag historian database.

Table Name Enter a name for table in the database.

Auto Create Select to have the system automatically create the table in the database.

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

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

Time Deadband (Log TimeSpan)

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

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

Compress Number of the days before compressing the data. The compressed data is still available to trend charts and scripts, but access is slower. To never compress the data, leave this field blank or enter 0 (zero).

See also: “Workspace Overview” on page 49

Action.NET User Guide 79

Page 88: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Using OSIsoft(tm) PI SystemThe system can seamlessly use the OSIsoft PI System as the historian provider. In this scenario it is not necessary to do any Historian configuration at all. If the tag is mapped to a OSIsoft PI point, the system will automatically call the PI Server to get data when plotting trend charts or any script or display methods requiring historian information.

The system can work with both the PI System and our the built-in Historian at the same time, when historical information is requested to a point, either from trend charts or scripts, the system will look for that information on the built-in Historian module and, if not available, it will try to find that data on the PI server.

For information on connection to PI Systems, see “Import Wizards” on page 63

Historian Tables SchemaThe historian tables contain the following columns:

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

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

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

_TagName_Q—Column automatically created for the quality of the data, using the OPC quality specification.

Typically you can associate up to 200 tags with each historian table, but that number is dependent on how many columns your target Database allows. The tags should be

See also: “Navigating in the Workspace” on page 52

80 6: Historian and Data Logging

Page 89: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

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

Customizing Getting SamplesThe trend chart object calls the Historian server to get the data to plot the charts. In some scenarios, you may want to override that configuration and define a .NET code to provide the values. This is used, for instance, to plot recipe calculated data, future data, data from other SQL tables or any custom scenario.

The custom GetSamples method should be defined at any Script Class and on Edit-Tags-Historian that method must be defined at the column GetSamplesMethod.

The prototype of the method is:

DataTable GetSamples(string[] tagNames, object startRange, object endRange)

When overing tables used on time charts the StartRange and EndRange are of type DateTimeOffset. When getting date to X-Y charts, the Range are double variables.

The Returned DataTable shall have the columns:

DateTime: Date time of the sampleTagName: 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

Historian Runtime Objects The Historian namespace has the properties and current of the Historian server.

The Historian.Table object has the list of Historian tables defined and its properties.

The following tag property, if there is the data logging, is enabled to the tags.

Tag.tagname.Historian

See also: “Workspace Overview” on page 49

Action.NET User Guide 81

Page 90: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

See also: “Navigating in the Workspace” on page 52

82 6: Historian and Data Logging

Page 91: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Adding and Editing UsersTo add security to your installation of Action.NET, you can add and edit users. Action.NET comes with the following user names configured by default:

Administrator—Built-in user that controls the Security System. No password is configured by default. You should set a password for this user.

Guest—Used by default to access Action.NET and when you log off as another user. No password is configured by default.

User—Use as a generic user. No password is configured by default.

The Administrator-level and Guest-level user IDs have built-in attributes. The Administrator is the only user who can delete or block users and the only user who can define passwords for Database DB interfaces. Guest Users are used for anonymous login users, and do not have passwords assigned to them.

Do not create other users with those names, neither change the row ID of those users, as the system is hard-coded to assume those users exit with the pre-defined IDs.

Note

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

Action.NET User Guide 83

Page 92: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

To add and edit users:

1. Go to Edit > Security > Users.

2. Enter or select information, as needed.

3. Continue adding as many users as you need.

See the following sections related to the other user tabs:

“Configuring Permissions” on page 84.

“Configuring Policies” on page 85.

“Removing Users” on page 86.

Configuring PermissionsYou 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.

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.

PasswordHint

Enter information that can help you remember the user’s password.

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.

84 7: Security and Users

Page 93: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Continue adding as many groups as you need.

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

EditSecurityPermissions.Run - Disable Windows applications switch

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

Access to the Start button and the Task Toolbar.

Windows Logo button

Ctrl + Alt + Del

Ctrl + ESC

Alt + Tab

lt + F4

Windows Logo + L

Note

To allow to disable the keyboard short-cuts to switch applications, the file DisableTaskSwitchProtection.bat must be run from the installation directory, in-order to install the keyboard driver necessary to implement this feature.

Configuring PoliciesYou 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.

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.

Action.NET User Guide 85

Page 94: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Continue adding as many policies as you need.

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

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

Removing UsersYou 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.

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.

86 7: Security and Users

Page 95: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Managing Runtime-only UsersWhen 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.

Customizing Login ProceduresThe Login page is editable, you just need to select the display with name LogOn to edit its layout. As you can see in the code behind of that display, it calls the method Security.Logon() to do the validation of the user. If you want to perform any other user validation, you just need to modify that logic calling your own validation system and then calling the LogOn method, according to the results of your validation.

Another way to customize the logon is to put your own custom logic on the ClientStartup script task. The script is executed on any computer that is connecting to the server application, you can perform verifications based on computer IP, computer name, Windows Active-Directory Logged user, or any other criteria to specify if the user is allowed to start the application and which should be their credentials, after that you can either call client.Shutdown to terminate the application if it was an unauthorized access or Security.Logon() with a user that matches the selected security profile.

By default, when starting the application on a client computer, instead of requesting a login, we start the system with the user GUEST. The user Guest is equivalent to an anonymous login, if you don’t want that on your application, just replace the startup page with a page requesting the Logon information.

Action.NET User Guide 87

Page 96: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Security Runtime ObjectsThe 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

Page 97: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 ProtocolsConnectivity 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 ProtocolsThe 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

Page 98: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 ProtocolsThere 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 InterfacesThere 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

Page 99: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

IEC-870-5-101

IEC-870-5-104

OSIsoft PI System and PI AF, using AFSDK connector

Driver toolkitSpin 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

Page 100: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

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.

TCPIP—Use for Ethernet or wireless networks.

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

Description Enter a description for this channel.

Column Description

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

Protocol Shows the Selected protocol

ProtocolOptions Configure the options for this protocol.

Note

The Protocol options are dependent upon the Selected Protocol. Select the protocol on the ComboBox on the top of the page and press the HELP button on its side to access the specific protocol documentation.

Interface Shows the Physical interface used by this channel.

Column Description

92 8: Devices and Interfaces

Page 101: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

6. Continue adding as many channels as you need.

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

See the following sections related to the other device tabs:

“Configuring Nodes” on page 93

“Configuring Data Points” on page 95

“Configuring Access Types” on page 96

Configuring NodesNodes 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.

Settings Configure the settings for this channel. The values available depend on the Interface the channel is using.

Note: The settings here must match the settings on the slave device.

For serial interface, typically keep the defaults.

For a MultiSerial interface, enter the number of RS-232 ports to use in the Ports field.

For TCPIP interface:

AcceptUnsolicited—Accept unsolicited of slave.

ListeningPort—TCP port where the slave device is connected (default is 502).

NodeConnection—Number of parallel requests sent to each node (asynchronous communication).

MaxSimultaneousConnections—Maximum number of concurrent connections.

ShareNodeSameIP—A single IP address and several slaves connected. For example, RS485/Ethernet Converters.

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.

Column Description

Action.NET User Guide 93

Page 102: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

For Modbus protocol:

For a Serial interface, the SlaveID is the device slave address on the Modbus network. Valid addresses are 1-247.

For a MultiSerial interface, select the number of the ComPort and enter the SlaveID the device slave address on the Modbus network. Valid addresses are 1-247.

For a TCPIP interface:

IP—Identification of the slave device address.

Port—TCP port where the slave device is connected (default is 502).

SlaveID—Device slave address on Modbus network. Valid addresses are 1-247.

For OPC interfaces:

Service URL—Defines the location of the OPC server.

You must configure the DCOM settings to access an external OPC server. Contact support for assistance.

RefreshRate—Server refresh rate.

AllTemsSameGroup—Adds all items in a single group OPC. In this way, only one connection is created with OPC server.

WaitAfterConnect—Time to communicate after the application is running.

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

Description Enter a description for this node.

94 8: Devices and Interfaces

Page 103: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Continue adding as many nodes as you need.

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

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

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

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

You can import the data from csv files.

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

For OSIsoft® PI database, there is a Action.NET version to share definitions.

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

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

Configuring Data PointsThe number of data points you can configure is related to both the ProductModel configured for the project and your license for Action.NET. For information about the product models, see “Product Family and Model” on page 188.

To configure data points:

1. Go to Edit > Devices > Points.

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

2. Enter or select information, as needed.

Action.NET User Guide 95

Page 104: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

3. Continue adding as many points as you need.

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

Page 105: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring Access TypesYou 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

Page 106: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Diagnostics toolsAfter 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 InformationThe 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

Page 107: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 WatchThe 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

Page 108: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Trace WindowThe 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

Page 109: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Device Runtime ObjectsThe namespace Device is the entry points to all objects related with the Device module.

The Device.Channel object lists all configured channels and its runtime properties

The Device.Node object lists all configured nodes and its runtime properties

The Device.AccessType object lists the defined access types and has options to execute synchronous calls on reading and writing to the device.

The following tags properties are updated based on the device module:

tag.tagname.DevicePoint: Device point address connected with this tag

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

Action.NET User Guide 101

Page 110: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

102 8: Devices and Interfaces

Page 111: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

9: Alarms, Events and AuditTrail

The following sections describe how to configure alarms and events:

“Configuring Audit Trail” on page 103,

“Configuring Alarm Options” on page 104,

“Configuring Alarm Groups” on page 105,

“Configuring Alarm Items” on page 106,

“Visualizing Alarms and Events” on page 110,

“Alarm Acknowledgment” on page 110,

“Subscribing Notifications” on page 110,

“Alarm Database and Table Schema” on page 111,

“Alarm Runtime Objects” on page 111.

Configuring Audit TrailYou can select which events are logged to the Audit trail. This configuration is for the system events you select, not alarms.

To configure Audit Trail:

1. Go to Edit > Alarms > Groups.

2. Click Settings.

Action.NET User Guide 103

Page 112: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

The AuditTrail window displays.

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

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

5. Click OK.

Configuring Alarm OptionsYou can configure general alarm and event settings that determine how the system handles alarms during startup and how long alarms and events remain in the alarm historian.

To configure general alarm options:

1. Go to Edit > Alarms > Groups.

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

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

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

104 9: Alarms, Events and AuditTrail

Page 113: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring Alarm GroupsAlarm 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

Page 114: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

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

See the following sections related to the other alarm tabs:

“Configuring Alarm Items” on page 106.

Configuring Alarm ItemsWhen configuring Alarms, you configure the specific thresholds that generate an Alarm. You can have multiple rows for the same tag to set different thresholds for the tag. In turn each item refers to an Alarm Group, to set the viewing behavior and actions during transitions alarm status (active/normal).

To configure Alarms:

1. Go to Edit > Alarms > Items.

2. Enter or select information, as needed.

LogEvents Select when you want the alarm to be logged to the alarm historian:

None—Alarms are not logged.

Active—Log when alarm is active.

ActiveAck—Log when the alarm is active and acknowledged.

ActiveNorm—Log when the alarm returns to normal.

All—Log all of the above conditions.

Colors Select the colors you want to use for each state:

Active—Configured alarm is in the alarm state.

Normalized—Configured alarm was in the alarm state, but is no longer in the alarm state and still needs to be acknowledged.

Acknowledged—Configured alarm has been acknowledged, but still is in the alarm state.

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

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

Description Enter a description of this alarm group.

[Other columns]

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

Column Description

106 9: Alarms, Events and AuditTrail

Page 115: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

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

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 columns]

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

Action.NET User Guide 107

Page 116: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

EditAlarmsItems.ConditionEvaluation 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.

Multiple Items for Alarm TagIt should be noted that one tag can have one or more entries in this table, depending on the desired behavior. The figure below shows examples of tags with four alarm records (analog variables), two records (events that two distinct behaviors you want) and a record of alarm

108 9: Alarms, Events and AuditTrail

Page 117: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

(signaling state of equipment).

Enable Limits per TurnThe "Enable Limits per turn” option is especially oriented to systems that need to implement the functionality of load levels, (light, medium and heavy). When selected in the Items table, as shown below, three columns appear for you to specify the limits for each load level.

The CurrentShift attribute reports the current round: (0 = light, 1 = medium and 2 = heavy).

The EnableLimitsByShift attribute tells if the feature is enabled or not, respectively. If enabled just create a routine that every time set the shift (shift): "Alarm.CurrentShift = x" where x = 0/1/2.

Action.NET User Guide 109

Page 118: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Visualizing Alarms and EventsIn 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 AcknowledgmentThere are several methods for acknowledging alarms:

Using Alarm visualization object in the displays.

Tag properties.

Alarm group or Alarm item runtime properties.

Acknowledge All Alarms

You can use the <Alarm.AckAll> property that acknowledges all active Alarms.

Acknowledge Single Alarm or Highest Priority Alarm

The <Alarm.PriorityItem.UnAck> property allows acknowledgment of the highest priority Alarm configured in <Edit.Alarms.Items> the "Priority" column if there is a pending ack alarm.

Acknowledge a Specific Alarm

To acknowledge a specific alarm use the <Alarm.Items.IDxx.Unack> property.

To verify the contents of the IDxx Alarm columns, go to Alarm item and add the ID column (right-click in the table and select "ID").

Subscribing NotificationsIn 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

Page 119: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Alarm Database and Table SchemaThe database used to store the Alarms is defined in Edit-Datasets-DBs by the database connection object with the name AlarmHistorian.

By default, when a new project is created, the AlarmHistorian is defined to use the Action.NET built-in embedded SQL database SpinDB.

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.

Alarm Runtime ObjectsThe Alarm namespace has the properties of the Alarm server.

The Alarm.Group object has the list of all defined and its properties.

The Alarm.Item object has all alarm items and its properties.

The following tag properties are connected with the Alarm module:

tag.tagname.Hi: configuration and runtime status of the HI alarm, similar names for the other alarm types.

Action.NET User Guide 111

Page 120: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 121: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

10: Datasets and Data Exchange

The following sections describe how to configure databases:

“Configuring Database Connections” on page 113

“Configuring Database Tables Access” on page 119

“Configuring Database Queries” on page 120

“Configuring Files for Data Exchange” on page 120

“Configuring Files for Data Exchange” on page 120

“Dataset Runtime Objects” on page 121

Configuring Database ConnectionsBy default, Action.NET uses an embedded SQL database (SpinDB) for the tag and alarm historians. You can configure external databases such as Microsoft SQL Server, Oracle, or other external database. If you expect your database to grow to more than 10 GB, you should consider using an external database.

When using the embedded database, the system automatically creates the database file. When using external databases, the database itself must already exist. However, Action.NET can create the tables in the database.

You can use also use external databases as a data source in your application to display such things as customer or product information or to configure systems from recipes.

You must be logged in as Administrator in Action.NET to configure the database login and password.

To configure an external database:

1. Go to Edit > Datasets > DBs.

2. Click Create New.

The Create New Database Connection window displays.

3. Enter or select information, as needed.

Action.NET User Guide 113

Page 122: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

4. Click OK.

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

5. Enter or select information, as needed.

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

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.

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.

114 10: Datasets and Data Exchange

Page 123: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Accessing Microsoft Excel

Connect to Excel databases using an ODBC driver, an ODBC DSN, or OleDB.

Creating the Databases

ODBC:

1.Select, then name a range of rows and columns in the worksheet. This will allow the software to read the information as a table.

2.Choose one of the following naming processes for your version of Microsoft Excel.

For Microsoft Office 2007:

Right-click the selection then choose "Name a Range".

For Microsoft Office 2003:

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

Action.NET User Guide 115

Page 124: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Using ODBC with a DSN:

116 10: Datasets and Data Exchange

Page 125: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 126: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 127: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring Database Tables AccessIf 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.

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

Reading and writing the table contents

The runtime access to the table contents is executed automatically when the table is mapped to a DataGrid object, see “Configuring a DataGrid Window” on page 159.

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

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

Page 128: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring Database QueriesYou 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.

3. Continue adding as many queries as you need.

Getting the query contents

The runtime access to the table contents is executed automatically when the query is mapped to a DataGrid object, see “Configuring a DataGrid Window” on page 159.

You can also get the query contents or perform operations on the query, using the runtime properties for the Dataset.Query object, see http://www.spinengenharia.com.br/help/an-2014/runtime/index.html.

Configuring Files for Data ExchangeYou can configure files to retrieve data from a network location.

To configure database files:

1. Go to Edit > Datasets > Files.

2. Enter or select information, as needed.

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

Page 129: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Dataset Runtime ObjectsThe namespace Dataset is the entry point to all objects related with the Datasets module.

The Dataset.DB object lists all configured database connections and its runtime properties

The Dataset.Table object lists all configured tables and their runtime properties

The Dataset.Query object lists the defined queries and their runtime properties.

The Dataset.File object lists the defined queries and their runtime properties.

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

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

Page 130: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

122 10: Datasets and Data Exchange

Page 131: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

11: Scripts and .NET Framework

The following sections describe how to create scripts:

“Configuring Tasks” on page 123

“Configuring Classes” on page 124

“Working with the Code Editor” on page 125

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 TasksTasks 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

Page 132: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

1. Go to Edit > Scripts > Tasks.

2. Enter or select information, as needed.

3. Enter the code for the task.

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

4. Click Save.

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.

Red X—Task has warnings or errors. Double-click to go to the warning or error. Warnings are information only. Errors will prevent the code from running, but only that specific task. The rest of the application will run.

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

Description Enter a description of this task.

124 11: Scripts and .NET Framework

Page 133: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring ClassesClasses 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.

3. Enter the code for the class.

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

4. Click Save.

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.

Red X—Class has warnings or errors. Double-click to go to the warning or error. Warnings are information only. Errors will prevent the code from running, but only that specific class. The rest of the application will run.

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

Description Enter a description of this class.

Action.NET User Guide 125

Page 134: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Working with the Code EditorYou 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 ExpressionsBesides 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

Page 135: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 136: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Using the .NET Debugger

Creating debugger Information

Action.NET has an integrated .NET code debugger. In order to use it, it is necessary that the local computer has cache files with the necessary files to run the debugger. The steps to enable the debugger are:

1. Enable the Debug Information on Run > Build > Messages

2. As necessary, save the source code you want to debug again, so the debug information is created. This step is only necessary the first time you open the project on the computer, as after that, the background compiling will keep generating the necessary debugging information to enable the use of breakpoints and step execution.

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.

DisableCondition

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

BuildStatus Read-only. Set after you click Verify.

Green check mark—Expression runs without errors.

Red X—Expression has errors.

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

Column Description

128 11: Scripts and .NET Framework

Page 137: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Breakpoints, steps and watch

In order to setup a breakpoint, open the desired code, select the line and press the Insert Breakpoint at the toolbar.

When the system stops on a breakpoint you can perform step by step execution or hit the continue button.

In order to inspect local .NET variables, tags or project objects, you can select the text in the script editor and, when the execution is stopped on a breakpoint, the toolkit will show the current value of the variable.

You can also add .NET variables or project objects to the Watch window. When adding tags or project objects, you need to use the @ symbols, example @tag.tag1, so the system knows it is a project object, not a local .NET variable. Keep in mind the Watch display is only updated when the execution is stopped. If you want to have real-time values for tags and objects you can open the PropertyWatch diagnostics tool.

Script Runtime ObjectsThe namespace Script is the entry point to all objects related to the Scripts module.

The Script.Task object lists all configured database connections and their runtime properties.

The Script.Class object lists all configured tables and its runtime properties.

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

Action.NET User Guide 129

Page 138: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

130 11: Scripts and .NET Framework

Page 139: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Selecting and Creating DisplaysDisplays are components of the user interface for your application. A display can have multiple elements in it, including controls, data display areas, static areas that always display, such as a menu bar or status bar, and more. Components can be static, that is, they always display, such as a menu bar, toolbar, or status bar. Components can also change depending on what the user clicks or selects.

To select displays:

1. Go to Edit > Displays > Displays.

2. Select CardView or TableView.

3. See see the list of available display.

Column Description

Name Read-only. Configured in Draw.

Mode Read-only. Configured in Draw.

Preview Read-only. Shows a thumbnail of the display.

AllowSelection

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

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

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

Description Enter a description for this display.

Action.NET User Guide 131

Page 140: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

To create a new display

1. Go to Draw > Drawing.

2. Click Close Display and Create New One.

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

The New Display window displays.

3. Enter or select information, as needed.

Column Description

Display Name Enter a name for the display.

132 12: Displays and Symbols

Page 141: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

4. Click OK.

NoteIf the display is for use with an iPad or iPhone, you must select the iPad/iPhone iOS Target option when you first create the display. You cannot change this setting later.

1. On the left side of the window in the DisplaySettings, enter or select information, as needed.

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

Description Enter a description for the display.

iPad/iPhone iOS Target

Note: If you plan to use this display for iPad and iPhone users, be sure to select this option when you create the display. You cannot change it later.

Select to be able to use this display with iPads and iPhones. When you select this option, display settings in other parts of the Draw area only show options that are applicable to both Windows and iPads/iPhones.

Select the default view for iPad and iPhone users:

Landscape

Portrait

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.

Column Description

Action.NET User Guide 133

Page 142: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

2. Use the drawing tools to create the display.

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

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

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

Note

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

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

Show on PageSelector Object

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

iPad/iPhone iOS target

Read-only. Shows whether you selected the iPad/iPhone iOS Target option when you created the display.

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

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

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

Title Enter a title that appears at the top the display.

Title Background

Select a color for the title background.

Stays Open on Page Change

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

Stays Open After Losing Focus

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

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

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

Column Description

134 12: Displays and Symbols

Page 143: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 LayoutsA 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.

NoteThe 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.

4. Click OK.

5. At the top right of the Layouts tab, 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.

Action.NET User Guide 135

Page 144: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

6. Click Add Row to add a row for a display.

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

7. Enter or select information, as needed.

Displays Code BehindUse the CodeBehind tab to define a set of functions connected with a display. You can write code in either standard VB.Net or CSharp. You can also switch between the two. If you change your language selection, the system automatically converts existing code to the selected language.

If you need references to your own assemblies, use Run > Build > References.

CodeBehind functions can be executed when opening or closing, or while the display is open, depending on how you configure the code. You can use CodeBehind to define mouse and input command handling methods to be executed on a specific display.

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

HorizontalAlign Select the horizontal alignment for this layout:

Left

Center

Right

VerticalAlign Select the vertical alignment for this layout:

Top

Center

Bottom

136 12: Displays and Symbols

Page 145: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

NoteBecause 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.

Desktop and iOS Client SettingsThe desktop client settings control how the application displays on client computers. You configure Windows clients separately from iOS clients.

To configure the desktop client settings:

1. Go to Edit > Displays > Displays.

2. If needed, configure the Desktop Settings for Windows client by clicking Clients.

3. Enter or select information, as needed, and click OK.

Action.NET User Guide 137

Page 146: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Column Description

Maximize When Open

Select to maximize the client window to fit the monitor.

Stretch Select how the layout stretches when clients use the application:

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

Mouse Cursor Visible

Select for the mouse pointer to be visible.

OnScreen KeyPad

Select to display a numeric keypad.

Disable Web Comments

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

When Mouse Is Over Command Areas

Select what displays:

Show object edges—

Cursor—Select the type of cursor.

Verify Tag Quality on Client Displays

On undefined quality show—Select option and character to show when PLC determines the data quality is undefined.

On OPC Bad quality show—Select option and character to show when OPC server determines data quality is bad.

Share Logged User at Same Computer

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

138 12: Displays and Symbols

Page 147: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

4. If needed, configure the Desktop Settings for iOS client by clicking iOS devices.

5. Enter or select information, as needed, and click OK.

6. Enter the Number of Monitors clients will use.

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

Designer Drawing ToolsThe Drawing tab has the following controls to create, format, and configure displays:

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

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

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

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

Page 148: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

To configure dynamic graphic displays, from the Main Menu, click on the “Draw” icon.

.

The Appearance parameters dictate the brush style used when drawing objects in the display, including colors. Clicking on the Fill option lets you specify Colors, gradients, or objects with which to fill the graphic.

The DisplaySettings dictate the attributes of the display. Displays can be configured as Pop Ups, Dialogs, or normal displays.

Like with any graphical object, displays can have varying colors and patterns, borders, titles and more.

One special feature is that you can specify a transition Animation to use when entering the display much like you have in PowerPoint presentations.

Table 1 describes the vertical toolbar buttons.

140 12: Displays and Symbols

Page 149: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Table 1: Vertical toolbar buttons

Button Description

Selection Tool Click an object to select it.

CTRL+click to select multiple objects (and object groups), one at a time. Hold down the CTRL key as you click each object.

Shift+click to toggle selected object from among more than one selected objects.

Click in an open area of the display then select a group of elements by highlighting the elements while holding down the left mouse button.

Double-click an object to open the Dynamics Configuration window, which provides settings for dynamic object properties.

Direct Selection Tool Use this tool to select an object inside a group (and modify its

properties). Click the object to select it.

You can also add, remove, and modify the points in a Polyline with the Direct Selection Tool:

To move the point select it by clicking the point and holding the left mouse button down. Drag the point to its new position.

Double-click a point to add a new point adjacent to the selected point.

Right-click a point to delete the selected point.

Hand ToolUse the Hand Tool to modify the view window by clicking the display background and holding down the left mouse button then shift the display to the desired position.

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.

RectangleCreates a rectangle object.

EllipseCreates an ellipse object.

PolygonCreates a polygon object.

PolylineCreates a polyline object.

ButtonCreates a button object.

Text OutputCreates a text output object.

Text BoxCreates a text input/output (I/O) object.

To link the text I/O object with a tag, double-click the text I/O object, under the Dynamic configuration window select the TextIO dynamic.

Action.NET User Guide 141

Page 150: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

CheckBoxCreates a check box object. Right-click this button to access the following tools:

Creates a radio button object.

Creates a combo box.

Creates a list box.

Creates a password box.

Creates a date picker.

Creates a date/time text box.

Creates a label box.

Creates a slider control.

After selecting a tool from this menu, it becomes the default tool for that button in the vertical toolbar.

Open Symbol Library

The symbol library includes both built-in and user-defined symbols.

Web BrowserCreates a Web Browser object. Right-click this button to access the following tools:

Creates a Page Selector object, where users can go directly to a page in the application.

Creates a Report Viewer object.

Creates an XPS Viewer object.

Creates a Circular Panel object. For more information, see “User Interface Controls” on page 153.

Creates a Pie Chart object. For more information, see “Configuring a PieChart” on page 154.

Creates a Bar Chart object. For more information, see “Configuring a BarChart” on page 154.

Creates a Calculator object.

Creates a Child Window object.

Creates an external WPF component.

After selecting a tool from this menu, it becomes the default tool for that button in the vertical toolbar.

Table 1: Vertical toolbar buttons (Continued)

Button Description

142 12: Displays and Symbols

Page 151: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Table 2 describes the horizontal toolbar buttons.

Alarm WindowCreates an alarm window. Position the alarm window and double-click to configure the alarm window settings. For more information, see “Configuring an Alarm Window” on page 155.

Trend WindowCreates a trend window. Position the trend window and double-click to configure the trend window settings. For more information, see “Configuring the Trend Window” on page 156.

DataGrid WindowCreates a data grid window. Position the data grid window and double-click to configure the data grid window settings. For more information, see “Configuring a DataGrid Window” on page 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

Move To The Front

Table 1: Vertical toolbar buttons (Continued)

Button Description

Action.NET User Guide 143

Page 152: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Dynamics and AnimationsDynamics let you configure real-time changes on the object look, position, size, colors, the value the object reflects, user action to take when a user clicks, and more. That dynamic behavior is configured by creating links of the object properties to tags or other project runtime properties.

In some systems, the name “animation” is used to refer to those dynamic runtime changes; in Action.NET we elected to use the term “Dynamic” to make the clear distinction with the WPF animations features; WPF animations also refers to changes the graphics object properties when running the displays, but using timers and other objects status to guide the animation, not the real-time database values.

When you double click on an object, or press the Dynamics button, or select it on the right-click context menu, a list of compatible dynamics that can be applied to the selected object is presented.

Table 3 lists the available dynamics.

Move To The Back

Resize Width

Resize Height

SpaceEvenlyHorizontal

SpaceEvenlyVertical

FlipHorizontally

Table 2: Horizontal toolbar buttons (Continued)

Button Description

144 12: Displays and Symbols

Page 153: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Action Dynamic

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.

Table 4: Action Dynamic configuration 

Setting Description

Action Executes action triggered by the user interface:.

Action.NET User Guide 145

Page 154: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Run Expressions Examples:

Sum two values and pass the result to another tag.

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.

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.

SetValue—Sets the value of the object.

Object—The object that will receive the value.

Value—The value that will be passed to the object.

ToggleValue—Toggles the object value. If the object current value is zero, the value will be 1. If the object current value is different from zero, the value will be 0.

Object—The object that will be toggled.

OpenDisplay—Opens a display.

Display—The name of the display that will be opened.

CloseDisplay—Closes a display.

Display—The name of the display that will be closed.

OpenLayout—Opens a layout.

Layout—The name of the layout that will be opened.

RunScript—Runs a script that is placed in the display CodeBehind tab. Do one of the following:

Enter the new method name and click New.

Select one of the existing methods in the comboBox.

RunExpressions—Runs the given expression.

Expression—Enter the expression. For example: Tag.a + 1, or Tag.a + Tag.b, or Math.Cos(Tag.angle) * Math.PI.

Result (optional)—Enter the tag or the property that will receive the expression value.

Table 4: Action Dynamic configuration  (Continued)

Setting Description

146 12: Displays and Symbols

Page 155: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 Appearance

The object appearance when the mouse is over it.

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 Appearance

The object appearance when the mouse is Not over it:

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 Appearance

The object appearance when it is selected:

IsSelected—Defines whether the object is selected.

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).

Scale Reference Center

Left

Up

Right

Down

Action.NET User Guide 147

Page 156: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Text I/O dynamic

Hyperlink 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.

InputOnly—Only input allowed (the current tag value is not shown, but new values can be entered).

OutputOnly—Only 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.

Table 7: Hyperlink Dynamic configuration 

Setting Description

HyperLink Opens a hyperlink.

HyperLinkType Select the hyperlink type:

http

ftp

file

mailto

telnet

Url Set the URL to open.

148 12: Displays and Symbols

Page 157: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Fill, Line and Text Color Dynamic

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.

Greater than zero—Object will be disabled.

For more information, see “Configuring Expressions” on page 126.

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

Confirm Message Shows a confirmation dialog before taking some action:

textBox—Enter the message that will appear in the dialog.

checkBox—Enables or Disables the Confirm Message.

Table 9: Fill, Line and Text Color Dynamic configuration 

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

Page 158: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Bargraph 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.

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.

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.

Table 9: Fill, Line and Text Color Dynamic configuration  (Continued)

Setting Description

150 12: Displays and Symbols

Page 159: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Visibility Dynamic

MoveDrag Dynamic

Bar Color The bar graph color.

Orientation The bar graph orientation:

to up

horizontal center

to down

to right

vertical center

to left

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.

Greater than zero - Object will be hidden.

For more information, see “Configuring Expressions” on page 126.

Tooltip The string that will appear as a tooltip

Opacity ObjectValue—The value used to set the opacity.

Range—The minimum and maximum values that will correspond to the minimum and maximum opacity.

Opacity—The minimum and maximum opacity (0 - invisible, 0.5 - a bit transparent, 1 - opaque).

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.

Table 10: Bargraph Dynamic configuration  (Continued)

Setting Description

Action.NET User Guide 151

Page 160: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Scale Dynamic

Rotate Dynamic

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.

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

Table 14: Rotate Dynamic configuration 

Setting Description

Rotate Rotates the object dynamically.

Expression the value used for the rotation.

Table 12: MoveDrag Dynamic configuration  (Continued)

Setting Description

152 12: Displays and Symbols

Page 161: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Skew Dynamic

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

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

Table 14: Rotate Dynamic configuration  (Continued)

Setting Description

Action.NET User Guide 153

Page 162: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

TextOutput Dynamic

User Interface ControlsTo configure dynamics, see “Dynamics and Animations” on page 144.

To configure a circular panel, see “User Interface Controls” on page 153.

To configure a pie chart, see “Configuring a PieChart” on page 154.

To configure a bar chart, see “Configuring a BarChart” on page 154.

To configure an alarm window, see “Configuring an Alarm Window” on page 155.

To configure a trend window, see “Configuring the Trend Window” on page 156.

To configure a DataGridWindow, see “Configuring a DataGrid Window” on page 157.

Configuring a Circular Panel

Double-click any Circular Panel object in the display to configure it. Table 17 describes the Circular Panel configuration.

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

Page 163: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring a PieChart

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

Configuring a BarChart

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

Image Select a resource image to display.

Preview Read-only display of selected image.

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.

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 Horizontal Labels 45°

Select to angle the labels below each bar at 45°.

Show value over bar

Select to display the bar value above the bar.

Table 17: Circular Panel configuration (Continued)

Field Description

Action.NET User Guide 155

Page 164: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring an Alarm Window

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

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.

Events—Displays only the SystemEvents (Edit > Alarms > Groups).

AlarmHistory+Events—Displays past alarms and SystemEvents.

Merge Hi and HiHi Lines

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

History Interval/To

Enter the start and end dates for the alarms.

Show Column Titles

Select to display the column titles.

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

Show Group Control, Label

Enter text to display above the column titles.

AllowSort Select to let users sort the data by column.

Allow Column Reorder

Select to let users change the order of the columns.

Filter Enter SQL statement to limit the alarms displayed.

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

Table 19: Bar Chart configuration (Continued)

Field Description

156 12: Displays and Symbols

Page 165: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Configuring the Trend Window

Double-click any Trend window object in the display to configure it. Table 21 describes the Trend window configuration.

Display Millisecond

Select to include milliseconds in the alarm time.

Ack Selected Line

Configure settings for acknowledging an alarm.

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

Visible Select for column to display in the alarm window.

Allow Filter Select to let users filter the column.

Show in Column Chooser

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

Title Enter the text for the column title.

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

Sort Select how to initially sort the column.

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.

Table 20: Alarm window configuration (Continued)

Field Description

Action.NET User Guide 157

Page 166: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Using Y Axis Scaling

Considering:

Y-axis Min = 0;

Y-axis Max = 100;

The trend control allows many pens to be displayed together. When your pens do not have the same range, you can use the tips below to fit your data in the same chart, for better visualization:

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.

Table 21: Trend window settings (Continued)

Field Description

158 12: Displays and Symbols

Page 167: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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).

Configuring a DataGrid Window

Double-click any DataGrid window object in the display to configure it. Table 22 describes the Data Grid window configuration. Critical fields that you must configure are shown with an *.

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 Control, Label

Enter text to display above the column titles.

Show Column Titles

Select to display column titles.

AllowSort Select to let users sort the data by column.

Auto Create Column

Select to have the system automatically include all table or query columns in the window. If selected, you do not have to configure the columns below. To customize specific columns, add the column to the column list and configure the settings to the right (described below).

Deselect to manually configure each column that you want to include using the Columns list and settings to the right (described below).

Filter Enter SQL statement to limit the data displayed.

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

Columns For each column you want to customize or include manually, add the column and configure the settings to the right of the list (described below).

Visible Select for column to display in the data grid window.

Action.NET User Guide 159

Page 168: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Managing Images and Symbols

Image ResourcesYou 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.

Editable Select to let users edit the column.

Show in Column Chooser

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

FieldName Enter a name for the column.

FieldType Select the column data type.

Title Enter the text for the column header.

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

Sort Select how to initially sort the column.

Table 22: Data Grid window configuration (Continued)

Field Description

160 12: Displays and Symbols

Page 169: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

4. Select the image files and click Open.

5. In each row, enter or select information, as needed.

Managing SymbolsThe 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.

Display Runtime ObjectsThe namespace Display lists all displays with their properties and open and close methods.

The namespace Layout lists all layouts with their properties and open and close methods.

The namespace Client has the properties of the environment on each connected client computer or mobile device.

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

Column Description

Name Edit the default name.

Description Enter a description of this image.

Action.NET User Guide 161

Page 170: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

162 12: Displays and Symbols

Page 171: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

13: Reports and Data Access

The following sections describe how to generate reports:

“Creating Reports” on page 161

“Using the Report Editor” on page 162

Creating ReportsReports 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

PDF

SaveFileName

Enter a string, along with {ObjectProperties}. Use the full path.

Action.NET User Guide 161

Page 172: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Using the Report EditorYou create the text, formatting, and values for the report using the text editor.

To use the text editor:

1. Go to Edit > Reports > TextEditor.

2. Create the text, tags, and formatting for the report.

3. Click Save.

4. Configure the report properties for the display dynamics or script that will run the report.

Report Runtime ObjectsThe namespace Report list all configured reports.

The most commonly used methods of the report is the Save Command:

Report.Report1.SaveCommand()

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

Description Enter a description of this report.

[Other columns]

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

Column Description

162 13: Reports and Data Access

Page 173: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

14: Run, Test and Publish Projects

The following sections describe how to build and test applications:

“Running the Application” on page 163

“Using the Diagnostic Tools” on page 164

“Build and Pack Projects” on page 168

“Project Version Control” on page 169

“Information Runtime Objects” on page 170

Running the ApplicationYou can test the application one of the following ways:

From Run > Test—Lets you run the project in “safe mode,” which runs the application with some features protected. Historical, Alarm and Event data are logged to temporary files so they will not effect the production logs, and drivers cannot write any data to the devices.

From Run > Startup—Lets you run the fully operational project, without building the project.

You can run the project using both test and startup at the same time.

For information about using the diagnostic tools available, see “Using the Diagnostic Tools” on page 164.

To test the application:

1. Do one of the following:

Go to Run > Test.

Go to Run > Startup.

2. Enter or select information, as needed.

Field Description

UserName Enter a valid username to access the application.

Password Enter the password that corresponds to the username.

Project Server

Read-only. Displays the IP address or name of the computer where the project is based on the configuration on the Server tab. See “Running Projects” on page 45.

Action.NET User Guide 163

Page 174: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Click either Run Test or Run Startup.

Using the Diagnostic ToolsAfter starting the project, the Startup window, lets you select diagnostic tools:

PropertyWatch (Watch), TraceWindow (Trace), and ModuleInformation (Info).

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 Computer

Read-only. Displays whether the configured server is the local computer or a remote server.

Execution Path

Overrides the default execution path, which is the project file location.

Module Information

Run the Module Information tool.

Property Watch

Run the Property Watch tool.

Trace Window

Run the TraceWindow tool.

Run Modules Select which Modules execute when running the project.

Status Field shows current running and connected or disconnected status.

Click Try to Connect to connect to the running application. Required to let changes you make to the project apply immediately to the test or startup runtime.

Click Disconnect if you do not want changes you make to the project to apply immediately to the test or startup runtime.

Click Stop to stop the execution of the application.

Online Configuration Enabled

Select to let changes you make to the project apply immediately to the test runtime. You must also be connected to the running project (see Status setting above).

Field Description

164 14: Run, Test and Publish Projects

Page 175: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

For example, Tag.Coils, Device.Channel.Modbus.Status. On the right side are additional properties of the selected object.

Action.NET User Guide 165

Page 176: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 177: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

To use the Module Information:

1. Go to Read Groups Information to look at the number of Success and Failed communications, to quickly identify the communication blocks.

2. If you have systematic errors in all blocks or status codes with negative values, typically it means you cannot access the remote device. Verify if the node address is correct.

3. If you have a block with systematic errors, verify the tags and addresses connected with that block. Use the Trace Window with Device information to collect information about those communication errors.

4. For some protocols, such as OPC, the Discarded items will show the wrong addresses in the configuration.

Action.NET User Guide 167

Page 178: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Build and Pack ProjectsAction.NET is constantly compiling the module you are editing in the background and

validating all scripts and displays. If you have not run a full build, the BuildStatus column reflects any warnings or errors found during the background compile process.

Double-click a row with a red X to go to the source of the warning or error. Warnings are informational and do stop the script from running. Errors prevent the specified script from running, but do not affect the whole application. If a script or display has a warning, it will still run.

Periodically, you should run a full build:

When you have made many changes and you want a full validation and recompile of the whole project.

When you want to assign a build number to a version.

When you want to pack the database. When the build executes, the system creates a backup of the current project file. If you want to save the project as it was for this build, rename the backup file.

When you are getting ready to publish, that is, create the read-only runtime application

To build the application:

1. Go to Run > Build > Messages.

2. If you want to pack the database, select the Pack Database after Build option.

Select this option to significantly reduce the size of the project file. The system creates a file with the backup extension, which is the database before the packing. Typically, you want to pack the database every time you run a build.

3. If you want to save all displays, select the Save all Displays when Building option.

Be sure to use this option if you have made changes to the symbol library. This option applies to all symbol library changes throughout the project.

4. Click Build.

168 14: Run, Test and Publish Projects

Page 179: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Tip

When checked, a backup of project connected with that build is automatically created.

Project Version Control

Tracking configuration changesAction.NET provides many ways to help you to keep track of the project configuration

changes:

All configuration tables have the DateCreated and the DateModified information.

The Run-Build-History shows all Build commands executed to that project. A backup of the project in that state my be available according the user settings.

The Info > Track > Tables shows all configuration tables, listing the number of rows and if the tables where changed.

The Info > Track > Changes shows all project objects that have been modified. In order to enable or disable that, you must be logged as Administrator. By default, the object tracking is only enabled after you publish the project, but you can enable that anytime, independently of using or not the publish feature.

Publishing the ProjectPublishing the project creates a read-only version of the project.

It is NOT necessary to publish the project to install it for production. In scenarios that you intend to have continuous changes to the project in field, it is simpler to put the main project file, TPROJ, directly on the production computer.

The benefits of publishing is that the system created a compacted and real-only version of the project file. The file created has the same name of the project file, with the publish version number and the extension TRUN.

This allows the system to comply with regulated industries.

The typical scenarios to the publish command are:

You want to deploy a read-only version of the project, for instance to be in compliance with certified and regulated environments.

You want to use the automatic version numbering system. The result of publishing is a .TENG file that also contains a major (1.0) or minor (0.1) version number as part of the file name. In addition, Info > Track helps you manage the files published to the field, including which project build they are.

Action.NET User Guide 169

Page 180: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

To publish the project:

1. Go to Run > Build > Messages.

2. Select the desired build settings and Click Build.

3. Go to Run > Publish.

The Current Project Settings fields show the read-only status of the project.

4. Select the Publish Settings you want.

5. Click Publish.

Information Runtime ObjectsThere names a few runtime objects that provide information about running the project.

The Info namespace in the main location for runtime status. The main objects on that namespace are:

Info.Project: information about the project that is runningInfo.License: information on the licenseInfo.Module: Information and start/stop command to ModulesInfo.Trace(): displays a message on the TraceWindowInfo.TestMode: shows if the project is running in Test Mode

The Server namespace has information about the server computer.

The Client namespace has information about each client computer. running a graphical interface.

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

170 14: Run, Test and Publish Projects

Page 181: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

15: Deploying Action.NET Projects

Action.NET projects can be deployed to run locally on a stand-alone computer or embedded device, as well in a client-server distributed architecture or on the cloud.

The following sections describe how to deploy the runtime application:

“Local and Distributed Systems” on page 171

“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

“Setup the server to start the runtime” on page 174

“Remote Client Users Setup” on page 179

“Deploying Redundant Systems” on page 183

Local and Distributed SystemsWhen you are finished developing and testing the application, you can deploy the runtime application for use by the end-user clients.

Action.NET supports many deployment scenarios such as:

Embedded devices with no local user interface.

Stand-alone panels or computers with local user interface.

Distributed systems with many client stations accessing a server.

Redundant servers with multiple users connected.

The setup procedures to each scenario have many common steps. For all the systems, even the stand-alone installations, Action.NET has the concept of the Server and Client components.

The Server components is the Project file and the Modules that run the server side tasks, such as data-acquisition, alarms and data logging.

The Client component are the Graphical User Interfaces and related scripts.

When you have a local or stand-alone project the server and the client components are just running on the same machine.

The client technologies used by Action.NET simplify a lot the deployment as you have to install the project on the server computer; all the clients stations will use the project from its server.

Action.NET User Guide 171

Page 182: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Product installation on the target computer Access to all referenced PLCs and their data.

Full installation of Action.NET, including either the embedded web server (TWebServer) or IIS.

The installation requires .NET. See “Getting Help” on page 2.

The stand-alone computer or the server components on distributed systems must that have the Action.NET installed and licensed.

The section “Installing Action.NET” on page 3 describes the standard way to install and license Action.NET.

When you are not using components that require the setup of the Windows Registry, such as the OPC components, you also just copy the product files without running any installation (that is very useful to embed the software on devices), removing project examples or engineering components, adding custom protocols.

On distributed systems, the client computers don’t require a license, they just need to be allowed to connect with the server based on number of runtime users enabled on the server. For more information on the client setup, see “Remote Client Users Setup” on page 179.

If the system will have remote users, the TWebServer or IIS must be installed and running on the server computer.

172 15: Deploying Action.NET Projects

Page 183: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

License and Project Settings VerificationThe 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.

Installing the Project Configuration filesThe project configuration is just one file, with extension TPROJ or TRUN, according to whether you want to install for production the main project configuration file or a published version.

The Project Management utility allows you to connect with remote servers and download the project files to remote computers.

Although that one file contains the entire project configuration, you should use the following check-list to ensure that any external dependencies are also taken care of.

If the folder structures on the Production computer is not the same you used for development, make sure that all the places you have FILE PATHS in your

Action.NET User Guide 173

Page 184: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Setup the server to start the runtimeYou can run the project in any of the following ways:

Start manually, from the Action.NET main window and project list, right-click the project and select Run Project.

Start manually, when configuring the project, go to Run > Startup and click Run Startup.

Start the project automatically, which is the best option for production environments.

The best way to define an automated startup of the product, it is to use the configuration interface available on the Project Management tools, at the SERVER tab.

174 15: Deploying Action.NET Projects

Page 185: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Using a Shortcut on Windows StartupYou can configure a Windows server to automatically start a project using a startup shortcut. The startup shortcut only starts the application when a user logs in to Windows. and the application stops running when the user logs off of Windows.

This procedure is automatically executed by the system when the startup mode is selected, as described in “Setup the server to start the runtime” on page 174. This section will explain how to manually setup those shortcuts.

Action.NET User Guide 175

Page 186: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Command lines parameters:”

/project: Project Path and Name between double quotes

/username: (optional), username that will be used to start the server , if you do not specify, the user guest will be used.

/redundancy: indicates that the server redundancy is being used (requires ip1 and ip2)

/ip1: IP Address of the Primary Action.NET Server

/port1: TCP port of the Primary Action.NET Server

/ip2: IP Address of the Secondary Action.NET Server

/port2: TCP port of the Secondary Action.NET Server

The modules that will be started are configured in the project, at Run.Startup.

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

Creating the shortcutGo to Start > All Programs, and right-click the Startup folder, and select Open.

1. In the Startup folder, right-click and select New > Shortcut.

176 15: Deploying Action.NET Projects

Page 187: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

4. Type or paste the full command line, examples: "C:\Program Files (x86)\Spin\Action.Net\an-2014.1\TStartup.exe" /project:"C:\ActionNet Projects\Project1.tproj"

5. Click Next.

6. Enter a name for the shortcut.

7. Click Finish.

When you restart the computer next, the project will start automatically.

Using a Windows Service to StartupYou can configure a Windows server to automatically start a project when the computer starts using a Windows Service. The Windows Service starts the application as soon as the computer is powered on and the Windows Operating System starts, even if no user has logged in to Windows.

This procedure is automatically executed by the system when selected for startup mode, as describe on “Setup the server to start the runtime” on page 174. This section will explain how to setup it manually.

Note

These methods do not start the client (user interface with the displays). To automate the client startup, see “Automatically Starting Windows Clients” on page 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

Page 188: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

3. Next to the Server Command Line field, click Copy to Clipboard.

This copies the read-only field that was populated based on the fields above it.

4. Open a text file, paste, and continue with steps 5 through 7 in the file.

5. If you are not using redundancy, delete the redundancy part of the text.

6. At the beginning of the command line, enter or paste the full path to the Action.NET installation folder and put quotes around it.

It should look something like this:“C:\Program Files (x86)\Spin\Action.NET\an-2014.1.3\tStartup.exe”

7. Before the “tproj” text, enter or paste the full path to the project.

It should look something like this:/project:C:\Action.NET Projects\<project_name>.tproj

The whole command line should look something like this:“C:\Program Files (x86)\Spin\Action.NET\an-2014.1.3\tStartup.exe” /project:/project:C:\Action.NET Projects\<project_name>.tproj

/username:<username>

8. Leave the text file open for use in step 10.

9. From the DOS prompt, go to the <.NET Framework Install Path> and execute the following command:

installutil <InstallPath>\<an-version>\TStartupAsService.exe

Example:C:\Windows\Microsoft.NET\Framework\v2.0.50727>installutil c:\Program files\Spin\Action.NET\an-2014.1\TStartupAsService.exe

10. Copy and paste the command you created in the text file.

Field Description

Enable Configuration

Select to enable the configuration.

Primary Server IP and Port

Enter the IP address and port of the primary server.

Secondary Server IP and Port

Enter the IP address and port of the secondary server, if any.

On Primary Startup

Select the option you want.

Historian Replication

Select how to handle historian replication.

Connection Timeout

Connection timeout time, in seconds, to switch to secondary server.

Server Command Line

Read-only field populated based on the fields above. Click Copy to Clipboard to copy the command for use.

178 15: Deploying Action.NET Projects

Page 189: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

11. In the Windows Registry, set up the parameters on:

"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TStartup\ImagePath"

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.

Remote Client Users Setup

Windows Rich ClientsYou can deploy your application for use by Windows rich clients.

Table 1 describes how the rich client deployment works.

Windows Smart ClientsYou can deploy your application for use by Windows smart clients.

The smart client runs like the rich client, that is, they work the exact same way, but the smart client uses the ClickOnce™ installation. This technology lets you have the same functionality as the rich client, but without having to install Action.NET on your computer.

Table 1: Windows rich client deploymentAction.NET

Installation Install Action.NET on the client computer. See “Installing Action.NET” on page 3.

How to start Run the TRichClient.exe program.For an example of how to automatically start the client when a user logs in to Windows, see “Automatically Starting Windows Clients” on page 181.

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

Page 190: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Windows Web ClientsYou can deploy your application for use by Windows web clients.

Table 3 describes how the web 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.

How to start From Internet Explorer (or a shortcut) go to the URL:

http://<ServerIPAddressorName>/an-2014.1/TSmartClient.application

For an example of how to automatically start the client when a user logs in to Windows, see “Automatically Starting Windows Clients” on page 181.

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.

How to start From Internet Explorer (or a shortcut) go to the URL:

http://<ServerIPAddressorName>/an-2014.1/TWebClient.Xbap

For an example of how to automatically start the client when a user logs in to Windows, see “Automatically Starting Windows Clients” on page 181.

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

Page 191: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Automatically Starting Windows ClientsYou 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:

“C:\Program Files (x86)\Spin\Action.NET\an-2014.1.3\TRichClient.exe” /ip1:<IP_address>

For a smart or web client—At the beginning of the command line, enter or paste the full path to the Internet Explorer installation folder and put quotes around it.

It should look something like this:

“C:\Program Files (x86)\Internet Explorer\iexplorer.exe” http:<IP_address>/an-2014.1/TSmartClient.application

“C:\Program Files (x86)\Internet Explorer\iexplorer.exe” http:<IP_address>/an-2014.1/TWebClient.Xbap

17. Click Next.

18. Enter a name for the shortcut.

19. Click Finish.

When you next restart the computer, the project will start automatically.

iOS, iPhone and iPads, ClientsYou can deploy your application for use by iOS clients: iPad, iPhone, and iTouch. For other tablet devices, contact support.

Table 4 describes how the iOS deployment works.

Action.NET User Guide 181

Page 192: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

To deploy on an iOS device:

1. From your iOS device, tap the App Store icon.

You can also go to the Apple App Store from iTunes.

2. Search for and install the SCADA HMI Client app.

3. Start the SCADA HMI Client app.

4. Enter the following information:

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.

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.

Execution On iOS, it runs natively, thus providing higher performance, enhanced security, and access to native graphical components, compared to other applications using Terminal Client, Remote Desktop, or HTML web.

Communication Communicates with the server by calling a web service using port 80. The server must be on the same VPN or local network as the iOS device, or it can be a public IP address, as long as HTTP access is enabled.

Field Description

H ost Server IP address or name of the project server.

Port Port 80.

Polling Defines the refresh rate between the client and the server, expressed in quarters of a second. The default value of 1, means the client gets new data from the server every 250 ms. When connecting to servers located on the Internet or low bandwidth networks, that value should be increased. For more information, refer to the help for the app.

User Project user name as configured in the project. The default is guest.

Password Project password associated with the user name.

Project Project name on the remote project server.

182 15: Deploying Action.NET Projects

Page 193: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Deploying Redundant Systems

Configuring Redundancy optionsYou can configure application redundancy by configuring two computers as servers. One computer will be the primary, and the other will be the secondary or hot standby. If the primary computer or connection to the computer fails, the system automatically fails over to the secondary computer.

Note

If you selected HMI as the Product Family, the redundancy configuration is not available.

To configure redundancy:

1. Go to Info >Project > Redundancy.

2. Enter or select the information, as needed.

Field Description

Enable Configuration

Select to enable the redundancy configuration.

Primary Server IP and Port

Enter the IP address and port of the primary server.

Secondary Server IP and Port

Enter the IP address and port of the secondary server.

On Primary Startup

Select the option you want.

Historian Replication

Select how to handle historian replication.

Connection Timeout

Connection timeout time, in seconds, to switch to secondary server.

Server Command Line

Read-only field populated based on the fields above. Click Copy to Clipboard to copy the command for use.

Rich Client Command

Read-only field populated based on the fields above. Click Copy to copy the command for use.

Smart Client URL Read-only field populated based on the fields above. Click Copy to copy the command for use.

Web Client URL Read-only field populated based on the fields above. Click Copy to copy the command for use.

Action.NET User Guide 183

Page 194: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Automatically start the application on a Windows client:

1. Go to Info > Project > Redundancy.

2. Enter or select the information, as needed.

3. Click the Copy button next to the type of client you want to start automatically.

Field Description

Enable Configuration

Select to enable the configuration.

Primary Server IP and Port

Enter the IP address and port of the primary server.

Secondary Server IP and Port

Enter the IP address and port of the secondary server, if any.

On Primary Startup

Select the option you want.

Historian Replication

Select how to handle historian replication.

Connection Timeout

Connection timeout time, in seconds, to switch to secondary server.

Rich Client Command

Read-only field populated based on the fields above. Click Copy to copy the command for use.

Smart Client URL Read-only field populated based on the fields above. Click Copy to copy the command for use.

Web Client URL Read-only field populated based on the fields above. Click Copy to copy the command for use.

184 15: Deploying Action.NET Projects

Page 195: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

16: Runtime Namespaces

Project Runtime Objects

All the Project components, such as Tags, Alarms, Devices have associated .NET classes and objects, with properties and methods accessible by the runtime system, as explained on “Object Model and Namespaces” on page 21. The .NET documentation for those Namespaces, following the MSDN layout, is accessible at http://www.spinengenharia.com.br/help/an-2014/runtime/index.html

Microsoft .NET Framework classes

Action.NET Runtime has access to all the features of the Microsoft .NET Framework, as a pure managed code application. For information about the C# and VB.NET classes refer to Microsoft MSDN .Net Framework 4 online documentation at http://msdn.microsoft.com/en-us/library/gg145045(v=vs.100).aspx

Script Toolkit

When creating code inside Action.NET, we provide a set of utility methods, which we call the Script Toolkit. Those methods are available at the namespace TK from any code inside the project. The methods available are defined at http://www.spinengenharia.com.br/help/an-2014/runtime/index.html

Custom On-Screen Keyboards

When using touchscreen panels, you can customize the on-screen keyboard or add your own. Contact us for source code examples on implementing custom keyboards.

WPF Controls Toolkit

You can add any WPF control directly on Action.NET displays with no toolkit required. But, if you want to have a custom configuration dialog, accessing the Tags in the application, you can use the WK (WPF Controls Toolkit) interfaces. Contact us to get examples on creating WPF controls, or if you need assistance to encapsulate Active-X controls or .NET controls to use them within Action.NET displays.

Data Access COM API

If you need to access the real-time database from external applications, using any programming language or even JavaScript code on web browsers, you can use the Data Access COM API, described at http://www.spinengenharia.com.br/help/an-2014/runtime/index.html

Import Wizards and Driver Toolkit

Action.NET has extensions to allow you to create your own Device Communication Drivers, using the Driver Toolkit, as well, custom importing tools and add-in components. Contact Spin if you need information on those additional extensions.

Action.NET User Guide 185

Page 196: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

186 16: Runtime Namespaces

Page 197: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 Version numbersThe Action.NET version is a string like: an-2014.1.10.

The meaning of that string is: <product_ID>-<Major_version>.<Minor_version>.<Update>. So in this example:

Product ID = fs

Major version = 2014

A major version is a major release, which happens every one to two years. It includes major changes to the product documentation or features. Existing customers must either have the maintenance plan or purchase an upgrade to have access to it.

The new version installs to a new folder, so it does not affect any projects or product installation of previous versions. The license protection, either hardkey or softkey (dongle), must be updated to use that release.

Minor version = 1

A minor version is typically released every three to nine months and is not verified by the license. It includes product enhancements and corrections.

A minor release is similar to what is sometimes called a Service Pack. However, with Action.NET, you can have multiple minor releases installed in different folders and use all of them at the same time on the same computer.

Update = 10

The update number reflects small modifications on top of the current version. Updates are always compatible with the current release.

Action.NET User Guide 187

Page 198: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

Action.NET Licenses TypesYou can verify your license from the License tab, on the main page or when editing any project from Info > License > Current.

For information about how to install or update a license, see “Licensing Action.NET” on page 5.

Product Family and Model Action.NET has different product families and models that address requirements for different markets. Your license defines the highest product family and model you can use. You can always create projects that use a lower family or model.

The product family defined in your license affects the features and functions available. The product families available are, in hierarchical order (highest to lowest):

Action.NET Framework (Action.NET for use with PI System)

Action.NET Enterprise

Action.NET HMI

Action.NET OPC-Server

Action.NET Express

If you do not have a license, the system defaults to Action.NET Express, which is for evaluation and training only. Its runtime execution times out and stops automatically. Using the Express version, you can only edit and run projects created with the Express product family. When editing a project, a message displays in the top-right when you are running the Express version.

The web site has the updated information on the product families description and differences: http://www.spinengenharia.com/products/overview/.

The product model defined in your license defines the maximum number of communication points and tags allowed. For more information, see “Running Projects” on page 45.

Unlimited—No limit on the number of real-time communication points. Your computer memory and performance are the only limitations.

ServerLarge—Up to 100,000 real-time communication points.

ServerMedium—Up to 50,000 real-time communication points.

188 17: Action.NET Versions and Licenses

Page 199: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

ServerSmall—Up to 25,000 real-time communication points.

Plant—Up to 15,000 real-time communication points.

Supervisor—Up to 5,000 real-time communication points.

Line—Up to 2,500 real-time communication points.

Work Cell—Up to 1,500 real-time communication points.

Machine—Up to 500 real-time communication points.

Panel—Up to 300 real-time communication points.

Instrument—Up to 150 real-time communication points.

Express-Up to 75 real-time communication points.

You can change this setting later, if needed.

Family Depending on your Action.NET license, you may have options here to build applications for a specific version of Action.NET. Be sure you know what runtime version your end users will use. The option you select determines how many communication points you can create for the project:

Enterprise—Use for larger, more complex applications, with unlimited real-time communication points.

HMI—Use for smaller applications that manage hardware with up to 1,500 real-time communication points.

Express—Use only for test or demonstration purposes.

OPCServer—Use when you know you will use only OPC functions.

You can change this setting later, if needed.

Model Depending on your Action.NET license, you may have options here to build applications for a specific product model. Select which model based on the number of real-time data points you will have in the projects.

Unlimited—No limit on the number of real-time communication points. Your computer memory and performance are the only limitations.

ServerLarge—Up to 100,000 real-time communication points.

ServerMedium—Up to 50,000 real-time communication points.

ServerSmall—Up to 25,000 real-time communication points.

Plant—Up to 15,000 real-time communication points.

Supervisor—Up to 5,000 real-time communication points.

Line—Up to 2,500 real-time communication points.

Work Cell—Up to 1,500 real-time communication points.

Machine—Up to 500 real-time communication points.

Panel—Up to 300 real-time communication points.

Instrument—Up to 150 real-time communication points.

You can change this setting later, if needed.

Action.NET User Guide 189

Page 200: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Remote Project AccessIn 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.

Project Settings versus License When editing projects, the information about product family on Info > License >Current reflects the license on your computer (or on the server if you are opening the project from a server).

The project family and project model on Info > Project > Version reflects the settings for that specific project and can be changed from Info > Project > Settings.

The features and functions available in a project are based on the project family set for the project (as defined on Info > Project > Version), not your license. If you have an Enterprise license, but a project was created with the project family set to HMI, the system only lets you use the features and functions that are valid for the HMI product family.

If you try to open a project that has a higher requirement than the license you have, you will not be allowed and a message on the top-right side will be displayed.

Using Multiple Versions ConcurrentlyMajor or minor releases install to different folders from previous releases. This lets you keep different Action.NET releases concurrently installed on the same computer.

190 17: Action.NET Versions and Licenses

Page 201: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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

Page 202: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

192 17: Action.NET Versions and Licenses

Page 203: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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.

.

App Domain or Application Domain

Represents the virtual isolated computer environment, where a .NET application runs. Isolated, in its context, means that the memory areas and components used by programing running in that environment are completely isolated from other programs running in the same computer.

The inherent isolation of the .NET domains creates an intrinsically safe protection for the running projects, as it prevents one process from interfering with another, allowing even two different versions of the same program to run side by side.

A more technical definition if AppDomain is the boundaries that the CLR (Common Language Runtime) provides around the objects created from the same application.

Application Refers to solution or final system created using Action.NET. The terms Application and Project are used with close meanings: Project refers engineering configuration and files necessary to implement the Solution and Application refers to conceptual solution that was created.

Assembly Refers to an executable file (.EXE or Library.DLL) created using managed code and Microsoft .NET framework.

Designer Component of the Engineering Workspace used to draw and animate displays and synoptic screens.

Action.NET User Guide 193

Page 204: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

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 Domain, Client Domain

Refers to the values and location of objects at run time. Domain server objects running on the server are the objects running on the server during runtime. Values associated with this object are system-wide. Client domain means that the object is running on the client station and each machine can have different values.

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/Points)

Auxiliary parameter to effect read and write points for a device, the treatment of Arrays, bit masks, strings, swap and other operations in which a DataType definition can not define them completely.

Module A program that accesses the database in real time (RtDB) and can be composed of one or more Assemblies.

Namespace An address space. All objects created with a Namespace have unique names. "Address space" can also be understood as a form of tier objects. All process variables are grouped in the tag namespace; all reports grouped in the namespace report. The name of an object should be unique within the namespace to which the object belongs.

Object Type (RunObj type)

Determines the type of runtime object (display, report, script).

Objects, Runtime Objects

Runtime objects are those objects visible (through their names) to access the project via scripts and displays, such as Tags, Reports, Alarms, Displays among others. The namespaces also identify which execution module is reponsible to update those values, for example the Alarm Module will start and will update the values of the runtime objects associated with the alarms.

194 18: Glossary

Page 205: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

ObjectValues, PropertyValue

Runtime objects (for example, Tags, deviceNodes, etc.) can have one or more properties defined. The TAG (and the property value), for example, MIN, MAX, description, among other properties.

PropertyWatch Diagnostic utility to check and modify the values of the objects at runtime.

Parameters(Tag Configuration)

Definition of the parameters of behavior and values processing for Tags.

Project A configuration set Studio sketches of displays, reports, scripts and user notes created and edited with a single entity.

projectDB / ProjectDatabase

ProjectDB (or project database) is a database that contains configuration information. Matches files with the extension <Project>.Tproj (current type, for example) or <Project>_ version.Teng (type released, for example).

Property or Atribute Property (value) associated with a Tag or object.

RunDB, Runtime Database/RtDB

The real time database created when the project is running. All objects running accessible (such as Tags, Displays, Reports) are objects on the Runtime Database, also called Real-Time Database or RtDB.

Runtime Refer to a project with modules loaded and running.

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

Page 206: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

Trust, Partial Trust, Full Trust

Partial Trust: Environment in which an application has limited 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 Visibility)

Refers to the tagging system; Tags can be Private, Public or Protected.

Public:

The value of the Tag during the execution of the Runtime is available for access to external Programs via TCP / IP or OPC Server. Also, the value of Tag is necessarily global or shared in all the client stations (Server Domain).

Protected:

Read-only.

Private:

A Tag set to "Private" can not be accessed by external applications (OPC Server, TCP / IP) and will run in Client or Server machines according to the application configuration with the following characteristics:

Tags used only in modules called by the client (such as displays and Reports) run in the scope of the client, or may have different values on each client machine (Client Domain);

Tags used in server modules, such as Devices and Alarms have a unique value in the system (Server Domain).

XBAP Xaml Browser Application (XBAP) is a graphical application using the XAML technology that runs inside a browser (Internet Explorer).

196 18: Glossary

Page 207: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 

Aaccess types

configuring 96accessing projects remotely 44adding

columns to tables 58users 83

alarm window, configuring 155alarms

configuring events for 106configuring general settings 104configuring groups for 105

applicationsbuilding 168publishing 169testing 163

assetscreating 74

automatically starting applications on the server 177

Bbar chart, configuring 154building

applications 168

Ccategories

creating 75circular panel, configuring 153classes

configuring 124clients

configuring for deployment 179, 180, 181configuring settings for desktop 137described 171

codecreating for displays 136editing 125

code editorusing 125

columnsadding 58definitions for common 58removing 58

configuringaccess types 96alarm events 106alarm groups 105data points 95dynamics 144event logging 103external databases 113general alarm and event settings 104localization 62nodes 93permissions 84policies 85preferences 64redundancy 183tag historian tables 78tasks 123

conventions, typographic 2copying

rows 59creating

assets 74categories 75

Page 208: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 

classes 124code for displays 136displays 131layouts 135projects 41reports 161scripts 123tag templates 73tags 67

customer support 2

Ddata grid window, configuring 157data points

configuring 95data, importing 60database

configuring for tables for tag historian 78databases

configuring external 113configuring queries for external 120configuring tables for external 119

date formats, valid for tags 72deploying

iOS 181Windows rich clients 179Windows smart clients 179Windows web clients 180

desktop clientsconfiguring settings for 137

devicesconfiguring 93, 95

disablingusers 86

displaysconfiguring desktop client settings for 137configuring dynamics for 144configuring iOS client settings for 137creating 131creating code behind 136

drawing toolsusing 139

dynamicsconfiguring 144

Eediting

scripts 125tables 55tags 67users 83

eventsconfiguring for alarms 106configuring general settings 104configuring logging 103

expressionsdescribed 126

external databasesconfiguring 113configuring queries 120configuring tables for 119

FFactoryStudio

installing 4licensing 5main page, described 41

Page 209: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 

managing multiple versions of 190object model, described 21starting 5understanding version numbering 187

findingobjects 51projects 42, 43

formats, valid for tags 72

Ggraphics

managing 159Guest user, defined 83

Hhistorian

configuring tables for 78

Iimages

managing 159importing

data 60installing

FactoryStudio 4iOS

deploying 181iOS clients

configuring settings for 137iPad/iPhone clients

configuring settings for 137

Llayouts

creating 135libraries

built-in methods 123Visual Studio 123

licensingFactoryStudio 5product family 188product model 188project settings vs license 190types and remote access 190

localization, configuring 62logging

configuring tables for 78for events 103

Mmain page, described 41major version, described 187managing

project information 46symbols 159

menus, using in FactoryStudio 52minor version, described 187

Nnavigating in FactoryStudio 52nodes

configuring 93numeric formats, valid for tags 72

Oobject model, described 21objects

Page 210: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 

finding 51tracking use of 60

Ppasting rows 59permissions

configuring 84pie chart, configuring 154policies

configuring 85preferences

configuring 64product family

described 188project vs license 190

product modeldescribed 188project vs license 190

projectsaccessing remotely 44building 168configuring redundancy for 183creating 41finding 42, 43license types and remote access 190managing information for 46managing remote access to 42, 43opening in different version 190publishing 169settings vs. license 190testing 163upgrading 45

publishingapplications 169

Qqueries

configuring for external databases 120

Rredo button 50redundancy

configuring 183remote access

and license types 190managing 42, 43using for projects 44

removingcolumns from tables 58users 86

reportscreating 161using the text editor 162

rich clients, deploying 179rows

copying and pasting 59runtime components, described 171runtime objects reference 123

Sscripts

configuring classes 124configuring tasks 123editing 125

searchingfor objects 51

servers

Page 211: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 

automatically starting application as a service 177described 171

service, using to automatically start applications 177smart clients, deploying 179starting

FactoryStudio 5support, technical 2symbols

managing 159symbols used in this manual 2system requirements 3

Ttables

adding columns 58common column definitions 58configuring for external databases 119configuring for the tag historian 78copying and pasting rows 59editing 55removing columns 58

tagscreating 67creating templates for 73editing 67valid formats 72

tasksconfiguring 123

technical support 2templates

creating for tags 73testing

applications 163text editor

using 162time formats, valid for tags 72toolbar

using 50toolbars

drawing, described 139toolkit

Visual Studio library 123toolkits

built-in methods 123tooltips, using 56tracking

object use 60translation, configuring 62trend window

configuring 156typographic conventions 2

Uundo button 50update version, described 187upgrading

projects 45user interface

configuring desktop client settings for 137configuring iOS client settings for 137creating displays for 131creating layouts for 135

usersadding 83configuring permissions for 84configuring policies for 85disabling 86editing 83

Page 212: Action.NET™ User Guide · server and event notification module, a logging and reporting module, an advanced historian server, business logic management capabilities, as well as

 

removing 86users, Guest, defined 83

Vvalidation, described 56versions

managing multiple concurrently 190opening projects with different 190

versions, understanding number of 187

Wweb clients, deploying 180Windows

automatically starting applications on 177Windows clients

configuring settings for 137deploying rich clients 179deploying smart clients 179deploying web clients 180