New in the Community? Get started here

Schneider Electric Exchange Community

Discuss and solve problems in energy management and automation. Join conversations and share insights on products and solutions. Co-innovate and collaborate with a global network of peers.

Register Now
Geo SCADA Expert Forum
cancel
Showing results for 
Search instead for 
Did you mean: 
Lt. Commander

[import] Generating Event runtimes from SQL data.

>>Message imported from previous forum - Category:Scripts and Tips<<
User: ROVSCADAENGINEER, originally posted: 2019-05-21 03:46:58 Id:428
Problem:

When an overflow is detected at a site or several sites 161 to be exact. The time the overflow event occurs over needs to be reported for each site. I am doing this by not using accumulators but using SQL to reduce system assignment of points.

Currently the SQL collects the start and end times of all the points on the system where an overflow occurs. I understand I may be able to present this data by manipulating the code using SQL and rearranging the table. however I am not very adept at SQL manipulation. I can do this somewhat in VBA however. there are two approaches to this the way I see it.

****Approach 1: ****

use VBA to extract the SQL code from an object such as an embedded list on the mimic. (If possible how?)

then

manipulate the data from extracted table to sum sites with same id timestamps together and rebuild a new table based on this information.

Display the new table using VBA code

'With Data_table.ListBox1'

****Approach 2****

Use SQL manipulation to build a new table. write to the existing list through existing table data, a new list with format

Site Runtime
xxxx xxxxxxxxx
xxxx xxxxxxxxx

The current code and layout can be seen below with extracts of the format of current. I will post solutions if I find one in the meantime.

Final Note.

I am thinking that the SQL method would be quicker and more agile yet this takes more skill in SQL. what are peoples thoughts or methods? How would you solve this issue?

****CODE: ****

SELECT
RECORDTIME, SOURCE, MESSAGE, USER, CATEGORY, FOREGROUND, SEQNO, COMMENTNO, ID
FROM
CDBEVENTJOURNAL
WHERE
SEVERITY = 'Critical' AND SOURCE LIKE '%Overflow Float' AND ( RECORDTIME BETWEEN { OPC 'H-14D' } AND { OPC 'H' } )

****
Resulting output: ****

![]((see attachments below) jc/f205iurw64am.png "")

 

 


Attached file: (editor/jc/f205iurw64am.png), SQL manipulation.PNG File size: 55450


Reply User: sbeadle, posted: 2019-05-22 10:56:31
Accumulators are not points! i.e. they do not consume a licensed point.


Reply User: GregYYC, posted: 2019-05-22 16:33:38
A Crystal Report license might help you create carve up the results a little more elegantly, or you could use the EXCEL data access components to create a pivot table. Either way you're likely wanting to use the "Group By" function.

A schedule email report using Crystal reports would be my suggestion.


Reply User: ROVSCADAENGINEER, posted: 2019-05-23 00:11:09
Thanks for the intel guys much appreciated