• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
CDP Studio logo

CDP Studio

The no-code and full-code software development tool for distributed control systems and HMI

  • Doc
  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Products
    • Automation Designer
    • HMI Designer
    • Maritime HMIs
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Framework - Sequencer
  • Grouper

Grouper

Grouper

The Grouper is a sequencer block, that receives input events and aggregates (reorders) them by some key argument field (or multiple fields) value.

The Group block is useful to reorder the randomly ordered events based on some value in the events. The block collects these events and creates groups of events for every key value. The block will emit the collected events to the output group-by-group when either Flush event is received or the group size has reached the MaxCount attribute value.

Events

NameInput/OutputDescription
DataInputIncoming events with data arguments to be collected and sent out grouped (by GroupBy argument(s))
FlushInputWill cause all collected events to be sent out (grouped by GroupBy argument(s))
GroupedDataOutputGrouped (by GroupBy argument) events
GroupDoneOutputWill be sent out after all GroupedData events for one group (by GroupBy argument(s)) has been sent out
FlushedOutputWill be emitted after Flush done

Arguments

NameDescription
Any user-configurable input argument (or multiple arguments)Argument(s), whose value will be used to group the incoming events. Note, that the argument(s) has(have) also to be selected as the key using the GroupBy attribute. Note also, that the argument(s) must be selected as data for Data and GroupedData events. This is done by clicking into the event's Data property and by selecting the argument name.

Properties

NameDescription
GroupBySets the argument (or multiple arguments) name in Data to group the output by
MaxCountWhen not zero, sets the maximum number of data to aggregate before sending it to GroupedData

Example

For example, let's assume we have configured a Grouper block with Signal and Value arguments and set the GroupBy attribute to Signal.

The following table shows some example events that were sent to the block and also the corresponding output events that were emitted by the block in response:

Timestamp (in increasing order)Input event (with argument values)Output event (with argument values)
`T_1`Data (Signal=Sig1,Value=1.23)
`T_2`Data (Signal=Sig2,Value=12.34)
`T_3`Data (Signal=Sig1,Value=1.38)
`T_4`Data (Signal=Sig2,Value=12.12)
`T_5`Data (Signal=Sig1,Value=1.13)
`T_6`FlushGroupedData (Signal=Sig1,Value=1.23)
GroupedData (Signal=Sig1,Value=1.38)
GroupedData (Signal=Sig1,Value=1.13)
GroupDone
GroupedData (Signal=Sig2,Value=12.34)
GroupedData (Signal=Sig2,Value=12.12)
GroupDone
Flushed

The content of this document is confidential information not to be published without the consent of CDP Technologies AS.

CDP Technologies AS, www.cdpstudio.com

Get started with CDP Studio today

Let us help you take your great ideas and turn them into the products your customer will love.

Try CDP Studio for free
Why CDP Studio?

CDP Technologies AS
Hundsværgata 8,
P.O. Box 144
6001 Ålesund, Norway

Tel: +47 990 80 900
E-mail: info@cdptech.com

Company

About CDP

Contact us

Services

Partners

Blog

Developers

Get started

User manuals

Support

Document download

Release notes

My account

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

© Copyright 2025 CDP Technologies. Privacy and cookie policy.

Return to top