Have built a new PI UFL interface, much like some older interfaces that work fine. When I start the service for the new one, I get the error message "[PI_UFL] [Error] parseBatFile()", and the service halts.
Typically, this error would occur if the interface configuration file was improperly named. Perhaps you cloned the interface manually?
When the service is create using ICU, it receives a ServiceID:
When the service or the bat file is started, it will look for the bat file using the name of the executable - PI_UFL.exe, minus the '.exe , like so:
exeRootName + ServiceID + .bat (in my example below PI_UFL2.bat).
It all "comes together", like so:
Hope this helps.
Hi Richard, and thanks for responding.
These UFL interfaces were made new from exe using PI-ICU, not by manipulating existing bat-files. They are as straightforward as can be, which gave me a surprise when they didn’t run; they are very simple csv-file parsing jobs, csv-files containing “” per line.
I have however chosen to use some manual input (via PI-ICU) instead of those suggested by PI-ICU for some parameters; service-id, display name, and interface-id, and I chose to use same number for service-id and interface-id. (I must admit it is not all clear to me how UFL is using the interface-id versus the service-id, but PI-ICU gave no warnings to my inputs, and these fields are editable.)
We have several UFL instances doing similar things like this for several source systems. Now nine of the source systems are replaced/upgraded, and since there will be a short period where both old and new systems will be available for data-extraction, I chose to build an extra set of nine new UFL instances instead of just changing the existing UFL’s, so that I could compare their behavior. The original ones have UFL service-id’s in the range 1 to 9, so to make the new ones simple to track, I numbered them 101 to 109. Does UFL have problems with this high id numbers? The UFL manual says very little about how it uses the interface-id’s or of any limitations to them.
All nine fails running, giving the same error message:
PIgetmsg -host goes like this:
I 07-Jun-17 13:09:04 pinetmgr (7039)
>> Connection accepted: Process name: pigetmsg(6628) ID: 85
I 07-Jun-17 13:09:19 pilogsrv (0)
>> 07-Jun-17 13:09:19 parseBatFile().
I 07-Jun-17 13:09:20 pinetmgr (7039)
>> Connection accepted: Process name: PI_UFL.exe(3056) ID: 86
E 07-Jun-17 13:09:20 PI_UFL:PI_UFL: | | 0 (2)
>> Error: parseBatFile().
>> Error: Exiting...
I 07-Jun-17 13:09:20 pilogsrv (0)
>> 07-Jun-17 13:09:20 Exiting...
D 07-Jun-17 13:09:26 pinetmgr (7096)
>> Deleting connection: PI_UFL.exe(3056), Shutdown request received from PI_UFL.exe(3056), ID: 86
D 07-Jun-17 13:09:26 pinetmgr:Connection Statistics (7133)
>> ID: 86; Duration: 1.666667E-002 min.; kbytes sent: 4.370117; kbytes recv: 0.7519531; app: ; user: ; osuser: ; trust: ; ip address: ; ip host:
I 07-Jun-17 13:09:26 pinetmgr:Connection Information (7079)
>> Disconnected ID: 86 ; Process name: PI_UFL.exe ; User: ; OS User: ; IP:; AppID: ; AppName:
I 07-Jun-17 13:09:27 PI-ICU (0)
>> Failed to start service PI_UFL101. (StartInterfaceService)
The PI_UFL101.bat file contains this:
"C:\Program Files (x86)\PIPC\Interfaces\PI_UFL\PI_UFL.exe" 101 /CF="C:\Program Files (x86)\PIPC\Interfaces\PI_UFL\INI\st-w1026\SFA_EC_Theo.ini" /PS=PROSTY /ID=101 /host=st-w1026:5450 /f=00:01:00
And the corresponding “SFA_EC_Theo.ini”-file’s Field and Msg-filter sections go like this:
Principal Engineer Operation and Maintenance Automation – Plant Information Systems & Cyber Security
TDR CS SFA/B/C
TMC SAS ACS<http://entry.statoil.no/organisation/units/100866/pages/sas.aspx>
Mobile: +47 97718987
Visitor address: Vestre Svanholmen 1, Forus
P Please consider the environment before printing this email.
Retrieving data ...