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

Plot calculated data

$
0
0

Hi,

 

I have an processbook display that  taking data from PI and data from an external database. Based on time stamps of the external data, I extract the required data from PI.  I then do some checking on the integrity of the  PI data and then deterime the linear regression between the external data and the PI data. The calculations are too complex to use data sets. :-(

 

I want to display the  data points and the regression curve as some type of  graphic on the processbook display. I have tried to use  Excel and paste an image of the excel graph into the process book. It works but its a little clumsy nad awkward.

 

 

Any idea's . We don't have PI- ACE available at this time.

 

 

Kevin


Missing Help Topic in PIPC

$
0
0

Morning All,

I was looking for PE in the help topics, and could not find.

Search this forum I found that the topic I am looking for should be in the \PICP\HELP\pereferences.chm however it is not.(checked both program folders)

 

pereference.chm is no where to be found on this PC.

Is there any place that this can be downloaded from?

Thanks,

Kip

Help to slide a symbol as the datapoint changes

$
0
0

Hello there 

I am new to PI and have taken over making Pi screens. I was challenged to make a  Arrow slide up and down like the Bar does is this possible?

ProcessBook - Recover ServerName and DB VBA

$
0
0

Hi all,

I'm working on processbook and I try to do some little stuffs.

 

I would like to recover the current AF server and DB I am connected to in my VBA script. I think it's possible but I could not find a way to do it.

Can you please help me to do this?

PI SDK - Trend Performance - Is there a limit per application processing?

$
0
0

Hello Friends!

I'm having performance issues with the PI SDK affecting other users logged when one requests a TREND!

Our web application was created to provide information for monitoring "Turbo machines" of Oil Rigs.

It makes access to the PI Server through PI SDK C #.

The current version of the system entered production in 2012 and until the beginning of 2014 had no reported problem. Ie, the application was very stable.

But now every time a customer requested a Graphic (Trend) with a period of 1 year (720 points),
while the "PI Server" did not answer this request (which is really heavy) the system starts
to get very slow for everyone other users logged into machines and different locations.


The application only to get back quickly after the Graph (TREND) is created on the screen and feature releases.


In this scenario we have made several attempts to solve the problem between them try to change the architecture of connection with the "PI SERVER".

As the documentation OSISoft, our application, generated only ONE INSTANCE (SINGLETON) for all application.
So try switching to a ONE INSTANCE per user. But this strategy left the system even slower.


So this week we discovered important information.

In the same period where the problems started was installed a "New Version" in the "PI Server" (PI 2012).
And a professional who has worked in OSISoft said that this new version there is a "Processing Limit" by Application.



And to confirm this thesis we could clearly see this new "processing limit" also in PI EXCEL.


We managed to reproduce the problem with 2 calls made while using the IP EXCEL.

To reproduce the same symptom of the web application, we did the following:

- The first call was made through a Trend 1 year 8 TAGS
- The second call was made shortly after the first via a Trend 30 days with 8 TAGS

The result was that the second call was extremely slow while being processed first.
To confirm our argument, we isolated only the second call and it responded instantly.



QUESTIONS:


1) There is even this "Limit Processing" by application "?

2) It can be changed only for this application?

3) What are the parameters need to be changed? And what is the impact to other applications using the same server?
 

 

 
NOTE: This problem does not happen when using the old and discontinued DLL (PIApi).

 

THANKS!
Leonardo

PI AF SDK Online Course Starting May 05, 2014

$
0
0

All,

 

We have a new schedule of the PI AF SDK online course starting May 05, 2014. This course is a unique opportunity to learn how the PI AF SDK works on your own schedule, with your own data.

 

 

Our course is guided by experienced PI AF SDK Development Instructors. While the lesson plans are defined ahead of the course, your experience is tailored to meet your specific needs. You will benefit from a hands-on approach, enabling you to learn the material quickly and effectively. Through the specific exercises provided in the course, you will learn to perform all of the functions yourself to maximize your ability to learn everything. Your instructor will be there to guide you all the way to success.

 

 

The course lasts 3 weeks and comprises short instructional video lectures; self-serve exercises to reinforce key concepts; discussions forums for you to interact with your peers at other enterprises, post questions, answer questions posted by others, and earn rewards for your participation; and a final project. Once you have completed and passed the final project, you will be awarded a certificate for your participation.

 

 

