Professional Documents
Culture Documents
Users Guide
Kessler-Ellis Products
Phone 800-631-2165 or 732-935-1320 extension 332
Website www.kep.com
Licensing website http://infilock.kep.com
Email plc@kep.com
2004 KEP
99755REV22SEP04
All Rights Reserved
Return Policy
The original licensee of the Software can return it within thirty (30) days of purchase. Please call us for a Return
Goods Authorization Number.
Warranty
KEP does not guarantee that the Software will satisfy your application needs, nor that the Software will be error
free. Though the software is tested thoroughly there may be minor defects that may have been missed. As in all
software, not every useable application can be performed due to the complexity of the software itself.
Disclaimer of Damages
Even if the Software does not satisfy the customers needs, or is viewed as failing to perform, in no event will KEP
be liable to you for any direct or indirect damages, including lost profits or lost data. KEPs liability shall never
exceed the purchase price for the Software.
Trademarks
Microsoft and Microsoft Excel are registered trademarks, Windows is a trademark of Microsoft Corporation.
Users Guide
Revision 4.04
(c) 2004 Kessler-Ellis Products, Inc
10 Industrial Way East
Eatontown, NJ 07724
1-800-631-2165 (Voice)
(732) 935-9344 (FAX)
http://www.kep.com
plc@kep.com
Copyright 2004, KEP, Inc., All rights reserved.
Table of Contents
INFILINK-HMI SOFTWARE FOR W INDOWS ................................................................................................... I
Kessler-Ellis Products..............................................................................................................................i
2004 KEP.............................................................................................................................................i
TABLE OF CONTENTS .................................................................................................................................... I
INTRODUCTION .......................................................................................................................................... 1
W ELCOME .................................................................................................................................................. 1
SYSTEM REQUIREMENTS ............................................................................................................................. 1
SETTING UP ................................................................................................................................................ 2
DIRECTORIES INSTALLED BY THE SETUP PROGRAM ...................................................................................... 2
ICONS INSTALLED BY THE SETUP PROGRAM ................................................................................................. 3
SETTING UP A SERVER ................................................................................................................................ 3
INSTALLING DAO......................................................................................................................................... 4
REGISTERING YOUR SOFTWARE .................................................................................................................. 5
MOVING A LICENSE ..................................................................................................................................... 6
UPGRADING A LICENSE ................................................................................................................................ 7
INFILINK 4.06.01 NEW FEATURES ............................................................................................................ 9
New Features Table of Contents........................................................................................................... 9
UPGRADE COST ........................................................................................................................................ 10
EDIT USERS IN RUN MODE ........................................................................................................................ 11
IMPORTING W INDOWS FROM ANOTHER PROJECT ....................................................................................... 11
RETENTIVE TAGS ...................................................................................................................................... 12
ACTIVE UNACKNOWLEDGED ALARMS FLASHING.......................................................................................... 12
TELEPHONY SCRIPTING COMMANDS........................................................................................................... 13
TEXTTOSPEECH: SPEAKOUT SCRIPTING COMMAND .................................................................................. 15
TREND PRINTING ....................................................................................................................................... 16
ANIMATED GIF OBJECT ............................................................................................................................. 17
MAKING BITMAP OBJECTS FULLY / PARTIALLY TRANSPARENT ....................................................................... 18
W INDOW PRINTING ................................................................................................................................... 19
GRADIENT FILLS AND TRANSPARENCY ....................................................................................................... 20
SENDKEYS SCRIPTING COMMAND .............................................................................................................. 22
LANGUAGE SWITCHING .............................................................................................................................. 25
BACKGROUND IMAGE TO HMI WINDOW ....................................................................................................... 27
SYSTEM TAGS: _FORMATTEDDATE, _FORMATTEDTIME .............................................................................. 28
SCRIPT COMMANDS: _THISW IN.<TREND OBJECT NAME>.PENTAG .............................................................. 28
SCRIPT COMMANDS: LOG2, LOG10 ............................................................................................................ 28
SCRIPT COMMAND: DATATOFILE ............................................................................................................... 29
TREND VIEW INCREASED: .......................................................................................................................... 29
DDE SHARE NAME CHANGE ...................................................................................................................... 29
ROUND SCRIPTING COMMAND ................................................................................................................... 29
ONSCREEN FRENCH KEYBOARD ................................................................................................................ 30
BUG FIXES ................................................................................................................................................ 30
INFILINK OVERVIEW ................................................................................................................................ 31
DESIGN MODE........................................................................................................................................... 31
SHORT CUT MENUS................................................................................................................................... 32
THE INFILINK DOCKABLE TOOLBARS ........................................................................................................... 34
Window Tools.......................................................................................................................................... 34
Introduction i
Combinations....................................................................................................................................... 37
RUN MODE ............................................................................................................................................... 37
LESSON 1: LEARNING TO USE INFILINK .............................................................................................. 38
OVERVIEW ................................................................................................................................................ 38
LESSON OBJECTIVES................................................................................................................................. 39
CREATING A PROJECT ............................................................................................................................... 40
THE IMPORTANCE OF OBJECT PROPERTIES ................................................................................................ 43
About Object Properties ...................................................................................................................... 43
The Object Name ................................................................................................................................ 43
A CHANCE TO PRACTICE ........................................................................................................................... 44
Draw and Place a Rounded Rectangle. .............................................................................................. 44
Draw and Place a Text Object............................................................................................................. 46
Draw and Place a Triangle .................................................................................................................. 49
Grouping the Objects........................................................................................................................... 51
SAVE THE PROJECT AND EXIT .................................................................................................................... 54
TAG GROUPS AND TAGS ........................................................................................................................ 56
OVERVIEW ................................................................................................................................................ 56
ABOUT TAG GROUPS................................................................................................................................. 56
ADDING/EDITING TAG GROUPS .................................................................................................................. 57
Creating Tag Groups ........................................................................................................................... 57
Creating a Memory Tag Group............................................................................................................ 58
Creating a DDE Tag Group ................................................................................................................. 58
Creating an OPC Tag Group ............................................................................................................... 61
Creating a Virtual Tag Group............................................................................................................... 62
ABOUT TAGS............................................................................................................................................. 63
Predefined System Tags ..................................................................................................................... 63
ADDING/EDITING USER DEFINED TAGS....................................................................................................... 65
Tag Edit Tools ..................................................................................................................................... 65
Creating a Memory Tag....................................................................................................................... 65
Creating a DDE Tag ............................................................................................................................ 67
Creating an OPC Tag .......................................................................................................................... 68
Creating a Virtual Tag.......................................................................................................................... 69
Tag Edit Advanced Tab ....................................................................................................................... 70
Deadband........................................................................................................................................ 70
Value clamps / Scaling .................................................................................................................... 70
Introduction ii
OVERVIEW ................................................................................................................................................ 91
LIBRARY MANAGER TOOLS ......................................................................................................................... 91
Create a New Library........................................................................................................................... 92
Create a New Object Group ................................................................................................................ 92
Open a library ...................................................................................................................................... 92
Save a library....................................................................................................................................... 93
The Library Manager Treebar.............................................................................................................. 93
SAVING OBJECTS TO A LIBRARY ................................................................................................................. 94
Placing an Object or Group from a Library .......................................................................................... 94
Reassigning Tags................................................................................................................................ 95
SCRIPTS: THE FINAL WORD IN FLEXIBILITY ....................................................................................... 97
OVERVIEW ................................................................................................................................................ 97
INTRODUCTION .......................................................................................................................................... 98
PROJECT SCRIPT ...................................................................................................................................... 99
W INDOW SCRIPTS ................................................................................................................................... 100
TAKE ACTION SCRIPTS ............................................................................................................................ 102
TAG DATA CHANGE SCRIPTS ................................................................................................................... 103
ALARM SCRIPTS ...................................................................................................................................... 104
SCRIPT REFERENCE ................................................................................................................................ 106
General.............................................................................................................................................. 106
Comments ......................................................................................................................................... 106
Logical Constants .............................................................................................................................. 106
Conditional Operators........................................................................................................................ 107
Logical Operators .............................................................................................................................. 107
Assignment Operator......................................................................................................................... 108
Virtual Tag assignment ......................................................................................................................... 108
Introduction iii
Introduction iv
Introduction v
Introduction vi
Introduction vii
Introduction
Welcome
Welcome to Infilink HMI, an easy-to-use tool for any size HMI application. Infilink
HMI provides you with the tools to design and implement a custom interface for
any process. Infilink offers interface solutions for PLCs, transmitters, sensors,
remote I/O, and other process devices.
Infilink HMI runs on Windows 98, NT 4.0, 2000, and XP.
This chapter shows you how to set up Infilink HMI on your computer and
introduces the documentation set.
System Requirements
To run Infilink HMI, you must have certain hardware and software installed on your
computer. The minimum system requirements include the following:
An IBM PC or compatible with a 233MHz Pentium microprocessor.
32MB of RAM.
30MB of free hard disk space.
At least one free serial port with a 16550 UART if you will be communicating
with serial devices.
VGA card and color monitor capable of at least 800x600-pixel resolution using
16 colors.
The recommended system configuration is the following:
An IBM PC or compatible with a 233 MHz Intel Pentium microprocessor.
128MB of RAM
100MB of free hard disk space
Accelerator enabled PCI Super VGA card and color monitor capable of at least
1024 x 768 pixel resolution using 256 colors.
Microsoft Windows XP.
Introduction 1
Setting Up
If you have a previous version of Infilink installed on the target computer you should
perform a backup of all project files created using that version in the event that you
decide to return to that version in the future.
The program SETUP.EXE on disk #1 (or CD) performs the installation, installing the
Infilink HMI executable files, license file, help file, and other components. If you are
a Windows NT user you will need to ask your system administrator to perform the
Setup.
1. Place the CD into the drive and the setup program should autorun. If not, then
browse the CD and run it by double-clicking it.
2. Choose the components you wish to install.
3. Click the Browse button to choose a destination directory.
4. Choose a Program Folder/Program Group for the icons that invoke the
executable files and help.
5. Verify your choices. If you want to make a change click on the < Back button.
6. At this point, the file copy process begins. You will be prompted for disks as
needed.
7. Upon completion of the file copy process, you will be given the opportunity to
view the README.TXT file. This file contains release information specific to this
version of Infilink HMI. You can find this file in the Infilink program directory if
you want to read it later.
\LESSONS contains one subdirectory for each lesson supplied with the
software. The lessons are covered later in this manual.
\LIBRARY contains object library files for use with the Design Mode program.
\UTILITIES contains utilites such as the data conversion utility, printscreen, and
others.
Introduction 2
Help Folder
On-line information accessible from Design Mode by pressing the F1 key.
Setting up a Server
Servers are used to get DDE data from applications or externally linked devices
through drivers. Infilink uses a Server to get data from external applications via OPC
or DDE.
If you will be using a third party Server with Infilink, you can install it now or wait until
you have developed your application and are ready to run it on the PC.
KEPwares OPC Server, KEPServerEX, comes with Infilink. You will be able to
unlock one driver for use with Infilink.
Introduction 3
Installing DAO
If you will be logging data in MDB format your PC will need DAO support. If you have
Microsoft Access installed on your PC there is no need to install DAO support.
If you do not have Microsoft Access installed on your PC you will need to install the
files needed to support Data Access Objects (DAO). You can select to install DAO
support during Infilink installation by selecting the Full Installation option or selecting
the Custom Installation option and then selecting it as one of the components from
the install list. There are 2 files included in the \DAO folder of the Infilink CD.
1. Run the Mdac_typ.exe utility to install support for OBDC and DAO on your PC.
2. Additionally, run Dcom98.exe if your PC is running Windows95 or 98.
You can also download the latest versions of these files from the Universal Data
Access Web site at www.microsoft.com/data/. Select the proper download
versions for your operating system.
Introduction 4
Send an E-Mail that includes the KEP Sales Order number and a request to unlock
the software to unlock@kep.com. Instructions will be included in the reply to
receive a Internet Unlock Password. Use it to access the Serial number and unlock
codes over the internet at www.kep.coms unlock page. A serial number unlocks the
Run Mode for 10 days. Once a Serial number is obtained the Help|Unlock menu
item is enabled.
Note: You have up to 10 days from the time you entered the serial number in which
to unlock the software. If the software is not unlocked within that time, it will cease
to operate
Use your Internet Unlock Password to access the unlock webpage again and enter
the Computer ID. A Password that unlocks Infilink will be generated.
Note: The software unlock password is dependent on the number of user tags. 128,
256, 512, 1024 and Unlimited tag unlock passwords are available.
Enter the password in the Password field and click OK.
Once a PC is unlocked no further codes are needed for unlimited and continuous
operation time. The password you receive is only valid for a single PC. If you want to
move the software to another PC you will have to obtain another password for that
PC.
Copyright 2004 KEP, Inc.
Introduction 5
Moving a License
Accept a License.../Move a License...
This menu item is used to move the license from on PC to another. Once the Move
a License procedure is finished, the PC where the license originated will be locked in
Demo Mode and the PC that received the license will be unlocked for unlimited time
use. A blank floppy diskette is needed for this process. Infilink must also be installed
on the PC that will accept the license (target computer).
@ Use a formatted floppy disk. The disk must not have any files on it when starting
step 1.
1. Insert blank floppy disk into target computer. Initiate license activation from
target computer by clicking on Help|Accept a License, select a floppy drive, click
Step 1, this prepares the floppy disk. Remove the floppy disk.
Introduction 6
Upgrading a License
The Upgrade License feature is provided for users that wish to upgrade a License to
a higher tag count or add Internet access with the iViewer utility.
Send your request via e-mail with the Serial Number and Computer ID to
unlock@kep.com. A new Serial Number and Password that will unlock the Run
Mode for the higher tag count will be e-mailed back to you. Alternately, you can Fax
the information to KEP. Enter the serial number and password in the appropriate
fields and click OK.
@ Use the Copy numbers to clipboard button then paste it into your e-mail request
to insure accurate data.
Introduction 7
This document is to provide a description of features new to version 4.06.01; these are all the
features added since version 4.02.02.
Document updated 16-September-2004
10
11
11
12
12
13
15
16
17
18
19
20
22
25
27
28
28
28
29
29
29
29
30
30
Upgrade Cost
KEP is not increasing prices for these new features, and it is a free upgrade from Infilink
version 4.00.20 and later to version 4.06.01.
Some of the new features require KEPRUN-0000 (unlimited tag version). Current users, and
new purchasers, of KEPRUN-0000 have these features at no additional cost.
Text-To-Speech
Telephony
Iviewer (5 license)
If you have one of the lower tag versions now, and want to upgrade, the upgrade price is
reasonable. Basically, it is the price difference plus $50. Contact KEP, your manufacturers
representative, or your distributor for details.
The other new features are available in all tag counts of Infilink.
Retentive Tags
While defining memory tags, check the check box Retentive to make it retentive.
Value of that memory tag at project close will be stored and will be assigned to that memory
tag on next execution of the project, overriding its initial value setting.
Values of retentive tags are stored in file ProjectRetentiveTags.dat in project directory. This
file is encrypted and is tied to a particular project.
While getting the tag values from the file ProjectRetentiveTags.dat Infilink uses Group
name, Tag name and its data type to identify a particular tag.
Changing the data type of Tag1 (from Word to Long for example) causes the retentive value to
be lost.
Error messages are posted to Eventlogger in the following cases:
Retentive tags are defined in a project but ProjectRetentiveTags.dat is not found.
ProjectRetentiveTags.dat is copied into project directory from different project.
ProjectRetentiveTags.dat is corrupt.
Runmode is unable to save file ProjectRetentiveTags.dat on project exit.
Description
Ph_MakeCall
Ph_DropCall
Ph_EnableIncoming
Ph_DisableIncoming
Ph_TTSString
Ph_TTSFile
Ph_PlayWaveFile
Ph_StopVoiceOut
Ph_EnableDTMF
Ph_DisableDTMF
Tag name
Data
type
Usage
LineName
PhoneNumber
CallStatus
CallStatusString
IncomingRings
string
string
long
string
long
VoiceOut
string
VoiceOutStatus
long
LastDTMFReceived long
ErrorCode
ErrorString
CallerID
Timer1, Timer2,
Timer3
Copyright 2004 KEP, Inc.
long
string
string
long
IncomingEnabled
Call status codes.
Code
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
Discret
e
Description
Call state Idle
Call state Offering (Incoming call)
Call state Accepted (Incoming call)
Call state Dialtone
Call state Dialing
Call state Ringback
Call state Busy
Call state Special Info
Call state Connected
Call state Proceeding
Call state On Hold
Call state Conferenced
Call state On Hold Pending Conference
Call state On Hold Pending Transfer
Call state Disconnected
Call state Unknown
Trend Printing
Brief notes about trend printing.
Trend printing is done by using script command "_ThisWin.Trend.TrendPrint".
Default printer is used for printing.
This command prints real time and historical trends, whatever is seen on the screen as
a "Trend Object" is printed on the printer.
Any drawing objects appearing above or below the trend objects are not included in
print.
Works for both "Portrait" and "Landscape" modes.
For historical trends, the inactive period black rectangles shown on the screen are
printed with black cross-hatched brush. This improves appearance and reduces ink or
toner usage.
While printing the trend object, proper scaling is automatically done to fit the trend on
the paper in both "Portrait" and "Landscape" modes.
A printer typically offers more resolution (total # of horizontal and vertical dots) than a
PC screen. It is likely that more detailed plot is obtained on the printed trend than is
seen on the screen. Infilink plots the trend utilizing the higher resolution available on
the printer. In the unlikely event that the printer resolution is less than the height and
width of the trend, Infilink will not print the trend and it will post an error message in the
event logger stating this.
Using print spooling (instead of choosing "Print directly to printer") is best; otherwise
Infilink program execution will slow while printing.
Select Animated GIF drawing tool, or select menu item Draw-Animated GIF.
Draw a rectangle on the window.
Animated GIF properties dialog appears.
Select the Animated GIF file for this object.
Check the check box Animate in design mode if you want to see the animation in design
mode. Run mode will always animate the object, design mode gives you the choice.
Click OK, you should see the animated picture.
This object can be resized, moved, duplicated (etc.) just like other Infilink objects.
If the object is being animated and if a zoom level other than 100 % is chosen, animation
stops. Coming back to 100 % zoom should restore animation if it was on.
If the selected file does not contain valid Animated GIF (or mis-typing of file name) then you
should see following bitmap indicating the failure to load the file.
Used Animated GIF and Mask bitmap files are copied into project sub-directories
AnimatedGIFs and BitmapMasks.
Ragged Tank Cut-Out has been a typical request which could not be done until this feature
was added to Infilink:
Window Printing
In design mode user can print the HMI window by using menu item Window Print or by
right clicking on empty portion of HMI window and selecting Print.
The window is printed to the default printer.
User is able to print three lines of footer information. Infilink before printing presents default
print lines and allows the user to edit them.
In run mode user prints the HMI window by using script command
Print Window <Window Name>
The <Window Name> must be a string literal. Only the visible window is printed to the default
printer.
Here is an example of a bitmap with a rectangle on top of it. The rectangle has gradient fills
and alpha (transparency) properties:
Data Format
Tag with datatype string,
String expression,
String Literal
strKeyStrokes
nFlags
Meaning
SendKeys command sends the
key strokes to the window(s)
having this caption on the same
computer as Infilink
String holding characters /
keystrokes to be sent to target
window(s).
Indicates how strWinCaption
should be used to find target
window.
Examples:
SendKeys (Notepad, helloworld<enter>, 0);
SendKeys (strTag1, strTag2, longTag3);
SendKeys (strTag1 + strTag2, strTag3 + strTag4, lTag5 lTag6);
Explanation of nFlags:
Two attributes of window caption matching can be controlled:
1 Attempt matching given caption string exactly or non exactly with the target window
caption.
2 Attempt matching given caption string to target window caption with case sensitivity of not.
Value of nFlag
Attempt Exact
Case sensitive
match
matching
0
No
No
1
Yes
No
2
No
Yes
3
Yes
Yes
4 or any other value No
No
Keystrokes are sent to all the top level windows with matching caption. It is possible to send
the keystrokes to single or multiple windows simultaneously.
Examples of nFlags usage.
Sending keystrokes to notepad window with caption Untitled Notepad
Value of strCaption
Value of nFlags
Will keystrokes be sent
to notepad ?
notepad
0
Yes
Notepad
2
No
untitled notepad
1
Yes
Untitled Notepad
1
Yes
ntitled Notepad
1
No
Untitled Notepad
3
Yes
ntitled Notepad
3
No
Language Switching
General Concept:
Assume that the user is looking for creating runtime displays in "English" and "Spanish". (more than
two languages are supported).
Infilink design mode allows the user to create a string table. It is basically a table with "n" rows and
two columns since we are assuming two languages in this example. Row1 contains two strings, 1.
"High Temp in English", 2. "High Temp in Spanish". Similarly other rows contains two strings
each with same meaning.
Currently "Text object" contains a string. With this feature, user is able to assign a row number from
string table to the text object. Script command "SelectLanguage (<Language Name>)" is available to
the user.
Let us assume that user creates 10 text objects on a HMI window. At start of run mode these 10 text
objects displays text from string table column 1. User executes script command "SelectLanguage
(Spanish)" on a button press. After executing this script command Infilink replaces text of all 10 text
objects by picking up strings from the Spanish column.
The display which was in English is now in Spanish.
Following Infilink objects will assume similar behaviour as of "Text object" because of language
switching feature.
1. Button (text displayed on button), 2. Alarm comments. 3. HMI Window caption..
Design mode offers a string table editor. User is able to set required number of columns (Languages)
and go on adding / editing rows.
Details:
User can create user interfaces (HMI windows) in such a way that in run mode the user
interface is shown in any one of the configured languages.
User creates a string table in design mode using menu item Tools String table, a dialog
box similar to following will appear.
Multilanguage strings can be import/exported to/from a CSV file. This allows most of the
editing to be done within a spreadsheet.
User can create many strings in multiple languages. Each string has a string identifier (String
ID). Duplicate String IDs are trapped by Infilink.
Text object, button object, Window Caption and Alarm comment can be assigned a string ID
instead of a string. While assigning string ID, character # should be put as initial character
before actual string ID.
To assign a string ID of IDS_GREETING to a text object, #IDS_GREETING should be entered
as text.
Infilink upon seeing first character as # will treat that string as string ID. At run time string
associated with that string ID for currently selected language are assigned to the text object.
The script command SelectLanguage <Language Name> should be used to select current
language. <Language Name> is expected to be a string expression. Passing an empty string
to SelectLanguage command causes Default Language to be selected.
The other languages are selected by passing the actual language name, which is the same as
the column heading for that language. The string IDs and language names are not casesensitive.
The image can be used in semi transparent form by assigning Image alpha value less than
255. For semi transparent images the background color of the window is seen through the
image. Assigning value of 255 to Image alpha value will make the image completely opaque
and at that setting background color will not be seen.
Bug Fixes
Flat lines were being displayed on trends if System Time changed; this is now fixed.
If HMI windows were created with width and height equal to screen resolution then scrolling to
rightmost and bottommost portions of those windows was not possible; fixed.
Infilink is now able to respond to iViewer information requests from computers running
WindowsXP.
Infilink Overview
Design Mode
Infilink Design Mode is used to create a project that will execute in Infilink Run
Mode. A project is a collection of objects that graphically depicts a process or
operation. A valid project contains at least one window to display the output for
the project. Output is generated by drawing one or more objects in the window
and then assigning animations to those objects. Animations are driven by data
that is stored in internal memory locations called tags.
In addition to object animations, Infilink provides a scripting language to
manipulate project components and tag data. Scripts may be assigned at the
project level, window level and object level. A script may also be assigned to
execute when the value of a tag changes or reaches an Alarm condition.
Tags can reference data from external devices such as PLCs, user defined
memory variables, or other Windows applications through DDE. Tags are
assigned to external devices using a node identifier or alias for each device. This
alias identifies the device driver and protocol used to communicate with the device
and its network ID.
The steps involved in creating a Infilink project are as follows:
1. Identify the hardware that will be accessed and draw up a map to identify
each device. This step will help you determine which DDE or OPC server
application you need to provide device data. It will also simplify the
process of identifying these devices to Infilink.
2. Launch Infilink Design Mode and click cancel on the Open Project dialog
that automatically pops up. Use the New... item on the File menu to
create an empty Infilink project. A default window will be displayed before
moving on.
3. Open the Window Properties dialog box to choose the options that you
wish to apply to the window at run time.
4. Use the Tag Groups item on the Project menu to setup OPC and DDE tag
groups referring to the device map created in step 1. (If you don't have
the appropriate device driver yet you may skip this step for now and
assign the tags you will define in the next step to a memory group.)
5. Use the Tag Groups item on the Project menu to assign tags to the
groups entered in step 4. This step maps device locations that will be
monitored with assigned tags in Infilink that will be referred to when
defining scripts and animations.
Copyright 2004 KEP, Inc.
Infilink Overview 31
For objects, short cut menu functions provide quick access to common activities
such as Cut, Copy, Duplicate, and Delete. The short cut menus also provide the
easiest means of accessing an object's properties and animations. Depending on
the object selected additional functions such as Reshape, Font, and Reassign
tags may be available.
Infilink Overview 32
The short cut menu functions for a window allow you to quickly turn the Grid
feature on and off. You can also quickly Save the selected window or Close it
altogether. The Last Drawing Tool selection allows you to easily draw multiple
objects of the same type without having to reselect the drawing tool from the
toolbox.
Short Cuts on Tag Groups and Tags
All of the tag management tools are included in the shortcut menus. The only way
access Tag Import and Export commands is through the short cut menu.
Infilink Overview 33
Project Tools
Window Tools
- Save project
- New
- Duplicate
- Open project
- Open
- Properties
- Run Project
- Close
- Color
- Tag Groups
- Save
- Grid On/Off
- Project Properties
- Delete
- Library Manager
- Event Viewer
Drawing Tools
- Select objects
- Draw chord
- Draw line
- Draw text
- Draw polyline
- Draw button
- Draw polygon
- Import bitmap
- Draw rectangle
- Import metafile
- Draw ellipse/circle
- Draw arc
- Draw pie
Line Tools
Fill Tools
Infilink Overview 34
- Line Color
- Solid
- Fill Color
- Dash
- Unfilled
- Dot
- Dash dot
- Solid Fill
- Horizontal Hatch
- Vertical Hatch
- Cross Hatch
- Downward Diagonal Hatch
- None
Layout Tools
- Bold text
- Italic text
- Underline text
- Rotate Clockwise
- Select font
- Flip Horizontal
- Flip Vertical
- Text Color
Editing Tools
Alignment Tools
- Undo
- Make Group
- Align Left
- Align Right
- Cut
- Break Group
- Align Top
- Align Bottom
- Copy
- Center Vertical
- Paste
- Shape Properties
- Center Horizontal
- Duplicate
- Reassign Tag
- Delete
- Reshape
, to lasso
Infilink Overview 35
Object/window selection.
Context sensitive short cut menu.
Ends reshape mode or interactive animation definition.
Infilink Overview 36
Combinations
Shift-Drag
Defines a square boundary rectangle when drawing an object.
Defines a diagonal line when drawing a line.
Ctrl-Drag
Ctrl-Click
Run Mode
The Run Mode application executes an Infilink project created in Design Mode.
Run mode consists of six basic components: run time animator, database server,
data logger, alarm logger, OPC/DDE server and event logger.
Run Time Animator
This is the main window that you see when you start Run Mode. The run time
animator handles any operator interaction with a running Infilink project.
Database Server
This is the data management component of Infilink Run Mode. You may see it
referred to as the "Data Manager". It handles the exchange of data between the
run time animator and the device drivers. It is also responsible for managing active
OPC and DDE links, updating the scheduler, animator and data logger when a
piece of data changes, and notifying the animator of alarm conditions.
Data Logger
The data logger processes data changes and records information about the change
to a log file.
Alarm Logger
The alarm logger processes alarm notifications from the database server and
records the alarms to a log file.
OPC/DDE Server
A server provides the interface between Infilink and a specific piece of hardware.
Each server knows only how to communicate with a specific device or set of
devices. You will need to choose the appropriate server for your application and
install this component separately.
If Infilink does not provide a native driver for the device that you will be using, you
can use any third party OPC or Advanced DDE server in place of the device driver.
KEPware's OPC Server application, KEPServerEX, has been provided for you on
the Infilink CD. Please refer to the documentation provided with KEPServerEX to
determine if an appropriate device driver is available for your application.
Event Log Viewer
The event log viewer captures and displays status output generated by the other
run mode components. Each status message is time stamped and displayed in the
Event Logger window. The contents of this window may then be printed or saved to
a text file for later review.
Infilink Overview 37
Overview
If you need help, the
completed lessons may
be found in the Infilink
\lessons directory.
These lessons are
provided to give you a
reference of what a
project should look like
when completed.
Thank you for making Infilink your choice in HMI Software. Infilink has been
designed to allow you, the user, to get maximum performance with a minimal
amount of effort.
This lesson and the lessons that follow are designed to guide you through the
process of creating an Infilink project. The lessons will get more complex as they
progress. Some lessons, like this one, are designed to teach you about the parts
of Infilink. At any time you may jump forward to another lesson or skip lessons
entirely.
Lesson Objectives
This lesson is designed to give you a basic understanding of how to navigate
within Infilink. When completed you should be able to:
Create a new project.
Add/Draw objects in a project window using the Toolbars or Main
Menu.
Edit objects using the Main Menu, Short Cut Menus, or Toolbars.
Save a Project
If you feel that you know how to navigate in Infilink, please feel free to go to
Lesson 2.
This is what your project
will look like at the end of
the lesson.
Creating a Project
1. Open the Infilink Design Mode application.
2. Click Cancel in the Open Project dialog box
Show at startup, when
this box is checked the
Open Project window will
automatically come up
when Infilink Design is
started.
4. The New Project dialog box will open. Type a name in the Create Directory
field as a project name, we suggest using Lesson1. Click Create to accept
the settings and create the project.
5. When the system asks you to verify the name and path of your project, click
Yes if it is correct. If not, click No and repeat 3.
6. The design Mode will start with a default window created. Open the Window
Properties dialog box by clicking on Properties in the Window menu. Leave
Win001 for a window Name and type Drawing and Editing for a Title.
Win001 is the
system generated
object Name for
the first window in
a project. You can
change this name
at any time.
Generally we will
give a name to a
window that
indicates its use
i.e." Main" or
"Pump_room1".
The Title text will
appear in the title
bar of the project
window.
Show when project
starts in run mode,
when checked,
makes the window
open whenever
the project is
opened in run
mode.
7. Click on Show when project starts in run mode, then click OK to create the window.
Every object has properties that can be modified both at design and run time. The
differences in dialog boxes for each object are too numerous to explain in one
lesson. You can investigate these differences on your own when you have
learned how to create each of the objects and modify their properties.
Properties common to every object are name, size and position. Generally you will
use the mouse to change an objects size or position. You must however use an
objects property dialog to change its name.
When creating objects it is very important that you consider giving a unique name
to any object that will be animated. You might have ten to twenty objects grouped
together to simulate a panel and have one object that is animated. Naming that
object will allow you to immediately know when you have selected that object by
seeing its name appear in the status bar.
To reference the properties of an object at run time using a script, you must be
able to specify that object by name.
When you save a project if there are errors in scripts or animations, messages will
appear in the event logger. These messages will indicate objects by name and
indicate what kind of error has occurred.
A Chance to Practice
You will now take the opportunity to add some objects to our project and learn how
to manipulate them. Feel free to deviate from the lesson, its goal is to help you
feel comfortable using Infilink
If you make a mistake
when drawing an object,
you can choose Undo
from the Edit menu or
select the object and
press the DEL key to
remove it.
2. Place the pencil cursor in the upper left corner of the project window.
3. Holding the left mouse button down, drag the cursor down and to the right
creating a box. Release the mouse button when done.
4. While the object is still selected press the right mouse button and click
Properties... from the popup.
6. The Geometry tab allows you to change the shape of the corners. Changing
both numbers to 0 will make the rounded rectangle a perfect square.
Changing those numbers to 100 will make it a perfect circle. As you will see,
these attributes can also be changed visually by invoking a special mode
called Reshape.
8. While the object is still selected, press the right mouse button and click
Reshape from the short cut menu.
9. Move the cursor over the reshape dot until it becomes a hand.
10. Holding down the left mouse button, move the dot around and see how its
different locations effect the corners of the rectangle.
11. When you are through, drag the reshape dot to the center of the bottom line
and release the left mouse button as shown below
2. Place the pencil cursor below the rectangle in the center of the project
window.
3. Holding the left mouse button down, drag the cursor down and to the right
creating a box. Release the mouse button when done.
4. While the object is still selected press the right mouse button and select the
Properties... item from the short cut menu.
5. Select the Text tab and type the following text in the Text field: Text can be
useful.
6. Click on the General Tab and type My_text in the Name field.
Notice the name of the
object changed from
none to My_texton
the status bar.
2. Place the pencil cursor below the text object in the lower right portion of the
project window.
3. Click the left mouse button to set the first corner of your triangle. Drag the
cursor to the next point and release. Move the cursor to the last position and
double click to finish creating the triangle.
4. While the object is still selected, use the short cut menu as you did above to
display the properties dialog or press F4 to do the same thing.
6. Change the fill color of the triangle to bright green by clicking the
and the
, solid fill
Click the
2.
3.
Position the cursor above and to the left of the Rounded rectangle.
4.
Holding the left mouse button down, drag the cursor down and to the right
creating a bounding box or lasso large enough to enclose all of the objects
in the project window and release the mouse button.
5.
Click the
button on the Toolbar to align all of the grouped objects to
their horizontal centers.
6. Click the
button on the Toolbar to space all of the grouped objects equally
from the top of the group to the bottom.
7. Click on the
8. Use one of the methods described earlier in the lesson to display the
properties of the group and name it grpLesson1.
9. Drag the left side of the group to the left to resize the group and the objects
contained within it.
10. Double Click while holding the Shift and Ctrl keys down on one of the grouped
objects. This selects the group and allows you to edit individual objects in the
group.
Note: Variable size is automatically assigned to text objects in a group when the
group is resized by dragging a handle.
Clicking on Tag Group icon allows you to add a new Tag Group of that type,
double clicking on a defined and highlighted tag group allows you to edit the
groups properties.
Edit Tag Group Properties Tool
Use this tool to bring up the properties window of a Tag Group.
Delete Tag Group Tool
Use this tool to delete a Tag Group. A Tag Group can only be deleted if it is empty.
tool.
2. Name: Enter a name that will identify this Tag Group. The name you enter
here will appear in scripts that use Tags from this group.
tool.
2. Name: Enter a name that will identify this Tag Group as a link to a DDE
server. The name you enter here will appear in scripts that use Tags from this
group.
3. Server name: Enter the name of the program or DDE server application that
this Tag Group will use to get to a DDE information source.
4. For a DDE Tag Group, you would enter the name of the server application that
will be providing data to your project. If you will be using KEPware's OPC
server, you would enter KEPDDE if the server and Infilink will reside on the
same PC. Otherwise, you would enter a string of the form \\<computer
name>\ndde$ to specify a NETDDE connection to KEPServerEX on the PC
identified by <computer name>.
5. Server topic: Enter the name of the server device or program handle that is a
DDE information source.
6. If the Tag Group you are defining uses an Infilink device driver then this field
identifies the device on the device network. You must enter a number here
even if only one device will be used.
7. For a DDE Tag Group you would enter the name of the server topic that the
Tag Group will represent. Note: If you will be using KEPware's OPC server
then the topic would be "_ddedata" or an Alias name created in the server.
When specifying a topic for a remote server you will need to append a $ to
identify the topic as a registered NETDDE share.
8. Data format: You may specify the format of a DDE connection for a given
node by assigning a format to that node. Available formats are Advanced and
CF_TEXT. If you know that a specific server supports both Advanced and
CF_TEXT connections (such as KEPServerEX), you can force Infilink to only
connect using the format that you choose by assigning the desired connection
type. When the format is set to Advanced, Infilink will alternately try Advanced
followed by CF_TEXT when attempting to connect with a server.
Advanced Tab
9. Initially disabled at run mode start: Allows you to manually start looking for
DDE information when you need it. In some cases, the DDE information is not
available until the Server Application is started (sometimes this is after Infilink
is already running).
10. Wait: Puts a delay in before attempting to reconnect to a broken DDE link.
This gives the Server a chance to reestablish a link with its Topic.
11. CF_TEXT DDE
These settings apply only when CF_TEXT is the data format.
Enable Block data start requests
On startup, DDE tag information must be sent to the server so that the
server knows what information to give Infilink. When checked, DDE tag
information is sent in a high efficiency fashion to the server. Otherwise,
each DDE tag's information is sent normally. Check this box to
accommodate servers without high efficiency request capabilities.
Initialization delay in milliseconds (0-2000)
This value causes a communication delay to the DDE server shortly after
Infilink starts. This allows servers with a long response after startup to
respond properly to Infilink initialization commands. This delay occurs only
once when Infilink is started.
Data start request delay in milliseconds (0-1000)
Use this value to put an additional delay after DDE communications are
initialized. Once this delay is over requests for DDE data begin. This
allows servers with a long response after initialization to respond properly
to Infilink data requests. This delay occurs only once when Infilink is
started.
Notes:
1. The above two delays can add up to 3 seconds to the startup time of
an Infilink project. Making the delay times shorter reduces this additional
delay. The delay can be fine-tuned by a trial and error process. The
delay is dependent on the server you are using.
2. KEPServerEX will accept high efficiency data requests and requires
no delays on startup.
12. Click OK to add the group.
tool.
2. Name: Enter a name that will identify this Tag Group as a link to an OPC
server. The name you enter here will appear in scripts that use Tags from this
group.
3. Description: Enter a brief description. This will help you to identify the purpose
of the tags in this group later on.
4. Prog ID: Enter the name of the OPC server or source. Use the
tool to
browse for OPC applications that are running at design time. If you will be
using KEPware's OPC server, you would enter KEPware.KEPServerEX.V4 if
the server and Infilink will reside on the same PC. Otherwise, you enter a
remote machine name to specify a remote connection to
KEPware.KEPServerEX.V4.
5. Remote machine: Enter a remote machine name <computer name> to
specify a remote connection to the server, named in the Prog ID field.
6. Update Rate: The update rate specifies how often the Tag Group should
request data from the Server.
7. Click OK to add the group.
tool.
2. Name: Enter a name that will identify this as a Virtual Tag Group. The name
you enter here will appear in scripts that use Tags from this group.
3. Description: Enter a brief but meaningful description. This will help you to
identify the purpose of the tags in this group later.
4. Click OK to add the group.
About Tags
A tag is a named object that is used to reference a piece of data. The Tag Group
to which the tag is assigned determines the source of the data.
The Tag Groups dialog box is used to define new tags and edit the properties of
existing tags. You can access this dialog box by pressing F6 or selecting the Tag
Groups item from the Project menu while in Design Mode. Any changes that
you make to the tags are not saved until you save your project.
_FileOpStatus Short
Holds the result of the most recent file operation. Result codes are defined as
follows:
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
Function success
File not found
Maximum open file count of 8 has been exceeded
Unable to create the target file
An error occurred during a file read operation
An error occurred during a file write operation
A memory allocation failure occurred during a read operation
The maximum CSV field length of 256 characters has been exceeded.
A specified read offset was past the end of the file.
An invalid length parameter was specified.
_Hour Short
Identifies the current hour in 24 hour format where 0 = 12:00 am, 13 = 1:00 pm,
etc.
_MenusVisible Discrete
Identifies the visible state of the main program menus at run time where 0 = Off, 1
= On.
_Minute Short
Identifies the current minute from 0 to 59.
_Month Short
Identifies the current month from 1 to 12.
_Msecond Short
Identifies the current millisecond from 0 to 999.
_ProjectPath String
Identifies the current project path formatted with a trailing backslash character (\)
as in C:\Infilink\Projects\test\
_Second Short
Identifies the current second from 0 to 59.
_User String
Identifies currently logged in user. If no user is logged in, this tag will assume the
value NOUSER
_Year Short
Identifies the current year in 4 digit format.
tool
Displays the name of the currently selected tag. When defining a new tag you will
enter the name for that tag in this field.
Description
Enter a brief but meaningful description. This will help you to identify the purpose
of the tag later.
Initial value (Memory Tags only)
Enter the value that you would like this tag to assume when the project is first
started.
Data Type
Use this list to select a data type for the value that will be assigned to the tag.
Discrete: Boolean value, False = 0, True = 1
Char: An 8 bit signed value with a range from -128 to 127 that represents one
character.
Byte: An 8 bit value with a range from 0 to 255.
Short: A 16 bit signed value with range -32768 to 32767
Word: A 16 bit unsigned value with range 0 to 65535
Long: A 32 bit signed value with range -2,147,483,648 to 2,147,483,647
E38
Double: Double precision (8 byte) floating point value with range 1.7976931 E308
to +1.7976931 E308
String: A character array of varying length from 1 to 256 bytes
Security
Security is used to restrict the user from changing a tag's value. A tag's value may
be changed by a variety of ways. Conditional access can also be implemented by
using Access Levels.
Internal Access
Select Read Only to prevent the value of this tag from being altered. If a tag
value is to be modified under project control from either a script or enter data
animation then it must be given Read/Write privileges.
DDE client access
Most Settings are the same as a Memory tag. Additional settings are listed below.
Server item
The address* of the information in the device or tag name in the server. For a
controller this might be a register number (ie. R0012) or in a spreadsheet program a
cell location (c3).
*Address
The address of a Server item is a string of 1 to 30 characters that specifies an item
name supported by the topic identified in the DDE Tag group properties.
Note: If you will be using KEPServerEX without an Alias as the topic, you must
specify the Channel and Device as well as the address for the item name.
<Channel Name>.<Device Name>.<Address>
You can specify an optional scan rate and/or data type for the item using the
format:
<item name>@<scan rate>
Where:
<item name> is the path to the device address or just an address if an alias is
used.
<scan rate> is the scan rate of the address in milliseconds. Infilink will request the
information from the DDE server at this interval. The scan rate specifies how
often the device driver should request this piece of data from the device.
Most Settings are the same as a DDE tag. Additional setting listed below.
Server item
The address* of the information in the device or tag name in the server.
Design Tip
When more than one
address in the server is
selected, Infilink will
make tags for all of the
selected addresses. This
powerful feature eases
the task of creating tags
separately in Infilink after
they have already been
created in the server.
*Address
The address of a Server item is a string of 1 to 32 characters that specifies an item
name supported by the Prog ID identified in the OPC Tag group properties. If
you will be using KEPServerEX, specify the item using the format:
<channel name>.<device name>.<item name>
Where:
<channel name> is the name of the Channel in the OPC server
<device name> is the name of the device in the OPC server
<item name> is the device address in the controller or a tag name that was
created in the OPC server
Use the
tool to browse for OPC Server items. This will generate the address
for you automatically and put it in the Server item text box.
Note: Once a tag name is entered, the browse button will prompt you if
you want to change the tag name. Select NO to continue with the
browsing.
Deadband
Select the Enable check box to set the minimum raw value change the tag can
undergo before Infilink will see the value as changed.
Example: If a deadband of 10 is entered, the tags raw value must change by 10
units from that last recorded value before a new value for the tag will be
recognized and logged.
If the initial value of the
tag is set to a lesser
value than the Minimum
clamp, an error message
will be reported to the
Event Logger.
Alarm Tabs
Displays the alarm definitions. If you have added a tag that has an assigned data
type other than string, you may use these tabs to assign alarms to it.
Quick Tip
If you intend to use the CSV function to create your tag database in another product such
as Microsoft Excel, create a couple of tags using Infilink's normal group and tag editors.
Once you have a small tag database established, use the export tag database function to
generate a template CSV file. You can then import this file into Excel and add to it as
needed.
75
Overview
Now that you have learned a little about Infilink, we will take the opportunity to
discuss animations. In Infilink, every object can be animated in some fashion to
respond either to mouse clicks or changes in the data of an associated control tag.
This section discusses all of the Animations available from the Animations Dialog
Box.
About Animations
The following types of animation are defined in Infilink:
1.
2.
3.
4.
5.
6.
Show/Hide
Blink
Stretch Horizontally
Stretch Vertically
Move Horizontally
Move Vertically
7.
8.
9.
10.
11.
12.
Change Color
Rotate
Enter Data
Show Value
Slider
Take Action
Not all forms of animation are available for all objects. For example, a Text object
can have a Show Value animation whereas a Rectangle object cannot, yet both
objects can have a Take Action animation. Objects can have several animations
defined at once.
Animations are defined using the Animations dialog box accessed from the
Animations menu item on the Edit menu, by selecting Animations from the
short cut menu or by pressing the F5 key. An object or group must be selected
before you can use the Animations dialog box. Once you are in the Animations
dialog box, only those animations that are appropriate to the object or group are
made available.
You will not be able to assign conflicting animations to the same objects or to the
groups that contain those objects. For example, you cannot place an Enter Data
and Slider animation on the same object.
Animating an Object
Making an Object Blink
The Blink animation
cannot be assigned to a
group
The Blink Animation is used for Blinking an object; either alternately making it
visible, then invisible, or alternately making it one color, then another color. Three
blinking speeds are provided.
1. Press the
2. Press the
Tags... button in order to view the Tag List. An Analog
tag must be attached to this animation. Select a tag to create a tag name or
expression.
3. Check the Substitute zero for input value if tag data is not valid if desired.
Checked: Whenever the Tag value is outside of the specified range the move
animation puts the object in the zero position.
Unchecked: Whenever the Tag value is outside of the specified range the
move animation leaves the object in the last valid position.
4. If a Discrete tag is selected, then choose whether to blink the object when the
value of the tag is Logical TRUE (ON) or Logical FALSE (OFF).
5. If an Analog tag is selected then choose whether to blink when the value is
either Within the Range (Inclusive) or Outside the Range of assigned values
you enter under Input value range. If Within the Range is selected, the object
will blink when the tag value falls within the given Low to High range.
6. Select a Blink type. Show/hide will alternately show and hide the object when
the blink condition is TRUE. Change colors will alternately change the color of
the border, interior or text of an object when the blink condition is TRUE. You
set the colors by clicking on the colored rectangles and choosing the desired
color in the Color Selection Dialog.
7. Select the desired Blink rate Slow, Medium or Fast. The Fast cycle time is
approximately 400 ms, Medium is approximately 800 ms and Slow is
approximately 1.2 seconds.
8. Choose OK to accept the animation definition.
1. Press the
button in the Animations Toolbar. Or, right click on the object
and select animations. Then select the Show/Hide animation button.
2. Press the
Tags... button in order to view the Tag List. An Analog
tag must be attached to this animation. Select a tag to create a tag name or
expression.
3. Check the Substitute zero for input value if tag data is not valid if desired.
Checked: Whenever the Tag value is outside of the specified range the move
animation puts the object in the zero position.
Unchecked: Whenever the Tag value is outside of the specified range the
move animation leaves the object in the last valid position.
The Show/Hide
Animation can be used
with overlapping images
to show multiple states
of an object.
4. If a Discrete tag is selected then choose whether to make the object visible
when the value of the tag is Logical TRUE (ON) or Logical FALSE (OFF).
5. If an Analog tag is selected, use the Show when input value is dropdown to
choose Within the Range or Outside the Range. Enter the desired value
range under Input value range. If the value of the tag is chosen Within the
Range, then the object will only be shown when the tag value falls within that
Low - High range.
6. Choose OK to accept the animation definition.
Move Left/Right in
combination with Move
Up/Down, using equal
steps, displays a
diagonal path of
movement.
Move Horizontal or
5. Enter the Input Value Range for Low and High that corresponds to the analog
ranges. High limit should always be greater than the low limit.
6. The related position of the object for each tag value can be set either by the
keyboard or by clicking the Low or High Related position button
. Clicking
one of these buttons takes you to the object where you can graphically set the
desired initial and final object positions using the mouse.
7. Choose OK to accept the animation definition.
1. Press the
or
buttons in the Animations Toolbar. Alternatively, right
click on the object and select animations. Then select the Slider animation
button.
2. Press the
Tags... button in order to view the Tag List. An Analog
tag must be attached to this animation. Select a tag to create a tag name or
expression.
3. An Analog tag must be attached to this animation. Enter the value that the tag
has at the end points of motion in the Input value range Low and High edit
fields. The high limit should always be greater than the low limit.
Rotating a Line
The Rotate Animation can be attached to a line object. The center of rotation can
be defined anywhere within the window. Typical use is as an indicator needle of a
meter or to show the rotation of a wheel.
1. Press the
2. Press the
Tags... button in order to view the Tag List. An Analog
tag must be attached to this animation. Select a tag to create a tag name or
expression.
3. Check the Substitute zero for input value if tag data is not valid if desired.
Checked: Whenever the Tag value is outside of the specified range the move
animation puts the object in the zero position.
Unchecked: Whenever the Tag value is outside of the specified range the
move animation leaves the object in the last valid position.
4. Enter the Input Value Range for Low and High values that correspond to the
tag ranges. High should always be greater than the low value.
5. The Angle of rotation in degrees of the object for each tag value can be set
relative position buttons. Clicking
either by the keyboard or by clicking the
one of these buttons takes you to the object where you can graphically set the
desired initial and final object rotations using the mouse. Angles of rotation
are measured in degrees as shown in the following diagram:
6. Select the Center of rotation (the pivot point). This can be:
Start point - The beginning of where the object was drawn.
Center point - The center of the object.
End point - The end of where the object was drawn.
User defined - If selected, the
relative position button is used to
graphically set the center of rotation using the mouse.
7. Choose OK to accept the animation definition.
1. Press the
box.
2. Press the
tag.
3. Once the tag is selected, then select the Entry Method you want to use. There
are 6 different methods to choose from:
Popup - Displays a popup dialog box that allows the operator to make an
on/off selection or keypad if the tag is numerical or keyboard if the tag is a
string. A plain data entry field is shown if the Keyboard attached option is
selected in Project Properties. All data entry is done in signed decimal format.
Toggle TRUE/FALSE - The value of the assigned tag will be toggled from
TRUE to FALSE or from FALSE to TRUE when the mouse button or assigned
key is depressed.
Force SET/TRUE (1) - A one will be written to the tag whenever the animation
is invoked.
Force RESET/FALSE (0) - A zero will be written to the tag whenever the
animation is invoked.
Momentary - NO - The value of the assigned tag will change to TRUE when
the mouse button or assigned key is depressed and back to FALSE when
released.
Momentary - NC - The value of the assigned tag will change to FALSE when
the mouse button or assigned key is depressed and back to TRUE when
released.
4. If the tag is a numerical value, select the Significant figures to display (1-12).
1. Press the
box.
If an Analog tag is selected, choose the Range number 2 - 7 and the Color for
each range. The first color is assigned when the tag value is below the first value
in the range, the next when the tag value is between the first and second values,
etc. The last color is assigned when the tag value is greater than the last value
given.
1. Press the
button on the Toolbar. Or, right click on the object and select
animations. Select the Show Value button in the Animations dialog box.
Tags... button in order to view the Tag List. Select a
2. Press the
tag to create a tag name or expression.
3. Select the Data type that matches the Tag in the Treat value as frame and fill
in its format settings.
String - Char, String tags. If a String tag is selected then no formatting is
required. The string will be displayed as it appears in the tag. Char is
displayed as the ASCII character designated by its numeric value.
Discrete - Discrete tags. If a Discrete tag is selected then enter the text to
show when the tag value is ON and when the tag value is OFF.
Integer Byte, Short, Word, Long, DWord. Choose the desired Integer Format
from the list. Available formats are Decimal (Signed), Decimal (Unsigned),
Hexadecimal, Octal and Binary. Specify the field width and if you want to show
leading zeros.
Real - Real, Double. Set the Real Format fields. Select to display the value
with a given number of significant numbers (a fixed field width with floating DP
(decimal point)). Or, select to display the value in a fixed format with a
specified number of digits to the Left of the DP and a specified number of
digits to the Right of the DP.
4. Choose OK to accept the animation definition.
Formatting examples
Value Format
String
Discrete (On, Off)
Short, Decimal (Signed)
Word, Decimal (Unsigned) with leading zeros
Real, 3 significant figures
Real, Fixed field, 3 Left, 3 Right
The Take Action
animation cannot be
assigned to objects of
type line, arc, pie or
chord.
Tag Value
"Running"
0 - False
-54
54
12.34
12.34
Displayed Text
Running
Off
-54
00054
12.3
12.340
1. Press the
3. If your project will support multi-user security, enter the Access level that the
operator must have to activate the animation.
See Scripting for more
information.
4. If desired, check Invoke using keyboard shortcut and choose an optional Short
Cut Key equivalent to the mouse button.
5. Enter the script and Verify that the syntax is correct.
6. Choose OK to accept the animation definition.
Overview
Libraries are files containing previously drawn objects and groups. Infilink has a
Library Manager to help you organize objects used in a project. The Library
Manager has some tools to help you accomplish this.
Cut an object
Copy an object
Open a library
Paste an object
Save a library
tool.
tool.
Open a library
. All Infilink libraries have an extension of *.kol or *.lib. System Library
Click on
is the default library that comes with Infilink.
Scroll to the library you want to open, click on it, and then press Open.
Save a library
Click on
to save an existing library or enter a filename in the popup dialog if
this is a new file and click Save to save the current library.
The selected object has its name highlighted in the Treebar. To Rename an object
or object group, click on its name then click on the
name may be up to 64 characters long.
1. Click on the object or group to save. Right click to the shortcut menu and
select Copy.
2. Open the library and object group where you want to save the selected
object or group.
3. Right click in the object field of the library and select Paste from the shortcut
menu. A new Untitled object will be added to the treebar to the left of the
object field. Use Rename to assign an appropriate name, up to 64 characters
long, to the object or group.
Be sure to save the library so that the new object or group is not lost!
Design Tip
Note: The object to be saved must be copied from an Infilink window. Objects
copied from other programs such as Word or Paint cannot be pasted directly to a
library. Paste them to an Infilink window first then copy them from the window and
paste them to the library.
Reassigning Tags
The Reassign Tag
function can be invoked
at any time on any
window by simply right
clicking on an object. If
the object contains tags,
the Reassign Tags
selection will be
available from the
shortcut menu.
Design Tip
If you duplicate objects
which contain tag
information such as a
display, you can quickly
change the tags in the
newly duplicated objects
using the reassign tags
function. The
combination of these two
functions allows you to
create an object once
then quickly populate
your window with
duplicates each attached
to their proper tags by
the reassign tags
function.
The Reassign Tag dialog is used to replace one or more tag names assigned to
the selected object. Each animation and script assigned to the object will be
scanned for tag usage. You will be shown a dialog box for each different tag that
is assigned to the object.
The dialog appears as follows:
The text to the right of Old name: indicates the name of a tag found in the scan.
This tag may be assigned to more than one animation or script. To reassign this
button
tag you can either type in a valid tag name or press the New name:
and select a tag from the Tag List dialog. When you press the OK button all
occurrences of Old name will be replaced with the tag name shown in the edit
control.
You can skip reassignment of a tag by pressing OK without making any changes
to the name.
Press Cancel at any time to stop the reassignment process.
Overview
Scripts provide the additional functionality your application may need. Infilink
scripts allow you to perform tasks such as complex scaling operations, file
manipulation, string handling, and user interactions with your process. This
section is provided as a reference for the script functions.
Introduction
Scripts are automated sequences of commands that are executed by Infilink at
run-time. There are five types of scripts:
1.
2.
3.
4.
5.
Project Script
Access to the project script editor is granted by selecting the Scripts tab in the
Project Options dialog box. There are three types of project scripts: On project
open, While project running, and On project close. One Script may be written for
each type.
Project Scripts will
contain those functions
and operations that you
need to have perform
independently to what
the operator is doing
somewhere else in the
project.
On project open
Initialization steps that you want to perform when your project starts could be
taken care of with a On project open script. This type of script executes once
when the project is initially loaded. You might use an On project open script to set
the state of some internal memory tags or launch an external application.
While project running
Periodic operations at the project level can be performed in a While project
running script. While project running scripts execute on a user defined Interval
anywhere between 100 and 99999 ms. While project running scripts are executed
before any On window open scripts if such scripts are defined.
On project close
Any project level cleanup that you need to perform can be done in an On project
close script.
Entering a Project Script
1. Press the Scripts tab and select when the script will occur.
2. Enter the script and Verify that the syntax is correct.
3. Choose OK to accept the script definition.
Window Scripts
Access to the window script editor is granted from the Window Properties dialog.
You can display the Window Properties dialog for the selected window by selecting
properties from the window's shortcut menu. There are three types of window
scripts: On project open, While project running, and On project close. One Script
may be written for each type. The types of script that you may define for a window
are defined below.
Window Scripts are used
for those functions and
operations that are only
important while the
window is opened. For
example you may want
to show or hide certain
objects, or you may wish
to perform some
calculation that only
displays on the window.
On window show
Initialization steps that you want to perform prior to showing a window could be
taken care of with an On window show. You might use an On window show script
to initialize the properties of one or more objects on the window.
While window showing
Periodic operations at the window level can be performed in a While window
showing script. While window showing scripts execute on a user defined Interval
anywhere between 100 and 99999 ms. You might use this type of script to cycle
the value of a memory tag that is used on the window.
Copyright 2004 KEP, Inc.
On window hide
Any window level cleanup that you need to perform when a window is removed
from view can be done with an On window hide script. You might use this type of
script to show a different window.
Entering a Window Script
1. Press the Scripts tab and select when the script will occur.
2. Enter the script and Verify that the syntax is correct.
3. Choose OK to accept the script definition.
Example: While showing script
# Calculate the percentage of capacity used in the brewing vat.
# The vat is 27 feet deep. Each foot equals 4800 gallons or 400
# GPI. Capacity is initialized at 129,600. Level is recorded in
# inches and GPI is initialized at 400.
percap = (level * GPI) / capacity;
On button down
The script assigned to this phase of the button or key press will execute as soon
as the mouse button or assigned short cut key is pressed.
While button pressed
This script executes at the specified Interval from 100 to 99999 ms while the
mouse button or assigned short cut key remains pressed. You might use this type
of script to change the value of a memory tag at a slightly faster rate than could be
attained from repeatedly pressing the key.
On button up
This script executes when the mouse button or assigned short cut key is released.
To emulate a Windows style button that initiates a single action you would use this
type of script.
Access to the data change script editor is granted by selecting the Scripts tab in a
Tag's Properties dialog box. You can display the Tag Groups dialog box by
pressing F6.
On data change
An On data change script assigned to a tag in the tag database will execute
whenever the tag value changes. If the tag has an assigned deadband, the value
must change by at least that value before the script will execute.
Entering a Tag Script
1. Select a tag by clicking the Tag Group tool button to display the defined tags
and then choose one by double-clicking it with the mouse or use the shortcut
menu and select Properties. From the Tags Properties dialog box, click on
the Scripts Tab.
2. Enter the script and Verify that the syntax is correct.
3. Choose OK to accept the script definition.
Example:
# If the chlorine sensor detects chlorine the chlorine
# acknowledge bit is set on.
If (chlorine_detect == 1) then
Chlorine_act = 1;
Endif;
Alarm Scripts
Access to the alarm script editor is through a Tags properties dialog when you
assign an alarm to a tag.
Alarm Scripts are for
those functions and
operations that you want
to perform when an
alarm condition is active.
You might use an Alarm
Script to sound an alarm
when a tag exceeds a
certain value. The script
may take place at any to
all of the possible times.
On active transition
Actions that you want to perform when the alarm occurs could be taken care of
with a On active transition script. This type of script executes once when the
alarm initially occurs. You might use a On active transition script to trigger an
annunciator or show a diagnostic window.
While active
Periodic operations while an alarm condition exists can be performed with a While
active script. While active scripts execute on a user defined Interval anywhere
between 100 and 99999 ms.
On acknowledge
Periodic operations after an alarm is acknowledged can be performed with an On
acknowledge script. On acknowledge scripts execute once when the alarm is
acknowledged. Acknowledging an alarm does not stop any While active scripts
from executing.
On inactive transition
Any alarm housekeeping that you need to perform can be done in an On inactive
transition script.
Entering an Alarm Script
1. Select a tag by clicking the Tag Group tool button to display the defined tags
and then choose one by double-clicking it with the mouse or use the shortcut
menu and select Properties. From the Tags Properties dialog box, click on
the appropriate Alarm Tab then click on the Script button.
2. Enter the script and Verify that the syntax is correct.
3. Choose OK to accept the script definition.
Script Reference
General
The remainder of this chapter deals with the commands and constructs that may
be used when writing a script. Here are some basics:
Comments
In order to continue a
comment on the next line
you must place a # at the
beginning.
You will find it helpful to include comments in your scripts so that when others
review your work (or even you at a later date) the intended operation of the script
will be clear.
A comment is defined by preceding the comment text with a pound sign (#) as in:
# This is a sample comment
#
# Show the value of a numeric expression by assigning it
# to a text object.
#
Logical Constants
The following constants are provided for use in expressions involving the discrete
data type. They can be used anywhere a logical TRUE or FALSE is required.
ON or TRUE may be used to indicate a logical TRUE (1)
OFF or FALSE may be used to indicate a logical FALSE (0)
Example:
# Sound a beep from the PC speaker if the value of
# DiscreteTag1 is TRUE
If DiscreteTag1 == ON Then
Beep;
EndIf;
Conditional Operators
Conditional operators are used when creating relational expressions for use in IFTHEN-ELSE or WHILE statements. The following operators are available:
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
= or == Equal to
<> Not Equal to
Parentheses may be
used to set the desired
order of execution of
logical operations.
Operations written in
parentheses are
evaluated first from the
inside out.
Example:
If (tag1 > tag2) then
tag3 = 1;
elseif (tag1 == tag2) then
tag3 = 0;
else
tag3 = -1;
endif;
Logical Operators
Logical operators are used when combining conditional expressions.
AND Logical AND
Logical expressions involving AND evaluate to TRUE if both sides of the
expression are TRUE.
OR Logical OR
Logical expressions involving OR evaluate to TRUE if either side of the expression
is TRUE.
NOT Logical Inversion
Inverts the result of a logical expression.
Infilink assumes that any
non-zero value is TRUE.
Examples:
If (tag1 > tag2) OR (tag1 > tag3) then
tag4 = tag1;
endif;
DiscreteTag1 = DiscreteTag2 AND DiscreteTag3;
DiscreteTag1 = NOT (DiscreteTag2 AND DiscreteTag3);
Assignment Operator
To make an assignment to a tag or object property you would use the equals sign
(=) as in:
<tag name> = <expression>
<window name>.<object name>.<object property> = <expression>
When working with the assignment operator, <expression> can be a literal value,
tag name, object property, or any combination of these that have compatible data
types. Compatible simply means that all components of the expression must be
either string or numeric. The target of the assignment determines the appropriate
type.
Examples:
# Assign the result of a numeric expression to a tag
tag1 = tag2 + tag3;
# Assign a numeric constant to a tag
tag1 = 5;
# Assign a logical constant to a discrete tag
DiscreteTag1 = ON;
# Assign a string literal to a string tag
StringTag1 = This is a string;
# Assign another tags value to a virtual tag
virTags\virTag1.name="memTags\boolTag";
Arithmetic Operators
Arithmetic operators are used when constructing numeric expressions. The
following operators are available:
The addition operator
may also be used to
concatenate strings.
Division by zero
evaluates to zero.
% may be used with
integer data types only.
+
*
/
%
Addition
Subtraction
Multiplication
Division
Modulo division. Returns the remainder from the division of two numbers.
Flow Control
IF-THEN-ELSE conditional construct.
Syntax:
If <relational expression> Then
Statement 1;
Statement 2;
.
Statement n;
ElseIf <relational expression> Then
Statement 1;
Statement 2;
.
Statement n;
Else
Statement 1;
Statement 2;
.
Statement n;
EndIf;
If a <relational expression> resolves to a logical TRUE the statements following
the Then keyword are executed followed by a jump to the first statement following
the EndIf keyword. If a <relational expression> resolves to a logical FALSE each
successive ElseIf condition will be evaluated until a logical TRUE <relational
expression> is found. If all ElseIf conditions are found to be FALSE, the Else
section will execute if present otherwise execution will jump to the first statement
following the EndIf keyword.
You may include as many or as few ElseIf sections as are necessary to qualify
the set of conditions you are scripting.
You may omit the Else section if no default processing is required.
While Loop
Syntax:
While <relational expression>
Statement 1;
Statement 2;
.
Statement n;
EndWhile;
A While Loop can only be used in a While Showing Window Script, While Running
Project Script, or While Key Pressed Take Action Script.
If the <relational expression> resolves to a logical FALSE, execution jumps to the
first statement following the EndWhile keyword. If the <relational expression>
resolves to a logical TRUE, the body of the loop will execute up to the EndWhile
keyword and the script will be suspended until the next interval as specified in the
Interval setting. When execution resumes, the <relational expression> is
evaluated again and the process repeated.
Math Functions
Each of the following functions returns and expects arguments of the real data
type.
Sin (<angle in degrees>)
Returns the trigonometric sine of <angle in degrees>
Cos (<angle in degrees>)
Returns the trigonometric cosine of <angle in degrees>
Tan (<angle in degrees>)
Returns the trigonometric tangent of <angle in degrees>
Asin (<real>)
Returns the inverse sine of <real>
Acos (<real>)
Returns the inverse cosine of <real>
Atan (<real>)
Returns the inverse tangent of <real>
Sqrt (<real>)
Returns the square root of <real> (returns zero if <real> is negative)
Pow (<number>, <exponent>)
Returns <number> raised to the power <exponent>
Abs (<real>)
Returns the absolute value of <real>
Examples:
# Calc the hypotenuse of a right triangle from the lengths
# of its other two sides.
Hyp = sqrt ((s1 * s1) + (s2 * s2));
# Calc the angle between Hyp and S2
Angle = atan (s1 / s2);
String Functions
String functions operate on string expressions. You can specify a string
expression by using a string literal or string tag or by concatenating string literals
and string tags in any combination using the + operator.
A string literal can be up
to 127 characters in
length.
You create a string literal by enclosing the characters you wish to use in double
quotation marks as in "This is a string." If you need to include the
double quotation character () in the string you can precede it with a backslash
character (\). If the literal must end with the backslash character because the
string will represent a path name then you should add one additional backslash to
prevent the closing quote from being included as part of the string.
LTrim (<string expression>)
Returns <string expression> with leading spaces removed.
RTrim (<string expression>)
Returns <string expression> with trailing spaces removed.
Trim (<string expression>)
Returns <string expression> with leading and trailing spaces removed.
Str (<numeric expression>)
Returns the string representation of <numeric expression>
Val (<string expression>)
Returns the numeric value of <string expression>.
UCase (<string expression>)
Returns <string expression> with all characters converted to upper case.
LCase (<string expression>)
Returns <string expression> with all characters converted to lower case.
Chr (<numeric expression>)
Returns a single character string consisting of the ASCII character indicated by
<numeric expression>.
Len (<string expression>)
Returns the number of characters in <string expression>.
Equal (<string expression1>, <string expression2>)
Returns 1 if <string expression1> is equal to <string expression2>, 0 if not.
Left (<string expression>, <num chars>)
Returns the leftmost <num chars> characters from <string expression>.
Right (<string expression>, <num chars>)
Returns the rightmost <num chars> characters from <string expression>.
Mid (<string expression>, <first char>, <num chars>)
Returns the middle <num chars> characters from <string expression> starting at
<first char>.
File Functions
The <tag name> passed to the following two functions may be used as <file
name> when calling the file read/write functions described below. The tag name
supplied must be a string type.
FileGetWriteName (<tag name>)
Displays a dialog box that allows the operator to select/enter a file specification
and assign it to the string tag identified by <tag name>. The string tag will contain
a complete file specification including drive, path and filename.
When a selection is
made from this dialog,
the path is remembered
between uses.
Notes:
1. The file name functions should only be called from a Take Action script (On
button down or On button up).
2. The dialog box that is displayed by calling either of these functions will not be
displayed until after the function returns. You should not include any
statements following FileGetReadName() or FileGetWriteName() that
depend on the file name that is to be selected.
3. You should only call these functions from an On button down or On button up
Take Action script.
Each of the following functions returns a Large Integer value indicating the byte
offset into the file where the operation completed. This return value may be used
as the <offset> argument in subsequent calls to the file functions. If an error
occurs, the function will return -1 and the system tag _FileOpStatus will contain a
value indicating the type of error.
FileWriteText (<file name>, <offset>, <string expression>, <length>)
Example:
# The string parameters used within the FileWriteText
# function can also be entered as literals such as:
# FileWriteText
#("C:\testfile.txt", -1, "String", Len("String));
PathTag = "C:\temp\testfile.txt";
StringTag = "New Message: " + plc_string + Chr(13) + Chr(10);
LengthTag = Len (StringTag);
FileWriteText (PathTag, -1, StringTag, LengthTag);
if _FileOpStatus <> 0 Then
Show "MyErrorWindow";
endif;
Reads <length> characters from the file specified by <file name> starting at
byte offset <offset> into <string tag/object property>
If a read past end of file is attempted, the function will read as much data as it
can and return -1. _FileOpStatus will be set to -4.
If an <offset> is given that is negative or past the end of the file no action will
occur.
The tag or object property specified must have write permission and be a string
type.
Example:
# The string parameters used within the FileReadText
# function can also be entered as literals such as:
# FileReadText("C:\temp\testfile.txt", 0, StringTag, 100);
PathTag = "C:\temp\testfile.txt";
FileReadText(PathTag, 0, StringTag, 2000);
if _FileOpStatus <> 0 And _FileOpStatus <> -4 Then
Show "MyErrorWindow";
endif;
FileWriteCSV (<file name>, <offset>, <tag name>, <number of tags>)
Example:
# The file name parameter used within the FileWriteCSV
# function can also be entered as a literal such as:
# FileWriteCSV ("C:\temp\testrec.csv", -1, UserTag1, 10);
#
#
#
#
#
PathTag = "C:\temp\testrec.csv";
FileWriteCSV(PathTag, -1, UserTag1, 10);
if _FileOpStatus <> 0 Then
Show "MyErrorWindow";
endif;
PathTag = "C:\temp\testrec.csv";
FileReadCSV(PathTag, 0, UserTag1, 10);
if _FileOpStatus <> 0 Then
Show "MyErrorWindow";
endif;
Sound Functions
The function that you will use to generate sound from a Infilink project depends on
whether or not the target PC will have an installed sound card and speakers.
Beep (<numeric expression>)
Issues one or more beep to the PC speaker.
If <numeric expression> is given then the result of that expression will determine
the beep count, otherwise a single beep will be issued.
No special audio hardware is required to use this function.
PlaySound (<string expression>)
Plays the sound specified by <string expression>.
<string expression> can be a .WAV file specification or the name of a system
sound as defined in WIN.INI.
The size of a .WAV file specified to this function should be < 100 KB in length.
This function requires a sound card.
Example:
# Sound an alarm when the fluid level exceeds our limit
if (TankLevel > TankLimit) then
TankInlet = OFF;
PlaySound (WaveFilePath + "tanklim.wav");
endif;
Window Functions
The argument to each of the following functions is the name of a window (not the
window title). In all cases <window name> must be quoted as in "Win001".
Hide <window name>
Makes a window invisible, but does not unload it from memory.
Load <window name>
Loads a window into memory, but does not make it visible.
Move <window name> To <new left>, <new top>
Changes the location of a window. Coordinates are relative to the upper left
corner of the main application window.
Move <window name> By <horizontal change>, <vertical change>
Changes location of a window relative to its current location.
Resize <window name> To <new width>, <new height>
Changes the size of a window.
Resize <window name> By <change in width>, <change in height>
Changes size of a window relative to its current size.
Show <window name>
Makes a window visible. If the window is not already in memory, it will be loaded.
System Functions
All system functions have the following syntax: _SysCmd.<identifier>
Supported identifiers are described below. If a command corresponds to a menu
item, the item is given as <Menu>/<Item>.
AboutBox Help/About...
Displays the Run Mode About Box.
AlarmLogStart Logger/Start alarm logger
Turns on the Alarm Logger.
AlarmLogStop Logger/Stop alarm logger
Turns off the Alarm Logger.
CloseWin File/Close windows...
Displays a list of open windows that may be selectively closed.
DataLogStart Logger/Start data logger
Turns on the Data Logger.
DataLogStop Logger/Stop data logger
Turns off the Data Logger.
DataLogPulse Logger/Pulse data logger
Pulses the Data Logger, causing it to take a snap-shot of all tags that have the
Log Data attribute set.
DesignMode Project/Design mode
Returns the project to Design Mode for editing.
EventLog Windows/Show events
Brings the Event Logger to the foreground.
Exit Project/Exit
Exits Infilink Run Mode.
HideMenus
Causes the menu bar at the top of the main window to be hidden, restricting
access to the menu commands.
LogIn Users/Login...
Displays the login dialog box.
LogOut Users/Log out
Logs the current user out of the system. A user must be logged in for this
command to succeed.
OpenWin Project/Open windows...
Displays a list of unopened windows that may be selectively opened.
ShowMenus
Causes the menu bar at the top of the main window to be shown, allowing access
to the menu commands.
GroupConnect (<"group name">)
Causes the specified OPC tag group to attempt to establish a connection with
the server.
GroupDisconnect (<"group name">)
Causes the specified OPC tag group to break a connection with the server.
GroupDisable (<"group name">)
Causes the specified DDE tag group to stop communicating with the server.
GroupEnable (<"group name">)
Causes the specified DDE tag group to resume communications with the
server.
GroupReset (<"group name">)
Causes the specified DDE tag group to break then re-establish a link with the
server.
Examples:
# Initialize the display on start
_SysCmd.HideMenus;
_SysCmd.Login;
Miscellaneous Functions
Run (<string expression>)
Evaluates <string expression> and attempts to launch a Windows application of
that name. The return value will be TRUE if the application is launched and
FALSE if not.
PostMsg (<string expression>)
Posts the result of string expression to the Event Logger window. This function
can be used when debugging a script or to post messages about the result of an
operation.
Exit
Stops executing the current script.
Exit Application and
PulseDataLogger are
provided for compatibility
with previous versions of
Infilink.
Examples:
# This example loads Microsoft Excel with a specific
# spreadsheet and if successful, sends the values of tags
# PlcTagPressure and PlcTagTemp to the spreadsheet by
# assigning those values to tags that reference cells R1C1
# and R1C2
if Run ("excel.exe calc.xls") then
ExcelTagR1C1 = PlcTagPressure;
ExcelTagR1C2 = PlcTagTemp;
endif;
# Post a message to the event logger
PostMsg (Tank filled by operator + _User);
Color Constants
All color constants have the following syntax : _SysColor.<identifier>
Color Identifier
Red Value
Green Value
Blue Value
Aqua
Black
Blue
Fuchsia
Green
Gray or Grey
Lime
Maroon
Navy
Olive
Purple
Red
Silver
Teal
White
Yellow
0
0
0
255
0
128
0
128
0
128
128
255
192
0
255
255
255
0
0
0
128
128
255
0
0
128
0
0
192
128
255
255
255
0
255
255
0
128
0
0
128
0
128
0
192
128
255
0
Example
# Change fill color;
_ThisWin.MyRectangle.FillColor = _SysColor.Maroon;
Object Properties
Access to the properties of an object requires the following syntax:
<window name>.<object name>.<property name>
When accessing an object from within a Window Script or Take Action Script and
that object is on the same window that the script is being assigned to, <window
name> may be substituted with the keyword _ThisWin.
Example:
# Change the fill color of an object to RED
_ThisWin.Rect1.FillColor = _SysColor.RED;
Fill
Color*
N/A
R/W
R/W
R/W
N/A
R/W
N/A
R/W
N/A
R/W
R/W
N/A
R/W
N/A
N/A
N/A
Text
N/A
N/A
N/A
N/A
N/A
R/W
N/A
N/A
N/A
N/A
N/A
N/A
R/W
N/A
N/A
N/A
Text
Color
N/A
N/A
N/A
N/A
N/A
R/W
N/A
N/A
N/A
N/A
N/A
N/A
R/W
N/A
N/A
N/A
Redraw Service
Refreshes the historical trend using the current trend properties.
StartDate, StartTime String
Sets/returns the start date/time used when displaying historical data. The format
used when reading input or generating output will be that defined under the [intl]
section of the WIN.INI file. Refer to your Windows operating documentation to
change the format if these items.
See also: Logging Data
Path String
Sets/returns the DOS path name used when obtaining historical data. It is
initialized to the default data logger path when the object is created.
MinRange, MaxRange Real
Sets/returns the vertical range of data values displayed on a historical trend.
Skip Long (Write only)
Scrolls a historical trend forward or backward by the specified number of
milliseconds. Assigning a positive value scrolls the trend forward in time, a
negative value scrolls it backward. Typically you would use this property in a Take
Action script assigned to a button. One button would use a script to assign a
negative value when pressed and another would assign a positive value.
Overview
If you need help, the
completed lessons may
be found in the Infilink
lessons directory.
These lessons are
provided to give you a
reference of what a
project should look like
when completed.
In the last lesson, you learned some of the capabilities of Infilink as a graphical
tool. You should now be familiar with:
How to draw objects in a window.
How to access and edit object properties.
How to use the Short Cuts and Toolbars.
How to create groups.
How to reshape objects.
In this lesson, you will create a simple process and animate it. As the previous
lesson acquainted you with how to navigate in Infilink this lesson will provide an
additional foundation for the lessons that follow.
Lesson Objectives
All lesson projects,
although written to work
with memory tags, will
work with PLC's with
minimal modification.
This lesson is designed to provide you with the basics needed to create a simple
Infilink project that can be applied to a real-world situation. In this project you will
learn:
Creating a Project
You will start by creating a new project as you did in Lesson 1. For this lesson you
will need to create a project called Lesson2.
Assign properties to the default window as shown. (Name, Title, Type,
Background Color)
Although in this lesson
you are going to resize
the window by the Click
and Drag method, you
can position and size a
window using the
dimension settings in the
Window Properties
Dialog.
3.
Move the mouse over each of the objects on the library window. You will
notice that momentarily holding the mouse cursor over an object will display a
description of that object. Use this method to find and select the object
identified as Horizontal Pump - left shown below.
4. Once your have selected the object, drag and drop the pump to the upper half
of the window and about one third of the way.
If the Library Manager is on top
of the Window, you may have to
move Library Manager out of the
way.
5. Use the procedure from above to drag and drop object Tank 28 from library
group Tanks1 into the project window as shown below.
6. Drag and drop object Control Valve - vertical from library group Valves into
the project window.
7. Drag and drop object Long horizontal pipe from library group Pipes1 into the
project window.
8. Drag and drop object Long vertical pipe from library group Pipes1 into the
project window.
4. You will now resize the tank horizontally. Our goal is to stretch the flange on
the outlet so that it is slightly larger than the vertical pipe. You can check this
by dragging the pipe over next to the flange and comparing the ends. First,
resize the Window larger so that it can hold the resized objects.
5. Next place the tank in the upper right corner of the window.
As an alternative to duplicating
the section of pipe, you could
make a copy of it and paste the
copy into the project window.
3. Drag the duplicated pipe to the tank and place it as close to the flange as you
can. If the pipe is not aligned properly use the arrow keys on the keyboard to
move the object while it is still selected. When the grid is disabled the object
will move one pixel width for each key click, otherwise it will move one grid
width.
3. Resize the pump until its flanges and pipes are the proper size for the
horizontal pipe.
4. Use the keyboard arrow keys to position the pump flanges against the
horizontal pipe.
4. Resize the pipe by dragging its left side to the edge of the screen.
2. Drag the duplicated pipe to the tank and place it as close to the outlet flange
as you can.
3. Use the keyboard arrow keys to align the pipe to the outlet flange and pipe.
3. Resize the valve until the pipe ends are close to the same size.
4. Use the keyboard cursor keys to align the valve to the bottom of the vertical
pipe.
2. Use the keyboard arrow keys to align the pipe with the outlet flange of the
valve.
3. Resize the pipe so that it goes to the bottom edge of the window.
on the Toolbar.
2. Draw a black filled rectangle above the outlet flange of the tank as shown
below.
3. If the Rectangle is not black then click the Fill Color button
and choose black from the color palette.
on the Toolbar
6. Resize the rectangle until it is half the size of the black one.
7. Use the keyboard arrow keys to align the rectangle so that it covers the
bottom half of the black rectangle.
8. While you have the rectangle selected, you are going to identify it as an
important object. Press F4 to display the Rectangle Properties dialog box.
9. Enter "T1_level" in the Name field and click OK to close the dialog box.
It is a good idea to assign a
name to an object that will be
animated. The name will help
you locate the object if you must
edit the animation at a later time.
You are now going to create a tag that will be used to drive the animation for the
fill level on the tank. You will only go over the steps necessary to build this tag.
For details on creating tags see the chapter on Groups and Tags.
In a live application that accesses data from a PLC, the tag that you create would
be associated with a PLC register connected to a level sensor in the tank. As the
tank level increases or decreases, the value in the PLC register would change and
the indicator in Infilink would change in proportion.
1. Select the Tag Groups item from the Project menu or click the
display the Tag Groups dialog box.
2. Click the
Memory.
tool to
tool to create a new Memory tag group. Name the tag group
For a complete
understanding of scripts
and how to use them,
See Scripting.
5.
7. Click OK to close the Project Properties dialog box and accept the changes.
Overview
If you need help, the
completed lessons may
be found in the Infilink
lessons directory.
Lesson 3 Objectives
All lesson projects,
although written to work
with memory tags, will
work with PLC's with
minimal modification.
tool to
Type Pump_on in the tag name field located to the left of the
Select Discrete from the Data type drop-down list.
Select Read/Write from the Security Internal drop-down list.
Click the OK button to add the tag to the database.
button.
7.
8.
9.
10.
Click on
to create a new tag.
Type Valve_on in the tag name field.
Select Discrete from the Data type drop-down list.
Click the OK button to add the tag to the database.
11.
12.
13.
14.
Click on
to create a new tag.
Type Fill_rate in the tag name field.
Select Word from the Data type drop-down list.
Click the OK button.
15.
16.
17.
18.
Click on
to create a new tag.
Type Drain_rate in the tag name field.
Select Word from the Data type drop-down list.
Click the OK button.
1. Click the
button on the Toolbar and draw a button in the project window
next to the pump.
2. Display the properties dialog for the button and name it ctrlPump.
3. Click OK.
4. Press F5 to display the Animations dialog box for the button you just created.
You may have noticed the drop down box for Entry Method. Discrete tags offer
you 6 ways to enter or change their data.
Popup - Displays a popup dialog box that allows the operator to make an
on/off selection.
Toggle TRUE/FALSE- The value of the assigned tag will be toggled from
TRUE to FALSE or from FALSE to TRUE when the mouse button or
assigned key is depressed.
Force SET/TRUE - A one will be written to the tag whenever the animation
is invoked.
Force RESET/FALSE - A zero will be written to the tag whenever the
animation is invoked.
Momentary-NO - The value of the assigned tag will change to TRUE when
the mouse button or assigned key is depressed and back to FALSE when
released.
Momentary-NC - The value of the assigned tag will change to FALSE when
the mouse button or assigned key is depressed and back to TRUE when
released.
13. In the Show Value animation dialog box, click the Tags button and select
Pump_on.
14. Click on the Discrete radio button.
15. Notice that the Discrete format fields become active: one field to enter the text
that should be displayed when the tags value is ON, and one for when the
value is OFF.
16. Type "Pump On" in the ON text field and type Pump Off in the OFF text field.
17. Click OK to accept the animation.
18. Click the Change Color button
25. Click Close at the main Animations dialog to accept all the animations and exit.
Add a Text Object to Enter and Display the Pump Fill Rate
Next, you are going to add a text object that you will interface with the Fill_rate tag
to show its value and provide a click point for data entry.
1. Click the
button on the Toolbar and draw a text object immediately
beneath the pump.
2. Display the properties dialog for the object and name it dspFillrt. The content
of the Text field is not important because you will be assigning a Show Value
animation to the object.
3. Click OK.
13. Click OK to accept all the animations and exit the Animations dialog box.
14. If the text object is no longer centered under the pump then either drag the
object with the mouse or align it with the cursor keys until it is.
You are now going to build a slider that you will use to control the drain rate of the
tank through the drain valve. You will create a Slider animation to set the value of
tag Drain_rate. You will also create a Show Value animation to display the setting
assigned to Drain_rate.
1. Click the
button on the Toolbar and draw a rectangle in the lower left
corner of the project window.
2. Use the
3. Click the
button on the Toolbar and draw a line on top of the rectangle
about a third of the height from the top. Place the line ends so that they are
approximately a cursor width from either end of the rectangle.
4. Use the
5. Click the
button on the Fill Tools Toolbar to set the fill color to light gray.
button on the Line Tolls Toolbar to set the line color to black.
button to select a triple thick line.
6. Click the
button on the Toolbar and draw a button centered over the left
end point of the line.
7. Display the properties dialog for the button and name it sldDrain.
8.
9.
Assign the tag Drain_rate by either selecting it from the tag list or typing the
name manually.
on the Animations
10. Set the slide direction to Horizontal (This should be the default setting.)
11. Type "0" in the Low Tag value field and 10 in the High Tag value field.
12. Click the Related position selector buttons to graphically position the end points
of the slider. You will want the low end to be at the left end of the line, and the
high end to be at the right end of the line.
13. Click While sliding to allow the Slider to update the tag as you move it.
14. Click OK to accept the animation.
17. Assign a Show Value animation to the object that will display the Integer value
of tag Drain_rate using Field width, 2.
18. If the text object is no longer centered below the line then drag it so that it is.
1. Click the Check button to verify that there were no typing errors. Fix any errors
that may be indicated.
2. Click General tab and click the Use popup keypad for data entry startup option
and the Create a project summary compile option.
3. Click OK to accept the script and new project options.
3. Once the project window has opened in run mode, click on the Fill Rate text
beneath the pump.
4. On the popup keypad, click or type "5".
5. Click OK to accept the new value for Fill_rate.
8. Once the tank level reaches 1000, the color of the pump control button should
change to red.
9. Click on the slider button and drag it to the right until the text beneath it
displays 8.
Overview
This section covers alarm and data logger setup, assigning alarm information to a
tag, alarm viewer properties and setup of the alarm printer.
The Project Properties Alarm Logger tab allows you to specify the destination and
control the scheduling of alarm log file activity.
Basic Settings
See Lesson4
Logging
Only alarms with the Log attribute enabled will be recorded. You can control
whether or not the alarm logger should start automatically when the project starts
by using the Start logger when project starts option.
Directory
The Default option saves alarm log files to a directory called ALARMLOG that is
appended to the project directory. For example, if your project directory is
c:\Infilink\projects\process1 then Infilink will store the alarm log files to
c:\Infilink\projects\process1\alarmlog. Infilink will create this directory if it does not
already exist.
The User specified option allows you to control where logged data will be recorded.
You must enter a fully qualified DOS path name consisting of 256 characters or
less. Whatever you type here will then have the name ALARMLOG appended to
it. If the directory you specify doesn't exist Infilink will create it. To specify a
network directory, you must first map the network resource to a logical drive.
The naming convention of each log file stored in the chosen directory is
YYMMDDHH.ALF. Where YY is the year, MM is the month, DD is the day and HH
is the hour when the data in the file begins. If you choose to also generate DBF
files you will see files of the same base name but with a .LOG extension.
Preferences
Generate DBF output files
Check this option to generate a copy of your logged alarms in DBF format. Many
Windows applications recognize this portable format.
Generate MDB output files
Check this option to generate a copy of your logged alarm data in MDB format.
This is the Data Object format used by Microsoft Access and similar programs.
Note: Support for Data Objects must be installed on the PC to use the MDB
option. See: Installing DAO
Buffer size
The number you specify here will determine how many records the alarm logger
will buffer before performing a disk write.
Max holding period
The number you specify here will determine how long the alarm logger should hold
on to unwritten data waiting for the buffer size number of records to be available.
Req. disk space
The number you specify here will determine how much disk space must be
available for the alarm logger to run. If the amount of free disk space falls below
this value while the alarm logger is running, it will stop and post a message to the
Event Logger. If the disk space is below this value when Infilink Run Mode is
launched, the alarm logger simply will not start.
Each alarm log record consumes approximately 100 bytes of disk space. If you
are also generating DBF output then this number increases to approximately 300
bytes.
Defining Alarms
One or more alarms can be assigned to a tag from the Tag Group Properties
dialog. Select the desired tag and click on one of the Alarm tabs to display the
alarm parameters.
Level Alarms
Level alarms are used to trigger an event when the value of a tag exceeds or goes
below an assigned limit.
Comment Text
Enter text to describe the alarm. This text will be displayed in the comment
column when the alarm is shown in an alarm viewer or an Alarm History Viewer
window object.
High/Low Alarms
Lo, LoLo
An alarm is triggered for this tag when the value falls below these values. A
separate alarm is issued for each case.
Hi, HiHi
An alarm is triggered for this tag when the value rises above these values. A
separate alarm is issued for each case.
Deviation Alarms
Allows two alarms, minor and major to be defined using percentages of the
specified target value to trigger the alarms.
Discrete Alarms
For tags defined with the discrete (Boolean) data type, you can specify whether
you want an alarm condition to occur when the value is TRUE (1) or FALSE (0) by
checking the appropriate box.
Severity
All Alarms can be assigned a severity level in the range 0 to 15. The severity level
of an alarm determines which alarm window(s) in your project will display the
alarm. The default severity is 5.
Access Level
Assign an Access level 0 to 255. Only users who are logged in with access levels
greater than or equal to the alarm access level can acknowledge the alarm in Run
Mode. The default Access level is 0.
Actions
Display
Alarm events will be displayed in any active alarm viewer that has a severity level
set equal to the severity of this alarm. Events that will cause the display to update
are transition from inactive to active, change in value while active, and transition
from active to inactive. Acknowledged alarms are deleted from all views upon
transition from active to inactive.
Log
Alarm events will be logged to disk and accessible to any active alarm history
viewer. Events that will be logged are transition from inactive to active, user
acknowledge, and transition from active to inactive.
Print
Alarm events will be sent to the local alarms printer on each transition from
inactive to active, user acknowledge and transition from active to inactive. See
Setup Alarm Printer later in this section for more information.
E Mail
When Internet access is enabled, alarm notification is sent via E Mail to the
address specified in the Project Properties Internet Tab.
Scripts
Alarm Scripts are for those functions and operations that you want to perform
when an alarm condition is active. You might use an Alarm Script to sound an
alarm when a tag exceeds a certain value. The script may take place at any to all
of the possible times.
On active transition
Actions that you want to perform when the alarm occurs could be taken care of
with a On active transition script. This type of script executes once when the
alarm initially occurs. You might use a On active transition script to trigger an
annunciator or show a diagnostic window.
While active
Periodic operations while an alarm condition exists can be performed with a While
active script. While active scripts execute on a user defined Interval anywhere
between 100 and 99999 ms.
On acknowledge
Periodic operations after an alarm is acknowledged can be performed with an On
acknowledge script. On acknowledge scripts execute once when the alarm is
acknowledged. Acknowledging an alarm does not stop any While active scripts
from executing.
On inactive transition
Any alarm housekeeping that you need to perform can be done in an On inactive
transition script.
Name
The name that you will use to refer to this viewer when using script commands.
X, Y Pos
Sets the location of the upper left corner of the object to the specified coordinates.
These coordinates are relative to the upper left corner of the window where the
object resides.
Width
Adjusts the horizontal size of the bounding rectangle.
Height
Adjusts the vertical size of the bounding rectangle.
Text Tab
Severities Tab
Other Tab
Sort on:
Select from the dropdown: Date/Time, Tag Name, Event type, Alarm type, or
Severity heading to sort the listed alarms based on that column. Additionally select
to sort in Ascending or Descending order.
Name
The name that you will use to refer to this viewer when using script commands.
X, Y Pos
Sets the location of the upper left corner of the object to the specified coordinates.
These coordinates are relative to the upper left corner of the window where the
object resides.
Width
Adjusts the horizontal size of the bounding rectangle.
Height
Adjusts the vertical size of the bounding rectangle.
Text Tab
Send Output To
Local Printer
Check this box to direct alarm output to a local printer specified by the drop-down
list. Valid selections are LPT1 through LPT3.
Lines per page
Specify the number of alarms you would like printed on each page. Once the
number of lines is reached, a form feed is sent to the printer.
Text file
Check this box to direct alarm output to a text file. You specify the file by typing
the name into the supplied edit control. When this option is selected, the contents
of the file will be reset at project start up.
Event Logger
Check this box to direct alarm output to the Event Logger window.
See Lesson4 for
directions on using the
reshape method.
Sample Format
Configure the output format using the reshape method described for an alarm
viewer. Available columns are:
Date, Time, User, Type, Severity, Event, Tag Name, Value at Event, Comment.
The Setup Data Logger dialog box allows you to specify the destination and
control the scheduling of data log file activity.
Basic Settings
Default
This option saves log files to a directory called DATALOG that is appended to the
project directory. For example, if your project directory is
c:\Infilink\projects\process1 then Infilink will store the database files to
c:\Infilink\projects\process1\datalog. Infilink will create this directory if it does not
already exist.
See Nodes and Tags.
See Lesson5 for
direction on viewing
logged data in a
historical trend.
User specified
This option allows you to control where logged data will be recorded. You must
enter a fully qualified path name consisting of 256 characters or less. Whatever
you type here will then have the name DATALOG appended to it. If the directory
you specify doesn't exist, Infilink will create it. To specify a network directory, you
must first map the network resource to a logical drive.
The naming convention of each log file stored in the chosen directory is
YYMMDDHH.DLF. Where YY is the year, MM is the month, DD is the day and HH
is the hour when the data in the file begins. If you choose to also generate DBF
files you will see files of the same base name but with a .LOG extension.
Preferences
Generate DBF output files
Check this option to generate a copy of your logged data in DBF format. Many
Windows applications recognize this portable format.
Generate MDB output files
Check this option to generate a copy of your logged data in MDB format. This is
the Data Object format used by Microsoft Access and similar programs.
Note: Support for Data Objects must be installed on the PC to use the MDB
option. See: Installing DAO
Buffer size
The number you specify here will determine how many records the data logger will
buffer before performing a disk write.
Max holding period
The number you specify here will determine how long the data logger should hold
on to unwritten data waiting for the Buffer size number of records to be available.
Req. disk space
The number you specify here will determine how much disk space must be
available for the data logger to run. If the amount of free disk space falls below
this value while the data logger is running, it will stop and post a message to the
Event Logger. If the disk space is below this value when Infilink Run Mode is
launched, the data logger simply will not start.
Each log record consumes approximately 40 bytes of disk space. If you are also
generating DBF output then this number increases to approximately 130 bytes.
Overview
If you need help, the
completed Infilink lesson
4 may be found in the
Infilink lessons directory.
These lessons are
designed to run without
the use of a PLC.
Alarms are used to inform the operator that something important has happened in
a process that Infilink is monitoring. You can define High/Low and Deviation type
alarms for analog values and On/Off alarms for discrete values. When an alarm
event is detected for a particular tag, the details of the event can be displayed in an
alarm viewer, sent to a local printer, and logged to disk. In this Lesson you will see
how to define and view alarm events using Infilink.
In Lesson 4, you will learn how to:
1. Draw an Alarm Viewer and add control buttons.
2. Draw an Alarm History Viewer, add control buttons, and enable alarm logging.
3. Define alarms for analog and discrete tags.
4. Create sliders and a button to generate alarms.
5. Display the active alarm count using a Show Value animation.
6. Run a project and manipulate real time and historical alarms.
Lesson Objectives
This lesson will guide you through the utilization of Alarms and Alarm Logging in a
Infilink project. In this lesson you will learn:
1. How to design Alarm and Alarm History Displays.
2. How to add control buttons to interface with Alarm and Alarm History Displays.
3. How to enable alarm logging.
4. How to define High/Low, Deviation, and Discrete alarms.
5. How to add previously drawn objects from Infilink libraries to your project.
6. How to manipulate alarms at Runtime.
This lesson is intended for intermediate users of Infilink.
4. To modify column widths select Reshape from the Short Cut Menu. Reshape
mode can also be invoked from the Infilink Main Menu by selecting Edit then
Reshape, or from the Toolbox by selecting the Reshape tool
5.
6. When in Reshape mode the alarm viewer will appear in a black and white
format as seen above. To make changes to column widths, use the mouse to
drag the appropriate column divider lines to the left or right. Other column
editing options are available from the Short Cut Menu. To view these options
place the cursor in the column that you would like to edit, right click, then
choose the appropriate option from the menu as shown below.
7. To return from Reshape mode you can double click the mouse or press the
Esc key.
4. After you have finished placing in all of the control buttons, minimize the
Library Manager window.
3. Next use the Reshape mode to adjust the column format of the Alarm History
Viewer. Delete the User and Severity columns and move other columns such
that the Alarm History Viewer is formatted as shown below.
4. After you have finished placing in all of the control buttons, minimize the
Library Manager.
2. In the Buffer size: text field enter 5, and in the Max holding period: text field enter
1. Accept the defaults for the remaining alarm logger setup properties and
click OK.
to enter a new tag. Set the tag properties of the first tag as shown
4. Click the Level Alarm tab. Set the alarm properties as shown below.
7. Click OK
Copyright 2004 KEP, Inc.
13. Click OK
14. Add the third tag with the properties shown below.
17. Click OK then click Close to close the Tag Groups dialog.
7. Alarms displayed in the Alarm Viewer can be sorted according to Date, Time,
Alarm Type, and Tag Name. To sort alarms, position the cursor on one of
these Column Headings and click the left mouse once. To reverse the sort
order, click again.
11. The History Filter button allows you to filter out logged alarms that you do not
wish to see in the Alarm History Viewer window. Only alarms that meet
criteria checked in the Alarm Log Filtering dialog box will be shown.
Overview
If you need help, the
completed Infilink lesson
5 may be found in the
Infilink lessons directory.
Lesson Objectives
Lesson 5 will guide you through the design and utilization of Real Time and
Historical trends. In this lesson you will learn:
Some basic properties of trends.
How to toggle between Real Time and Historical trend data.
How to scroll historical data.
How to change between historical data modes.
How to modify trend value scales.
How to determine a pen value at any point on a historical trend.
This lesson is intended for intermediate users of Infilink.
Defining Tags
You will need to define four tags for this lesson. These tags will allow you to
produce data for a real-time and a historical trend. They will also allow you to
display data values as the historical trend is scrolled.
1. Click on the
2. In the Tag Groups dialog box click on the Memory Group tool
memory tag group named Memory.
to create a
3. Click
to enter a new tag. In the Name field enter PenData for a tag
name. Using the provided drop down list, choose a Data type of Real and
an Internal Security of Read/Write. Since you will want to view historical
data on this tag, click on the Log on data change selection for this tag. Accept
the default values for the other fields.
4. Click OK to add the tag to the Memory tag group.
5. Click
. Enter Cursor for a tag name, Long for the Data Type and
Read/write for the Internal Security. Click OK.
6. Click
. Enter Increment for a tag name, Discrete for the Data Type
and Read/write for the Internal Security. Click OK.
7. Click
. Enter Value for a tag name, Real for the Data Type and
Read/write for the Internal Security. Click OK.
8. Press Close to exit the Tag Groups dialog.
to 25.
9. Change the Major grid
lines to 3.
, the new
Here you will create buttons to toggle between Real Time and Historical Trend
Modes, increment and decrement the Trend Value Scale, change the Historical
Draw Mode, and Scroll through historical data.
1. From the Infilink Main Menu, select Draw, then select Button or click the
button on the Toolbar.
2. Draw a Button.
3. Right click on the button and select Properties.
4. In the Button Properties dialog type Mode for the Name and Historical for
the button Text. The button text may not be displayed if the button is to
narrow. If this occurs, simply widen the button.
5. Either repeat the above steps for the remaining buttons or use the duplicate
function
to make copies of this button. Change the names and text of the
copies to match those below.
Name:
Name:
Name:
Name:
Name:
Name:
Name:
YRangeInc
YRangeDec
Smooth
Scatter
Discrete
SkipInc
SkipDec
Text +Y Range
Text: -Y Range
Text: Smooth
Text: Scatter
Text: Discrete
Text: +10 Sec
Text: -10 Sec.
6. Arrange the buttons by dragging each one to a new location. Place the
buttons as shown below.
1. From the Infilink Main Menu, select Draw, then select Polygon or click the
button on the Toolbar.
2. Draw a polygon as shown below just above the trend object. This will be our
Cursor. Place the polygon as shown.
3. Right click on the polygon and select Properties. Enter Marker for the
polygon objects name and press OK.
4. From the Interior tab, then select Color. A Fill Color Palette will appear. Select
a color for the Marker.
5. Click OK to close the Polygon Properties dialog.
2. Click
. For the Tag select Memory\Cursor.
3. Set the Low value to 0. Set the High value to 7999. This is the range in
milliseconds that will be available on the trend at all times. Recall that you set
the Trend Time Span to 8 seconds (8000 msec.).
4. Now you need to set the Related positions. Click the Low Related Position cursor
. A cursor will appear on the screen. Center this cursor over the right
edge of the trend window and click the mouse button.
5. Now click the High Related Position cursor
and center the cursor over the
left edge of the trend. Again click the mouse button to return to the animations
dialog box.
6. Click OK to accept the slider animation.
5. Click the Verify button to make sure there are no errors in the script.
6. Click OK to accept the animation.
If (Increment) Then
PenData = PenData + 2.5;
Else
PenData = PenData 2.5;
Endif;
6.
4. Because the default value span was set to 25 to 25, some data will be out of
range and will not displayed on the trend. You can correct this by pressing the
+Y Range button that you created. Click the +Y Range button and notice
the value span increases to 35 to 35. The PenData waveform should now
be in complete view on the trend.
Changing the Y value
range in the Real Time
trend does not change it
in the Historical Mode.
When you switch to
Historical Mode you will
have to increase the
range again to be able to
see all of the data.
5. Wait for a minute to pass, then click the "Historical" button. The historical data
will load to the trend window.
6. Click the +10 Sec. Button to scroll 10 seconds forward. The historical data
will now come in to view. You can continue to scroll forward in time. At any
time you wish to return click -10 Sec. to scroll backward in time.
7. You can click on the "Scatter", "Discrete", or "Smooth" buttons to change the
draw mode of the trend. Scatter will plot individual points only. Discrete plots
the points in a squared line, assuming that data is constant until the next data
change. Smooth moves the pen in a straight line between points. The figure
above and the two that follow show identical data in scatter, discrete, and
smooth draw modes.
8. Drag the Marker Cursor that you created. Notice that the value display
changes as the marker intersects a data change.
9. You can return to real-time mode by pressing the "Real Time" button.
ActiveX Controls
Overview
Most ActiveX controls are
not compatible with
Infilink.
Infilink is an ActiveX container. ActiveX controls are independent objects that can
be placed into an Infilink Project. These controls come in many varieties. Infilink
is designed to handle ActiveX controls with OPC connectivity. In particular, we
have tested for compatibility ioCompTM ActiveX controls. These controls are
included in the Infilink setup software. ActiveX controls from other vendors have
not been verified for operation.
Scheduler
Overview
This section describes how to use the Scheduler to manage tag operations by
time and date.
The Scheduler allows you to specify a particular time and date a tag is to be
modified. There are also features to set tags to be changed on a weekly basis at
specified times. Such events are useful for daily or weekly startup and shutdown
of equipment, building controls and regularly scheduled maintenance.
Scheduler 223
Introduction
Use the Scheduler to program in actions to occur at desired dates
and times or on a regular basis. Use Action groups to make several
actions occur at the same time. As actions and times are
programmed, they are displayed in list boxes throughout Scheduler.
Scheduler 224
Holidays
Use the Holidays dialog box to specify holidays. Holidays cause the Weekly
Schedule events to be ignored.
Yearly Add
Use this to add a holiday that occurs every year to the list of holidays.
For example: January 1st is always a holiday.
Holiday Others Add
Use this command to enter Holidays that may vary from year to year.
For example: Thanksgiving (USA) changes with each passing year.
How to define a Holiday
1. Use the calendar scrolling features to get to the dates you need to specify as
holidays.
2. As you click on dates, a popup dialog prompts you for a label for the holiday.
3. Enter the label and click OK. The holiday will automatically be listed in the
appropriate holiday list box.
4. Continue clicking on dates and assigning labels.
5. Click Done after all desired dates are selected.
Copyright 2004 KEP, Inc.
Scheduler 225
Action Groups
Use the Action groups dialog box to create groups of actions. This way, instead of
specifying a tag to be changed at a particular time and date you can specify the
group of actions to occur at that time. The dates and times that these actions
occur are specified in the Single Event, Double Event and Weekly Schedule dialog
boxes.
Scheduler 226
2. When the Action Group Dialog pops up enter a name for the group. Group
names may be up to 20 characters long.
3. Click on
to enter a new Single or Double Action. See following
pages entering these actions.
4. Continue to click on New to add more actions, Edit to modify actions
highlighted in the list box or Delete to remove the highlighted action from the
list box.
5. Click OK when you are done creating the group.
Scheduler 227
1. Enter the Tag to modify. If you do not know the tag name, click on the
button to browse for the Tag to modify.
2. Select the type of action to perform on this tag.
On/Off forces a 1 or 0 into a tag.
Force Value forces a constant into a tag.
Modify Value to changes the tags value by a percentage. The
percentage is always a positive whole number.
3. Click OK when done
Scheduler 228
1. Enter the Tag to modify. If you do not know the tag name, click on the
button to browse for the Tag to modify.
2. Select the type of action to perform on this tag when the action is called.
On/Off forces a 1 or 0 into a tag.
Force Value forces a constant into a tag.
Modify Value to changes the tags value by a percentage. The
percentage is always a positive whole number.
3. Select the type of action to perform on this tag when the action period is
ended.
Check the Restore value box to put the tags previous value (before
the start action) back into the tag.
On/Off forces a 1 or 0 into the tag.
Force Value forces another constant into the tag.
Modify Value to changes the tags value by another percentage.
4. Click OK when done
Scheduler 229
Events
Use Events to specify when a tag or action group is to be changed. The dates and
times that these actions occur are specified in the Single Event, Double Event and
Weekly Schedule dialog boxes.
2. When the Single Event Dialog box pops up enter a name for the Event. Event
names may be up to 20 characters long
3. Check the Disable execution if you want to suspend this event from
happening. Typically this is used in Run Mode to stop an event from
happening because it could cause a problem or is no longer necessary.
Scheduler 230
4. Specify the Date and Time that the action is to take place.
5. Select the Action to perform.
New Single Tag A single action is defined to occur at the Date and Time
specified.
New Action Group An Action group is selected. This means that all
actions specified in the group will happen at the Date and Time.
6. Use the Edit and Delete buttons to modify the list.
7. Click OK when done creating the single event.
4. When the Double Event Dialog box pops up enter a name for the Event. Event
names may be up to 20 characters long
5. Check the Disable execution if you want to suspend this event from
happening. Typically, this is used in Run Mode to stop an event from
happening because it could cause a problem or is no longer necessary.
Scheduler 231
4. Specify the Date and Time that the action is to take place (Start) and when the
action is to cease (End).
5. Select the Action to perform.
New Single Tag A double action is defined to occur for the duration
specified.
New Action Group An Action group is selected. This means that all single
actions specified in the group will happen at the Start time and double
actions in the group will continue to the End time.Use the Edit and Delete
buttons to modify the list.
6. Click OK when done creating the single event.
2. When the Weekly Schedule Dialog box pops up enter a name for the Event.
Event names may be up to 20 characters long.
3. Check the Disable execution if you want to suspend this event from
happening. Typically, this is used in Run Mode to stop an event from
happening because it could cause a problem or is no longer necessary.
Scheduler 232
4. Specify the Dates that this weekly schedule is to be in effect. Check the
Forever box to always have this weekly schedule active.
5. Click the Add button to bring up the Schedule dialog box. Select the days of
the week and times for actions to occur. Repeat this action until all days and
times are entered.
6. Select the Actions to perform during the times in the Schedule list.
New Single Tag A single action is defined to occur at the scheduled Days
and Times specified.
New Action Group An Action group is selected. This means that all actions
in the group will happen on the Days and Times of the weekly schedule.
Use the Edit and Delete buttons to modify the list.
7. Click OK when done creating the single event.
Scheduler 233
Preferences
Use preferences to change overall operation of the Scheduler.
Because the scheduler is available at run time for review Access can be restricted
to prevent unauthorized access and changes.
Minimum user level to access scheduler at run time
Enter the user level required to access Scheduler once in the Run Mode.
Allow run mode editing.
Select to allow editing of Scheduler settings.
Execute events and schedules on defined second.
Scheduler tracks events accurately up to the minute. The scheduler can be made
to operate on a per second track if desired.
Minimum and Maximum Dates
Displays the minimum and maximum dates allowed for use with Scheduler. These
dates are fixed and cannot be changed.
Scheduler 234
Overview
This section describes how to use Infilink in a client/server configuration with DDE.
Although KEPware's
DDE server is now called
KEPServerEX, the
application name is still
KEPDDE.EXE and
should be used as the
application name in DDE
links.
To use Infilink as a client to a local server (one on the same PC) you will first need
to:
1. Create a DDE Tag Group
2. Identify the server
3. Specify the topic
4. Define one or more tags that will be assigned to that tag group.
Each tag will identify the item portion of the DDE link in its address field. The item
refers to the data that the server should provide.
Although any DDE enabled Windows application can be a server to Infilink, let's
use KEPServerEX as an example (formerly KEPDDE). Assume you need to get
the data from address 40001 of a Modbus device and assign it to a tag called
"RegData". You would first create a project in KEPServerEX that identifies the
channel as COM1 and device as something like "Modbus1". (Refer to the
KEPServerEX online documentation for details.) Next you will define a Infilink
DDE Tag Group with KEPDDE as the Server name and
_ddedata.COM1.Modbus1 as the topic. Finally, create a tag called RegData with
address 40001.
Now when you place the server on line and run your Infilink project, the value of
"RegData" will be updated every time register 40001 of the Modbus device
changes.
Using the same example from above let's assume that the KEPServerEX will be
running on a computer named NETPC. You will define an Infilink node with
\\NETPC\ndde$ as the application and _ddedata.COM1.Modbus1$ as the topic.
Finally, create a tag called RegData with address 40001 and assign it to this node.
Notes
1. KEPServerEX is a 32-bit application. It must be run on either Windows 95/98,
Tag Addresses
To address spreadsheet locations on sheet1 assign addresses of the form r#c#
where the #'s would be replaced by the row and column of the cell you are
interested in. Be sure to enter your addresses using only lower case characters.
Security
Overview
The purpose of this section is to explain Design and Run Mode Security options
available with Infilink HMI.
1. From the Project menu, select Properties... then click on the Password tab.
When entering a password for a project that is currently protected,
Security 240
Security 241
Logging in to a Project
Access to windows and user triggered animations is based on the
access level of the logged in user. The system administrator
assigns login names and access levels for an Infilink project. The
login dialog allows the operator to enter one of these names thus
gaining access to the features of the current project. When the
User, Log In menu is selected the Log In dialog appears.
User Name
Type the name of a user that has been defined for the current project.
Password
Security 242
Security 243
Security 244
iViewer Utility
Overview
The iViewer utility is available through KEP's website. (www.kep.com). It is used to
display screen captures and tag data at a remote location via the Internet. Tags
assigned Internet Read/Write permission can be changed; provided the user has
an appropriate Access level.
Note: The Infilink package must be licensed to allow Internet access. Use the
Upgrade License procedure to add Internet capability.
Connecting to a remote PC
Getting Started
Before using iViewer there are some things that need to be done:
Make sure the copy of Infilink on the remote PC is licensed for remote iViewer
access.
Make sure the Project Properties Internet tab has "Enable tag value access
over internet" enabled.
Make sure the Project Properties, User List tab, has a user defined and that
the user has "Allow access using iViewer" enabled.
Find out the URL (or IP) address of the remote PC that you are trying to
access.
Connecting
Start up iViewer and select Connect from the Action Menu.
Enter the Remote PC's URL (or IP) address.
iViewer should connect to the Remote PC and display all of the tags designated
for internet viewing.
Disconnect
Select Disconnect from the Action menu to end the communications link to the
remote Server.
Server
The Server is the remote PC that is running Infilink. Enter the URL (or IP) address
of the remote PC in this field.
Port
The port address of the PC that is running iViewer. 9000 is the default for most
PC's. if your PC has more than one Port address put the appropriate number of
the port in this field.
User name and Password
Enter the name of a User from the project User List that has Internet access
enabled. Enter the corresponding password for that user in the Password field.
Enable the check box to remember this User and Password the next time you
attempt to connect to the Server.
iViewer Setup
Use the Setup menu to modify how iViewer displays screen shots and tag
information. You can also set up a list of frequently accessed URL's.
Adding/Editing a Server
Server name
Enter a familiar name for the remote PC acting as a Server.
Description
Enter a brief and meaningful description of the Server.
URL
Enter the URL (or IP) address of the Server. The URL is typically given as
<Computer name>.<company name> com.
Port
The port address of the PC that is running iViewer. 9000 is the default for most
PC's. if your PC has more than one Port address put the appropriate number of
the port in this field.
Screen Shots
iViewer can get a screen shot of the remote PCs display. Use the Action menu
Get Screen shot menu item to get a one-time screen shot. Infilink must not be
minimized on the remote PC. Sheen shots can be done automatically by making
the proper settings in the iViewer Setup Dialog.
Check the box to enable automatic retrieval of screen shots from the Server.
If the box is not checked, screen shots can still be done manually using the
Get Screen shot menu item from the Action Menu.
Set the interval at which screen shots are to be taken. Internet connection
speed should be taken into consideration when making this selection. The
time to the next screen shot is displayed in the Status Bar.
@ Design Tip: Do a screen shot manually first and time how long it takes
the screen shot to arrive. Make sure that the minutes setting is longer
than the time it takes to actually get a screen shot.
Copyright 2003 KEP, Inc.
If write ability has been assigned to the tag and the user access level for the tag is
less than the user level of the iViewer user, the tag's value can be changed.
Double click on the tag name in the Tag values dialog. The dialog shown below
pops up. Enter the new value for the tag and click the
button. If the value entered is valid, the new value will be displayed in the Tag
values dialog.
The status bar shows the state of iViewer (Ready), the time until the next Screen
Shot (NSS) and the URL (or IP) address of the Server (Connected to:).
Overview
The KEPServerEX is a
32 bit product and
cannot run on Windows
3.x.
In this section we will show you how to setup Infilink and the KEPServerEX to start
running a project automatically when your PC is started, or when selecting a
shortcut or program item.
Windows 95/98
Making Infilink Auto Start in Win 95/98
1. Locate the Startup folder and create a new shortcut. The Startup folder is
accessed by right clicking the Windows Start button and selecting Open from
the popup menu. You then double click the Programs folder icon from the
displayed Start Menu folder to display the Programs folder. You then double
click the Startup folder icon to display the Startup folder contents. You then
select the File menu and choose New and Shortcut to start the Shortcut
wizard.
2. Use the Browse button on the displayed Create Shortcut dialog to find
RunMode.exe. Your command line should look something like
c:\Infilink\RunMode.exe.
3. Click Next and give your new Shortcut a name.
4. Right click on the new Shortcut and select properties from the popup shortcut
menu.
5. Now append a space, quotation marks, the path to the project you wish to
load, the words 'project.hmi', and close the quotes. (ie.
"c:\Infilink\proj1\project.hmi"). All together it should look something like:
"c:\Infilink\RunMode.exe" "c:\Infilink\proj1\project.hmi".
6. Click OK to complete the shortcut. The Infilink Runtime icon should appear in
the StartUp folder with the name that you chose in step 4.
7. Restart Windows to test your shortcut.
8. Click Apply to accept the shortcut and click OK to exit the dialog.
Windows NT
Making Infilink Auto Start in Win NT
The only difference between setting up shortcuts in Windows NT and Windows
95/98 is that Windows NT has an extra tab for share permissions. The default is
for everyone to have access.
1. Drag the Infilink RunMode from the Infilink Products folder to the Startup folder.
This creates a shortcut to RunMode.exe.
2. Right mouse click on the new shortcut and select Properties from the
shortcut menu.
3. By default, the dialog will default to general properties. Select the Shortcut
tab.
4. In shortcuts, the Target will be the same the Command Line we used in the
Windows 95/98 example. You will have the full path to the Infilink executable
followed by a space and the full path to the project directory. For example:
D:\INFILINK\RunMode.EXE c:\project1\.
5. The Start in directory will be the path to the folder where RunMode.exe is
located. For example: D:\Infilink.
6. Click Apply to accept the shortcut and click OK to exit the dialog.
13. Click Apply to accept the shortcut and click OK to exit the dialog.
Technical Support
Kessler-Ellis Products
Phone 800-621-2165 or 732-935-1320 extension 332
Website www.kep.com
Licensing website http://infilock.kep.com
Email plc@kep.com
KEP technical support by telephone or email is free.
Information KEP will generally need to provide the best possible technical support includes:
Version of Infilink (Help / About)
If the problem is related to licensing, we will need serial number, website login code, or at least the
approximate date of purchase and the name of the distributor.
Company name and phone number.
Your email address.
A description of the problem.
New Features:
KEP values user input on what features should be added to the product. Please contact us with any ideas you
have which can make our product more useful to you.
Updates:
Would you like to know when Infilink-HMI updates are available?
I suggest that you signup for KEPs enewsletter. You can signup on www.kep.com, or by emailing plc@kep.com.