Sunteți pe pagina 1din 90

iXredHMI

Area for Software


header box (8,09x1,26)

Area for big and left picture Area for right picture

Position from top left corner: Position from top right corner:
Horizontal 0,5 cm Horizontal 0 cm
Vertical 0,5 cm Vertical 0,5 cm

iX Developer Advanced Training


Version 2.0.7
Agenda
Advanced Basic
A1. Visualization - Objects B1. General
B2. Basic Steps I
A2. Alarm Client / Server
B3. Basic Steps II
A3. Alarm Distribution
B4. Dynamics
A4. Data Exchange
B5. Controller + Tags
A5. Datalogger/Trend Dynamics B6. Actions
A6. Chart B7. Alarm Server
A7. Audit Trail B8. Security / User Management

A8. Report Generator B9. Trend


B10. Recipe
A9. Screen Alias
B11. Media Controls
A10. Expressions
B12. Multi Language
A11. Web Server B13. Text Library
A12. OPC UA Client / Server B14. Project / Panel Handling
B15. Hints + Error Support

2
Agenda
A1. Visualization Objects
Action Menu - General
Action Menu Settings
Action Menu Actions
Touch Objects General
Touch Objects Settings
Screen ID
Exercise [A1]
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

3
Action Menu - General
Inspired by mobile GUI
Touch scroll and gesture support
Actions are executed when clicking on an item
Three different styles (Tab, Expand and Bar)

Tab Expand Bar


Action Menu - Settings

Style:
Can be either Tab, Expand or Bar
Item Width/Height:
Size of each item in the menu
Picture Width/Height:
Size of picture (included in item)
Scrollbar Width:
Decides the width of the scrollbar. Value 0
removes the scrollbar

Scroll Sensitivity:
Sets the sensitivity of the scroll. Minimum
value is 1, maximum value is 10.
Action Menu - Actions

Edit Actions:
Configure Groups, Symbol, Text and Action for
each item in the menu

Menu Groups:
Possible to Add/Delete groups
Each group consists of:
Name: Also serves as the groups text
Picture: Select which picture that should be used

Actions:
Possible to Add/Delete items in each group
Each item consists of:
Text: The items text
Picture: Select which picture that should be used
Action: Decide what should happen when clicking
on the item
Touch Objects - General
Inspired by mobile GUI
Touch scroll and gesture support

Touch ListBox Roller Panel Touch Combobox

Scrollable through gestures User can roll with touch Scrollable through gestures
The items height is configurable gestures, thereby changing tag The items height is configurable
value
Touch Objects - Settings

Configuration of the objects is very similar

Settings:
Mainly size properties (e.g height of item, width
of scrollbar)

Configure Texts:
Opens dialog where texts can be defined

Scroll Sensitivity:
Sets the sensitivity of the scroll. Minimum value
is 1, maximum value is 10.

Configure Texts Dialog:


Select tag that shall control which text that is
focused

Each text is mapped towards a Start/End Value


range. If the value of the tag is within the range
then that text gets focus
Screen ID
A Tag can control which screen that should be opened, this is done with the Screen ID
Example: Jump to a specific screen when an alarm condition is fulfilled

Each Screen can be assigned a ScreenID

The ScreenID needs to be unique

System Tags
Current Screen ID:
Displays value/ID of the current screen

New Screen ID:


When value is changed iX RT will look for screen
with that ID (and change screen)
Exercise 1 - Menu

Exercise [A1]
1. Open the template application

2. Update the PopupMenu screen, it shall be


possible to navigate to the following screens:
- Home
- AlarmHistory
- TrendHistory
- Configuration
- AuditHistory

It shall also be possible to Login/logout from the


PopupMenu screen

3. Test the application and make sure that the menu


works as intended

10
Agenda
A1. Visualization - Objects

A2. Alarm Client/Server


General
Alarm Server
Alarm Client
Exercise [A2]
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

11
Alarm Client / Server - General
The Alarm Server distributes alarms to all connected Alarm Clients (via Ethernet)
The alarm configuration and storage is done only on the Alarm Server
Simple and efficient method, to have the same, actual alarms synchronized on different
Panels
Changes (e.g. Acknowledge) in one Client updates all connected Clients
Alarm Server
Topology:
Alarm1

Alarm2

