I don't believe there is an out-of-the-box way to do this. Some clues are to look at the connected clients in PI SMT>Network Manager Statistics and look at some of the timestamps, last connection time, etc. The Point Source of the tag might also help narrow down the list of potential writers/interfaces.
The PI SMT message logs might also have some clues if you search the tag name or point id. The connection ID will also be in the message, which you can correlate to the connected client via the Network Manager Statistics table.
2 of 2 people found this helpful
As Barry mentioned, there's no out-of-the-box feature to tell where data is coming from for a specific PI Point. However, there are ways to tell at least which machine the data is coming from. If the data is buffered via PI Buffer Subsystem (hopefully all your data writes are buffered ), then you can run the command line tool %piserver%\adm> piartool -sd [tagname|\ptid] (e.g. piartool -sd sinusoid or piartool -sd \1). If the point is buffered, the buffered flag will be 1, and the compressed value will actually be the registration ID of the pibufss that owns the point. You can then cross-reference against %piserver%\adm> piartool -bfs, which prints out all registered pibufss sessions, along with their registration ID. This will lead you to a specific machine where the data is coming from.
Otherwise, if the data is not buffered: if you don't care so much about interrupting the data writes to the point, you can make a buffered write to it from anywhere. This will then transfer ownership of the point to that pibufss thus locking the point from unbuffered writes. The next time that the mystery source tries to write to the point, it will encounter and log a -11414 error. This error will show up in the server message logs, and you can use the details in the error message to find your culprit.
Thanks to both of you. That should do it for me.
Thanks Barry and Gavin. Much needed info.
May I know how to lock a tag for a specific buffer machine?
PI Buffer Subsystem will be locking the point if it buffers a source writing to the particular point. This said, you need to configure PI Buffer Subsystem to buffer your source (Interface). You need to enable buffering for the developer technology used by your data source (Interface). This could be PI API, PI SDK or AF SDK or any combination of those. Please refer Buffering User Guide for details and additional information KB00093 has some Background information.
Thanks a lot. I have gone through the KB article. seems that we could track the machine / identity but not the individual users.
Take this scenario: suppose a person (user1) is using custom developed application (like PI manual logger) with SDK buffering enabled and update data for a particular tag . Another person update the same tag , log in from the same client machine (user1). I think its quiet difficult to track the person who modified the tag value.
Also, we should take care the below scenario :
Point ownership is transferable between PI Buffer Subsystem instances. The PI Buffer Subsystem instances do not lock out each other