Replies: 4 comments 11 replies
-
the question is how dose the opc ua request look like compared to the other if you investigate with wireshark -> with that we can crosscheck to opc ua spec what it should be! |
Beta Was this translation helpful? Give feedback.
-
OK, thanks for the quick feedback. I will try to produce this information, using Wireshark. Just for information, I added a print statement in “asyncua/server/address_space.py” in the “_call()” function, to see what is received, in this case from Softing and from my open62541 client: Softing:
open62541 client:
|
Beta Was this translation helpful? Give feedback.
-
Thanks again Andreas. Would be interesting to know if this is an issue to be fixed in open62541. In order for us to proceed, we will try to find a work-around in the open62542 client. Note: We're using the open62541 client with the OPC UA server on Beckhoff Soft-PLCs (TwinCAT). |
Beta Was this translation helpful? Give feedback.
-
Folks, I'm facing exactly the same issue. FYI, UaExpert is following the standard (ie., providing an empty list as input argument). More details at open62541/open62541#5627 |
Beta Was this translation helpful? Give feedback.
-
I’m trying to invoke a method in an OPC UA server based on opcua-asyncio.
When trying to invoke a method with no arguments from the open62541 client, defined like this:
@uamethod
def RPC_Init(self, parent):
…
I get the following error:
Traceback (most recent call last):
File …/address_space.py", line 587, in _call
result = await self._run_method(node.call, method.ObjectId, *method.InputArguments)
TypeError: Value after * must be an iterable, not NoneType
The problem is that when there are no arguments for the method call, open62541 submits “nullptr” for the arguments, which ends up being a “NoneType” in the Python code.
So far, I have found no way (no workaround) to avoid this in the open62541 client.
I should mention that this works with the Softing OPC UA client SDK. I.e., for methods having no arguments, this ends up being an empty list or tuple.
For the purpose of testing, I implemented a small work-around in “asyncua/server/address_space.py” (my modifications marked with “# <<<<<”):
whereby it is checked if “method.InputArguments” is “None” and if yes, it is redefined to become an empty list.
Then it works.
My question now is, what is the proper solution to this issue:
Thanks in advance for any help to resolve this issue!
Beta Was this translation helpful? Give feedback.
All reactions