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

Pi WebParts 2013 not showing

$
0
0

Hello,

 

I have a VM running Windows Server 2008 R2 with SP1, deployed AD and SharePoint 2013 with no errors and all and proceeded to install Pi WebParts 2013.

 

Pi WebParts 2013 installed just fine and I deployed it in my site collection and activated it. I can see the list of WebParts if I click on Edit and browse what's available.

 

Unfortunately if I try and select anything.. like ActiveView or BatchTable, after clicking on Add the page just refreshes and I'm left with nothing. No changes to the page.

 

Anyone know what I could be doing wrong?

 

Edit: Sometimes it would show a "Sorry, this site hasn't been shared with you." error.

 

Thank you in advance!

 

Regards,

Isamu


Loading /Backfilling data from Uniformance PHD server using OPC HDA interface

$
0
0

Hi All,

We have a client requirement where we need to load / backfill data of last 7 years from Uniformance PHD server for aroung 2500 Tags in to PI server.

 

Here i am considering to use PI OPC HDA interface to load data from PHD server by creating a 5 Interface instance i.e. one instance for 500 tags and loading data in batches of a year.

 

Please share your experiances and expertise on this topic & please suggest any alternate solution if you think this is not the best one.

 

Thanks for your help in advance.

Regards

Vijay

Example of usage of PIAPI with Python.

$
0
0

I recently had problems to backfill a tag in the PI.

To get around this I wrote a Python script that would like to share with everyone.

May be useful for someone.

Hugs.

# -*- coding: utf-8 -*-
import sys
import platform
import datetime
import time
from ctypes import *

ARRSIZE = 5000
ARCCODE = {
    'ARCTOTAL': 0,
    'ARCMINIMUM': 1,
    'ARCMAXIMUM': 2,
    'ARCSTDEV': 3,
    'ARCRANGE': 4,
    'ARCAVERAGE': 5,
    'ARCMEAN': 6
}
WARNING = """
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! WARNING: This program will erase data in archives!         !!
!! Make a full backup and verify its integrity before use it. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
"""


def pipt_findpoint(piapi, tagname):
    pointid = c_int()
    stat = piapi.pipt_findpoint(tagname, pointer(pointid))
    if stat != 0:
        print
        print("Error %d in findpoint for %s" % (stat, tagname))
        print
        sys.exit()
    else:
        return pointid


def main():
    if len(sys.argv) < 3:
        print
        print("Usage: python %s TAG start end" % sys.argv[0])
        print("Example: python %s sinusoid 01-jan-14 31-jan-14" % sys.argv[0])
        sys.exit()
    else:
        print(WARNING)
        answer = raw_input("Type YES if you are sure you want to continue? ")
        if answer.strip().lower() != "yes":
            print
            print("Thank you for not use this application. :D")
            print
            sys.exit()

        tagname = sys.argv[1]

        try:
            py_dti = datetime.datetime.strptime(sys.argv[2], '%d-%b-%y')
            py_dtf = datetime.datetime.strptime(sys.argv[3], '%d-%b-%y')

            dti_timestamp = int(time.mktime(py_dti.timetuple()))
            dtf_timestamp = int(time.mktime(py_dtf.timetuple()))
        except:
            print
            print("Start or end date format invalid. ")
            print("Use: dd-mmm-yy. Ex: 01-jan-14")
            print
            sys.exit()

        arch = platform.architecture()[0]
        if arch in ('32bit', '64bit'):
            piapi = windll.piapi
        elif arch == '32bit':
            piapi = windll.piapi32
        else:
            print
            print("Architeture not supported. :D")
            print
            sys.exit()

        pointid = pipt_findpoint(piapi, tagname)

        count = c_int(ARRSIZE)
        times = c_int * ARRSIZE
        rvals = c_float * ARRSIZE
        istats = c_int * ARRSIZE
        pitimes = times()
        pitimes[0] = c_int(dti_timestamp)
        pitimes[ARRSIZE - 1] = c_int(dtf_timestamp)
        stat = piapi.piar_compvalues(
            pointid, pointer(count), pitimes, rvals(), istats(), 0)

        if stat == -103:
            print
            print("No data for this point in this time range.")
            print
        else:
            for i in range(0, count.value):
                piapi.piar_deletevalue(pointid, pitimes[i])

            print
            print("All data between given dates for %s was deleted." % tagname)
            print

        # Here my rules to backfill :D
        if tagname.lower().strip() == "teste37":
            # Tag Monitored
            pointid_monitored = pipt_findpoint(piapi, "MONITORED-TAG")
            time_distance = datetime.timedelta(minutes=3)
            step = datetime.timedelta(minutes=1)
            val = None
            while py_dti <= py_dtf:
                # print py_dti

                avg = c_float()
                pctgood = c_float()
                time1 = py_dti - time_distance
                time1 = c_int(int(time.mktime(time1.timetuple())))
                time2 = c_int(int(time.mktime(py_dti.timetuple())))
                stat = piapi.piar_summary(
                    pointid_monitored,
                    pointer(time1),
                    pointer(time2),
                    pointer(avg),
                    pointer(pctgood),
                    ARCCODE['ARCAVERAGE']
                )

                if avg.value > 34:
                    nval = 1
                else:
                    nval = 0

                if nval != val:
                    print nval
                    stat = piapi.piar_putvalue(
                        pointid, c_float(nval), 0, time2, 0)
                    if stat != 0:
                        print
                        print("Error %d.")
                        print("When try add a new value to the Archive" % stat)
                        print
                        sys.exit()

                    val = nval

                py_dti = py_dti + step


