Frequently Asked Questions

How do I create slanted text?

A “Slanted Text Wizard” is available in Infilink-HMI version 5.0.43 and higher. This video shows how to use it.

How do I setup and use SendEmail feature?

Before using the SendEmail feature you must configure an email account and also set up parameters for the email message and trigger.

How do I setup and use WebServer feature?

The WebServer and Web View features allow you to view display tag values over the internet in your web browser.

How do I use Infilink's Reporting feature

KEPRUN-REPORT is a powerful and easy reporting option for Infilink-HMI V5.0.34 and above.

Why Is My User Name or Password Not Being Accepted by Infilink-HMI Run Mode?

Solution: Try deleting the file “projectusers.dat” in the Infilink-HMI project folder. That file will contain login names and passwords which were set in Run Mode; these could differ from the ones set in Design Mode.

How Can I Dim The Monitor For Night Use?

We include a utility with Infilink-HMI called “trnwin.exe”.  It is an executable, and installs in a Utility folder within the Infilink program folder.  This utility dims the screen; it dims everything, not just Infilink.

To run this utility from within Infilink, you can use our RUN command:  Run “C:\Infilink_HMI\Utilities\trnwin.exe”;

To control this utility, use our SendKeys scripting command.  This scripting command sends keystrokes to any program on the computer; please see the helpscreens for detail.

Make a String tag called dimming.  Put this Script OnDataChange on the tag:
sendkeys (“trnwin2”, dimming, 0);

To Brighten the screen, execute this script, possibly as a TakeAction animation on a button:
IF val(dimming)>0 THEN

To Dim the screen, execute this script:
IF val(dimming)<9 THEN

And to Exit the trnwin utility, execute this scripting command:
SendKeys (“trnwin2″,””,0);

How Can I Simulate The Flow Of Liquid In A Pipe?

We created a sample project file to demonstrate how to show liquid flowing in a pipe.
Get the sample project HERE.

Below is a summary of the process used to create the sample project:

  • The Pipe wizard was used to draw sections of pipe.
  • Then 3 rows of bubbles were drawn.  Each row was grouped then duplicated so I had 3 rows.  Aligned left and top. Row 2 was offset by 6 pixels, and Row 3 by 12 pixels.  Then Show/Hide animations were put on each of the 3 rows. Then a “While Window Showing” script was added (set at 200ms) which alternates which row to display.  Also a tag which changes the direction was added.
  • The project was made in an older version–open in your version Design Mode, Save, and Run.  And click the button to reverse the flow direction.

Click to expand

How Can I Verify If An OPC Tag Has Valid Data ?

The IsDataValid Tag Property is used to show if an OPC tag has valid data or not.  For example, it can be used to display a message like “PLC Communications Lost.”  But using this property is not as simple as putting .IsDataValid after a tag name, because this tag property does not update continuously; something has to trigger it to update.  The _Second tag can be used to trigger this continual update by using expression like opctags\OilRefDensity.IsDataValid+_Second-_Second.

Here is an example of a “Comm Good” or “Comm Bad” text display in Infilink:

Click to expand

What are the field names of the Tag Data and Alarm Data tables for Infilink-HMI's MySQL feature?

How can I improve the performance of Infilink-HMI's embedded Internet Explorer web browser?​

Infilink-HMI’s embedded IE web browser is located in the Wizards panel:

Infilink-HMI uses IE ActiveX browser from Windows. ActiveX will load webpages in IE 7 mode instead of IE 11. Even though the ActiveX control is reporting as IE11, by default it uses the “Rendering Engine” of IE 7. To get Infilink-HMI to use IE 11 “Rendering Engine” one has to make this registry entry using the Registry Editor.
Registry key:
Create a 32 bit DWORD value, name it as your exe file (runmode.exe), and set its value to 11001 (decimal).

Please note that forcing “ActiveX control” into “Silent” mode, suppressing ALL Script error dialogs. 

Can I convert Alarm Log Files (.alf) to .csv format?

Use the utility we include with the Infilink-HMI install. We do not make an icon or shortcut to get to it; you have to browse directly to it, in the Utility folder under the Infilink folder:

Can I run 2 or more Infilink-HMI Run Modes on a single PC?