*Note: You must be a vCampus subscriber at this time to enroll in this course.

 

 

To register for this course, please click here.

Heartbleed OpenSSL vulnerability - this community is not affected

$
0
0

Hello OSIsoft Community-

The internet is buzzing about the “Heartbleed” vulnerability stemming from a bug in the OpenSSL cryptographic library.  OpenSSL is popular and many Web 2.0 social sites are affected.

 

Unfortunately, two popular security scanning tools report community.osisoft.com as affected (or very likely affected) by Heartbleed.  Subsequent investigation of the site finds such reports are false positives.

 

To reiterate, community.osisoft.com uses the version 0.9 branch of OpenSSL that is NOT affected. 

 

PS> Community.osisoft.com supports federated identity so users need not provision a new set of credentials to participate.  (You’ve may have noticed the option to join or login using Facebook, Twitter, LinkedIn etc.) A federated identity approach also avoids transmission of credentials to our webserver. As such, the server can’t leak what it doesn’t have!   

ProcessBook - Get the name of the clicked button

$
0
0

Hi,

I have a PB file with 10 buttons. On click on these buttons, a macro will be launched. This macro will be identical for all buttons.

I would like to realize different actions in this macro, depending to the button that was clicked.

 

But I am unable to recover the name of the clicked button. I tried activecontrol.name but it didn't work.

 

Do you know how to get clicked button's name ?


PI SDK Write value to PI Server

$
0
0

I need to use SDK to write TAG value to PI server. I know that from DataLink the Function is PiPutVal(),

but I can't find the equivalent in SDK help file.

Could you please help me?

 

TIA

Ernesto

Measure time of operations state

$
0
0

Hi All :)
 
I have a PI tag with show what operationstate I am in. I have following operations state:
 
1) Filling
2) Producing
3) Cooling
4) Discharging
5) CIP
 
It is a batch process where I wan't how long the product is in every operation state. I want to use it every morning where I want to know how much time every filling have taken:

 

Start: *-24h

End: *

 

Filling for "PItag_Operationstate"

 

20 minuts

16 minuts

21 minuts

40 minuts

27 minuts

and so fort

 

But how do I do this?

 

C# - PI SDK - AttributeTemplate - Default value

$
0
0

Hi,

I am recovering an attribute template (type : AFAttributeTemplate).

I can't read the field "DefaultValue" that is visible in AF explorer.

 

Can you tell me where to find "DefaultValue" please?

 

removing tag label from Trend

$
0
0

If anyone can help in this ordeal that would be great, i am trying to remove or hide the tag label (on the right) from the graph. If anyone can help me asap that would be great thank you.

Attached Images

  • Screen Shot 04-15-14 at 12.54 PM.PNG

How to adjust the decimal value in pi

$
0
0

I'm trying to figure out how to adjust the decimal point value in pi process book Screen Shot 04-15-14 at 02.05 PM.PNG

Attached Images

  • Screen Shot 04-15-14 at 02.05 PM.PNG

Spotfire and PI

$
0
0

Does anyone have experience in integrating PI servers with Spotfire (Tibco). Spotfire seems to be great data visualization tool. Tibco has some kind of adapter for OSIsoft but wondering if anyone is using it.

 

Batch search and time duration

$
0
0

Hi All

 

In a earlyer question I was recommendet to use Batch seach to find the time duration for every operationstate.

 

When I use the Batch search function in excel I get the Operationstate by adding the PISubbach2. I then want to filter by operationstate "Filling A" but this doesn't work it still show "Filling B" and "Pause". Then I tryed to finde a way where I could use a Pivot table, but when I want to show Pisubbach2 it also show Batch ID and PIsubbatch1 where the will be empty cell if I chose to split them in columns.

 

1) Is it not possible to split up in columns for BatchID, PIsubbatch1 and PIsubbatch2 and don't get any empty cells or just show Pisubbatch2?

 

2) If I want to make a column chart in Processbook with the time duration for Operationstate "Filling A" can this be done? so I can make a controlchart there give an alarm if the time duration for a specific operationstate get to high?

 

Hope these 2 questions make sense :)

 


Element Relative Display and Time Ranges

$
0
0

