Code Monkey home page Code Monkey logo

s3dk's Introduction

S3DK

Smart grid Synchrophasor SDK (S3DK) - A LabVIEW API and a Real-Time Data Mediator for PMU Application Development!

Overview

The Smart-grid Synchrophasor SDK (S3DK) is toolkit akin to a software development kit (SDK) for developing synchrophasor applications, providing a number of functionalities that enable high-level PMU application development within the LabVIEW environment. This Smart-grid Synchrophasor SDK (S3DK) proposes a paradigm based on the concept of distributed applications, which allows development and deployment to be independent of the existing software stack deployed in power system control centers and to leverage PMU data at any level of a synchrophasor system hierarchy. This software has been released as open source software to facilitate broader and fast prototyping of synchrophasor applications.

An open access paper that serves to introduce the S3DK, is provided in the following link. If you use any resources in this repository, please cite the paper:

M. Baudette, L. Vanfretti, and S. Tyagi, “S3DK: An Open Source Toolkit for Prototyping Synchrophasor Applications” in Electronics, 2024, 13 (8), 1513. https://doi.org/10.3390/electronics13081513

In addition, please feel free to include a citation to the initial work that lead to the open source release of the S3DK was published in the following paper:

L. Vanfretti, V. H. Aarstrand, M. S. Almas, V. S. Perić and J. O. Gjerde, "A software development toolkit for real-time synchrophasor applications," 2013 IEEE Grenoble Conference, Grenoble, France, 2013, pp. 1-6, doi: 10.1109/PTC.2013.6652191.

Requirements

  • LabView 2018 SP1, 64 bit or LabView 2019, 64 bit
  • Real-Time Data:
    • A PMU or PDC, PMU Connection tester, or
    • A PDC simulator (provided below)
  • Familiarity with LabView.
  • VI Package Manager from JKL

Quickstart Guide

A quickstart guide is provided here.

Documentation

A website with detailed documentation an all S3DK functions is available at https://alsetlab.github.io/S3DK/docs/S3DK.html

Installation

  • Double click on the downloaded file. The JKI VI Package Manager will open.
  • Click on Install, under the 2018 icon.
    • Go through the installation process.
      • Allow the S3DK to be connected to both public and private networks when prompted by a Windows pop-up screen
    • If your installation is successful you should see the following window. Click on Finish.
  • Click on "Show in Palettes"
    • The following pop-up window should appear
    • This means the S3DK LabVIEW API is now properly installed with LabVIEW.
    • To find the full pallet click on the "up arrow" in the window above:
      • Overall Categories
      • Main Directory
    • To access the S3DK directly from the LabVIEW "palette", in a new LabVIEW VI Block Diagram right click on the blank screen and roll down to the Main Directory ("ALSET Labs"), as shown below:

Testing your Installation

What you will need: If you have access to a PMU or PDC:

  • Access to a PMU or a Phasor Data Concentrator streaming data using TCP.
  • The IP Configuration for the PMU or PDC, for example:
    • IP address: e.g. 127.0.0.1
    • Port Number: e.g. 4712
    • ID Code: e.g. 1
  • Check that your PMU or PDC stream is sending data using PMU Connection Tester

What you will need if you don't have access to a PMU or PDC:

  • Download the following PDC Simulator: link
  • Unzip and run the PDC simulator. Allow access to both private and public networks.
  • Use the default configuration in PDC simulator, or modify it according to your preference:
    • Uncheck the "Enable UDP Unicast" option. It is not needed.
  • Click on "Start"
  • The simulator will stream output data as configured on the specified port:
  • The IP Configuration for the PDC simulator is:
    • IP address: e.g. 127.0.0.1
    • Port Number: e.g. 4712
    • ID Code: e.g. 1

