An I/O Rate point measures the rate at which the interface writes data to its input tags. The value of an I/O Rate point represents a 10-minute average of the total number of values per minute that the interface sends to the PI Server.
When the interface starts, it writes 0 to the I/O Rate point. After running for ten minutes, the interface writes the I/O Rate value. The interface continues to write a value every 10 minutes. When the interface stops, it writes 0.
Configuring I/O Rate Tags On UNIX
There are two configuration steps.
-
Configuring the PI Point on the PI Server
38.Configuration on the interface node
Configuring PI Point on the PI Server
Create an I/O Rate Tag with the following point attribute values.
-
Attribute
|
Value
|
PointSource
|
LAB
|
PointType
|
float32
|
Compressing
|
0
|
ExcDev
|
0
| Configuration on the Interface Node
For the following examples, assume that the name of the I/O Rate PI point is SIPowerTG001 on the PI Server PISERVER01.
-
Edit/Create a file called iorates.ini in the $PIHOME/dat directory. PIHOME is an environment variable that is set equal to the PI home directory name as discussed in the PI API manual.
Within the iorates.ini file define the [PISERVERS] section to contain a list of the PI Servers that iorates will access and a section names for each of the PI Servers, which will contain the iorates points for that PI Server and their corresponding event counter index number and corresponds with the /ec=x parameter in the startup command file.
The event counter index can be any number between 1 and 34 or between 51 and 200, inclusive. However, it is best to use an event counter, x, that is not equal to 1 because 1 is the default event counter for UniIntbased interfaces. Each event counter should be unique.
For example,
[PISERVERS]
SERVER1=PISERVER01
[PISERVER01]
IOTAG1=SIPowerTG001,1
For more details, refer to the PIHOME/help/iorates.txt file and the sample PIHOME/dat/iorates.ini file.
39.Set the /ec=x parameter on the startup command file of the interface to match the event counter in the iorates.ini file.
40.The I/O Rate shared memory server and the I/O Rate monitor program must be stopped and started for the changes to take effect. The easiest way to do this is to run the pistop and pistart command scripts with the following commands:
sh $PIHOME/bin/pistop
sh $PIHOME/bin/pistart
Determine that the shared memory server and the I/O Rates Monitor are running with either the apiverify script or the commands:
ps –ef | grep ioshmsrv
ps –ef | grep iorates
Interface Status Point
The PI Interface Status Utility (ISU) alerts you when an interface is not currently writing data to the PI Server. This situation commonly occurs if
the monitored interface is running on an interface node, but the interface node cannot communicate with the PI Server; or
the monitored interface is not running, but it failed to write at shutdown a system state such as Intf Shut.
The ISU works by periodically looking at the timestamp of a Watchdog Tag. The Watchdog Tag is a tag whose value a monitored interface (such as this interface) frequently updates. The Watchdog Tag has its ExcDev, ExcMin, and ExcMax point attributes set to 0. So, a non-changing timestamp for the Watchdog Tag indicates that the monitored interface is not writing data.
Please see the Interface Status Utility Interface for complete information on using the ISU. PI Interface Status Utility Interface runs only on a PI Server Node.
Note: The PI Interface Status Utility Interface – and not this interface – is responsible for updating the ISU tag. So, make sure that the PI Interface Status Utility Interface is running correctly.
Error and Informational Messages
A string NameID is pre-pended to error messages written to the message log. Name is a nonconfigurable identifier that is no longer than 9 characters. ID is a configurable identifier that is no longer than 9 characters and is specified using the /id parameter on the startup command-line.
Message Logs
The location of the message log depends upon the platform on which the interface is running. See the UniInt Interface User Manual for more information.
Messages are written to [PIHOME]/dat/pimesslogfile at the following times.
When the interface starts many informational messages are written to the log. These include the version of the interface, the version of UniInt, the commandline parameters used, and the number of points.
As the interface loads points, messages are sent to the log if there are any problems with the configuration of the points.
If the UniInt -dbUniInt parameter is found in the command-line, then various informational messages are written to the log file.
Messages
The following are the error messages that can be generated by the interface, including the description of the cause of the error and a way of correcting the error.
Startup -
Message
|
Invalid debug option [?] - ABORTING
|
Cause
|
A debug option given in the -debug= argument is not recognized by the interface.
|
Resolution
|
Check that all the debug options listed are valid.
|
|
Message
|
Unable to locate directory "????" - ABORTING
|
Cause
|
The directory specified by either the -data= or -alarm= argument was not found.
|
Resolution
|
Verify that the directory that will contain the either the data input file or alarm input file exists.
|
|
Message
|
"????" is not a directory - ABORTING
|
Cause
|
The directory specified by either the -data= or -alarm= argument was located, but it not a valid directory.
|
Resolution
|
Verify that the directory that will contain the either the data input file or alarm input file exists.
|
|
Message
|
No read/write permission for data directory "????" - ABORTING
|
Cause
|
The directory specified by either the -data= or -alarm= argument was located , but the user running the interface does not have read/write permissions for the directory. Because the interface needs to be able to read and delete the files from the directory, the interface must have read/write permissions for the directory.
|
Resolution
|
Verify that the interface is being run by the correct user, and that user has read/write permissions for the directory.
|
|
Message
|
Cannot rename data file when data file not defined - ABORTING
|
Cause
|
The -renamedata parameter has been specified, but the -data argument has not. It is meaningless to rename the data file when the data file has not been set.
|
Resolution
|
Either remove the -renamedata parameter or set the -data parameter, depending on the requirements for the interface.
|
|
Message
|
Cannot rename alarm file when alarm file not defined - ABORTING
|
Cause
|
The -renamealarm parameter has been specified, but the -alarm argument has not. It is meaningless to rename the alarm file when the alarm file has not been set.
|
Resolution
|
Either remove the -renamealarm parameter or set the -alarm parameter, depending on the requirements for the interface.
|
|
Message
|
Neither -data= or -alarm= arguments specified
At least one must be specified - ABORTING
|
Cause
|
The interface can process either data input files or alarm input files or both. The interface will not run if neither of these arguments is defined.
|
Resolution
|
Add either a -data or -alarm parameter, or both.
|
|
Message
|
-data= and -alarm= must not refer to the same file - ABORTING
|
Cause
|
The -data and -alarm arguments refer to the same file. As the files have different formats, they cannot be the same file.
|
Resolution
|
Correct either the -data or -alarm argument.
| Loading PI points -
Message
|
PITag ?????? (?) - Interface does not support periodic scan points
All data points must have Location4=0
|
Cause
|
The interface processes input files when a file is available, so all the point updates are unsolicited. It is not able to periodically scan points and so all the points must have Location4=0. This attribute is used by UniInt to define the scan class, and scan classes should not be defined for this interface.
|
Resolution
|
Edit the PI point to set the Location4 attribute to zero (0).
|
|
Message
|
PITag ?????? (?) - Unable to allocate dev_struct
|
Cause
|
The interface was not able to allocate memory to store the configuration of the given point.
|
Resolution
|
Free up memory on the interface node and restart the interface.
|
|
Message
|
PITag ?????? (?) - Invalid interface-specific performance point
ExDesc keyword is empty
|
Cause
|
An interface-specific performance point (Location2=-1) has an empty ExDesc attribute.
|
Resolution
|
Edit the PI point to include the required performance value keyword in the ExDesc. See Interface Specific Performance Points for a list of valid keywords.
|
|
Message
|
PITag ?????? (?) - Invalid interface-specific performance point
Unrecognized ExDesc keyword "???"
|
Cause
|
The keyword in the ExDesc of an interface-specific performance point (Location2=-1) does not match an of the valid keywords.
|
Resolution
|
Edit the PI point to include the required performance value keyword in the ExDesc. See Interface Specific Performance Points for a list of valid keywords.
|
|
Message
|
PITag ?????? (?) - Invalid interface-specific performance point
PointType mismatch for the given ExDesc keyword
|
Cause
|
The interface will only accept an interface-specific performance point (Location2=-1) if the PointType of the point matches that of the given performance value.
|
Resolution
|
Check to ensure that the PointType is the same as those listed in the Interface Specific Performance Points section for the given keyword.
|
|
Message
|
PITag ?????? (?) - Invalid PI PointType for a measurement data point
|
Cause
|
A measurement data point (Location2=0) PointType can be float64, float32, float16, int32, int16 or digital. It cannot be a string type.
|
Resolution
|
Check that the PI point is configured with a valid PointType for a measurement data point.
|
|
Message
|
PITag ?????? (?) - Invalid InstrumentTag for data point
InstrumentTag is empty
|
Cause
|
A measurement data point (Location2=0) must have the InstrumentTag defined so that the interface will know which Power TG point value to store in the PI point.
|
Resolution
|
Ensure that the InstrumentTag for the point has been properly defined.
|
|
Message
|
PITag ?????? (?) - Invalid InstrumentTag attribute "???"
Must be in the format MEASID@FIELD.TYPE where MEASID is an integer value
|
Cause
|
A measurement data point (Location2=0) must have the InstrumentTag defined with the format MEASID@FIELD.TYPE, where the MEASID is an integer value and matches the Power TG point id of the required point.
|
Resolution
|
Ensure that the InstrumentTag for the point has been properly defined.
|
|
Message
|
PITag ?????? (?) - Invalid InstrumentTag attribute "???"
Must be in the format MEASID@FIELD.TYPE where FIELD is NOT blank
|
Cause
|
A measurement data point (Location2=0) must have the InstrumentTag defined with the format MEASID@FIELD.TYPE, where the FIELD is the name of the field required from the Power TG point.
|
Resolution
|
Ensure that the InstrumentTag for the point has been properly defined. The interface is not able to validate the field name, other than making sure it is not blank, so care must be taken to ensure that the correct field name is used.
|
|
Message
|
PITag ?????? (?) - Invalid InstrumentTag attribute "???"
Unrecognized TYPE "???"
|
Cause
|
A measurement data point (Location2=0) must have the InstrumentTag defined with the format MEASID@FIELD.TYPE. The .TYPE is optional, but if defined it must match the valid keyword types given in the InstrumentTag section of the manual.
|
Resolution
|
Ensure that the InstrumentTag for the point has been properly defined.
|
|
Message
|
PITag ?????? (?) - Invalid .QUAL type
Quality code definitions are not defined
|
Cause
|
Quality code points (InstrumentTag ends with .QUAL) can only be used with the quality code definitions have been loaded from the data_qualities.ini file.
|
Resolution
|
Check that the -qualcodefile= argument has been properly defined and that the quality codes were loaded when the interface was started.
|
|
Message
|
PITag ?????? (?) - Invalid digital set for quality priorities
Digital set must have at least ?? states to store the defined quality priorities
|
Cause
|
Quality code points (InstrumentTag ends with .QUAL) must have a digital set defined that has at least the number of states as the highest priority defined in the data_qualitities.ini file.
|
Resolution
|
Check the digital set assigned to the point and compare the digital set with the contents of the data_qualitities.ini file and that the -qualcodefile= argument has been properly.
|
|
Message
|
PITag ?????? (?) - Invalid PointType for an alarm PI point
an alarm point MUST be a string PI point
|
Cause
|
An alarm point (Location2=1) must have a string PointType.
|
Resolution
|
Check the configuration of the PI point.
|
|
Message
|
PITag ?????? (?) - Unable to parse filter expression from InstrumentTag
|
Cause
|
An alarm point (Location2=1) can use a filter to limit the alarm messages it will sort. The interface has been unable to parse the filter expression, which is configured in the InstrumentTag attribute.
|
Resolution
|
Check the configuration of the point. Refer to the Point Attribute - InstrumentTag section for more information of the filter expression syntax.
|
|
Message
|
PITag ?????? (?) - Invalid value for Location2
-1=perf, 0=data, 1=alarm
|
Cause
|
The value of Location2 is not valid.
|
Resolution
|
Check the configuration of the PI point and ensure that Location2 is valid. Refer to the Point Attribute - Location2 section for a list of valid values.
| Data File Processing -
Message
|
Unable to remove input file xxxxx - ABORTING
errno=? - ???????????????
|
Cause
|
The interface failed to remove the file after processing and has aborted.
|
Resolution
|
Use the system error message to find the cause. It may be a permissions problem, so check the credentials of the user running the interface and the permissions of the input file.
|
|
Message
|
Unable to rename xxxxx to yyyyy
yyyyy already exists - Will retry every 2 seconds
|
Cause
|
Unable to rename the current input file because the previous file still exists. This is probably caused by the downstream process not having finished processing the file itself.
|
Resolution
|
Check that the downstream process that should be removing the file is running correctly. The interface will stop at this point and not process any more files until the previous file has been removed.
|
|
Message
|
Unable to rename xxxxx to yyyyy
errno=? - ?????????????
Will attempt to delete yyyyy
|
Cause
|
Unable to rename the current input file. The previous file does not exist, but some other error is causing the rename to fail.
|
Resolution
|
The interface will delete the current file instead of renaming so that processing can continue.
|
|
Message
|
Input data file invalid (does not start with 0x01 0x02)
|
Cause
|
The measurement data input file is not valid. All data input files must start with the bytes 0x01 0x02. The interface will reject any data input files that do not start with these 2 bytes.
|
Resolution
|
Check that the interface is reading the correct file defined by the -data parameter. Use the DumpInputFile utility to check the contents of the file.
|
|
Message
|
TG EVENT ?? > INVALID > ???????????????????????
|
Cause
|
The interface found an error while validating an event from the data input file. This could be caused by a file corruption. The output of the event data should give an indication of the problem.
|
Resolution
|
Use the DumpInputFile utility to check the contents of the file against the event logged by the interface.
|
|
Message
|
TG EVENT ?? > INVALID > ???????????????????????
Event timestamp too far into the future
|
Cause
|
The interface found an event with a timestamp that was too far into the future to be valid.
|
Resolution
|
This could be caused by incorrectly configured time zones, or if the clocks within the system have drifted by more than 5 minutes.
|
|
Message
|
Forced to exit before data file had finished processing
|
Cause
|
The interface has been asked to stop while it was processing a data input file. This is only ever likely to be seen if the interface is stuck in a loop while processing the file or the input file is very large.
|
Resolution
|
If the input file was not large, then keep a copy of the input file and the current point configuration and contact OSIsoft Tech Support so that the problem can be reproduced.
| Alarm File Processing -
Message
|
Input alarm file invalid (does not start with 0x03 0x04)
|
Cause
|
The alarm input file is not valid. All data input files must start with the bytes 0x03 0x04. The interface will reject any alarm input files that do not start with these 2 bytes.
|
Resolution
|
Check that the interface is reading the correct file defined by the -alarm parameter.
|
|
Message
|
TG ALARM ?? > INVALID > ???????????????????????
|
Cause
|
The interface found an error while validating an alarm message from the alarm input file. This could be caused by a file corruption. The output of the alarm message should give an indication of the problem.
|
Resolution
|
Use the DumpAlarmFile utility to check the contents of the file against the alarm message logged by the interface.
|
|
Message
|
TG ALARM ?? > INVALID > ???????????????????????
Event timestamp too far into the future
|
Cause
|
The interface found an alarm message with a timestamp that was too far into the future to be valid.
|
Resolution
|
This could be caused by incorrectly configured time zones, or if the clocks within the system have drifted by more than 5 minutes.
|
|
Message
|
Forced to exit before alarm file had finished processing
|
Cause
|
The interface has been asked to stop while it was processing an alarm input file. This is only ever likely to be seen if the interface is stuck in a loop while processing the file or the input file is very large.
|
Resolution
|
If the input file was not large, then keep a copy of the input file and the current point configuration and contact OSIsoft Tech Support so that the problem can be reproduced.
| Getting Latest Timestamp
The following error messages can only be generated when the interface is attempting to read the LATEST_TIMESTAMP performance point. It does read the point value, so that it can minimize the number of out-of-order events it sends to PI. The interface should only attempt to read the point value when the interface is starting or when the interface has been in standby (has not been receiving input files to process) and is going active.
Note: If there are any problems with reading the LATEST_TIMESTAMP point, the interface will default to sending all the events in the input file. This may result in more out-of-orders events being sent to PI. As the out-of-order events should only occur when the interface is going from standby to active, it would not happen often and the PI server is able to handle a few out-of-order events.
-
Message
|
No LATEST_TIMESTAMP point configured, so all events in the file will be sent to PI
|
Cause
|
If no LATEST_TIMESTAMP point has been configured then the interface will not be able to minimize the number of out-of-order sent to PI. All events in the file will be sent.
|
Resolution
|
To reduce the chance of Out-Of-Order events, configure LATEST_TIMESTAMP Performance PI points.
|
|
Message
|
Not connected to PI, so unable to read latest timestamp to reduce OOO events
|
Cause
|
If the interface does not have a connection to the PI server, it will not attempt to read the current timestamp value from the LATEST_TIMESTAMP performance point, because the read will fail.
|
Resolution
|
N/A
|
|
Message
|
Reading LATEST_TIMESTAMP point. pisn_getsnapshotx(??) returned ??????
|
Cause
|
The interface got an error when attempting to read the LATEST_TIMESTAMP performance point. The PI error appended to the message should give an indication of the cause.
|
Resolution
|
Use the PI error message to resolve the pisn_getsnapshotx() error.
|
|
Message
|
LATEST_TIMESTAMP point returned istat=???, so all events in the file will be sent to PI
|
Cause
|
The interface was able to read the value of the LATEST_TIMESTAMP point, but it contained a system digital state rather than a valid timestamp. Therefore, all the events in the input file will be sent to PI.
|
Resolution
|
Check the LATEST_TIMESTAMP PI point is being updated correctly.
|
Share with your friends: |