Topic RSS17:23, EET
November 12, 2025
OfflineHello,
we use the UAClient for a connection to a siemens CPU 1500. I think i use everyting correct for the connection, but in the CPU-Diag are errors:
incorrect use of service read in session ….
————————————-
Description in Siemens:
An OPC UA client attempted to call a service. One or more nodes could not be found in the address space of the CPU’s OPC UA server, or one of the parameters used was incorrect. This can lead to high communication load.
Resolution:
– Delete the missing objects from the client configuration
– Add the missing objects to the server or the standard server interface (SIMATIC namespace)
– Correct the service call for clients that sent services with invalid parameters.
————————————
The NodeIDs are correct, the App get correct values from the Subscription.
10:55, EET
December 21, 2011
OfflineThanks for the report.
I believe this is due to the client initialisation, when it tries to use standard nodes that are not supported by the server. Do you have any more details about the NodeIds that it complains about?
I wouldn’t worry too much, if you have correct nodes in monitoring in any case.
15:59, EET
November 12, 2025
OfflineHello!
Unfortunately, the PLC does not indicate which nodes are causing problems.
Here are the 2 Nodes the app ask for, located in memo1:
nsu=http://www.siemens.com/simatic-s7-opcua;s=”DB_P01A01_TankManagement”.”Tank_T1101″.”OUT”.”Weight”
nsu=http://www.siemens.com/simatic-s7-opcua;s=”DB_P01A03_TankManagement”.”Tank_T1302″.”OUT”.”Weight”
and here is the code:
procedure TForm1.Button1Click(Sender: TObject);
var
ANodeid: TUaNodeId;
ANode_string: string;
i: integer;
MonitoredDataItem: IUaMonitoredDataItem;
Subscription: TUaSubscription;
begin
UaClient1.ServerAddress.URI := Edit1.text;
UaClient1.Connect;
Subscription := TUaSubscription.create;
UaClient1.AddSubscription(Subscription);
Subscription.TimestampsToReturn := ttrBoth;
Subscription.PublishingInterval := 1000;
Subscription.LifeTimeCount := 70;
Subscription.MaxKeepAliveCount := 20;
Subscription.MaxNotificationsPerPublish := 0;
Subscription.Priority := 0;
Subscription.PublishingEnabled := true;
Subscription.BeginUpdate;
for i := 0 to Memo1.lines.count – 1 do
begin
ANode_string := trim(Memo1.lines[i]);
if ANode_string ” then
begin
ANodeid := UaClient1.namespaceTable.ParseNodeId(ANode_string);
MonitoredDataItem := TUaMonitoredDataItem.create(ANodeid);
MonitoredDataItem.OnDataChange := MDataItem_onchangeOnDataChange;
MonitoredDataItem.SamplingInterval := 1000;
MonitoredDataItem.QueueSize := 3;
Subscription.AddItem(MonitoredDataItem);
end;
end;
Subscription.endUpdate;
for i := 0 to Memo1.lines.count – 1 do
begin
ANode_string := trim(Memo1.lines[i]);
if ANode_string ” then
begin
ANodeid := UaClient1.namespaceTable.ParseNodeId(ANode_string);
memo3.lines.add(ANodeid.ToString+’: ‘+UaClient1.ReadValue(ANodeid).ValueAsString);
end;
end;
end;
10:30, EET
December 21, 2011
OfflineYeah, it’s none of the nodes that you are reading. The SDK tries to read a lot of OPC UA standard nodes at the connection phase. But not all servers implement these and this is natural. So you can just ignore the warning from the PLC. They don’t cause any real problem, since the SDK only tries to read them once at connect.
1 Guest(s)

Log In
Register