Testing the S3DK Installation

  • Open LabView, and create a new project and a "Blank VI".
  • In the "Block Diagram", left click to open the "Functions" Palette, and scroll down to the "ALSET Labs/S3DK/Buffer and Queues".
  • Drag and Drop the "S3DK GUI" the "S3DK GUI" block to the "Block Diagram" of your new VI.
  • Double click on the new block ("PMU" block with the red circle), this will open the GUI used to connect the S3DK and LabView to the real-time data stream:
  • Click on the top bar of the GUI under Edit, "Run", and then "Config" on the bottom right hand side when the GUI is running.
  • In the Connection tab, enter the IP Configuration for the PMU/PDC you have available, in this case, for the PDC simulator we have:
    • IP address: e.g. 127.0.0.1
    • Port Number: e.g. 4712
    • ID Code: e.g. 1
    • Click on "OK"
  • Next, click on "Start Up" in the GUI.
  • The dials above are about 18% and 18%, which corresponds to the CPU and memory resources being used. By clicking on the "Raw Data Panel" yellow button, you can display the raw data being received, as follows:
  • You can modify the update rate to display in the "Raw Data Panel" by selecting the "Update Rate" on the top left (in this case we are displaying 1 Hz of the 30 Hz data). Note that this is only for displaying purposes, the data available to the S3DK can be configured to report at the full or other update rates for computations on the data parcels.
  • To select the display form of the phasor quantities, i.e. either polar form (magnitude and angle) or cartesian coordinates (real and imaginary), move the button from "Re/Im" to "Amp/Ang".
  • The "Channel Selector" yellow button (below the "Raw Data Panel" button), allows to select the different signals in the stream and to use them in an application.

s3dk's People

Contributors

grey-j avatar lvanfretti avatar maximebaudette avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

s3dk's Issues

Error connecting if more than 10 PMUs are added to PDC stream.

Error
I am using S3DK ver 1.5.0.5 with Labview 2018. the VI is working fine with output TCP stream created from PDC but as soon as i add more that 10 PMUs to the stream the VI shows error (screenshot attached).
I have tried other versions of S3DK also. Kindly help.

TCP Communication Refusal after a few seconds

Experimental Setup:

  • cRIO based PMU is running and TCP network is broadcasting that PMU data.

  • On a remote system S3Dk is started to receive that PMU data. It starts receiving correct data from the PMU via TCP network.

Issue
After 10-30 seconds, the TCP network is force-stopped in the cRIO side with error code 66. (code 66 translates to client (S3Dk) side issue)

Upon a preliminary investigation it was seen that the following block , gets refused by the S3Dk.

image 1

It seems like, the library/function within S3Dk, which listens to this TCP block is the source of the error.

The experiment was repeated, by replacing S3Dk with PMU connection tester, and keeping the PMU and the TCP network unchanged. No problem arises in that case. Hence, the source of this issue is expected to be somewhere inside S3Dk.

Issues with Synchrophasor example after S3DK installation in LabVIEW 2017

Description

After S3DK installation using the latest executable, following libraries get broken. (To be more specific some files get over-written in the following paths.)

Program Files (x86)/National Instruments/LABVIEW 2017/vi.lib/addons/Electrical Power/PMU/
Program Files (x86)/National Instruments/LABVIEW 2017/vi.lib/addons/Electrical Power/Example Support/

In general they create no problem in running LabVIEW. But, when I tried running the Synchrophasor example (after installing S3DK) with NI cRIO-9082, the NI_EP_PMU and NI_EP_PMU_FPGA libraries in the first path also got corrupted.

Fix-

The known fix (which I used) is to use the older versions of the two folders. After installing latest S3DK, I just replaced the two folders by copying them from another PC.

64-Bit Compatibility Work-Around

When running on 64-bit Windows 10 LabVIEW will give errors when trying to use any of the pallete's blocks of the S3DK.

The current release does not include the 64-bit build of the "StrongridDLL.dll", but a 32-bit build. So, this needs to be replaced with a 64-bit build.

The proposed work-around is:
1 - Go to the folder
C:\Program Files\National Instruments\LabVIEW 2017\vi.lib\S3DK\data
2 - Delete the file StrongridDLL.dll
3 - Download the 64-bit versioin of the StrongridDLL.dll from: https://github.com/ALSETLab/S3DK-STRONGgrid/releases/tag/V0.1-alpha
4 - Take the StrongridDLL.dll file you downloaded in step 3 above and copy/paste to the folderC:\Program Files\National Instruments\LabVIEW 2017\vi.lib\S3DK\data

I have tested this under LabVIEW 2017 64-bit under Windows 10.

The next release will only support LabVIEW 2017 under 64-bit.
screenshot 2018-06-13 17 17 22

S3DK.lvlib

Hi there,
I am having some difficulties with S3DK. I could build the package and install it with VIPM. However, i cannot see the neccessary VIs on function palette, not all of them indeed. The ones that appear in function palette have question mark icon. I guess the reason is that S3DK.lvlib cannot be installed since when i open the S3DK Compiler project, it can't find the S3DK.lvlib. I try to find it in vi.lib folder but it does not reside there. Could you please help me figure out the problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.