Quantcast
Channel: OSIsoft Users Community
Viewing all 1120 articles
Browse latest View live

Hours Totalizer substitution.

$
0
0

I need to substitute the dataset

 

timeEq('SEN0__6GR_0S014','6-OCT-06','*',"Attiva")/3600

 

with another that updates the values only every 12h is it possibile?

 

Is it possibile to create a tag that summarize the time and update their values every midnight to make faster theh load of the synoptics?

 

 

Thanks in advance for any help.


Come to the OSIsoft Users Conference 2014 so that This Doesn’t Happen to You!

How to determine the traceindex of a point on a trend

$
0
0

Hi, I have used the code snippet from DRabinowitz (http://community.osisoft.com/index.php?/topic/1376-lets-share-useful-code-snippets/?p=3869) to allow me to build trends on a page by double clicking the values on the page. The code is the same except I have removed the " Trend1.RemoveTrace 1" statement as I want to add multpile points to the trend (and some auto-scaling code).

 

It works great however I would like to add some further smarts to it such as matching the scale of points if they are associated with the same variable (eg. controller.PV & controller.SP should have the same scale). So far I haven't been able to figure out how to search through the list of points in a trend by name and determine if a point is already in the trend. My trend object is always the same name "TrendX" so all I want to do is iterate through the list of points and return the index if I find a match.

 

If anyone has an example on how I could do this it would be great. I've looked at the code sample under "GetTraceIndex" but I cant see how to apply it to searching through my trend object?

 

Thanks
Jason

 

Below is my modified version of DRabinowitz's code sample.

Private Sub Display_BeforeDoubleClick(bCancelDefault As Boolean, ByVal lvarX As Long, ByVal lvarY As Long)
On Error Resume Next
Dim vT, vDT As Variant
Dim lstatus As Long
Dim rng, delta As Variant

rng = 5    ' scale +- this %

If ThisDisplay.Application.RunMode = True Then
    If SelectedSymbols.Count > 0 Then 'make sure we have actually double-clicked a symbol'
        If SelectedSymbols.Item(1).Type = pbSYMBOLTYPE.pbSymbolBar Or SelectedSymbols.Item(1).Type = pbSYMBOLTYPE.pbSymbolValue Then 'update trend for a bar or value symbol'
            bCancelDefault = True
            TrendX.AddTrace SelectedSymbols.Item(1).GetTagName(1) 'add a trace using the tag or dataset from the selected symbol'
            vT = Abs(SelectedSymbols.Item(1).GetValue(vDT, lstatus))
            delta = rng / 100 * vT
            TrendX.CurrentTrace = TrendX.TraceCount
            Call TrendX.SetTraceScale(Round(vT - delta), Round(vT + delta))
        End If
    End If
End If

End Sub

Question about getting average value

$
0
0

If I have a PI equation on getting average value like this one

 

avg(tagval('tagA','y'), (tagval('tagB','y-1'), (tagval('tagC','y-2'))

 

but I want to exclude those tags having less than a given value (e.g. -20 deg celsius).  How can I insert this filtering in the above equation?  Any help will be appreciated.

 

Thanks OsIsoft!

 

 

Creating navigation via ProcessBook to be used in WebPST

$
0
0
I've recently been tasked with creating a traditional website to display PDI's via WebPST. Could anyone offer suggestions as to how I can accomplish this without having to update every single PDI after I'm asked to update the navigation menu?

pinetread error with PI to PI interface

$
0
0

Hi,

 

   I am new to PI system and I just started exploring the system by creating PI to PI interface to push data from source PI server to destination PI server.To accomplish this I followed these steps:

 

1. I downloaded and installed PItoPI interface on source server and used ICU to create new interface.

2. I established mutual trust between pi servers with user 'PI' on both machines. I gave piadmins privelege.

3. On NMC on destination server, I am able to see connection from host server but I don't see any user account or trust associated with the connection.

 

Since I did not find current data in destination, I started monitoring pipc logs on source server and saw the following entries:

 

14-Mar-14 12:56:38
PItoPI.exe>PI-API> Initial connection to <destination server>:5450(xx.xx.xx.xx) Buffered[0]

14-Mar-14 12:56:38
PItoPI.exe>PI-API> Initial connection to <source server>:5450(yy.yy.yy.yy) Buffered[0]

14-Mar-14 12:59:41
PItoPI.exe>PI-API> pinetread> recv blocking failure or host <destination server>:5450 closed the socket

14-Mar-14 12:59:41
PItoPI.exe>PI-API> Successful reconnection to <destination server>:5450(xx.xx.xx.xx) Buffered[0]

14-Mar-14 13:02:44
PItoPI.exe>PI-API> pinetread> recv blocking failure or host <destination server>:5450 closed the socket

14-Mar-14 13:02:44
PItoPI.exe>PI-API> Successful reconnection to <destination server>:5450(xx.xx.xx.xx) Buffered[0]

14-Mar-14 14:57:24
bufserv.exe>PI-API Buffer Manager (2096) - BUFSVRMGR> APIBUFFER: Starting Buffer Servers Manager.

14-Mar-14 14:57:24
bufserv.exe>PI-API Buffer Manager (2096) - BUFSVRMGR> APIBUFFER: PIBufSS Configured.  Bufserv exiting.

14-Mar-14 14:57:25
PItoPI.exe>PI-API> Initial connection to <destination server:5450>(xx.xx.xx.xx) Buffered[0]

14-Mar-14 14:57:25
PItoPI.exe>PI-API> Initial connection to <host server>:5450(yy.yy.yy.yy) Buffered[0]

14-Mar-14 14:59:37
PItoPI.exe>PI-API> pinetread> recv blocking failure or host <destination server>:5450 closed the socket

14-Mar-14 14:59:37
PItoPI.exe>PI-API> Successful reconnection to <destination server>:5450(xx.xx.xx.xx) Buffered[0]

 

I see the following entry in PI server log on the source server( level warning and above)

 

[Server] <source server> [ID] 31098 [Time] 3/14/2014 2:58:26 PM [Program] PItoPI [Category] UNIINT [Priority] 10 [ProcessOSUser] ad.sfwmd.gov\<sourceservername$> [ProcessID] 2240 [Severity] Error [Source1] PIToPI- [Source2] PITOPI | 1 | 0
Error [-10400] loading points. pipt_nextptwsourcelong failed for point source PITOPI

 

I am not sure why I am seeing this error.Any inputs are sincerely appreciated.

 

Note: I just have one point on destination server with point source PItoPI. All other points in source and destination server have same point source.

 

Thanks,

Arti

 

PI server (source and destination): PI server v.2010

Interface installed on source server:PItoPI.exe version 3.8.5.25

Connecting Processbook VBA with SQL server

$
0
0

Hi All,

 

It is possible to use Processbook(VBA) to connect to get data from SQL Server and display in Textbox of Processbook.

 

If yes, any example to assist me. 

postevent failed [-11414] Buffered point does not accept new events

$
0
0

I am seeing the error in my pi server logs

 

postevent failed [-11414] Buffered point does not accept new events

point id: 11716,connection id: 32,user:piadmin,user id: 1 mode: noreplace

 

just one point

 

then i find this point,data is right.and i restart pi buffer subsystem,error still exist

 

what does it mean and what should i do? 

 

Osisoft Emea Conference Paris 2013, Risk Mgmt

$
0
0

Hello Everyone!

 

last year was from my point of view a very good talk from Leif Eriksson vom Gartner regarding Risk.

? does anyone have his presentation or took some pictures from his presentation
(I wasn't able to find anything)

 

br

Wolfgang

Right-Click Error with Batchview 2012 in Excel 2010

$
0
0

Has anyone experienced a problem when right-clicking in a Batchview array to recalculate the array? I have a new install in Windows 7 with PI Datalink 2010 SP1 and Batchview 2012 in Excel 2010. It is OK on some computers but on at least 2 desktop PCs when I Right-click in an array cell the menu will not stay visible. If I use the Right-click button on the keyboard it will stay so I have a workaround but it is annoying.

PI AF element totaling...

$
0
0

Good morning,

quick question that I am sure has an easy answer.  My apologies if this has been answered already, but I did not find anything in the search.

 

Here is my situation:

In PI AF, I have re-created our plant into 3 groups (base, CLD and facilities), each with motors, pumps, etc as children on multiple levels.  Lets assume I wanted to know the kW demand of the 'base' and 'CLD' groups for comparison.  In AF, all of the children have a kW demand tag.  How can I have the 'base' and 'expansion' elements list/show/calculate the total of all the children elements.

 

I have tried to do this using a PI AF formula, but this does not seem to be the most friendly approach.  Another way I have tried is with a PE calc, but that negates the point of the AF structure (and painful to create considering the amount of tags).  I would think there is a very simple way to do this.

 

A 'grand' total under WAP would be wanted as well - would assume same method would work.

 

Cheers and thanks in advance for any suggestions!

PI AF 3groups.PNG

Need tag non response total for the day

$
0
0

Hi,

I have a few tags that are reporting Loggernet environmental data. Sometimes these sites stop reporting due to radios failing or interferance from other equipment.

 

I need to know how long the tag has not been updating. Ideally show on the processbook display.

The problem is that due to the databse PI is looking at the tags don't zero when they stop updating. The last value just stays in the system and the tag flatlines. (see attachment)

Is it possible to have a count of time since the tag has updated / changed values?

 

I was looking at the forum post on rate of change notification but not sure if that is the right path to take?

http://community.osisoft.com/index.php?/topic/1927-building-rate-of-change-notification/

 

Building on the problem, when the site is reconnected and data starts flowing the tag will update all missing information. Thus I really need this to provide a total at the end of each day for how long it was not updating. Not sure if this means I need to look at building a totalizer tag?

 

PI ProcessBook - Loggernet Sites_2014-03-18_07-36-17.jpg

 

Cheers in andvance for the help,

Elliot

 

PI OLEDB Ent. - piinterp minimum timestep allowed

$
0
0

Hello:  We are currently using piinterp (piinterp2) via PI OLEDB Enterprise.  It's working well.  However, I'm trying to set the timestep to less than 1sec., ideally 0.5sec.  In DataLink, we can set this value to less than 1sec., so I'm assuming this can be done in PIOLEDBEnt?  When I try anything less, no errors, it just treats my value as if I typed 1.0sec.  Thoughts?

Setting Span and Typical Value for Totalizer Tags

$
0
0

I have several tags that are associated with tons of material based on belt scale readings on several different overland conveyor systems.  These totalizers count +1 every time a ton is transferred across the belt scale located on the conveyor.  The address within the PLC where the data is read from is of a float datatype, so it only resets when it runs out of digits available in the datatype.  My question is, what should I use as the span and typical value for these totalizers?

about opc interface

$
0
0

i have a opc interface,opc server and opc interface use MatrikonOPC Tunneller,ICU is the default configuration,

when i restart icu every time,Interface will be data after half an hour,and There is no error log in pipc.log

What's the problem cause?What should I do?


Pi Server/ AF Installation Issues

$
0
0

Hi guys, 

 

This is my first time working with OSIsoft products and specifically the pi server. I am in the process of installing the Pi server on a Windows Server 2008 machine and I have completed the pre-installation checklist. During the installation of the Pi Server, there is a step that involves connecting to the AF server. When I try to connect, I am getting the following error - 

 

"Failed to connect to AF Server. Could not connect to net.tcp://wxyz:5457/AFServer/Service.

The connection attempt lasted for a time span of 00:00:04.0716071. TCP error code 10061: No 
connection could be made because the target machine actively refuse "
 
I have installed AF on the same box and was not expecting such an error to occur. I would highly appreciate any help that you guys could provide me in resolving this issue. 
 
Thanks!

How to read point value in processbook vba

$
0
0

I have a PI point that contains integer numbers 1 thru 50. Each value corresponds to a specific product made on a plant process system. I want to display the NAME of the product on a process book display that corresponds to the value in this PI point.

I am very familiar with VBA programming on Excel and Word, and somewhat familiar with VBA in processbook for simple Display_Open formatting code, but I have not ever programmed something in VBA that would do the above.

I would plan on using a 'Select Case' type of branching code that would populate a VBA variable with the corresponding string value depending on what the point's integer value was at the time.

The problem is I don't know how (and can't figure out from the PI Help documents) to read a point value inside the VBA code itself. What is the syntax for that???

Also, after the string variable is populated, what is the VBA necessary to send the final string variable back to the processbook display? In other words, how do you load the string variable into a field value that is displayed on the processbook display.

Much Thanks, sauerj

 

 

Unexpected Behavior (PI Calculation Expression)

$
0
0

Note: I am very new to PI so excuse me if my terminology is not on point. I notice the GUI and the VB API use different terminology for some things which adds some confusion.

 

I created a ProcessBook Display with a number of "Values" on it. These values are set to display the results of a PI Calculation (these are set by a subroutine at initialization). Each of the values also has a Multi-State set so that its color indicates its status. The appearance of the display is configured to match exactly what is seen on a particular computer display from another system, which uses a 16 color palette on a black background.

 

My display works as intended, but it is entirely illegible when printed. I tried to use the BeforePrint event to change the appearance of the display to print in black and white as follows:

Private Sub Display_BeforePrint(bCancel As Boolean)
    Static AfterPrint As Boolean
    Dim i As Integer
    
    If Not AfterPrint Then
        AfterPrint = True
        
        ' Change display colors to grayscale '
        CreateColorDataSets 0, &HC0C0C0, 0, 0, 0
        Rectangle1.FillColor = vbWhite
        For i = 13 To 64
            ' Change labels to black '
            ThisDisplay.Symbols("Text" & i).LineColor = vbBlack
        Next
        
        ' Print using grayscale colors '
        ThisDisplay.PrintOut
        
        ' Set default colors '
        CreateColorDataSets
        Rectangle1.FillColor = &H363436
        For i = 13 To 64
            ' Change labels to white '
            ThisDisplay.Symbols("Text" & i).LineColor = vbWhite
        Next
        
        AfterPrint = False
        
        ' Cancel the print attempt with colored display '
        bCancel = True
    End If
End Sub

In the included code, the subroutine "CreateColorDataSets" redefines the MultiStates and the Values associated with each of the color-coded symbols on the display. Whenever the DataSet expressions are redefined, the display will recalculate (as expected). The problem is: it is recalculating using the "current" time values for the PI points, rather than the "display" time.

 

i.e. If I am showing live data and hit the print button, it works fine. If I rewind the display to yesterday at noon and hit the print button, the color-coded points switch to grayscale and display the current values, while everything else on the display continues to show values for yesterday at noon. After a few seconds (one or 2 display updates after the change), the color-coded values return to showing the values yesterday at noon. If the display is paused, the values will not return to displaying the old data until it is unpaused.

 

As a result, this display prints out incorrect data whenever it is paused or displaying historic values.

 

I have attached (redacted) pictures showing what the display looks like before and after clicking the print button (with the display paused at the time shown on "Time of Last Update"). The "Last Rod Motion" time is obtained from the highlighted symbol using the Symbol.GetValue method. Even though the time on the display did not advance, the symbols on the matrix reverted to the current time when the DataSets were updated. If I press Play, the matrix reverts to the time shown on "Time of Last Update".

 

Is this a bug? I haven't been able to find a good way to work around it.

 

Before:

beforeprint.jpg

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

After:

afterprint.jpg

Show Sigma on a SQC Chart

$
0
0

Hello,

 

First, all my apologies for my english, I will do my best.

Here is my problem:

I am currently working on a Process Book file and I would like to get the sigma value of my data in a SQC chart. I have managed to show the value on the legend but it displays N/A.

 

Does someone can help me fixing this please ?

 

Thank you

 

MarionMia 

 

 

PI ActiveView in SharePoint 2013

$
0
0
Hello! 
I am using PI ActiveView in SharePoint 2013 and have the following question: is it normal when I load a file pdi automatically open PI ProcessBook.?
Viewing all 1120 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>