if __name__ == '__main__':
    main()

Digital Tag Cycle Time

$
0
0

Is it possible to calculate the time between two True values on a Digital tag, with either PE or Totalizer?

Datalink [-11101] Error

$
0
0

I am new to this community, so if I should have posted this elsewhere let me know and I'll post accordingly going forward.

 

I am working on a PiAdvCalcFilVal formula in which I want the cell to return the average of a particular tag over a given amount of time based on a filter expression.  I am receiving the following error:

 

[-11101] All data events are filtered in summary calculation

 

Does this simply mean that there are no values that fit the filter expression, so there is no average.  I just want to make sure I'm not missing something here.

 

Thanks.

OSI PI Totalizer - Help!

$
0
0

Good afternoon,

 

I am new to PI, as is the company I work for. I am attempting to get totalizers set up in the best way possible. I originally started with PEs, but I couldn't explain the difference between TagTot and TagAvg. My users are concerned that these functions will not consider plant downtime. I then discovered Totalizers, and thought this would be my best solution.

 

I am trying to capture the Total production over the last 24 hours, and archive a value every minute. Basically the user could look up any minute and find the total production of the previous 24 hours. The tag measures an instantaneous production rate in units of Tonnes per Hour (TPH).

 

For my PE, I used:

 

TagTot('G17_GDST_BWGBW6_TPH', '*-24hours', '*')*24

 

and

 

TagAvg('G17_GDST_BWGBW6_TPH', '*-24hours', '*')*24

 

Which yields results which appear correct, but the calculations return slightly different results. My first question is:

 

1. What is the difference between these two calculations? How is the archive data being treated differently?

 

Then when I set up a totalizer, I would have thought to use "sample every 24 hours, results every 1 minute with a conversion factor of 24 to convert TPH to Tonnes". I have tried changing the sample and results settings but cannot get the right configuration. 

 

2. What is the totalizer doing? Or am I trying to do this the wrong way?

3. When I use the totalizer I am getting occasional  'Bad Total' readings, although the source tag is perfectly fine. Why could this be the case?

 

Any help is appreciated!

 

Thanks,

Steve.

PI ACE code snippet for total from t to *

$
0
0

Hello everybody,

 

I want to have PI ace code for calculating total of 30 tags.

Here is brief description of problem statement:

 

1) There are 30 tags...Tag1(x events), Tag2(x events),....Tag30(x events). with per second frequency in piarchive.

2) I want to calculate total of 3x events from 't' to '*'.

3) I have some values in pi archive as -9999999 so i want to discard those values in calculations. I want to consider all values for calculation which are positive in nature.

 

