Matlab executable throws error in opc.ua.Client

5 vues (au cours des 30 derniers jours)
Andreas Pfeffer
Andreas Pfeffer le 6 Sep 2024
I used MATLAB Compiler (2022b) to deploy a small algorithm that grabs data over the matlab opc-ua interface. So i used the icomm\opc...On the computer where i have all the toolboxes the executeable can be run without throwing an error. But when i run it on another computer, where i installed the 2022b runtime i get the following error-stack:
file: C:\Programm Files\MATLAB\MATLAB Runtime\R2022b\mcr\toolbox\icomm\opc\opc\+opc\+ua\Client.m
name: Client.Client
line: 386
I tried it on severals pc´s, only when there is also a matlab license of the toolbox containing the opc-ua it works.
Can someone please give me a hint how i can solve the problem.
  4 commentaires
Steven Lord
Steven Lord le 8 Sep 2024
Can you show the code for the method in which you create the opc-ua connection?
Andreas Pfeffer
Andreas Pfeffer le 8 Sep 2024
I just use the connect function of matlab.
Here is the code:
obj.client = opcua(hostname,portNr);
obj.client.setSecurityModel('None')
%Connect client to server
connect(obj.client);
One additional information: I checked the availability of the opc-ua server with UA-Expert on all computers when i tried to run the exe-file. So, the connection is OK (checked with UA-Expert), but on every computer i´ve tried to run it with the mcr 2022b, the error above was thrown. The line 386 of the error suggests a wrong server, port or datatype of these parameters, but they are read out by the same json-file as on the computer where is runs without any trouble.

Connectez-vous pour commenter.

Réponses (2)

Image Analyst
Image Analyst le 8 Sep 2024
Modifié(e) : Image Analyst le 8 Sep 2024
Try including that file explicitly in your compilation, something like
mcc yourapp.m -a " C:\Program Files\MATLAB\MATLAB Runtime\R2022b\mcr\toolbox\icomm\opc\opc\+opc\+ua\Client.m"
but actually you must change the path to what it is on your computer, not the target computer, so it will find it.
  4 commentaires
Andreas Pfeffer
Andreas Pfeffer le 9 Sep 2024
Thank you for your answer and the interesting link.
I found 2 files called Client.m on different paths inside the MATLAB folder of the target computer:
  1. C:\Program Files\MATLAB\MATLAB Runtime\R2022b\mcr\toolbox\icomm\opc\opc\+opc\+ua\Client.m
  2. C:\Program Files\MATLAB\R2022b\mcr\toolbox\icomm\opc\opc\+opc\+ua\Client.m
A binar comparison shows differences in those files...
I also found a link in the CTF folder which links to the 1. file.
I tried the dependency walker but, to be honest, i cannot read out anything from the detected erros, which name some missing dll-files.
Image Analyst
Image Analyst le 9 Sep 2024
I don't know what that thing is. It's not something that shows up as an applet inside MATLAB is it? Does it have it's own GUI? Because I think applets on the Apps tab of the tool ribbon cannot be included in a standalone executable. Otherwise I'd try to recompile with the latest R2024a and try that. If that doesn't work, call tech support.

Connectez-vous pour commenter.


Stefanie Schwarz
Stefanie Schwarz le 16 Sep 2024
The error in line 386 of "opc.ua.Client" indicates that there might be an issue with resolving the OPA UA endpoint hostname. See the following MATLAB Answer for more info:

Produits


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by