Presentation is loading. Please wait.

Presentation is loading. Please wait.

PI Software Development Kit PI-SDK. Agenda The expanded class hierarchy Data access with the PI-SDK The PITimeServer library Multi-threading and the PI-SDK.

Similar presentations


Presentation on theme: "PI Software Development Kit PI-SDK. Agenda The expanded class hierarchy Data access with the PI-SDK The PITimeServer library Multi-threading and the PI-SDK."— Presentation transcript:

1 PI Software Development Kit PI-SDK

2 Agenda The expanded class hierarchy Data access with the PI-SDK The PITimeServer library Multi-threading and the PI-SDK OSI and the PI-SDK Troubleshooting tips Coming attractions Questions

3 Class Hierarchy PI-SDK 1.0 The current release PI-SDK 1.1 PI-Batch and the Module Database PI-SDK 2.0 Data Access

4 PI-SDK 1.0

5 PI-SDK 1.1

6 PI-SDK 2.0

7 Data Access with the PI-SDK PIData and ListData The access paths Value Format What do values look like now? PIValues capabilities What can I do with the values? Writing Values

8 PIData

9 Data.RecordedValues() Start time and end time as Variant Boundary type Filter expression Show filtered Asynchronous Returns a PIValues collection

10 What’s in a PIValue?

11 PIValues – More than a datatype

12 Writing values to PI UpdateValue and UpdateValues RemoveValues

13 Demo Retrieving PIValues

14 Advanced Topics Event pipes Using asynchronous calls

15 Problem: Alarm Application Your app must catch every event But you can’t listen all the time Polling may miss an event Oop s

16 The EventPipe Object Get from a PIPoint or a PointList Collects value changes Count property Take, Peek methods First In, First Out (FIFO). OnNewValue event Can be throttled to avoid event overload

17 Problem: Long Queries Long blocking calls inhibit user response and slow down your application But breaking the query into small chunks may reduce efficiency Server does redundant work More network calls

18 PIAsynchStatus Object Lets you monitor the status of a query Sends an event when done Provides for progress bar Many calls can be asynchronous PIPoint.Data archive retrieval PointList.Data archive retrieval PIValues.RecordSet Server. GetPoints, GetPointsSQL PISDK.GetPoints MessageLog.List

19 Using PIAsynchStatus Dim WithEvents asy As PIAsynchStatus Set asy = New PIAsynchStatus Dim pv As PIValues Set pv = MyPoint.Data.RecordedValues (“*-1h”, “*”,,,, asy) Rem pv.Count should be zero... Private Sub a_OnStatusChange If asy.Status = csCompleted Then...

20 Time in the SDK Classic problems: summer time, time zones, clock drift The solution: PITimeServer

21 Time—The Problems Summer time (DST) What are the rules for this location? What were the rules last year? We must track historic changes Does my computer follow the rules? It probably doesn’t even know them. Even if it does (NT), it may not follow them.

22 Time—The Problems Time zones Servers can be in various time zones Clients can be in a different time zone from any server Queries must be interpreted in the time zone of the server

23 Time—The Problems Clock drift Even in the same time zone, the client clock may not be exactly the same as the server clock Real-time data inputs to a server should be timestamped with the server clock, i.e. adjusted for clock drift Historical inputs should not be adjusted for clock drift

24 Time—The Problems Time intervals (days, months, shifts) Is 1 day = 24 hours ? Not always, if you observe summer time On March 30, what does this mean? “* - 1 month” Can I define my plant shift schedule?

25 Time—The Solutions PITimeServer Independent COM server DLL Does not require PISDK.DLL for support Defines these objects: PITime, PITimeFormat, DynamicTime PITimeZoneInfos, PITimeZoneInfo DeviceTimeZones TimeIntervals, ITimeInterval

26 PITimeZoneInfo object Encapsulates time zone information Offset from UTC Summer/winter time change rules Historical changes in rules Every device is assigned one Server, client, instrument PITimeZoneInfos collection All known time zones on this client User can add or remove zones