I've created an Element Relative Display with a handful of element relative SQC charts and a couple of of non-element relative charts. I am able to change the time range for the entire display however when I then choose a different element of interest all the element relative displays return to their default time range while the non-element relative charts stay at the previously specified time range.

 

Is there a way to lock the time range in temporarily so that a period in the past can be navigated to and then that same time range can be viewed across all the elements of interest without having to respecify the time range of interest each time a new element is selected?

Daily & Shift Totalizers Randomly Going To Zero Then Back To Previous Total

$
0
0

Hello All,

 

Our organization users many totalizers in Pi, however, there is a group of them (daily and shift totalizers) that are randomly resetting to zero and after different amounts of time they will return back to their previous total.

 

Both totalizers have a source tag which has a normal level of 0 and at the end of the process goes up to ~5000 for 1 minutes.

 

The daily totalizer is configured as:

 

Totalizer Type

Count Events

Events where value changes

Block - change from less than to greater than or equal to = 1

 

Sampling

Whenever a new source tag event occurs (Natural)

 

Results

Write final results - After a time period elapses

Start schedule at: 0 Hour(s) after midnight

Results every: 24 Hour(s)

Vary w/DST

Write interim results - At source time (ramp)

 

Archive

Typical value: 50

Zero: 0

Span: 1000

Scan: On

Archiving: On

Step: On

Shutdown: Off

Compressing: Off

Exception Deviation: 0 Eng Units

Min Time: 0 Days. 0 Hours. 0 Minutes, 0 Seconds

Max Time: 0 Days. 12 Hours. 0 Minutes, 0 Seconds

Compression Deviation: Disabled

 

Options

Use negative source values: unchecked

Source tag is a DCS integrator: unchecked

Source OverRange is ZERO + SPAN: Unchecked

Use Source Tag BAD in place of "Bad Total": Unchecked

Source UnderRange is: No Selection

Conversion Factor: 1

Source = Zero below: 0

Pct good values needed: 0 (was 85 but changed to 0 based on another post I saw.  No change in results).

 

Summary

Totalizer Point Attributes for: PROD_CNT_DAILY
Descriptor: Daily Total Production Count

archiving = 1
calcmode = CHANGEEVENTS
compdev = 1
compmax = 3600
compmin = 0
compressing = 0
compvalue = 1
conversion = 1
datasecurity = piadmin: A(r,w) | piusers: A® | PIWorld: A®
descriptor = Daily Total Production Count
engunits =
eventexpr =
excdev = 0
excmax = 43200
excmin = 0
filterexpr =
function = EVENTLT_GE
movingcount = 2
offset = +0H
offset2 = +0M
options =
pctgood = 0
period = +24H
period2 = +2M
ptsecurity = piadmin: A(r,w) | piadmins: A(r,w) | PIWorld: A®
ratesamplemode = NATURAL
reportmode = RAMPING
scan = 1
shutdown = 0
sourcetag = EVAC_FLOW
span = 1000
step = 1
tag = PROD_CNT_DAILY
totalclosemode = CLOCK
typicalvalue = 50
zero = 0
zerobias = 0

 

The shift totalizer (12 hours shifts running from 7-7) is configured as:

 

Totalizer Type

Count Events

Events where value changes

Block - change from less than to greater than or equal to = 1

 

Sampling

Whenever a new source tag event occurs (Natural)

 

Results

Write final results - After a time period elapses

Start schedule at: 7 Hour(s) after midnight

Results every: 12 Hour(s)

Vary w/DST

Write interim results - At source time (ramp)

 

Archive

Typical value: 50

Zero: 0

Span: 1000

Scan: On

Archiving: On

Step: On

Shutdown: Off

Compressing: Off

Exception Deviation: 0 Eng Units

Min Time: 0 Days. 0 Hours. 0 Minutes, 0 Seconds

Max Time: 0 Days. 12 Hours. 0 Minutes, 0 Seconds

Compression Deviation: Disabled

 

Options

Use negative source values: unchecked

Source tag is a DCS integrator: unchecked

Source OverRange is ZERO + SPAN: Unchecked

Use Source Tag BAD in place of "Bad Total": Unchecked

Source UnderRange is: No Selection

Conversion Factor: 1

Source = Zero below: 0

Pct good values needed: 0 (was 85 but changed to 0 based on another post I saw.  No change in results).

 

Summary

