Documentation

Documentation

  • Documentation
  • Integrated Examples
  • Help

›S3DK Utilities

S3DK Utilities

  • Setting_Memory
  • S3DK_GUI
  • Calculate_Activity
  • Calculate_Angle_and_Amplitude
  • Input_Node
  • PMU_ARR_Calculate_Ratio_of_True
  • PMU_Recover_Light
  • PR_Queue_Multiple_Elements
  • PRL_BUFFER_Rearrange_Complex_2D_Array
  • PRL_BUFFER_Rearrange_Digital_2D_Array
  • PRL_Check_for_Bad_dt
  • PRL_Convert_STR_SGL_Array_to_String
  • PRL_Create_Waveform_Signal_by_Interpolation
  • PRL_DW_Check_Data_CSG
  • PRL_DW_Check_Data_SGL
  • PRL_DW_Clean_Data_CSG
  • PRL_DW_Clean_Data_SGL
  • PRL_Insert_Element_in_string
  • PRL_Queue_Multiple_Elements_at_Opposite_End
  • PRL_Queue_Reader
  • PRL_Rearrange_Analog_Array
  • PRL_Rearrange_Timestamp_Array
  • PRL_STR_Convert_CSG_Array_to_String
  • PRL_STR_Convert_Number_to_String
  • PRL_STR_Get_Selected_Indices
  • PRL_TS_Clip_Array
  • PRL_TS_Get_Real_Timestamp
  • PRL_TS_Round_to_Nearest_10ms
  • PRL_TS_Waiter
  • PRL_UTIL_Calculate_Data_Rate
  • PRL_UTIL_Check_Timestamp_Age
  • PRL_UTIL_Convert_Command_for_Display
  • PRL_UTIL_Get_Control_Value
  • PRL_UTIL_Get_Real_Timestamp
  • PRL_UTIL_Split_Command
  • PTR_STR_Convert_SGL_Array_to_String
  • Time_Stamp_to_iso_8601_with_Millieseconds

STRONGgrid DLL VI

  • Connect_PDC
  • Disconnect_PDC
  • DLL_Shutdown
  • Get_Analog_config_Ver.3
  • Get_Header_Msg
  • Get_Phasor_Config
  • Get_PMU_Configuration
  • Get_Real_PMU_Data
  • poll_PDC_With_Data_Waiting
  • Read_Configuration
  • Start_Data_Stream
  • Stop_Data_Stream

Buffer and Queue

  • PRL_Software_Documentation
  • Get_PRL_Access_Queue
  • PL_Signal_Create_Waveform_Array
  • PRL_Buffer_Cut_from_Analog_2D_Array
  • PRL_Buffer_Cut_from_Complex_2D_Array
  • PRL_Buffer_Cut_from_Digital_2D_Array
  • PRL_Channel_Selector
  • PRL_Check_Bad_dt
  • PRL_PMU_Status
  • PRL_Read_Queue
  • PRL_Reader_Buffer
  • PRL_Remote

TDMS Application

  • Create_log_File_Path
  • TDMS_Data_Logger
  • Write_to_TDMS
  • Write_Data_to_TDMS

Open PMU

  • Code_Flow_Chart
  • Main_Single_Phase
  • Main_Three_Phase
  • General_Startup
  • PIC_Microcontroller
  • 10_DAQ_Config
  • 11_DAQ_Config
  • 20_Limit_180_Degrees
  • 21_Symmetrical_Components
  • 22_Average_Frequnecy
  • 23_Input_Scaling
  • 24_Global_Front_Panel
  • 30_GPS_Time_Fetch
  • 31_GPS_Interrupt_RS232_Read
  • 32_GPS_Time_Code_Parser
  • 33_GPS_Time_to_Labview_Time
  • 34_GPS_Time_from_Config
  • 40_Config_File_Path
  • 41_Config_File_Write_GPS_Time
  • 42_Config_File_Read_GPS_Time
  • 43_Config_File_Get_Input_Scales
  • 44_Config_File_Read_Telecoms
  • 50_NMEA_Clac_Checksum

S3DK_GUI

This VI shows the data being outputted by a PMU. The VI has visual indicators for the values of phasor data as well as CPU usage.

  • Buttons:
  • Startup: Creates initial connection to the PMU, automatically connects if data is being streamed on local connection.

  • Abort: Ends connection to the streaming connection

  • Pause: Pauses the data stream.

  • Shutdown: Stops the GUI entirely

  • Restart: Restarts the connection

  • Configuration: Allows for set up of a PMU server such as setting IP and port numbers.

  • Quit: Stops data collection and exits the program

1Data RateThe number of data frames received per second
2Software ActivityIndicates the current operations, if any. Ready otherwise.
3Time StampThe time stamp of the latest received data frame.
4Access Buffer Write RateIndicates how much time the software spends on writing data to the access buffer.
5Bad dt CounterIndicates how much time the software spends on writing data to the access buffer.
6Data quality IndicatorShows the percentage of missing data. The maximum value of the indicator is 50%.
7Data frame Processing RateIndicates the amount of time that the software spends on processing data frames. 0 means no data is coming and hence that the data stream has stopped. 100 means data processing is continuous, and hence that there is an incoming data overload.
8Channel SelectorOpen/close the Channel Selector window
9Raw Data IndicatorOpen/close the raw data display
10Status IndicatorsIndicates the status of the connection and of the software. Hold the mouse pointer over the different lights to see what they mean.