Alarm3

Alarm1

Alarm2 Alarm1

Alarm3 Alarm2

Alarm3

Alarm Client
Alarm Client

12
Remote Alarm Server
Alarm Server = Definition, creation and generation of alarms
Alarm Client = Synchronizes with the server and displays the server alarms.

Click on Settings and select the Server


Mode tab

Server Mode: Both


Server Port: 1000
1000 is just an example,
Client Panels must use the same Port

Alarm Basics is covered in the


BASIC Training

13
Alarm Client
Alarm Server = Definition, creation and generation of alarms
Alarm Client = Synchronizes with the server and displays the server alarms.

Click on the Alarm Viewer Control

Extended Settings (available in Property Grid)


Server Address: [IP of the Server]
Clients connect to the entered IP Address

Server Port: 1000


1000 is just an example, configuration must
correspond to the server setting

14
Exercise 2 Remote Alarm Server

Exercise [A2]
1. Work two and two
2. Configure the Remote Alarm Server functionality on panel one

3. Configure the Remote Alarm Client/Viewer on panel two

4. Run the applications and make sure that the alarm viewers are synchronized

15
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server

A3. Alarm Distribution


General
Configuration
Enable Distribution Server
Demonstration
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

16
Alarm Distribution
The Alarm Distributor Server makes it possible to send alarm notifications via printer, SMS or E-mail
The function can be either local (connecting to an internal server) or external (connecting to
another panel acting as alarm distributor server)

Printer
Alarm Distributor Client Alarm Distributor Server

E-mail

SMS
Alarm Distributor Configuration

Add Alarm Distributor to the application


Insert Alarm Distributor

Add: Adds a route to the server

A route defines a number of filtering rules for


distribution of alarms. Multiple routes makes it possible
to send different kinds of notifications to various
receivers.

Delete: Deletes the selected route

Address Book: Contains list of all users (e-mail/phone


number)

Receiver Selection: Select which users that should be


notified when alarm occurs

Configure Distribution Devices: Configure Printer,


SMTP Client and SMS provider

18
Alarm Distributor Address Book

Address Book:
Each user needs to have:
First Name (mandatory)
Last Name (optional)
E-mail (optional)
Phone number (optional)

Receiver Selection:
Select which users that should receive SMS or E-
mail. Its also possible to decide if the alarms
should be printed.

Use the << or >> buttons to add/remove receivers


to routes.

19
Alarm Distributor Schedule & Filter

Filter (Optional):
Define which alarms that should be distributed, e.g
alarms in a Group named Critical

Define which alarm states that should be distributed


(default: Active only)

Scheduler (Optional):
Scheduling of each alarm distribution route can be
configured in the Scheduler tab.

Only alarms that occur between the start and stop


times will be distributed.

Example: One route per production shift (day,


evening, night)

20
Alarm Distributor Email Settings

E-mail Device Settings


From name: Name

From Email Address: Optional E-mail

SMTP Server Name/IP: Address of SMTP server that will


receive the alarm E-mails.

Port: SMTP Servers port number (default 25)

Code page: 65001 = Unicode. If a limited E-mail client is


used then its possible to define other code pages

Authentication Mode: Decide if Authentication should be


used or not.

User Name/Password: Required in order to connect to E-


mail server that requires ASMTP

Subject/Body: Define the e-mails subject and content. {n}


Texts are populated automatically by iX Runtime (e.g
Alarm text = {3})

21
Alarm Distributor Print Settings

Print Settings
Buffer settings: Decide if alarms shall be printed directly
or when the buffer is filled

Text Font Size: Font size used for the printout

Body: Define the text that shall be printed.


{n} Texts are populated automatically by iX Runtime (e.g
Alarm text = {3})

22
Alarm Distributor SMS Settings

SMS Device Settings


Basic URL: URL to http service (e.g 42it.eu)

Distribution: Number of retries and interval between each


retry

Body: Define the text that shall be sent via SMS.


{n} Texts are populated automatically by iX Runtime (e.g
Alarm text = {3})

23
Alarm Distributor Enable Distribution Server

To enable sending alarms to printer, via SMS or e-mail, the


Alarm Distributor Service must be enabled

Internal: Alarm Server sends events to internal Alarm


Distributor Service

External: Alarm Server sends events to an Alarm Distributor


