Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Subscribing more items in Turbo Delphi 2006

More
07 Mar 2018 14:15 #6115 by oleg.rosa@seznam.cz
Isolated property solved my problem. :D
How simple...
Different sampling rates is good idea.
I use IPC (industrial computer) and MLC (motion logic control) from Bosch Rexroth.
Thank you very much for your help.
BR
Olin

Please Log in or Create an account to join the conversation.

More
07 Mar 2018 09:26 #6114 by support
On the OPC side of things, your ClientA, ClientB, ClientC, ClientD act as a single client.
Read:
Setting Isolated property to True should resolve it.

Another "work around" might be to force usage of separate subscriptions in a single UA session/EasyUAClient object by using slightly different subscription parameters - such as sampling rates of 997, 998, 999 and 1000 milliseconds, instead of just 1000 milliseconds for all the items.

Which OPC server are you connecting to please?

Best regards

Please Log in or Create an account to join the conversation.

More
06 Mar 2018 20:21 #6113 by oleg.rosa@seznam.cz
I need subscribe to OPC UA Server ca. 3000 variables in cycle.
The Server allows max. 2000 items per one subscription.
When I use code in my program, see bellow, the Server returns only 2000 items on they change.
When I run my program twice (two instancies at the same time), the Server returns 2x2000 items (2000 in each program).
I need create two instancies of subscription for the server, but by another way than in the code below, probably.
Any idea?
procedure TForm1.SubscribeDataChange;
begin
  ClientA := TEasyUAClient.Create(nil);
  ClientEventHandlers1 := TClientEventHandlers.Create;
  ClientA.OnDataChangeNotification := ClientEventHandlers1.OnDataChangeNotification;
 
  ClientB := TEasyUAClient.Create(nil);
  ClientEventHandlers2 := TClientEventHandlers.Create;
  ClientB.OnDataChangeNotification := ClientEventHandlers2.OnDataChangeNotification;
 
  ClientC := TEasyUAClient.Create(nil);
  ClientEventHandlers3 := TClientEventHandlers.Create;
  ClientC.OnDataChangeNotification := ClientEventHandlers3.OnDataChangeNotification;
 
  ClientD := TEasyUAClient.Create(nil);
  ClientEventHandlers4 := TClientEventHandlers.Create;
  ClientD.OnDataChangeNotification := ClientEventHandlers4.OnDataChangeNotification;
 
  Try
    while (.....) do
    begin
      if (iRowNr1 <= 1000) then
      begin
        ClientA.SubscribeDataChange(...);
      end
      else if (iRowNr1 <= 2000) then
      begin
        ClientB.SubscribeDataChange(...);
      end
      else if (iRowNr1 <= 3000) then
      begin
        ClientC.SubscribeDataChange(...);
      end
      else if (iRowNr1 <= 4000) then
      begin
        ClientD.SubscribeDataChange(...);
      end;
      iRowNr1:= iRowNr1 + 1;
    end;
  Except
 
  End;
end;
Thank you
BR
Olin

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.165 seconds