Can anyboby provide code for it.?

 

 

Thanks & regards,

IluZaud

about pi server to change the machine time

$
0
0

sorry,my poor english,my pi server have a question,the time is fast for 5 minutes,i want to change the time with GPS directly,not use cmd pisrvstop,I do this will cause any problems?


Students Invited to our First Ever Academia and Research Industry Day

$
0
0

Students are invited to attend as OSIsoft's guests our first ever industry day that focuses on how the PI System can be used in Academics and Research. It will be held on Thursday, March 28th at the Hilton San Francisco Union Square as part of the OSIsoft Users Conference 2014. 

 

OSIsoft’s 2014 Academia & Research Industry Day will collaboratively focus on best practices, case studies and presentations jointly between OSIsoft, Private, Public and Academic Customers... Become a part of the OSIsoft Inaugural Academia Conference to discuss ideas about how the Public-Private-Academic Partnerships drive innovation via the PI System and PI Cloud Services. 

 

 

Here is a short video that features OSIsoft engineers describing our software and some more information about the event. 

 

 

Click here to read more and to register. University students and faculty are invited as OSIsoft's guests; please contact OSIsoft's John Matranga, Director, Customer Innovation and Academia, for more information.  If you are an OSIsoft Users Community member, you can click here to private message John (login required). 

 

The PI System is currently being used on university campuses not only in research but also to help facilities managers operate more efficiently to keep costs down. Here is a use case described by Joshua Morejohn at the University of California, Davis:  http://www.youtube.com/watch?v=XM6vAYQL0fk#t=0m22s

 

Ways to display PI data on production floor

$
0
0

Anyone know of a great way to display dashboards, PI tag values, etc. on the production floor.  I know a computer monitor attached to a computer could do it many various ways, but I am looking for something like a Red Lion display (like a multiline marquis) or an LCD type display system that can be easily programmed to grab data directly from PI.

 

Looking for ideas...

 

Thanks. 

How to use an Output tag effectively

$
0
0

I am using OPC DA (getting ready to upgrade to 2.5) connected to a Matrikon OPC server for Allen Bradley PLC's.

 

Although we do not want to do many Outputs from PI...there are occasions where this is necessary in our system.  My question is:

 

What is the best way to execute this?

 

For example:

 

I have a counter that the PLC is incrementing.  I have a Counter Reset in the PLC that can be triggered by a couple of other means (unrelated to PI) and I have a button on a processbook screen that, when the operator presses it, I send an output to the PLC to reset the counter.  I also need to know in PI the exact time the reset occurs (both by the operator and by the external triggers) so I have a tag setup that reads the status of the boolean for the counter reset from the PLC.  Because of the time lag we were seeing, we force the bit to stay on in the PLC for 10 seconds to be sure that PI "see's" it.

 

What is the best way to execute this? (assume that I have OPC DA 2.5 installed as I will have shortly).

 

What I currently do is I have 3 tags setup for this:

 

'PLCReset' = OPC tag of Boolean tag in PLC.  Digital state (Normal, Reset) with 10 second polled scan class

'PIReset' = Calculated tag (point source C). Digital state (Normal, Reset) with 10 second scan class

'PIOutputReset' = OPC output tag (location3 = 2, location4 = 0) Digital state (Normal, Reset), EVENT TRIGGERED with Source tag = 'PIReset'

 

The PE calculation for 'PIReset' is:

 

if tagval('PIOutputReset','*') <> "Normal" then "Normal" else NoOutput()

 

The operator button in Processbook updates 'PIReset' to "Reset" when they click on it.  This in turn caused 'PIOutputReset' to be "Reset" which outputs to the PLC.  The PLC then turns on 'PLCReset' so I have the timestamp along with that tag.  Since 'PIOutputReset' is now <> "Normal" then the PE calc for 'PIReset' sets it back to "Normal" (effectively resetting the button like a one-shot).  This in turn set's 'PIOutputReset' back to "Normal" and the output to the PLC turns off.

 