Service running on another panel/runtime

In addition to the settings above, the Enable Distribution


option for the alarm groups and alarm items also has to be
checked

24
Demonstration

We will...
1. Add a few alarms to the application

2. Add the Alarm Distributor service to the template application

3. Configure the service so that it sends alarm e-mails to service@test.nu, SMTP: 192.168.98.1

4. Run the application and make sure that the alarms are distributed as e-mails

E-mail

25
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution

A4. Data Exchange


General
Configuration
Triggers
Exercise [A3]
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

26
Controller Data Exchange - General
Allows for real-time data exchange between controllers, even of different brands
Selectable per tag
Exchange can be triggered on event or time
Controller Data Exchange - Configuration

Open the Tag Editor

By clicking on the -button its possible to configure


the direction of the Data Exchange

Its possible to transfer a value from one controller to


several other controllers

Example
The value of D0 [Melsec] will be transferred to both
DB10.DBW0 [Siemens] and Temperature [AB
ControlLogix]
Controller Data Exchange - Trigger

The data exchange can be triggered when:

Value Change (default):


When iX detects that the value has been updated then
it will write the new value to the other controller(s)

Trigger:
Can either be triggered on Time or when a tag changes
its value

Performance Considerations:
Value Change will generate separate Write requests
which might affect the applications performance

If a Trigger is used iX will try to fit as many tags in one


write telegram as possible. Therefore its
recommended to use consecutive addresses in the
data exchange configuration.
Exercise 3 Data Exchange

Exercise [A3]
1. Add a new Modbus driver to the application
2. Configure the Modbus driver to connect to the
localhost Simulator.

Controller Settings:
Communication Mode = Ethernet
IP Address = 127.0.0.1 (localhost), Port = 502
3. Configure the application so that TankLevel1
(D0) is moved to ModbusReg0 (40000)
4. Use a data trigger as initiator (to get the best
performance), try both tag and time
5. Run the application and make sure that data is
transferred between the two Controllers

30
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange

A5. Datalogger/Trend Dynamics


General
Historical
Dynamics
Exercise [A4]
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

31
Advanced Trending - General
In the basic training we introduced the Datalogger and Trend Object
In the advanced course we will dig deeper in the trend objects dynamics
First parts will be repetition

Edit Curves:
Name of the curve
Tag that displays the actual value
Log Item for historical trend data
Expression(e.g. Gain, Offset)
Color of the curve
Thickness of the curve
Minimum Value Tag (Optional)
Maximum Value Tag (Optional)

Value Scale
Min./Max. Value of the Scale
Major/ Minor Ticks of the Scale
Trend - General

Time Scale
Time Range: Time Span which is displayed
Major Ticks for Time Scale

Visibility
Show Scale
Show Grid

Style
Different predefined Styles for the Trend Viewer

33
Trend Historical

By clicking on Insert Data Logger a new


Data Logger is added to the Project

Configure DataLogger
Add new Logitem Delete selected Logitem Settings

Free definable name Tag that shall be logged


(= ColumnName in database Table)

34
Trend Historical

Log on time or triggered by


a tag (minium: 1s)

Max number of logged rows

35
Trend Historical

Select which log items that should be presented/visualized

36
Trend Dynamics

Trend Dynamics Value Scale Min/Max

Tags that define the maximum/minimum


Value of the Trends Y-axis

Can be used to Zoom in/out to get a more


Detailed view

Runtime
The tags (Ymax and Ymin) controls the
Trend Viewers Y-axis properties

37
Trend Dynamics

Trend Dynamics Time Span

Tags that defines the time range of the


TrendViewers X-axis (in seconds)

Can be used to Zoom in/out to get a more


Detailed view

Runtime
The tag (TimeSpan) controls the
Trend Viewers X-axis property

38
Trend Dynamics

Trend Dynamics Time Offset

Tag that defines a historical offset

If the tag value is 60 it means that the Trend


Viewer will jump 60 seconds back in time.

Can be used to Pan forward/backward in time

Runtime (Trend is in History mode) Example 1

Tag value = 0 -> X-axis start time = time when


Trend Viewer entered history mode (19:58:00)

Since the trend is in History mode the automatic


Update is paused.

39
Trend Dynamics

Runtime (Trend is in History mode) Example 2