The registry key to run multiple Infilink-HMI Run Modes on one PC is: Multi_Instances
Set this to 1 to enable this special mode. Only 1 Infilink license is needed for the PC. Also, Design Mode changes are disabled while this key is set to 1, so set it back to 0 to modify the project. And, each Infilink-HMI Run Mode should run separate projects. The projects can be copies of each other, but they need to be separate, in separate folders.


Here is the setting to turn off datalogging on one of the Infilink-HMI Run Mode Projects:

How can I display discrete tag data in an Infilink-HMI trend?

This idea was brought to our attention by a longtime Infilink-HMI customer Mark Bunds.
View PDF File

Is there a way to deactivate the function that changes text object in INFILINK-HMI to VARIABLE size when changing the screen resolution?​

You’ll want to uncheck this box while using the original screen resolution.  Then save the project.  After this, if the monitor (graphics card) changes resolution, it will help with text and font sizing.

How do I make a tag turn OFF for 2 seconds, ON for 2 seconds, OFF for 2 seconds, etc.?

This Script is On Data Change, on the System tag _Second:

IF _Second%2 THEN Toggle Tag1; ENDIF;

Tag1 is the tag I’m writing to in this example.

Supporting information:

  • Toggle switches the value of a tag from 0 to 1, or 1 to 0.
  • % is Modulo Division.  It returns the remainder from division of two numbers.


Which KEPServerEX drivers are available for use with Infilink-HMI?

There are many drivers available for KEPServerEX. Please see Driver Options For KEPServeEX for a complete list of drivers. 

Is any one KEPServerEX driver suite free?

The standard PLC drivers are free; the driver suites whose price (driver plus 1 year support agreement) total $1425 are free.  You can visit and view the prices to see which are that price.

Can I use multiple email addresses for Infilink's alarm notifications?

In the box “Recipients Email”, enter muliple email addresses separated by “;”.  The following is an example:

The above will email and


How do I use SENDKEYS Scripting Command to shutdown a program

This is a scripting command, which, when executed in Infilink-HMI, causes Infilink’s Event Log Viewer to shutdown. The command could be modified to shut down other programs.

SENDKEYS(“Event Log Viewer”,”<Alt_Down><F4><Alt_Up>”,0);

I am having trouble with Remote OPC, how do I configure Microsoft's Remote DCOM security?

Please see DCOM -Secure by Default Documentation for solutions.

How do I print to a PDF file from Infilink-HMI?

This example uses the free PDF creator called “PrimoPDF.” And it uses an Infilink timer, it takes 5 windows, prints them to 5 separate PDF files, then uses an external program called pdftk run through a command prompt to merge the 5 PDF Files into one.  This script is OnDataChange on tag PrintTimerElapsed. 

You’ll notice that the I’m sending “z” to PrimoPDF sometimes–it causes PrimoPDF to take no action at all, but I found that the first character I sent it was sometimes getting ignored.  By sometimes, I mean this:  If I logged into the PC with GoToAssist, the first character was not ignored.  If I logged in by Remote Desktop, the first character was ignored.  And if I was not logged in at all (the PC was running on its own without me seeing it) then the first character was ignored.

The script:

IF PrintTimerElapsed=3 THEN ReportFileName=”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”Page1.pdf”; ENDIF;

IF PrintTimerElapsed=4 THEN PRINT “Report_Page_1”; ENDIF;
#IF PrintTimerElapsed=11 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=11 THEN sendkeys(“PrimoPDF”,”z”,0); ENDIF;
IF PrintTimerElapsed=14 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=18 THEN sendkeys(“Save As”,ReportFileName,0); ENDIF;
IF PrintTimerElapsed=22 THEN sendkeys(“Save As”,””,0); ENDIF;

IF PrintTimerElapsed=24 THEN ReportFileName=”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”Page2.pdf”; ENDIF;
IF PrintTimerElapsed=25 THEN PRINT “Report_Page_2”; ENDIF;
#IF PrintTimerElapsed=29 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=29 THEN sendkeys(“PrimoPDF”,”z”,0); ENDIF;
IF PrintTimerElapsed=32 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=35 THEN sendkeys(“Save As”,ReportFileName,0); ENDIF;
IF PrintTimerElapsed=38 THEN sendkeys(“Save As”,””,0); ENDIF;