Totalizer Point Attributes for: PROD_CNT_SHIFT
Descriptor: Shift Total Production Count

archiving = 1
calcmode = CHANGEEVENTS
compdev = 1
compmax = 3600
compmin = 0
compressing = 0
compvalue = 1
conversion = 1
datasecurity = piadmin: A(r,w) | piusers: A® | PIWorld: A®
descriptor = Shift Total Production Count
engunits =
eventexpr =
excdev = 0
excmax = 43200
excmin = 0
filterexpr =
function = EVENTLT_GE
movingcount = 2
offset = +7H
offset2 = +0M
options =
pctgood = 0
period = +12H
period2 = +2M
ptsecurity = piadmin: A(r,w) | piadmins: A(r,w) | PIWorld: A®
ratesamplemode = NATURAL
reportmode = RAMPING
scan = 1
shutdown = 0
sourcetag = EVAC_FLOW
span = 1000
step = 1
tag = PROD_CNT_SHIFT
totalclosemode = CLOCK
typicalvalue = 50
zero = 0

 

I do not have any bad values logged in the archive edit, only 0s when it drops.

 

Below is a screen capture of the graph of the 3 points.

Totalizer Issue.png

Yellow = Shift Count

Blue = Daily Count

Green = End Of Cycle Evacuation Flow

This is a 4 hour time span.  The start of shift (7am) is on the left and the yellow line can be seen resetting to 0 to start a new shift.  I have also noticed that sometimes these totalizers are not resetting to 0 at midnight (daily) or 7 am/pm (shift).  This is rare but out of 100 sets of these tags, this is observed on at least 5 daily (not the same everyday).

 

I have been reading every post I can over the past few weeks to try and figure this out but I cannot find anyone having a similar issue.

 

I hope this is something silly I am missing.

 

Thanks in advance,

Phi

C# PISDK ServerEvents Exapmle

$
0
0

Hi everyone!

How to subscribe to events PI SDK models in C#?

Can show the correct example?

 

This example causes the error.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestApp
{
    class Program
    {
        static void Main(string[] args)
        {
            PISDK.PISDK mysdk = new PISDK.PISDK();
            PISDK.Server mysrv = mysdk.Servers.DefaultServer;

            mysrv.Events.OnClose += new PISDK._DServerEvents_OnCloseEventHandler(Events_OnClose);

            mysrv.Close();
            Console.ReadLine();
        }

        static void Events_OnClose(string OldUser)
        {
            Console.WriteLine("test");
        }
    }
}

Err:

 

 

Attached Images

  • Err_events_PISDK.PNG

PI Processbook LIX_BOX

$
0
0

Hi,

I need some help, I would like to know how I do for stay in the box just 4 values, because now everytime appears one new value with updates and I need just  last 4 values and that this and to continue updating, but appears just the four last.

Someone could help me? It's urgent !!

 

 

Sem título.jpg

 

Finding the next occurance of an event in DataLink

$
0
0

I'm creating a spreadsheet to capture and analyze event data for a process in our plant.  I can identify the start/end of the event by looking at the position of 3 valves.  When all 3 valves are open, the event has started.  I want to capture the timestamp of the event.  My initial thought was to use the FindEQ function.  Unfortunately, as far as I can tell you can only reference one tag.  I was hoping there was a function such as: 

 

FindNext('tag1'="OPEN" and 'tag2'="OPEN" and 'tag3'="OPEN", '01-Jan-14', '*')

 

 

Does any know of a way to get what I need using a minimal number of cells? I have a couple ideas but I'm hoping to find an alternative. 

 

One would be to create a performance equation to identify the event and have DataLink reference the performance equation tag.  I think that should theoretically be possible but our site has never setup the performance equation recalculator.  Also, even if we had the recalculator working, will it calculate valves prior to its creation data?  (I want data from at least the first of the year and maybe even 2013)

 

Another method that I've used in the past (with another vendor's historian that didn't have PI's PE selection) was to dump 1 day worth of raw data into a spreadsheet and write a macro that would search an event then record the timestamps on a separate sheet.  The macro would then advance the raw data to next day and repeat until it reached the current date.  This method works but it is very brute force and can take a while to run, I was hoping for something more succinct.

 

Any advice would be appreciated.

 

Chris

Viewing all 1120 articles
Browse latest View live


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