This works very well...but given that it relies on scan times, it can get "hung up" once in a great while if there are any interface issues, etc.  Not to mention the fact that it seems like a VERY convoluted way to do something that seems fairly simple and straightforward (however, I set this up when I was brand new to PI and couldn't come up with a solid way of doing it so that I could be sure the output happened and was captured by the PLC).

 

As always...any help and feedback is very much appreciated.

 

Thanks. 

Suggestions for Coresight future releases

$
0
0

Hi,

 

We're usign PI Coresight in my company and we would like to suggest several new features for Coresight:

 

  1. We've used a PE with string type to round decimals and show "N/A" in case of BadVal in our display, but in iPad Coresight app we are showing decimals like 120.00
  2. Two-dimension tables like this post:
  3. bidimensional.jpg
  4. We've tried to simulate a two dimension table and we've noticed this height mismatch like that (this problem not occurs in iPad). In this display we've 8 tables with 8 rows and the first table have a different height like the rest:
  5. height-mismatch.jpg
  6. Themes to customize Coresight with corporate styles
  7. We would like to choose between description and name to show in trend graphics. Sometimes tag name is unfriendly for humans ;)
  8. We would like to define perfomance equations directly in Coresight to show evaluated value similarly you can define in PI Web Services a request using pe:\\PISERVER\Avg('SINUSOID', 'SINUSOIDU'), etc
  9. We would like to define texts defined by Coresight user in displays like a titles, sections, etc.
  10. When we show big displays in iPad, we show it cropped. A scroll option or automatic resizing could be interest
  11. Possibility of create communities to publish displays in a group to ensure privacy of several displays

Our desire is contribute to improve this wonderful product. We are interested in know roadmap for Coresight developer team, could you report us?

 

Definitely, we would like Coresight would have an expression capacity like Datalink combined with a rich website

 

Thank you in advance!

MultiTrending - Selecting data from multiple PDIs and displaying the values clicked onto a single trend.

$
0
0
I would like to select data from multiple PDIs and displaying the values onto a single trend.  Iv'e currently setup a small site with navigation and have had several request for grabbing data values from multiple pages and displaying them on one trend.
 
Thanks.

ProcessBook ActiveX Excel Question

$
0
0

Hello,

 

I have a processbook display page that has an object link to an excel macro enabled worksheet.  The link works great and updates the display, as the Excel sheet updates...........my only problem in processbook I can only see about half of the excel sheet, and when i try resizing with the process book it just zooms in on just the half of the sheet that i can see.  Does anyone know away to resize an excel link with in process book to see the whole worksheet???

 

Thanks,

 

Osisoft's or third party BI Software for mobile

$
0
0

Hello,

 

Can you please suggest Osisoft's or third party BI solutions for mobile such as TopView or Visual KPI (Transpara) that can run on android/IOs/Windows?

 

Thanks.


Building Rate of Change Notification

$
0
0

I have been asked to build a rate of change notification based on a tank level. So, if tank level A has a positive 1% level change over 1 minute notification is needed. I unsure of how to build this condition. Has anyone built anything like this before?

Data reading performance

$
0
0

Hi,

 

Does anyone have info on the difference in performance of reading data from the PI Server between OLDB client, OLEDB client or directly through the SDK?

 

Thanks!

How to obtain average values ​​in a single tag using the ProcessBook?

$
0
0

I need to create a trend with average values ​​of only one tag in ProcessBook. I know it's possible when I use the PI Calculation option. But how do I do that for a single tag?

VB for Processbook-for beginners

$
0
0

Hi All,

 

Can anyone please guide me on the best way to start to learn VB for processbook.

 

I am an absolute beginner.

 

Appreciate your help

 

Mahendra

Excel 2003, 2007 or 2010 on the same computer with the PI Datalink 2010.

$
0
0

Hi...

 

I have a question.

Using Excel 2003, 2007 or 2010 on the same computer with the IP Datalink 2010 can generate conflicts?

 

I ask this because here, I need to create spreadsheets with VBA using Excel 2003. We have a problem with Excel 2007 Batch (Batch Query function does not work on it). Already in 2010 works perfectly. Moreover, not all users have the latest versions of Office.

So I have the need to have two versions of Excel on my PC.

Viewing all 1120 articles
Browse latest View live


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