IF PrintTimerElapsed=41 THEN ReportFileName=”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”Page3.pdf”; ENDIF;
IF PrintTimerElapsed=42 THEN PRINT “Report_Page_3”; ENDIF;
#IF PrintTimerElapsed=47 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=47 THEN sendkeys(“PrimoPDF”,”z”,0); ENDIF;
IF PrintTimerElapsed=51 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=55 THEN sendkeys(“Save As”,ReportFileName,0); ENDIF;
IF PrintTimerElapsed=59 THEN sendkeys(“Save As”,””,0); ENDIF;


IF PrintTimerElapsed=62 THEN ReportFileName=”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”Page4.pdf”; ENDIF;
IF PrintTimerElapsed=63 THEN PRINT “Report_Page_4”; ENDIF;
#IF PrintTimerElapsed=68 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=68 THEN sendkeys(“PrimoPDF”,”z”,0); ENDIF;
IF PrintTimerElapsed=72 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=76 THEN sendkeys(“Save As”,ReportFileName,0); ENDIF;
IF PrintTimerElapsed=80 THEN sendkeys(“Save As”,””,0); ENDIF;

IF PrintTimerElapsed=83 THEN ReportFileName=”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”Page5.pdf”; ENDIF;
IF PrintTimerElapsed=84 THEN PRINT “Report_Page_5”; ENDIF;
#IF PrintTimerElapsed=89 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=89 THEN sendkeys(“PrimoPDF”,”z”,0); ENDIF;
IF PrintTimerElapsed=93 THEN sendkeys(“PrimoPDF”,””,0); ENDIF;
IF PrintTimerElapsed=97 THEN sendkeys(“Save As”,ReportFileName,0); ENDIF;
IF PrintTimerElapsed=101 THEN sendkeys(“Save As”,””,0); ENDIF;

IF PrintTimerElapsed=104 THEN ReportFileName=”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”Merged.pdf”; ENDIF;


IF PrintTimerElapsed=105 THEN PDFMerge=”c:\pdftk\bin\pdftk.exe “+”D:\Export\Individual_Page_Reports\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”*.pdf cat output D:\Export\PDF_Report-“+str(_Year)+”-“+right(“0″+str(_Month),2)+”-“+right(“0″+str(_Date),2)+”-“+right(“0″+str(_Hour),2)+”_Merged.pdf”; ENDIF;
IF PrintTimerElapsed=107 THEN RUN PDFMerge; ENDIF;

How do I make Infilink-HMI automatically run my project when the PC boots up?

  1. Drag the runmode icon into the startup folder.
  2. If there is no startup folder, then press Windows Key and R at the same time. Then tell Windows to run “shell:startup”, and you will see an explorer window showing the computer’s startup folder. This folder is located at C:\Users\YourUserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.
  3. Edit target like this: c:\infilink_hmi\runmode.exe c:\myprojectfolder\project.hmi.
  4. Change Run In to c:\infilink_hmi.

How do I get Infilink-HMI to read data from MS Excel?

See Settings Below:

Click To Enlarge

How do I get Infilink-HMI to read data from OpenOffice Calc (the OpenOffice equivalent of MS Excel)?

See Settings Below:

Click To Enlarge
Click To Enlarge

I think my Infilink-HMI project is somewhere on my PC, where can I find it?

Search your hard drive for the file “project.hmi”. All Infilink-HMI projects contain this file.

How do I sense when a PLC is offline, then in Infilink disable that PLC from being scanned?

In KEPServer, if you turn on AutoDemotion, then KEPServer will stop scanning it if it does not respond, and will periodically retry it.

In Infilink, you can tell if it is offline by looking at the _Error tag; here it is show in the KEPServer OPC Quick Client. I’ve got KEPServerEX Channel “Supertrol”, Device “ES749”:

Click To Enlarge

Also in Infilink, we have scripting commands to Disconnect an OPC tag group:

Click To Enlarge


Our Toll Free 800 Number Has Been Restored!


Our NEW phone numbers are: