DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Chanel Event function

Solved!
Go to solution
Solution
Accepted by emendezcampa

Hi Estefania,

 

The error you got was due to the fact that some channels were analyze which had no 0..1 or 1..0 transitions in them.  I ammended to code to just ignore such channels.  I also changed the code to only analyze channels based on whether the channel name contained a particular ChnNameMatch string in it (the string comparison is carried out in lower case always).  I also edited the code to flag channels that were filtered with a "Filtered" text in their "Description" property, so you can easily see if a channel has been filtered by the script.  You will need to change line 2 below to the "savings" string or any other you want to analyze-- there were no such channels in the 2 data files you sent me.

 

MinDuration = 100 '60*60 ' seconds
ChanNameMatch = "boiler 1 m2g"
WndShow "VIEW"
Set Group = Data.Root.ActiveChannelGroup
Set TimeChannel = Group.Channels(1)
FOR Each BoolChannel In Group.Channels
  IF InStr(LCase(BoolChannel.Name), ChanNameMatch) > 0 THEN
    ChnComment(BoolChannel) = "Filtered"
    EventList = ChnEventDetectionWindow(TimeChannel, BoolChannel, 0.5, 1.5)
    nMax = ChnEventCount(EventList)
    FOR n = 1 TO nMax
      P1 = EventList(n-1, 0)
      P2 = EventList(n-1, 1)
      Duration = TimeChannel.dValues(P2) - TimeChannel.dValues(P1)
      IF Duration < MinDuration THEN
        Call BoolChannel.SetValues(0.0, P1, P2-P1+1, 0)
      END IF
    NEXT ' n
    EventList = ChnEventDetectionWindow(TimeChannel, BoolChannel, -0.5, 0.5)
    nMax = ChnEventCount(EventList)
    FOR n = 1 TO nMax
      P1 = EventList(n-1, 0)
      P2 = EventList(n-1, 1)
      Duration = TimeChannel.dValues(P2) - TimeChannel.dValues(P1)
      IF Duration < MinDuration THEN
        Call BoolChannel.SetValues(1.0, P1, P2-P1+1, 0)
      END IF
    NEXT ' n
  END IF ' BoolChannel
NEXT ' BoolChannel

I also changed the DataPlugin to use the text to the left of the pipe character ("|") in the channel name as the group name.  This made it easier for me to use the same VIEW layout to analyze multiple CSV files from you.  Please detach and double-click on the attached newer version of the emendezcampa_CSV data file, click on the "Yes" button to overwrite the previous version, then use this DataPlugin whenever you load these data files.

 

Brad

0 Kudos
Message 11 of 12
(1,588 Views)

Many thanks Brad. Everything works now.

 

Regards

 

Estefania

0 Kudos
Message 12 of 12
(1,568 Views)