Indicators from top to bottom:

  1. Initialize

  2. Autostart

  3. Bad Data Removal

  4. Access Buffer Active

  5. Queue Active

  6. Manual Control

  7. PDC connection initialization

  8. PDC connected

  9. Configuration File recieved

  10. Configuration File Timeout

  11. Configuration File Read

  12. PDC connected

  13. Shutdown

The main window is depicted above. Press "run" (the arrow to the upper left) to start the PRL, which will now look like this:

Press the Config button to open the Configuration Window.

The Connection tab always shows first. Enter the IP-address, Port and PDCID of the connection, and press OK.

Now press Startup to activate the connection. The PRL will retry the connection until it comes alive. If it does not work, press Abort to cancel or press Quit directly.

NOTE: If the IP-address and/or the port is invalid, this will cause Labview to hang for a while. Problem is solved by waiting a bit, or restart.

If there is a problem with the connection, use the PMU Connection tester to verify that the connection settings are correct. The signals should arrive fine there before you try to connect with the PRL.

When the connection is active, the Pause and Shutdown buttons are activated and the indicators will show activity. This means data is available and can be retrieved from the Access Buffer.

Hold the mouse pointer over the different indicators and buttons to see what they do, if this is unclear, or look at the detailed description below.

Press Shutdown to stop the data stream and Quit to exit the application.

1Incoming DataBlinks when data is received
2Data to BufferBlinks when data is transferred from live buffer to access buffer
3System ActivitySystem Activity
4System ExitSystem Exit
5ProcessingProcessing
6Data LostData lost on the way to the access buffer
7Data ReceivedData received in the access buffer

Configuration

Connection

Connection Settings contain the IP-address, Port and PDC ID of the PMU/PDC. These are the same as would be set in the PMU Connection Tester.

The Autostart feature determines whether the connection will be made automatically on software startup (this means that when calling the PRL remotely, it is sufficient to send the "Run" command. The "Startup" command automatically follows).

Buffer and Queue

The Live Data Buffer Size sets the number of data frames that will be read from the incoming data before the data is passed on to the Access Buffer and/or the output queue. This may be set to 1, which means the data will go directly to the buffer/queue. Using values above 1 may however prove appropriate for data efficiency purposes. The size of this buffer will determine the maximum usable refresh rate when reading data from the Access Buffer.

Access Buffer Size determines the amount of data made available to the client application.

Queue Active and Access Buffer Active switches off/on the respective data streams.

Data Points indicates the actual amount of data frames contained in the Access Buffer, and the LED to the right indicates whether the combination Live Data Buffer Size, Access Buffer Size and PMU/PDC data rate gives an integer amount of data points. In other words it indicates if the length of the data buffer, in time, is in fact the length stated in Access Buffer Size.

Bad Data

When a signal is missing, the phasors coming from a PMU is typically 0, but may also be 1. Sometimes the signal is maxed out. The same goes for the analog frequency signal. When the signal is missing, it might give an output of 50 Hz flat instead of 0 Hz. It is therefore difficult to determine if the signal is valid based on limits. Instead the software is set to compare succeeding data points, and if enough of them are equal the signal is treated as invalid, and the data is replaced with NaN's until the values come alive.

A certain type of PMU’s gave some problems with this solution. Since the resolution of the signal was quite low, steps were visible when looking closely at the signal. This resulted in the software somtimes producing invalid frequency signals—even when the number of allowed data points was set to 50.

When setting these values, care should therefore be taken with the frequency signal. Make sure the signal is floating or set the number of allowed data points high.

dt Toleranceis the accepted slide in time between two data frames. The GPS clocks that PMUs use to synchronize has an accuracy of one microsecond. The default ten microseconds is therefore a good start.

Advanced

Wait for Config Timeout decides for how long the software should wait for the PDC/PMU to supply a configuration file, and Seconds to Try is the time it will continue to look for the configuration file. If no configuration is received, Seconds to Wait if Config Fails determines how long the software will wait before retrying.

Max Time Stamp Age Before Reconnect is the the maximum allowed lag of the incoming PMU-data to the system clock of the computer running the PRL. The background for this is that if the PDC restarts, the PRL wil not automatically continue reading the data stream. Instead it requires a new connection.

Poll New Data Timeout is how long each check for a newly arrived data frame waits. This number affects the Data Frame Processing Rate.

Data Rate History is the number of data points used to determine how busy the software is (Data Frame Processing Rate). The timeout in the procedure waiting for new data to arrive is 5 ms. If more than 5 ms passes before the software receives new data, this counts as a no data period. The history of data/no data gives a percentage of time used on processing data, and a low value will mean the data stream has stopped, while a high value will mean too much processing power is used on processing data. This may also indicate that the computer is overloaded with other tasks.

If the Data Frame Processing Rate peaks at 100, this means all power is used on processing data and it indicates that data may be piling up in the DLL buffer and that there is a risk of eventually loosing data. If this happens, it could for example indicate that the Client is using too much resources on processing. The Data Frame Processing Rate is not the same as CPU Usage. It is an artificial, yet good, indicator of how stressed the PRL is. A good number is 30 to 60.

← Setting_MemoryCalculate_Activity →
  • Connection
  • Buffer and Queue
  • Bad Data
  • Advanced
Documentation
Specific Github links
S3DK-STRONGgridS3DK
Links to stuff
LMGTFYBasic Info for PMURensselaer Polytechnic InstituteAlset Lab
Docusaurus Resources
Docusarus websiteGitHubStar
Facebook Open Source
Copyright © 2019 Rensselaer Polytechnic Institute