Professional Documents
Culture Documents
Users Guide: Infilink HMI Software For Windows™
Users Guide: Infilink HMI Software For Windows™
Users Guide
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 customer’s 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. KEP’s 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.01
(c) 2003 Kessler-Ellis Products, Inc
10 Industrial Way East
Eatontown, NJ 07724
1-800-631-2165 (Voice)
(732) 935-9344 (FAX)
http://www.kep.com
kep@kep.com
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 95/98, Windows NT 4.0 and Windows 2000.
This chapter shows you how to set up Infilink HMI on your computer and
introduces the documentation set. The main body of this manual describes the
Windows 98 interface.
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 66 MHz 486DX/2 microprocessor.
• 8MB 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 640x480-pixel resolution using
16 colors.
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 disk #1 in drive a: (or insert CD into CD drive) and invoke the program
SETUP.EXE in the manner most convenient for you.
2. When prompted, enter a User name and Company. The setup cannot proceed
until both fields contain at least one character.
5. Choose a Program Folder/Program Group for the icons that invoke the
executable files and help.
6. Verify your choices. If you want to make a change click on the < Back button.
7. At this point, the file copy process begins. You will be prompted for disks as
needed.
8. 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 \DOC 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.
Help Folder
On-line information accessible from Design Mode by pressing the F1 key.
Readme
README.TXT includes the following major topics:
1) System Requirements
2) New features for V4.0
3) INFILINK Demo Description
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.
KEPware’s OPC Server, KEPServerEX, comes with Infilink. You will be able to
unlock one driver for use with Infilink.
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.
While a project is in the Run Mode use the Help menu, Purchase a license...
menu to see this dialog...
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.com’s 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.
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 © 2003 KEP, Inc. Introduction • 5
Moving a License
@ 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.
3. Insert the floppy disk into the target computer. Click Step 3, this takes the
license from the floppy disk and puts it into the target computer.
Notes:
DO NOT EXIT TARGET PCs INFILINK OR LICENSE MENU AFTER THIS
PROCESS IS STARTED, OR THE LICENSE WILL BE LOST.
Set the User Access Level required to perform license transfers by going to
Project|Properties, Users tab and making the appropriate entries. If you want to
move the software to another PC, you can use the transfer a license procedure.
This procedure will erase the license from the source PC and install it on the target
PC.
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.
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.
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.
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.
7. Use the Animations... item on the Edit menu to assign animations to the
created objects.
8. Use the Scheduler Utility to program timing for events to occur on a real
time basis.
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.
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.
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.
- Library Manager
- Event Viewer
Drawing Tools
- Draw pie
- Vertical Hatch
- Select triple line - Dash dot
- Cross Hatch
- Select thick line - Dash dot dot
- Downward Diagonal Hatch
- None
- Upward Diagonal Hatch
- Text Color
Alphanumeric Keys
CTL-X Cuts the selected object to the clipboard.
CTL-V Pastes an object from the clipboard into the active window.
CTL-C Copies the selected object to the clipboard.
CTL-D Duplicates the selected object.
CTL-Z Undoes the most recent edit. Up to 32 operations can be undone.
Numeric Keypad
+ Brings the selected object forward in the z-order.
- Sends the selected object backward in the z-order.
Arrow Keys
Left Moves the selected object to the left by one grid line (or one pixel if
the grid is not enabled).
Right Moves the selected object to the right by one grid line (or one pixel if
the grid is not enabled).
Up Moves the selected object up by one grid line (or one pixel if the grid
is not enabled).
Down Moves the selected object down by one grid line (or one pixel if the
grid is not enabled).
Other Keys
Tab Moves the selection to the next object on the window as
determined by the z-order.
Shift-Tab Moves the selection to the previous object on the window as
determined by the z-order.
Esc Ends reshape mode or interactive animation definition.
Del Deletes the selected object.
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.
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.
Overview
If you need help, the
Thank you for making Infilink your choice in HMI Software. Infilink has been
completed lessons may designed to allow you, the user, to get maximum performance with a minimal
be found in the Infilink amount of effort.
\lessons directory.
These lessons are This lesson and the lessons that follow are designed to guide you through the
provided to give you a process of creating an Infilink project. The lessons will get more complex as they
reference of what a progress. Some lessons, like this one, are designed to teach you about the parts
project should look like
when completed.
of Infilink. At any time you may jump forward to another lesson or skip lessons
entirely.
If you feel that you know how to navigate in Infilink, please feel free to go to
Lesson 2.
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.
7. Click on Show when project starts in run mode, then click OK to create the window.
or click the button on the Window Toolbar. When objects are drawn or
resized, they will “snap” to the points on the grid.
9. To make document images clearer we have chosen the color of our window
to be white. If you wish to change your window color, click the button on
the Window Toolbar and select the desired color from the displayed palette.
Properties common to every object are name, size and position. Generally you
will use the mouse to change an object’s size or position. You must however use
an object’s property dialog to change its name.
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.
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.
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.
5. Select the Text tab and type the following text in the Text field: “Text can be
useful”.
8. If the text is too close to the rectangle or is not close enough to the center,
place the cursor over the text until it becomes a hand.
9. Holding the left mouse button down, drag the text object so that it is centered
in the project window.
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 , solid
1. Click the button in the Edit Toolbar to set the Selection Tool.
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.
7. Click on the Group tool in the Edit Toolbar to group the objects.
8. Use one of the methods described earlier in the lesson to display the
properties of the group and name it “grpLesson1”.
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.
12. Click the button to undo the last changes until your window returns to the
image below.
Overview
This section describes the Tag Database Editor. You will use this editor to define
groups that represent PLC devices and tags that represent locations on these
devices.
System
These are internal memory locations maintained by Infilink that contain system
information. Such as the current date and time, the name of the current user,
etc. Tags cannot be defined for this Tag Group and are read only.
Memory
User defined memory locations within the context of the running project. A tag
that is used to hold the intermediate results of a calculation would be assigned to
this node.
Virtual
A Virtual Tag serves as a pointer to another tag's information. These tags can
then be dynamically reassigned to another tag's values during Run mode with a
script. Virtual tags can hold data of any type.
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
group’s properties.
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.
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.
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).
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.
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.
6. Update Rate: The update rate specifies how often the Tag Group should
request data from the Server.
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.
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.
_AccessLevel Short
Identifies the access level of the current user (0-255).
_ActiveAlarmCnt Long
Identifies the number of currently active alarms in the running project.
_AlarmLogStatus Short
Identifies the state of the Alarm Logger where: 0 = Off, 1 = On and -1 = Disabled.
_DataLogStatus Short
Identifies the state of the Data Logger where: 0 = Off, 1 = On and -1 = Disabled.
_Date Short
Identifies the day of the month.
_Day Short
Identifies the day of the week where: 0 = Sunday, 1 = Monday,..., 6 = Saturday.
_FileOpStatus Short
Holds the result of the most recent file operation. Result codes are defined as
See File Functions in follows:
Scripting.
0 Function success
-1 File not found
-2 Maximum open file count of 8 has been exceeded
-3 Unable to create the target file
-4 An error occurred during a file read operation
-5 An error occurred during a file write operation
-6 A memory allocation failure occurred during a read operation
-7 The maximum CSV field length of 256 characters has been exceeded.
-8 A specified read offset was past the end of the file.
-9 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.
_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.
Char: An 8 bit signed value with a range from -128 to 127 that represents one
character.
Real: Single precision (4 byte) floating point value with range -3.37 E38 to +3.37
E38
Double: Double precision (8 byte) floating point value with range –1.7976931
E308 to +1.7976931 E308
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.
Most Settings are the same as a Memory tag. Additional settings are listed below.
The Data type should
match the value you are
retrieving.
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:
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.
The Data type should match Most Settings are the same as a DDE tag. Additional setting listed below.
the value you are retrieving.
Server item
The address* of the information in the device or tag name 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.
Design Tip
If you will be using KEPServerEX, specify the item using the format:
When more than one
address in the server is
selected, Infilink will make
<channel name>.<device name>.<item name>
tags for all of the selected
addresses. This powerful Where:
feature eases the task of <channel name> is the name of the Channel in the OPC server
creating tags separately
in Infilink after they have <device name> is the name of the device in the OPC server
already been created in <item name> is the device address in the controller or a tag name that was
the server. 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.
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
Engineering Type
The Tag will hold the value as scaled by the OPC server.
Raw Type
The Tag will hold the device’s un-scaled value from the OPC server.
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.
For example, if the clamp values are set to 10 minimum and 40 maximum Infilink
will never allow the tag to assume a value less than 10 or greater than 40.
Scaling
DDE and OPC tags can be scaled. Scaling is a simple linear interpolation
between the raw values and the engineering values entered. Engineering
Minimum and Maximum are the scaled value range that Infilink will use for
scripts and animations. Raw Minimum and Maximum are the data range received
from the server. When Infilink writes data back to the server the scaling is
“backed out” or reversed so that the server gets relevant data.
For example: The value of a word from the server is a 10-bit A/D converter value
with the range of 0 to 1024. You would like to see it displayed as values ranging
from 4 to 20. Set the Raw minimum as 0 and the maximum as 1024. Set the
Engineering minimum as 4 and the maximum as 20. (Shown above).
Tag Name
The name of the tag.
Description
The user supplied description of this tag.
Local Access
R/W if the tag may be written to, RO otherwise.
Client Access
“None” if the tag cannot be accessed from DDE client application, RO if read only
access is provided, R/W if full read/write access is provided.
Internet Access
"None" if the tag cannot be accessed from Infilink Viewer application, RO if read
only access is provided, R/W if full read/write access is provided.
Log On Change
“Y” if the data for the tag is to be logged, “N” if not.
Deadband
The deadband value for the tag if defined.
Deadband
The deadband value for the tag if defined.
Target
The target value if a deviation alarm is defined.
Major Dev
The major deviation percentage if a deviation alarm is defined.
Minor Dev
The minor deviation percentage if a deviation alarm is defined.
Notes
1. System tags are not included in the CSV output.
2. Data change and Alarm scripts are not included in the CSV output
3. If a tag database that contains scripts is exported, modified and then
imported back into the same project, the scripts will remain intact.
4. When importing a tag database, the fields of an identification record are not
required to be in any specific order.
5. When importing a tag database, only required fields need be included but
each included field must have a matching field in the identification record.
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. Show/Hide 7. Change Color
2. Blink 8. Rotate
3. Stretch Horizontally 9. Enter Data
4. Stretch Vertically 10. Show Value
5. Move Horizontally 11. Slider
6. Move Vertically 12. 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.
. 1. Press the tool or press the Blink button in the Animations dialog box.
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.
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.
The Show/Hide animation 1. Press the button in the Animations Toolbar. Or, right click on the object
may be assigned to any
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.
4. 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.
6. The related position of the object for each tag value can be set either by the
Left/Right stretch and 1. Press the or buttons in the Animations Toolbar. Alternatively, right
Up/Down stretch used
together gives an object a
click on the object and select animations. Then select the Slider animation
zoom in/out effect. button.
The Stretch animation is 2. Press the Tags... button in order to view the Tag List. An Analog
used to create Bargraph tag must be attached to this animation. Select a tag to create a tag name or
objects. 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.
5. The related position of the object can be set for each tag value either by 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.
5. The Angle of rotation in degrees of the object for each tag value can be set
6. Select the Center of rotation (the pivot point). This can be:
The Enter Data animation 1. Press the tool or press the Enter Data button in the Animations dialog
cannot be assigned to
objects of type line, arc,
box.
pie or chord.
2. Press the Tags... button in order to view the Tag List. Select a
The Enter Data animation tag.
can be assigned to a
group even if one or more 3. Once the tag is selected, then select the Entry Method you want to use.
of the objects in the group
cannot accept the Enter There are 6 different methods to choose from:
Data animation.
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).
6. If a Numeric tag is selected, Select to limit the range of entry in one of two
ways.
Default for data type: Limits entry to the range for that Data type.
User defined: Limits the range to the settings entered in the High and Low
text fields.
7. If your project supports multi-user security, enter the Access level that the
operator must have to activate the animation.
The Slider animation 1. Press the button in the Animations Toolbar. Alternatively, right click on
cannot be assigned to
objects of type line, arc,
the object and select animations. Then select the Show/Hide animation button.
pie or chord.
2. Press the Tags... button in order to view the Tag List. An Analog
Slider animations may be tag must be attached to this animation. Select a tag.
assigned to any group.
3. Enter the value that the tag should assume at the end points of motion in the
Output value range Low and High edit fields.
5. The related position of the object can be set for each tag value either by the
keyboard or by clicking the @low value or @high value Related position
buttons . Clicking one of these buttons takes you to the object where you
can graphically set the desired initial and final location using the mouse.
6. Select While sliding to update the value of the tag while the slider is in motion
or On release to update the value of the tag following release of the mouse
button.
7. If your project supports multi-user security, enter the Access level that the
operator must have to activate the animation.
1. Press the tool or press the Change color button in the Animations dialog
box.
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 the object to which you are assigning the animation has a border then you
may choose whether to change the border color by selecting the appropriate
choice in the Border Ranges dropdown selection list.
5. If the object to which you are assigning the animation has an interior then you
may choose whether to change the fill color by selecting the appropriate
choice in the Interior Ranges dropdown selection list.
6. Selecting None disables the color change for the corresponding feature,
Border or Interior.
7. If a Discrete tag is selected, choose a color for each of the two states, Off
and On using the Color Selection Dialog.
The Show Value 1. Press the button on the Toolbar. Or, right click on the object and select
animation can only be
assigned to button and
animations. Select the Show Value button in the Animations dialog box.
text objects.
2. Press the Tags... button in order to view the Tag List. Select a
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.
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.
Take Action Scripts are for those functions and operations that should occur as a
direct result of pressing/clicking on a button or other object. Typically, these
scripts would be used for reading and writing files, opening windows, setting
presets, or acknowledging an event.
There are three types of window scripts: On button down, While button pressed,
and On button up. One Script may be written for each type. While the left button
remains down the assigned While Key Pressed script will execute at the specified
interval. After the mouse button is released, the assigned After Key Up script will
execute.
You may assign these scripts in any combination using the following steps.
3. If your project will support multi-user security, enter the Access level that the
operator must have to activate the animation.
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.
Copyright © 2003 KEP, Inc. Libraries: The Quick Path to Great Looking Apps • 69
Create a New Library
1. To create your own libraries, select the New Library item from the File menu or
click on the tool. Enter a logical name for the library, e.g..,
"PumpProject", "CanningMachine", etc. then click OK. A new empty Library
will be created with an empty object group called Untitled.
2. Click on the Rename tool to give the new untitled group an appropriate
name. Object group names should reflect the type of objects that are in them.
You are now ready to begin saving objects to the Object group.
Open a library
Scroll to the library you want to open, click on it, and then press Open.
Copyright © 2003 KEP, Inc. Libraries: The Quick Path to Great Looking Apps • 70
Save a 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 Rename tool. An
Object name may be up to 64 characters long.
Copyright © 2003 KEP, Inc. Libraries: The Quick Path to Great Looking Apps • 71
Saving Objects to a Library
Any drawn object placed
or drawn on a window 1. Click on the object or group to save. Right click to the shortcut menu and
including groups of select Copy.
objects can be saved to a
library. All of the
animations and scripts will
2. Open the library and object group where you want to save the selected
be saved along with the object or group.
object or group. This
makes objects and 3. Right click in the object field of the library and select Paste from the
groups in libraries a useful
shortcut menu. A new Untitled object will be added to the treebar to the left of
resource for future
projects. Entire windows the object field. Use Rename to assign an appropriate name, up to 64
can be lassoed, grouped characters long, to the object or group.
and then saved to a
library if desired. 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.
Copyright © 2003 KEP, Inc. Libraries: The Quick Path to Great Looking Apps • 72
Reassigning Tags
The Reassign Tag
function can be invoked The Reassign Tag dialog is used to replace one or more tag names assigned to
at any time on any the selected object. Each animation and script assigned to the object will be
window by simply right scanned for tag usage. You will be shown a dialog box for each different tag that
clicking on an object. If
the object contains tags,
is assigned to the object.
the Reassign Tags
selection will be available The dialog appears as follows:
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
The text to the right of Old name: indicates the name of a tag found in the scan.
create an object once This tag may be assigned to more than one animation or script. To reassign this
then quickly populate
your window with tag you can either type in a valid tag name or press the New name: button
duplicates each attached and select a tag from the Tag List dialog. When you press the OK button all
to their proper tags by the
occurrences of Old name will be replaced with the tag name shown in the edit
reassign tags function.
control.
You can skip reassignment of a tag by pressing OK without making any changes
to the name.
Copyright © 2003 KEP, Inc. Libraries: The Quick Path to Great Looking Apps • 73
Copyright © 2003 KEP, Inc. Scripts: The Final Word in Flexibility • 74
Scripts: The Final Word in Flexibility
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.
Opens the Tag Group dialog box. You can select a tag from the tag
list and its name will automatically be inserted into the script at the cursor
location.
On project close
Any project level cleanup that you need to perform can be done in an On project
close script.
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.
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.
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.
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.
1. Press the Take Action button on the Animations toolbar. Select when the
script will occur.
2. If your project will support multi-user security, enter the Access Level that the
operator must have to activate the animation.
Chlorine_ack = TRUE;
PostMsg ("Acknowledge Chlorine Gas Alarm by operator" +_User);
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 Tag’s properties dialog when you
assign an alarm to a tag.
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.
Comments
In order to continue a
You will find it helpful to include comments in your scripts so that when others
comment on the next line review your work (or even you at a later date) the intended operation of the script
you must place a # at the will be clear.
beginning.
A comment is defined by preceding the comment text with a pound sign (#) as in:
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.
Example:
# Sound a beep from the PC speaker if the value of
# DiscreteTag1 is TRUE
If DiscreteTag1 == ON Then
Beep;
EndIf;
Logical Operators
Logical operators are used when combining conditional expressions.
OR Logical OR
Logical expressions involving OR evaluate to TRUE if either side of the
expression is TRUE.
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;
Examples:
# Modulo counter
nAngleTag = (nAngleTag + 1) % 360;
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;
You may include as many or as few ElseIf sections as are necessary to qualify
the set of conditions you are scripting.
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.
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)
Abs (<real>)
Returns the absolute value of <real>
Examples:
# Calc the hypotenuse of a right triangle from the lengths
# of its other two sides.
Examples:
# Simple string assignment
StringTag = "My String";
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.
The difference between this function and FileGetWriteName() is that for this
function the operator must choose an existing file.
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.
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;
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;
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;
Example:
# The file name parameter used within the FileReadCSV
# function can also be entered a literal such as:
# FileReadCSV ("C:\temp\testrec.csv", 0, UserTag1, 10);
PathTag = "C:\temp\testrec.csv";
FileReadCSV(PathTag, 0, UserTag1, 10);
if _FileOpStatus <> 0 Then
Show "MyErrorWindow";
endif;
If <numeric expression> is given then the result of that expression will determine
the beep count, otherwise a single beep will be issued.
The size of a .WAV file specified to this function should be < 100 KB in length.
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".
Examples:
# Move this window to the right by 10 pixels (Because we
# are operating from Take Action script assigned to a
# button on the window we want to move we can use _ThisWin.)
# Move _ThisWin by 10, 0;
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.
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.
ShowMenus
Causes the menu bar at the top of the main window to be shown, allowing access
to the menu commands.
Examples:
# Initialize the display on start
_SysCmd.HideMenus;
_SysCmd.Login;
Miscellaneous Functions
Exit
Stops executing the current script.
Color Constants
All color constants have the following syntax : _SysColor.<identifier>
Example
# Change fill color;
_ThisWin.MyRectangle.FillColor = _SysColor.Maroon;
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;
Name String
Returns the name of the object assigned in Design Mode.
LineColor Long
Sets/returns the color used to draw the object border.
LineStyle Integer
Sets/returns the style of lines used to draw the object border. Values are as
follows: 0 = solid, 1 = dashed, 2 = dotted, 3 = dash dot, 4 = dash dot dot. Non-
solid line styles are only applied if the LineWidth property is set to 0 or 1.
LineWidth Integer
Sets/returns the thickness of lines used to draw the object border. Values range
from 0 to 7 where 7 is the thickest.
FillColor Long
Sets/returns the color used to draw the interior of filled objects.
FillStyle Word
Sets/returns the pattern style used to fill the interior of filled objects.
Text String
Sets/returns the text assigned to the object
TextColor Long
Sets/returns the color used to draw text.
Copyright © 2003 KEP, Inc. Scripts: The Final Word in Flexibility • 100
The following table shows the accessible properties of each object
Object Name Show Line Line Line Fill Text Text
Style Width Color* Color* Color
Line RO R/W R/W R/W R/W N/A N/A N/A
Rectangle RO R/W R/W R/W R/W R/W N/A N/A
Rounded Rectangle RO R/W R/W R/W R/W R/W N/A N/A
Ellipse RO R/W R/W R/W R/W R/W N/A N/A
Group RO R/W N/A N/A N/A N/A N/A N/A
Button RO R/W N/A N/A N/A R/W R/W R/W
Polyline RO R/W R/W R/W R/W N/A N/A N/A
Polygon RO R/W R/W R/W R/W R/W N/A N/A
Arc RO R/W R/W R/W R/W N/A N/A N/A
Pie RO R/W R/W R/W R/W R/W N/A N/A
Chord RO R/W R/W R/W R/W R/W N/A N/A
Bitmap RO R/W N/A N/A N/A N/A N/A N/A
Text RO R/W N/A N/A N/A R/W R/W R/W
Trend RO R/W N/A N/A N/A N/A N/A N/A
Alarm History RO R/W N/A N/A N/A N/A N/A N/A
Viewer RO R/W N/A N/A N/A N/A N/A N/A
Alarm
EndAngle Integer
Sets/returns the angle in degrees between the horizontal centerline of the object
and a line drawn from the center point to the point on the border at which drawing
ends.
Clockwise Discrete
Sets/returns the direction in which the object is drawn. TRUE = Clockwise from
StartAngle, FALSE = Counterclockwise from StartAngle.
CornerHeight Integer
Sets/returns the height of the ellipse used to create the rounded corners.
AckAll Service
Acknowledges all current alarms.
Copyright © 2003 KEP, Inc. Scripts: The Final Word in Flexibility • 101
ScrollUp, ScrollDown Service
Scrolls the alarm display up/down by one line.
AlarmCount Integer
Read only property that identifies the number of alarms displayed in the viewer.
Home Service
Positions the first available alarm at the top of the view.
End Service
Positions the last available alarm at the bottom of the view.
Print Service
Sends the alarm history to the default Windows printer.
Trend Properties
Mode Discrete
Sets/returns the operating mode of the trend where 0 = Real-time and 1 =
Historical.
TimeSpan Long
Sets/returns the time span of a historical trend in seconds. The valid range of
this property is from 0 to 2147483.
Copyright © 2003 KEP, Inc. Scripts: The Final Word in Flexibility • 102
DrawMode Integer
Sets/returns the drawing mode for historical data where 0 = Scatter, 1 = Discrete
and 2 = Smooth.
Scatter plots data points only along the line of the graph.
Discrete joins data points assuming the value is constant until the next data
point (i.e. a stair step pattern).
Smooth joins data points directly, this is the default mode used for trends.
Even with this mode set, the graph can appear to be squared if data changes
are abrupt.
Redraw Service
Refreshes the historical trend using the current trend properties.
PenTag String
Sets/returns the name of the tag assigned to the current pen. Changing this
property changes the source of data for the pen.
Cursor Long
Sets/returns the current cursor position in milliseconds relative to the start time of
the trend. The cursor value is subtracted from the StartTime and used with
CurrentPen to determine PenValue. The cursor value cannot exceed the time
span of the trend.
PenValue Real
Returns the value of the CurrentPen at the current Cursor position. If the cursor
is between samples, the value returned is for the previous sample.
Copyright © 2003 KEP, Inc. Scripts: The Final Word in Flexibility • 103
Copyright © 2003 KEP, Inc. Scripts: The Final Word in Flexibility • 104
Lesson 2: Using Infilink to Mimic A Process
Overview
If you need help, the
In the last lesson, you learned some of the capabilities of Infilink as a graphical
completed lessons may tool. You should now be familiar with:
be found in the Infilink • How to draw objects in a window.
lessons directory. • How to access and edit object properties.
These lessons are • How to use the Short Cuts and Toolbars.
provided to give you a • How to create groups.
reference of what a
project should look like • How to reshape objects.
when completed.
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.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 105
Lesson Objectives
All lesson projects,
This lesson is designed to provide you with the basics needed to create a simple
although written to work Infilink project that can be applied to a real-world situation. In this project you will
with memory tags, will learn:
work with PLC's with
minimal modification.
• How to copy objects from the supplied Libraries.
• How to enter tags.
• How to create a Project Script.
• How to animate an object by associating a tag with it.
• You will reinforce editing skills learned in Lesson 1.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 106
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)
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 107
Copying Library Objects
1. From the Infilink Main Menu, select the Library Manager item from the View
If you make a mistake menu or click on the Project tools toolbar. In the Library Manager Select
when drawing an object, Open from the File menu.
you can choose Undo
from the Edit menu or
press CTRL-Z to back up
a step.
2. Scroll down through the list of library groups until you find the library group
named Pumps. Click on “Pumps” to display the pump objects.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 108
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.
You can use the Library Manager
Treebar to expand Library Group
trees and find objects as well.
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.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 109
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.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 110
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.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 111
Edit/Arrange the Objects in the Window
Now that you have all of the objects you need it’s time to start placing them
together on the window. Our goal is to have a tank that will be filled using a
pump. The inlet to the pump comes from an off screen source via a pipe. A
control valve will be employed to empty the tank to an off screen location. You
will place a level indicator on the tank to display its fill level. The tank fill level
will be the only animation assigned in this lesson.
Turn off the grid if it is on by
unchecking the Grid item in the Rotate, Enlarge, and Place the Tank
View menu. Because the focal point of the lesson is the tank you will place and size it first.
1. Select the Tank by placing the cursor over it and pressing the left mouse
button.
2. Once selected, click the Rotate Counterclockwise button on the Toolbar to
rotate the tank 90 Degrees in the counterclockwise direction.
3. You will now resize the tank vertically by placing the cursor over the object
handle at top center of the object until it becomes a double arrow. Click and
hold the left mouse button, and slowly drag the top edge of the tank up. Our
goal is to stretch the flange on the inlet so that it is slightly larger then the
horizontal pipe. You can check this by dragging the pipe over next to the
flange and comparing the ends.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 112
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.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 113
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.
2. Drag the pump so that its flange is aligned as close to the pipe as you can get
it.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 114
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.
2. Drag the pipe and place it as close as you can to the inlet flange on the
pump.
3. Use the cursor keys to align the pipe properly with the pump inlet flange.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 115
4. Resize the pipe by dragging its left side to the edge of the screen.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 116
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.
1. Select the Control Valve and place it as close as you can to the bottom end
of the vertical pipe.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 117
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.
1. Select the Vertical Pipe. Align it as close to the outlet flange of the valve as
you can.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 118
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.
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 on the
Toolbar and choose black from the color palette.
4. Click the Duplicate button on the Toolbar. A second rectangle should
appear below and to the right of the first.
5. Click the Fill Color button on the Toolbar and choose a light blue from
the color palette.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 119
6. Resize the rectangle until it is half the size of the black one.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 120
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.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 121
Define a Tag to Assign to the Fill Level Animation
Tag names are not case
You are now going to create a tag that will be used to drive the animation for the
sensitive. 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 tool to
display the Tag Groups dialog box.
2. Click the tool to create a new Memory tag group. Name the tag group
“Memory”.
3. In the Tag Name field right click and select New Tag…
enter "Tank_level" for the tag name.
4. Choose a Data Type of Word and Security for Internal as Read/write.
5. Click the OK button to add the tag to the database.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 122
Animate the Object T1_level
Now you are going to create the animation, with the aid of the tag you just added,
which will give the rectangle named T1-level the appearance that it is indicating
the exact level of fluid in the tank.
1. Make sure that you still have the rectangle T1_level selected. You can verify
this by checking the object name in the status bar at the bottom of the Infilink
window.
2. With the cursor positioned over the light blue rectangle, press the right
mouse button to activate the short cut menu and select Animations….
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 123
4. Click on the button and select the "Tank_level" tag you created
earlier.
5. Click the Stretch from dropdown and select Right/bottom edge.
6. Click the Offset from initial size, Low position button and align the cursor
line with the bottom edge of the rectangles.
7. Click the Offset from initial size, High position button and align the cursor
line with the top of the black rectangle.
8. Change the Input value range High value to 1000.
9. Click OK to accept the animation and exit the Stretch Vertically dialog box.
10. Click Close to exit the Animations dialog box.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 124
Create a Script to Simulate an Increasing Fill Level
Because you are only using a memory tag, you need to write a script to allow us
to simulate a rising fluid level in the tank. Normally you would be using a sensor
attached to a PLC or smart device to measure the exact fluid level in the tank.
For a complete
2. Select the Scripts tab.
understanding of scripts 3. There are 3 possible types of scripts at the project level: On project open, While
and how to use them, project running and On project close. If the Script Editor did not open by default
See Scripting. to While project running then select it now.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 125
4. Type in the following Script:
7. Click OK to close the Project Properties dialog box and accept the changes.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 126
Save the Project
If a project is modified you
Now you need to save the project.
will be prompted to save
changes when you 1. Select the Save item from the Project menu.
choose Exit or Run.
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 127
Copyright © 2003 KEP, Inc. Lesson 2: Using Infilink to Mimic A Process • 128
Lesson 3: Controlling a Process
Overview
If you need help, the
You have now learned:
completed lessons may • How to create a simple animation to monitor a process.
be found in the Infilink • How to copy objects from the object libraries.
lessons directory.
• How to add a tag.
• How to write a simple script.
In later lessons you will select and use some library objects that have animations
already assigned to them. In this lesson, you will learn:
• How to create and animate buttons and text.
• How to create scripts that are more complex.
• How to control a process from Infilink.
You will see that controlling a process is as easy as monitoring it was in the last
lesson.
Opening Lesson 2
If you did not close Lesson 2 then skip to the "Adding Some New Tags" section of
this lesson.
1. Select the Tag Groups… item from the Project menu or click the tool to
display the Tag Groups dialog box. (or press F6).
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.
12. Click the Show Value button on the Animations dialog box.
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 on the Animations dialog box.
25. Click Close at the main Animations dialog to accept all the animations and
exit.
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.
2. Use the button on the Fill Tools Toolbar to set the fill color to light gray.
3. Click the button on the Toolbar and draw a line on top of the rectangle
You may want to enable about a third of the height from the top. Place the line ends so that they are
the grid so you can approximately a cursor width from either end of the rectangle.
measure distances using
grid lines.
4. Use the button on the Line Tolls Toolbar to set the line color to black.
5. Click the button to select a triple thick line.
8. With the button still selected click the Slider button on the Animations
Toolbar.
9. Assign the tag Drain_rate by either selecting it from the tag list or typing the
name manually.
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.
16. Display the properties dialog for the button and name it “dspDrain”.
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.
7. Click the Show Value button in the Animation toolbar to edit the Show
Value animation.
8. Type "4" in the Field width to replace the old width of "2".
9. If the text object is out of position, drag it so that it is in position.
10. Click OK to accept the animation.
1. Display the Project Options dialog by selecting Properties… from the Project
menu.
2. Click the Scripts tab to display the Script Editor.
3. Replace the existing While project running script with the following:
# If the pump is turned on and the tank is not
The pound sign (#) is # full then fill the tank at the specified rate.
used in Infilink scripting to If Pump_on AND (Tank_Level < 1001) Then
allow you to comment Tank_Level = Tank_Level + Fill_rate;
your scripts. Endif;
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.
An alarm log entry is generated when one of the following events is detected:
• A tag is entering an alarm state.
• A tag is leaving an alarm state.
• The operator acknowledges an alarm.
The Project Properties Alarm Logger tab allows you to specify the destination and
control the scheduling of alarm log file activity.
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.
Start at hour n
This value specifies the hour of the day that will be used to determine the start of
the first log file for that day.
Example:
Assume the following:
1. Alarm logging is enabled and at least one alarm in the project will be
logged.
2. Start logging immediately is enabled for the project.
3. Start at Hour = 9:00 am.
4. Change Files After = 3 hours.
These settings would yield a cycle of log files created at 9:00 AM, 12:00 PM, 3:00
PM, 6:00 PM, 9:00 PM, 12:00 AM, 3:00 AM and finally 6:00 AM before repeating.
If you start your project running at 7:00 AM with these settings, your first log file
will be named in accordance with the 6:00 AM interval in the cycle. Data will be
logged to this file until the next scheduled log file change at 9:00 AM.
Buffer size
The number you specify here will determine how many records the alarm logger
will buffer before performing a disk write.
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.
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.
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.
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.
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.
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.
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.
Tag values are logged once when the initial value of the tag is determined and
then once every time the value of the tag changes. Each entry in a log file is
stamped with the date and time the data was determined to have changed so an
accurate history of its activity can be presented.
Infilink also provides a script command called _SysCmd.DataLogPulse that you can
use to generate log entries on demand or at timed intervals instead of or in
addition to the standard log on data change method described above.
The Setup Data Logger dialog box allows you to specify the destination and
control the scheduling of data log file activity.
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.
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.
Start at hour n
This value specifies the hour of the day that will be used to determine the start of
the first log file for that day. The range is 0 to 23.
Example:
Assume the following:
Data logging is enabled and at least one tag in the project will be logged.
Start logging immediately is enabled for the project. (See Project Options.)
Start at Hour = 9:00 am.
Change Files After = 3 hours.
These settings would yield a cycle of log files created at 9:00 AM, 12:00 PM, 3:00
PM, 6:00 PM, 9:00 PM, 12:00 AM, 3:00 AM and finally 6:00 AM before repeating.
If you start your project running at 7:00 AM with these settings, your first log file
will be named in accordance with the 6:00 AM interval in the cycle. Data will be
logged to this file until the next scheduled log file change at 9:00 AM.
Buffer size
The number you specify here will determine how many records the data logger
will buffer before performing a disk write.
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
Alarms are used to inform the operator that something important has happened in
completed Infilink lesson a process that Infilink is monitoring. You can define High/Low and Deviation type
4 may be found in the alarms for analog values and On/Off alarms for discrete values. When an alarm
Infilink lessons directory. event is detected for a particular tag, the details of the event can be displayed in
These lessons are an alarm viewer, sent to a local printer, and logged to disk. In this Lesson you will
designed to run without see how to define and view alarm events using Infilink.
the use of a PLC. 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.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 169
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.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 170
Creating a New Project
1. Open Infilink's Design Mode.
2. Click Cancel in the Open Project dialog box.
3. Click the File menu, then click on New…
4. Type in a name for your project, such as lesson4, and click Create.
5. Click Yes to verify the name and path of your project.
6. Right click and open the Windows Properties dialog box. Type
“Alarm_Lesson” for a window Name and type “Alarm Lesson Panel” for a
Title. Click Show at Startup, then click OK. Size the window so that it fills
the screen.
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.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 171
Creating Alarm Viewer Control Buttons
In order to scroll the contents on an alarm view you need to utilize the Service
type properties of the Alarm view object. For simplicity, you will use library
objects that have been predefined for this purpose.
1. From the Infilink View Menu, select Library Manager, then Open System
Library.kol
2. Select and expand the library group named ALARMCTR.
3. Drag and drop the buttons shown below from the ALARMCTR library group
and place them into the Main Window above the Alarm Viewer. Leave space
above the Alarm Viewer and Control Buttons because later you will add two
Sliders and a Button to generate alarms.
4. After you have finished placing in all of the control buttons, minimize the
Library Manager window.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 172
Drawing the Alarm History Viewer
An Alarm History Viewer displays alarms that have been logged to disk.
1. From the Infilink Main Menu, select Draw, then select Alarm History Viewer or
click the button on the Toolbar.
2. Draw an alarm history viewer leaving room to the left and above for buttons.
Make the alarm history viewer object the same width as the alarm viewer
object.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 173
Creating Alarm History Viewer Control Buttons
Again you will use library objects to provide control functions.
1. Restore the Library Manager.
2. Select and expand the library group named ALARMHST.
3. Drag and drop the buttons shown below from the ALARMHST library group
and place them into the Main Window to the left and above the Alarm History
Viewer. Resize the window and the buttons as necessary.
4. After you have finished placing in all of the control buttons, minimize the
Library Manager.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 174
Enabling the Alarm Logger
Now that you have an Alarm history viewer, you need to enable alarm logging.
1. From the Infilink Project Menu, select Properties, then select Alarm Logger tab.
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.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 175
Defining Tags with Alarms
In this section you will add three tags and for each tag you will define an alarm.
1. Click on the from the Toolbar.
2. In the Tag Groups dialog box click on to create a memory tag group
named “Memory”.
3. Click to enter a new tag. Set the tag properties of the first tag as shown
below.
4. Click the Level Alarm tab. Set the alarm properties as shown below.
7. Click OK
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 176
8. The HighLowTag Attributes column now includes an “A” indicating that an
alarm is assigned to the tag.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 177
11. Click the Deviation Alarms tab.
12. Set the alarm properties of the second tag as shown below.
13. Click OK
14. Add the third tag with the properties shown below.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 178
15. Click the Discrete Alarm tab.
16. Set the alarm properties of the third tag as shown below.
17. Click OK then click Close to close the Tag Groups dialog.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 179
Creating Animations to Generate Alarms
In this section, you will add two sliders and a button from Infilink libraries. When
you run the project, you will use these objects to change the values of our three
tags, and generate alarms. The alarm data will appear in the views that you have
configured.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 180
Displaying the Active Alarm Count
You will use a Show Value animation on a Text object, to show the Active Alarm
Count.
1. Draw a couple of Text objects over to the left of the Alarm Viewer.
2. For the upper Text object edit its properties and in the text field type “Active
Alarms”.
3. For the lower Text object, edit its animations and add a Show Value
animation with the System Tag "_ActiveAlarmCnt" assigned to it.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 181
Save and Run the Project
1. Click the Project menu, then click Save.
2. Click the Project menu, then click Run.
3. At startup the Sliders will display initial values of 50, and the Button will be
Red(OFF). Both the Alarm Viewer and Alarm History Viewer should be
blank.
4. Move the first Slider to its outer limits, this will trigger the Low and High
alarms defined for tag "HighLowTag".
5. Move the second Slider to its outer limits, this will trigger the Major Deviation
alarm defined for tag "DeviationTag".
6. Click on the Button between the Sliders to trigger the alarm defined for tag
"DiscreteTag".
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.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 182
8. Alarms displayed in the Alarm Viewer can be Acknowledged one at a time by
using the left mouse to double click on individual alarm rows. Or, they can be
Acknowledged all at once using the Alarm Viewer object's AckAll service that
can be attached to a button or used in a script.
9. Alarms will be logged to disk and viewable in the Alarm History Viewer,
according to the Buffer Size and Max Holding Period that were assigned
when you enabled the Alarm Logger in the design portion of this lesson. In
our example, the alarm log is updated after every five alarm events, or after
one minute has elapsed, whichever comes first. For more information on
setting up the alarm logger, consult the Infilink help file.
10. The Scrolling, Paging, Home, and End buttons use At Key Down and While
Key Pressed animations to invoke Service type object properties of the
associated Alarm Viewer or Alarm History Viewer object. See Object
Properties in the Infilink help file.
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.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 183
Exit Run Mode
.
1. Click on the Project menu, then click Exit.
2. The project is now closed. The Event Logger window is still open.
3. To close the Event Logger, select the Event Logger’s File menu and click Exit.
Copyright © 2003 KEP, Inc. Lesson 4: Alarms and Alarm Logging • 184
Lesson 5: Real-Time and Historical Trends
Overview
If you need help, the
When monitoring process values it is often important to log a history of those
completed Infilink lesson values over a period as well as display a portion of the logged data on the screen.
5 may be found in the Infilink allows you to store the logged data to a file contained in the project
Infilink lessons directory. directory as well as display real-time and historical data on the screen.
In this lesson, you will:
These lessons are
• Draw a trend object and edit its properties.
provided to give you a • Toggle a trend between real-time and historical mode.
reference of what a • View historical data in scatter, discrete and smooth modes.
project should look like
• Scroll through historical data.
when completed.
• Increase or decrease the range of the value scale.
• Create a sliding cursor that will display values chosen graphically from a
trend.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 185
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.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 186
Creating a New Project
1. Open Infilink's Design Mode.
2. Click Cancel in the Open Project dialog box.
3. Click the File menu, then click on New…
4. Type in a name for your project, such as “lesson5”, and click OK.
5. Click Yes to verify the name and path of your project.
6. Right click and open the Windows Properties dialog box. Type
“Trend_Lesson” for a window Name and type “Trend Lesson Panel” for a
Title. Click Show at Startup, then click OK.
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 from the Toolbar.
2. In the Tag Groups dialog box click on the Memory Group tool to create
a memory tag group named “Memory”.
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.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 187
Drawing the Trend and Editing Trend Properties
The first thing you need to do is create a trend object and edit its properties.
1. From the Infilink Main Menu, select Draw, then select Trends or click the
button on the Toolbar.
2. Draw a trend window leaving room to the left and below for buttons. Resize
the window if necessary.
3. Right click on the trend and select properties, the Trend Viewer Properties
dialog box will appear.
4. In the Trend Name edit
box type “Trend1”,
this is the name used
to refer to this object.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 188
If the Enable Historical
8. Click on the Value
Display box is not Axis tab. Change the
checked, you will not be Minimum and Maximum
able to switch to Historical value to range from -25
Mode when running the to 25.
project.
9. Change the Major grid
lines to 3.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 189
Creating Trend Control Buttons
There are library objects
Here you will create buttons to toggle between Real Time and Historical Trend
provided that will perform Modes, increment and decrement the Trend Value Scale, change the Historical
most of the functions you Draw Mode, and Scroll through historical data.
are about to create. You
may use them rather than 1. From the Infilink Main Menu, select Draw, then select Button or click the
create all of these button on the Toolbar.
animations. The library
objects found in the
2. Draw a Button.
TRENDHST library 3. Right click on the button and select Properties….
assume a Trend object 4. In the Button Properties dialog type “Mode” for the Name and “Historical” for
name of "Trend". The the button Text. The button text may not be displayed if the button is to
trend in this lesson uses a
name of "Trend1".
narrow. If this occurs, simply widen the button.
5. Either repeat the above steps for the remaining buttons or use the duplicate
Following this lesson will
give you a better function to make copies of this button. Change the names and text of
understanding of how
the copies to match those below.
object properties can be
used.
A description of the use of
Name: “YRangeInc” Text “+Y Range”
these buttons will be Name: “YRangeDec” Text: “-Y Range”
explained in the animation Name: “Smooth” Text: “Smooth”
process. Name: “Scatter” Text: “Scatter”
Name: “Discrete” Text: “Discrete”
Name: “SkipInc” Text: “+10 Sec”
Name: “SkipDec” Text: “-10 Sec.”
6. Arrange the buttons by dragging each one to a new location. Place the
buttons as shown below.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 190
Create and Animate a Historical Cursor
You will now build a historical cursor animation to graphically determine historical
data values at runtime. The value at which the cursor intersects the data will be
displayed.
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
You can also click on the
“Fill” button on the Fill
polygon object’s name and press OK.
tools toolbar. 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.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 191
1. Select the “Marker” and click . The Slider animation dialog box will
appear.
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.).
The Cursor position
represents the time in
4. Now you need to set the Related positions. Click the Low Related Position cursor
milliseconds relative to
the start time of the trend. . A cursor will appear on the screen. Center this cursor over the right
edge of the trend window and click the mouse button.
The starting position for a
trend is the right hand
side. It scrolls from the
5. Now click the High Related Position cursor and center the cursor over the
right to the left. 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.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 192
Animating Trend Control Buttons
Now you will add some functionality to the buttons that have been created. You
accomplish this by adding animations to each button.
The Mode Button is the
one we assigned a text of Create an On button down Script for the Mode Button
“Historical” to earlier. The Mode button will allow us to toggle between real-time and historical mode at
runtime.
1. Click on the “Mode” button.
In place of the window 2. From the Animation toolbar, select . The Take Action animation dialog
name you can use will appear.
“_ThisWin” to refer to an 3. Select the On button down option, if it does not open there by default.
object on the current 4. Enter the following script:
window. If (_ThisWin.Trend1.Mode = 0) Then
_ThisWin.Trend1.Mode = 1; # Change to Historical
_ThisWin.Mode.Text = "Real Time"; # Update Button
If you are viewing this _ThisWin.Marker.Show = 1; # Show Marker
document online, simply Else
cut this script out and _ThisWin.Trend1.Mode = 0; # Change to Real Time
paste it into the script _ThisWin.Mode.Text = "Historical"; # Update Button
window. _ThisWin.Marker.Show = 0; # Hide Marker
This script also shows Endif;
how the text on a button
can be changed on the
fly.
5. Click the Verify button to make sure there are no errors in the script.
6. Click OK to accept the animation.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 193
The YRangeInc Button is
the one we assigned the Create an On button down Script for the YRangeInc Button
text “+Y Range” to earlier. The "YRangeInc" button will allow us to increment the value span of the trend
1. Click on the “YRangeInc” button and create an On button down, Take Action
Animation for "YRangeInc".
2. Enter the following script for the action. The # symbol is used to indicate
comments within the script.
# ALLOW THE TRENDS VALUE RANGE TO
# SPAN TO A MAXIMUM OF –50 TO 50.
If (_ThisWin.Trend1.MaxRange - _ThisWin.Trend1.MinRange < 100)
Then
_ThisWin.Trend1.MaxRange = _ThisWin.Trend1.MaxRange + 5;
_ThisWin.Trend1.MinRange = _ThisWin.Trend1.MinRange - 5;
Endif;
3. Click the Verify button to make sure there are no errors in the script.
4. Click OK to accept the animation.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 194
Create an On button down Script for the Discrete Button
The "Discrete" button will redraw the trend by assuming data is constant until the
next data change. The result is a square wave.
1. Click on the “Discrete” button and create an On button down, Take Action
Animation for "Discrete".
2. Enter the following script for the action. The # symbol is used to indicate
comments within the script.
# SET THE TREND DRAWMODE TO DISCRETE
# HISTORICAL MODE (SQUARE LINES)
_ThisWin.Trend1.DrawMode = 1;
3. Click the Verify button to make sure there are no errors in the script.
4. Click OK to accept the animation.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 195
Create a Current Value Display
In order to view the value associated with the Marker position, you need to create
a display. This can be accomplished with a text object and the “show value”
animation.
1. From the Infilink Main Menu, select Draw, then select Text or click the
button on the Toolbar.
2. Move the pencil cursor and Draw a Text object below the lower right edge of
the trend.
3. Right click on the Text object and select Properties…. The Properties dialog
will appear.
4. Type "dspValue" in the object name field.
5. Click OK to exit the dialog box.
6. Press the Show Value button . For the Tag name Enter “Memory\Value”.
7. Because “Value” represents a Real number, select Treat value as Real.
Change the Real format to Fixed field with Left of DP set to 6 and Right of DP
set to 2.
8. Click OK to accept the Show Value animation.
9. Draw a second text object above the "dspValue". This will be used as a
label.
10. Right click on the Text object and select Properties…. The Properties dialog
will appear.
11. Type "Marker Value" in the text field.
12. From the Infilink Toolbar, click the Bold button to make the text field bold.
Select the dspValue bold as well.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 196
Writing a Project Script
Because you are only using memory tags you need to write a script to simulate a
change in data. Normally you would be collecting data from an external device
and displaying it in a real-time trend.
1. From the Infilink Main Menu, select Project, then select Properties. The
Project Properties dialog will appear.
2. Press the Scripts tab.
3. Select While project running because you want the script to execute
continuously when in run mode.
4. Set the Interval to 250 msec.
5. Type in the following script:
If (PenData >= 30) Then
This script will be Increment = 0;
evaluated every 250 ElseIf (PenData <= -30) Then
milliseconds. The “Pen” Increment = 1;
value will always stay in
Endif;
the range of ±30 and will
increment or decrement
If (Increment) Then
by 2.5 units.
PenData = PenData + 2.5;
Else
PenData = PenData – 2.5;
Endif;
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 197
Save and Run the Project
1. Click the Project menu, then Click Save.
2. Click the Project menu, then click Run.
3. The Trend will appear on the screen. Data from “PenData” will be displayed
on the trend.
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.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 198
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.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 199
Trend in scatter draw
mode.
Copyright © 2003 KEP, Inc. Lesson 5: Real-Time and Historical Trends • 200
ActiveX Controls
Overview
Most ActiveX controls are Infilink is an ActiveX container. ActiveX controls are independent objects that can
not compatible with
be placed into an Infilink Project. These controls come in many varieties. Infilink
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.
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.
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.
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.
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 tag’s value by a percentage. The
percentage is always a positive whole number.
3. Click OK when done
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 tag’s 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 tag’s 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 tag’s value by another percentage.
4. Click OK when done
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.
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.
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.
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.
Because the scheduler is available at run time for review Access can be
restricted to prevent unauthorized access and changes.
Overview
This section describes how to use Infilink in a client/server configuration with
DDE.
This format is used when the client and the server reside on the same PC.
<Computer Name> is the name of the network PC where the DDE server
application is located.
<Share Name> is a registered DDE share name identifying the application and
topic.
This format is used when the client and the server reside on different PCs
connected to the same network.
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.
The Network DDE services must be started on the PC that Infilink is running on
before a connection attempt can be made. Under Windows 95/98 you would do
this by running the application NETDDE.EXE. Once you start the Network DDE
services they remain active until you restart the computer.
The server PC that you specify may require you to log in before a connection can
be established. If this is the case, you will be presented with a log in dialog from
the NETDDE agent on the client PC. You will need to specify an appropriate user
name and password when this dialog is displayed in order to complete the DDE
link.
If a connection attempt fails, Infilink will only attempt to connect one more time
before assuming the server is unavailable. You can tell Infilink to retry by using
the Reinitialize Links item on the Run Mode DDE menu. You can also perform
this function using the script command _SysCommand.DDEReset.
Notes
1. KEPServerEX is a 32-bit application. It must be run on either Windows
95/98, Windows NT or Windows 2000.
2. A link to a DDE server item will be started and remain active only as long as some
demand is made on the data provided by that link. See The PROJECT.INI File
[tuning] section in the Infilink help file for further information.
Let's use Microsoft Excel as an example. Assume you want to get the data for a
Tag group called "FlowInfo" and a tag called "FlowRate" and store it in cell
location A5. You would place the cursor in cell A5 and enter the formula:
=Infilink|FlowInfo!FlowRate
Now whenever the value of FlowRate changes, the text in cell A5 will be updated.
Sub PokeFlowRate()
Dim rangetopoke
Dim channel
channel = Application.DDEInitiate("Infilink", "FlowInfo")
Set rangetopoke = Worksheets("Sheet1").Cells(1, 5)
Application.DDEPoke channel, "FlowRate", rangetopoke
Application.DDETerminate channel
End Sub
If the copy of Excel that you want to use is on another PC connected to your
network the application would be \\<computer name>\ndde$ and the topic
sheet1$. You will need to create a DDE share for sheet1$ so that it will be
recognized by the NETDDE agent.
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.
Overview
The purpose of this section is to explain Design and Run Mode Security options
available with Infilink HMI.
To assign a password to a project that is not protected, the Current Password field
should be left blank. Otherwise, you will need to enter the password that is
currently assigned prior to making any changes.
2. When entering a new password for a project that is not currently protected,
simply leave the Current Password empty. Enter up to six characters in the
New Password field.
4. Click OK. The new password will be assigned when the project is saved.
To remove the password from a project leave the New Password and Confirm
fields blank. Click OK for both selections and the password will be removed when
the project is saved.
To define a user with a higher access level you must log in with an access level
at least one level higher than the level you wish to assign.
When a user logs in, the system tags _User and _AccessLevel are updated to
identify the user name and assigned access level respectively.
User Name
Type the name of a user that has been defined for the current project.
Password
Enter the password that is assigned for the user name.
Note:
The Project Properties dialog User List tab allows you to create and edit a list of
users for your project.
Add a new User to the list. This tool calls up the User Properties dialog for
you to enter user information.
3. Enter the Password (up to 16 characters) that is assigned for the user name.
5. Set the Access level. This is the maximum level that this user will be allowed
to access.
6. Check if you want the user to have access to this project's run-time tag data
via the Internet using the iViewer utility.
Note: Infilink software must be licensed for iViewer access before this feature
can be used. If this box is checked without the software being licensed, a window
displaying an error message will appear when entering Run mode.
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.
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.
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.
Enable the check box to remember this User and Password the next time you
attempt to connect to the 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 PC’s 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.
Tags that are in an alarm condition are highlighted with the alarm type displayed
in the Alarm column.
To hide or show the Tag list, make select the Tags menu item from the View
menu.
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
In this section we will show you how to setup Infilink and the KEPServerEX to
32 bit product and cannot start running a project automatically when your PC is started, or when selecting a
run on Windows 3.x. shortcut or program item.
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.
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.
Trouble/Feedback Report
Email : kep@kep.com Fax: +1 (732) 935-9344
____________________________________
____________________________________
Operating Platform:
486 ( ) Pentium ( ) Pentium II ( ) Pentium III ( ) Other ( ) __________________________
Win 98 ( ) Win 98SE ( ) Win NT 3.51 ( ) Win NT 4.0 ( ) Win 2000 ( ) Win ME ( )
Are you attempting to connect to the server of another application over the network? (Yes/No)
Cable Connections:
Serial RS-232( ) Off the Shelf ( ) or Custom Made ( )
Other ( ) _____________________________________________________________________________
Project Description: (include number of tags, plcs, and explanation of what you are attempting to do) if
possible send your project.
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
Problem Description: (completely describe what your problem is and what you were doing when you
encountered it)
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________
___________________________________________________________________________________________