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.

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


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. Edit target like this: c:\infilink_hmi\runmode.exe c:\myprojectfolder\project.hmi.
  3. Change Run In to c:\infilink_hmi.

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