27 Time Objects: PITime Lightweight, server-independent Translates wallclock to UTC using client-node time zone information Operations: UTCSeconds property UTCFileTime property LocalDate property SetToCurrent method

28 Time Objects: PITimeFormat Superset of PITime Knows its time zone TimeZoneInfo property Parses time strings Microsoft format (localized) or PI format Formats output strings Works with time intervals “subtract 3 weeks”

29 Time Objects: DynamicTime Superset of PITimeFormat Represents a moving time, such as “ * ” or “ * - 4.5 hours ” Property values change constantly Referenced to a known clock source Server clock Client clock Device clock, user-defined

30 ITimeInterval Object Represents a kind of interval Name, ShortName:month, mo MemberLo, MemberHi: 1, 12 Member(Short)Name: January, Jan, … Operations: given a time— What month is it? When did that month start? Add or Subtract n months How many months between two times?

31 TimeIntervals Collection Contains all intervals known on the client Interval servers Installed via registry entry Standard: year, month, day, week, weekday, yearday, hour, minute, second User-defined: whatever you want Shift, Plant day Fiscal year/month/week/quarter

32 Threading Release 1 was apartment-threaded Release 2 will be free-threaded Apartment-neutral Uses the Free-Threaded Marshaler (FTM)

33 If It Ain’t Broke… Apartment-threading works correctly But performance is unacceptable

34 Why Should I Care? Multi-threaded design is natural for many applications Interfaces—thread per scan class Displays—thread per graphic Today, this mostly affects C++ developers VB7 will support free-threading

35 OSI and the PI-SDK Redesigns of existing products New products in development Existing products

36 Redesigns for the PI-SDK PI-ProcessBook PI-DataLink Sigmafine PI-BatchView PI-Profiles

37 New Applications PI-PointBuilder PI-AlarmView Real-time SQC Point Manager PI-AutoPointSynch These are demonstrated Tuesday afternoon.

38 Controls and Libraries PI-BatchView 3.0 Module Database Controls Tag search

39 New Interfaces PI-Perfmon OPC ICCP

40 Existing Products Embedded PI systems Point creation User/Group management Batch Event File Interface Integration with batch systems UNIINT 3.2.0 Flexible attribute retrieval PIlog32.dll and sdkreg.dll

41 Troubleshooting Tips After the setup Read the setuppisdk.log Run AboutPI-SDK The new apisnap

42 AboutPI-SDK Version Info Timeout Info Hidden Connect Button

43 Connecting Manage your Servers Here

44 Server Management

45 Communication Layers What’s a pinetmgr and do I need one? What’s a redirector and how is it configured? ~\pipc\dat\pisubsys.cfg

46 Pisubsys.cfg Redirected Generic_local hostname:portnumber For example: Generic_local bilbo:5450 Local pinetmgr Generic_local \\.\pipe\rendevouz file path For example: Generic_local \\.\pipe\e:\PI\dat\piv3.rdz

47 What if? Remember AboutPI-SDK = apisnap Can’t run AboutPI-SDK Check error message Check setup

48 What if? Can’t connect Is server running? Client side Ping, apisnap, ProcessBook Server side Check services.(Net start, or services applet) Does piconfig work? Does pisnap work? Is the local pinetmgr service running? Try using a redirector

49 What if? Err.Description Often includes server specific errors Intermittent errors If it used to work, suspect the server PI-SDK web page Reported Problems http://support.osisoft.com/progtools/pisdk/

50 Coding Problems Try the examples in the help file Try the sample applications on the web Isolate the problem Send small examples that demonstrate the problem to tech support.

51 Coming Attractions PI-SDK 1.1 ModuleDatabase/ PIBatch PI-SDK 2.0 Data Any beyond

52 PI-SDK Questions?


Download ppt "PI Software Development Kit PI-SDK. Agenda The expanded class hierarchy Data access with the PI-SDK The PITimeServer library Multi-threading and the PI-SDK."

Similar presentations


Ads by Google