Hello.
QuickOPC works on a higher level. OPC groups are a mechanism for physically grouping the items mainly for communication efficiency. QuickOPC hides the OPC groups from the API that is exposed to you. QuickOPC manages the groups automatically behind the scenes. Oversimplifying a lot, it basically creates puts items with the same or similar parameters into the same group, and creates new groups when new parameters are needed.
There should be no need to even know about the groups. When you are subscribing to an item, you specify the parameters that you require for that item subscription. Some parameters are completely "useless" - for example, the group name has no significance to how things work.
"Deactivating" can be done either via unsubscribing, or by calling ChangeSubscription/ChangeMultipleSubscriptions and specifying a new update rate as Timeout.Infinite (-1).
Note that for efficiency, if you have more items, it is highly recommended that you assemble the items and parameters upfront, and then make a call to SubscribeMultipleItems, instead of calling SubscribeItem in a loop. Here is an example:
partial class SubscribeMultipleItems
{
public static void Main()
{
using (var easyDAClient = new EasyDAClient())
{
easyDAClient.ItemChanged += easyDAClient_ItemChanged;
easyDAClient.SubscribeMultipleItems(
new[] {
new DAItemGroupArguments("", "OPCLabs.KitServer.2", "Simulation.Random", 1000, null),
new DAItemGroupArguments("", "OPCLabs.KitServer.2", "Trends.Ramp (1 min)", 1000, null),
new DAItemGroupArguments("", "OPCLabs.KitServer.2", "Trends.Sine (1 min)", 1000, null),
new DAItemGroupArguments("", "OPCLabs.KitServer.2", "Simulation.Register_I4", 1000, null)
});
Console.WriteLine("Processing item changed events for 1 minute...");
Thread.Sleep(60 * 1000);
}
}
// Item changed event handler
static void easyDAClient_ItemChanged([NotNull] object sender, [NotNull] EasyDAItemChangedEventArgs e)
{
Console.WriteLine("{0}: {1}", e.Arguments.ItemDescriptor.ItemId, e.Vtq);
}
More examples are in the solution with examples that comes with the product (for C#, or VB.NET). The above example only specifies the update rate but no deadband. If you look at the documentation of the DAItemGroupArguments (
opclabs.com/files/onlinedocs/QuickOpc/Latest/Reference/Quick...733-c6c5-7d18-05680744e95c.htm), you will find more constructors, or settable properties, that allow you to specify the deadband as well (it is one level further down - under the GroupParameters property of the DAItemGruopArguments).
I hope this helps.