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