Time when Trend Viewer entered history mode is:


(19:58:00)
Offset value: 30 seconds
X-axis time = 19:58:00 30 = 19:57:30

Since the trend is in History mode the automatic


Update is paused.

Runtime (Trend is in History mode) Example 3

Time when Trend Viewer entered history mode is:


(19:58:00)
Offset value: 30 seconds
X-axis time = 19:58:00 30 = 19:57:30

Time Span = 2 minutes


X-axis end time = 19:58:00 30s 120s = 19:55:30

40
Trend Curve Visibility
Trend Viewer Legend
Shows a predefined Dialog to:

Make Curves visible/invisible

Show the actual Tag Values

Script Alternative
With script its possible to control the visibility of each curve

Can be useful if the end-customer wants a certain look or prefers


bigger/smaller buttons

41
Exercise 4 Historical Trend

Exercise [A4]
1. Add a Trend Viewer object to TrendHistory screen
2. Add a DataLogger to the application, it shall log the
following tags (every second):
- TankLevel1
- Valve1
3. Connect the Trend Viewer to the data logger. Use an
Expression to add Offset/Gain to the boolean curve
4. Configure the Trend Viewer so that its possible to
Zoom and Pan (both X- and Y-axises)
5. Add buttons that toggles the visibility of curves (using
C#-script)
6. Run the application

42
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics

A6. Chart
General
Configuration
Actions
Exercise [A5]
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

43
Chart - General
The chart object is used to display values of connected array
tags
The Chart object has support for many different styles, see a
few examples below:

Area Pie Bar


Chart - Configuration

Array Tags
The Chart object presents values from Array tags

Array tags are defined in the normal Tag Editor.

Select Data Type and the number of elements that


should be included in the array (Array Size).

Configuration
Most of the Charts settings are found in the General
ribbon tab

Style:
As for most other objects its possible to select the
Objects style (e.g Chrome or Black)

Visibility:
Defines if Scale, Header and Legend should be
visible or not.
Chart - Configuration

Axis Settings

Visible/Grid Visible:
Defines if Axis/Grid shall be visible or not

Automatic Min/Max:
When Automatic is enabled the object checks the data
series/array and determines min/max values
automatically

Chart Settings

Chart Types:
Select which type of chart that should be used in
runtime (e.g Bar or Area)

3D View:
Enable/Disable 3D-drawing. More CPU-intensive!
Chart - Configuration

Name: Size: Axis Type:


Symbolic name for the data Number of data points that will be Which Axis (Y1 or Y2) that the
series presented series shall be connected to

X/Y Tag: Labels:


Array tags that will be presented Its possible to associate each data
point with a text (e.g
Monday,Tuesday, .., Sunday)
Chart - Actions
Actions Description
Pan Down, Left, Right, Up
Used to navigate in the Chart

Reset View
Chart is reset to default, Zoom and Pan values are
reset

Zoom In/Out
Used to Zoom in or out in order to get a better
overview of the presented data
Exercise 5 - Chart

Exercise [A5]

1. Add a Chart object to the LevelChart


screen and connect it to the following tag:
TankLevelPerWeekday
2. Use TankLevelMonday TankLevelSunday
to simulate different array values

3. Test the different settings/chart types

4. Run the application

49
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart

A7. Audit Trail


User Actions
Tag Value Changes
Viewer
Backup
Exercise [A6]
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

50
Audit Trail User Actions
Audit Trail =
Makes it possible to log/track operator actions its possible to
define which actions and tags that should be logged

Configuraton
Log All/None : Check all/no checkbox

FDA
- Log entries are not overwritten
- When 80% of the database is filled:
User warning + request to export data

When Max. Database size is reached:


Logging will be stopped and operator will be promted to
export the database

Cyclic Buffering
- Logged entries will be overwritten
(FIFO oldest row will be deleted)

Max. Database size [MB]


Size of Audit Trail Database

51
Audit Trail Tag Value Changes

When Audit Trail is added two new columns becomes


visible in the Tag Editor (Others needs to be checked)

1. Log to Audit Trail


Selects which Tags that should be logged

2. Audit Trail Description


Customized description

Custom Audit text:


Static descriptions not dependent on tags value
{0} = Tags value berfore Write
{1} = Tags value after Write

Custom Audit text:


Dynamic description, based on Tag value

52
Audit Trail Viewer
Audit Trail Viewer presents the databases content
(in runtime)

Configure Columns: Double click on the control

Available, addable columns:


Message: System generated message
Description: Customizable description
Value Before: Tag value before change
Value After: Tag value after change
Time Stamp: Date/Time when event occurred
User Name: Name of user/operator

53
Audit Trail Database Backup

Audit Trail Actions

Database:
can be exported/copied to:

USB media

Database -> CSV-file:


can be exported/copied to:

USB media

SD Card

the Project folder Project Files

The Project Files folder can be accessed via FTP.


FTP functionality is enabled in the System tab (ribbon)

54
Exercise 6 Audit Trail

Exercise [A6]
1. Add AuditTrail to the application
2. Enable Log to Audit Trail for the following
controller tags:
- Valve1
- Valve2
3. Add an AuditTrail Viewer object to the
AuditHistory screen. Configure and decide which
columns that shall be presented
4. Run the application

55
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail

A8. Report Generator


General
Report
Actions
Exercise [A7]
A9. Screen Alias
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

56
Reports - General
The report generator generates excel reports based on an
Microsoft Excel made report template
The generated report can be printed or saved as an excel file
(USB, SD or FTP)

Excel Template Actions Generated Report

1. Print

2. Save as *.xls

57
Reports Tag values

All Formattings, Graphics, Charts, Fonts, Colors, can be


freely configured.

iX Tag values can be inserted into a cell by using a special


Syntax:

<#Tag(TagName)>
Examples:
<#Tag(Application_PLC_PRG_Temp1)> = CoDeSys Tag
<#Tag(SystemTagDateTime)> = iX System Tag

Excel Template has to be saved in the following format


Excel 97-2003-Worksheet (*.xls)

Operator Panels (e.g TxA and TxB) can only print


text. This means that included charts, symbols
etc. are excluded

58
Reports Database

Step 1
Create a new Sheet and name it <#Config>. This sheet will
contain all database querys. When the report is generated this
sheet will not be included

Step 2
The database querys needs to be defined on Row10 (and below)

Step 3
The data retrieved from the SQL database, using the queries in
the configuration sheet, can be presented in the report using
Named ranges in Microsoft Excel.

Select the needed number of columns (in this sample 2 (Time


and LogItem1))

Select Insert Name Define

59
Reports Database

Step 4
Enter a name for the range. The name must be entered in
the following format: __QueryName__.

Replace QueryName with the name that you have chosen


for your SQL query

Step 5
To present the data in the report, enter the following syntax
into the cells included in the named range:
<#QueryName.DatabaseColumnName>

60
Reports Add Template to application

Add Template:
Add Select Template

Excel Template will be copied to the folder:


Project Files\Reports\Templates

The name of the report can be freely assigned

61
Reports - Actions

Actions Description
- Action: Generate report

Option 1:
Print to installed (Default-) printer

Option 2:
Save template in (Excel-) file with timestamp

e.g. Farm_Report 01.05.2012 12.45.12.xls

Locations to save:
- Project files folder Project Files\Reports

- Browse Save as Dialog will be opened

- Path Input of absolute saving path

62
Exercise 7 - Reports

Exercise [A7]
1. Open the supplied Excel template
2. Modify the Basic Template sheet so that it presents the
following information
- Current Time (SystemTagDateTime)
- Tank Level 1 (TankLevel1)
- Tank Level 2 (TankLevel2)
3. Modify the Advanced Template sheet so that it presents
historical data collected by the DataLogger
4. Insert a button with a Generate Report action on the
Configuration Screen
5. Simulate the application and make sure that the generated
report is OK

63
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator

A9. Screen Alias


General
Alias Definition
Connect Alias to Object
Instances
Show Screen Instance
Exercise [A8]
A10. Expressions
A11. Web Server
A12. OPC UA Client / Server

64
Screen Alias - General
Screen Alias =
An alias should be treated as a property of a screen and can act as a stand-in for a tag. The
alias can be used to reference a tag wherever that tag can be referenced directly.
Using aliases will enable reuse of screens without having to create a new duplicated screen.
1. Definition of Aliases, that can be defined as a stand-in for a normal tag
2. Assign Alias to Objects
3. Create (Screen-) Instances and assign the Original Tags to them

Example: Popup with Alias function Example: Screen Alias function

65
Screen Alias Alias Definition

Add:
Inserts a new Alias

Delete:
Delete Alias

Checkbox Data Type:


Show tag data type

Alias Name:
Free definable stand-in name for tags

Default Value:
Optional definition of a default tag

Data Type:
Optional selection of tag data type

66
Screen Alias Connect Alias to Object

Normal/Default:
Selects a Tag

Alias Function:
In the Tag selector dialog: Select Aliases and choose an
Alias

Connect Alias instead of real tag to the object

An Alias always starts with a #-character

67
Screen Alias Instances with Original Tags

Add:
Adds a new instance

Delete:
Deletes a screen instance

Instance:
Column is used to define a symbolic instance name
Other Columns:
Columns show the projected aliases (here with default values)

Filling / Pressure (Alias names):


Columns show the projected aliases.

Font Regular: Default Tags


Font Bold: Inserted, projected Original Tags

68
Screen Alias Show Screen Instance

Instance Call:
Use the Show Screen Action and select which Instance
that should be opened/shown

In the Show Screen Action there is a list where


the different instances can be selected

69
Exercise 8 - Alias

Exercise [A8]
1. The Valves on the Home screen shall be
controlled from a common Popup/Faceplate
2. Add a new screen to the application and
define two aliases:
(TankLevelAlias & ValveAlias)
3. Create 2 Screen instances, configure so that
the aliases are connected to tags as below:
Screen Instance 1: Valve, TankLevel1
Screen Instance 2: Valve2, TankLevel2
4. When clicking on the valves the correct
Faceplate (= ScreenInstance) should be
opened

70
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias

A10. Expressions
General
Define
Reuse
Exercise [A9]
A11. Web Server
A12. OPC UA Client / Server

71
Expressions - General
Expressions are used in order to scale and modify a tags actual value. Its only the
presentation that is affected, not the tags real value
Expressions enable the developer to e.g. extract a bit from an word, add a dynamic offset
or gain, and then to use this value for a specific object

Value in PLC Tag Value Expression Presentation

23.1
Expressions - Creating

By clicking on the -button its possible to connect an


Expression to the selected object/tag

New:
Creates a new Expression

Edit:
Edit an existing Expression

Delete:
Delete the selected Expression
Expressions - Creating

Name:
Name of the Expression

Group:
The Expression can be stored in a Group, this makes it easier to
organize the Expressions

Description:
Comment/description, what is the purpose of the Expression?

Expression Code
When the Expression has been created its time to write the
actual code
Expression Code
Code that will execute every time the tag value updates.
Follows normal C#-syntax
Value is the tags raw value
The Expression Code can contain Tag-values, Operators and
standard C#-functions (e.g Math.ABS)
When an object is connected to an Expression the will be
replaced with a +-character
Expressions Reuse

Expressions can be saved/loaded


This makes it possible to reuse the Expression in future
applications

Library Expressions
Load: Opens a dialog where the user can select which
Expression(s) that should be imported

Save: Saves the current Expression to a Library

Delete: Deletes an Expression from a Library

iX Developer contains a few pre-installed Libraries


Bit Operators: Used to extract bits from words

Math: Log, Log10, Sin, Cos, Tan

Temp conversion: Celsius <-> Fahrenheit


Exercise 9 - Expressions

Exercise [A9]
1. Add an alarm indicator to the Home screen,
make sure that its Visible and Blinks when
the Tank Level (TankLevel2) is greater than
90 %

2. Run the application and make sure that the


configured Expression works as intended

76
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions

A11. Web Server


General
HTML Configuration
Writing Values
Exercise [A10]
A12. OPC UA Client / Server

77
Web Server General

Web Server =
On each iX panel, a simple web server can be activated.

iX remote maintenance
Screens can be projected with every HTML editor
Compact information (overview)
JavaScript

Ethernet / Internet

iX 2.20:
Webserver supports 2 connections

78
Web Server General

Configuration Description

Web Server Configuration:


System Web Server

Web Server Activation:


Enables/disables the Web Server function

Port:
Free definable Port. Default: 80

Authentication settings:
- Checkbox unchecked:
Anonymous authentication

- Checkbox checked:
Username and password can be set

79
Web Server General

Configuration Description

- The files must be stored in the folder:


[Project]\Project Files\WebSite

- Start page: index.html

- For panel targets its necessary to download


the websites via FTP

80
Web Server HTML Configuration

Syntax Description
<head> - Initializes the SDK
<script src="/assets/iX.js" type="text/javascript"></script>
<script type="text/javascript"> iX.setup({});</script> - This code needs to be placed in the HTML-
</head> pages Head

<body> - Basic definition of a Tag via attribute:


Tag 1 = <span data-ix-tag="Tag1"></span>
</body> <span data-ix-tag=[TagName]></span>

- Placed in the Body area


Tag1= <span data-ix-tag="Tag1" data-ix-refresh="interval"></span Example:
Update interval (without parameter = 1s)

Tag2= <span data-ix-tag="Tag2" data-ix-format="0.000></span> Example:


Tag formatting 1 digit / 3 decimals

Date = <span data-ix-tag="SystemTagDateTime" data-ix-format="d- Example:


m-Y G:i"></span> Tag Formatting of iX System Tag Date

Attributes can be combined


Additional info available in the iX Reference manual

81
Web Server Writing values

Syntax Description
Change value: <input type = "number" data-ix-setter="Tag1"/> Example:
<button data-ix-submitbutton="Tag1">Set Value</button> Write value to tag when pressing submit
button

82
Exercise 10 - Webserver

Exercise [A10]
1. Enable Webserver in the application (with authentication)
2. Modify the basic HTML-page template, this allows you to read/write values

3. Modify the Advanced HTML-page template, this contains 3:rd party graphical controls

4. Store the HTML-files in the Project Files/Website folder and run the application. Make sure
that the pages are working correctly

83
Agenda
A1. Visualization - Objects
A2. Alarm Client/Server
A3. Alarm Distribution
A4. Data Exchange
A5. Datalogger/Trend Dynamics
A6. Chart
A7. Audit Trail
A8. Report Generator
A9. Screen Alias
A10. Expressions
A11. Web Server

A12. OPC UA Client / Server


General
Server Configuration
Client Configuration
Tag Configuration
Exercise [A11]

84
OPC UA General
OPC UA =
OPC communication type (UA = unified architecture), which has evolved from the drawbacks of
the existing OPC technology.

Features:
Setting up Panel Network (via Ethernet) for Tag value exchange
Panels can be configured as Server or Client (or both)
Direct Communication to PLCs/Controllers or to generic ERP Systems
No dependency on Microsoft COM / DCOM architecture

Ethernet / Internet

PLC Controller

85
OPC UA Server Configuration

Server Configuration
System OPC UA-Server

OPC UA-Server Activation


Checkbox enables the OPC UA Server function

Port:
Free definable Port. Default: 4840

Login:
- Checkbox enabled:
Anonymous login is possible

- Checkbox not set


Username and password can be defined

86
OPC UA Client Configuration

Add OPC UA Client driver


In Tag Editor Controller Add:
- Check OPC UA-Server
- Enter IP Address of Server

Controller Settings
URL:
Syntax: opc.tcp//IP-Address

Authentication settings:
- Anonymous
- Via username and password

Namespace-Settings:
- Free definable Namespaces possible
- Namespace-Separator: Default :
- Default namespace:
Default NS2, TagProvider (iX iX)

87
OPC UA Tag Configuration

Tag Configuration Description

Tag Configuration: Server - OPC UA Server (e.g. T7A Panel)


communicates via ModBusTCP protocol to a PLC

Tag Name Tag Address

Temperature 40000
Pressure 40010

Tag Configuration: Client - OPC UA Client (e.g. PC as control station)


communicates with OPC UA Server

Tag Name Tag Address

Temp_T7A Temperature
Pressure_T7A Pressure
Client Tag Address = Name of Server Tag

Client Tag Name can be freely defined


(does not need to match the server syntax)

88
Exercise 11 OPC UA

Exercise [A11]
1. Work two and two
2. Configure one of the applications to act as OPC UA Server, the other as OPC UA Client

3. Share at least one tag via the OPC UA-network, make sure that its possible to both
read/write values and that both Server/Client updates as expected

89
iX Advanced Training

90

S-ar putea să vă placă și