由带有 OPC 的 matlab deploytool/compilation 生成的独立应用程序在主机系统中失败
Standalone application generated by matlab deploytool/compilation with OPC fails in host system
我的 matlab 应用程序通过提供输入和获取输出与 dymola 软件(用于动态 modeling/simulation/calculation)通信。在 Matlab 命令 window 中一切正常。在 matlab 中开发的独立应用程序(使用应用程序编译器)在与其开发的系统相同的系统中运行良好。
一旦我在没有完整安装 matlab 的情况下将应用程序(带有 matlab 运行时)安装到主机系统中,OPC 代码就会失败。
* 代码 developed/compiled 在:Windows 10 Pro,
* 部署 to/Host 系统:Windows 10 Pro,
* Matlab 版本 2017b
* OPC 工具箱版本 4.0.4
* Matlab 运行时 9.3
OPC代码片段如下:
%% File: SetupOPCDA_MatlabDymolaConnection()
try
%opcregister('install')
hostInfo = opcserverinfo('localhost');
disp(hostInfo.ServerID);
da = opcda('localhost','Dymosim.OPCServer.1');
% Connect to Dymola OPC server
connect(da);
grp = addgroup(da);
ns = getnamespace(da);
catch Err % line 33
下面给出的输出来自 运行 从主机系统命令行生成的 exe 文件。
它因错误而失败:
OPC Foundation Core Components not installed. Run OPCREGISTER to install the OPC Foundation Core Components.
取消注释行 opcregister('install')
我收到以下错误(请注意我是来自命令行的 运行 exe):
Setting OPC connection...Warning: OPC Core Components are already installed. Reinstalling may require a repair of the Core Components.
Continuing this operation will modify any OPC Foundation files already installed.
MATLAB may shut down, and a system reboot may occur.
Type 'Yes' (exactly as shown) to install the OPC Foundation files
Confirmation string: Yes
'Yes' is not recognized as an internal or external command,
operable program or batch file.
Operation cancelled by user.
给出的行是:opcregister('install','-silent')
错误:
Warning: OPC Core Components are already installed. Reinstalling may require a repair of the Core Components.
TWarning: Installation was not successful. Exit code was 1619.
OPC Foundation Core Components not installed. Run OPCREGISTER to install the OPC Foundation Core Components.
为了比较,这是我在我的系统中得到的输出,代码是在其中开发和编译的:
OPC working fine, Gives server names as outputs
'Matrikon.OPC.Simulation.1' 'Dymosim.OPCServer.1'
在开发者系统中运行良好,但在主机系统中失败。
我可以通过手动安装 OPC core components 来解决问题。
在 运行 Matlab exe 之前安装它们,解决了问题。
P.S。下载OPC核心组件前需要先创建账号。
我的 matlab 应用程序通过提供输入和获取输出与 dymola 软件(用于动态 modeling/simulation/calculation)通信。在 Matlab 命令 window 中一切正常。在 matlab 中开发的独立应用程序(使用应用程序编译器)在与其开发的系统相同的系统中运行良好。 一旦我在没有完整安装 matlab 的情况下将应用程序(带有 matlab 运行时)安装到主机系统中,OPC 代码就会失败。 * 代码 developed/compiled 在:Windows 10 Pro, * 部署 to/Host 系统:Windows 10 Pro, * Matlab 版本 2017b * OPC 工具箱版本 4.0.4 * Matlab 运行时 9.3
OPC代码片段如下:
%% File: SetupOPCDA_MatlabDymolaConnection()
try
%opcregister('install')
hostInfo = opcserverinfo('localhost');
disp(hostInfo.ServerID);
da = opcda('localhost','Dymosim.OPCServer.1');
% Connect to Dymola OPC server
connect(da);
grp = addgroup(da);
ns = getnamespace(da);
catch Err % line 33
下面给出的输出来自 运行 从主机系统命令行生成的 exe 文件。 它因错误而失败:
OPC Foundation Core Components not installed. Run OPCREGISTER to install the OPC Foundation Core Components.
取消注释行 opcregister('install')
我收到以下错误(请注意我是来自命令行的 运行 exe):
Setting OPC connection...Warning: OPC Core Components are already installed. Reinstalling may require a repair of the Core Components.
Continuing this operation will modify any OPC Foundation files already installed.
MATLAB may shut down, and a system reboot may occur.
Type 'Yes' (exactly as shown) to install the OPC Foundation files
Confirmation string: Yes
'Yes' is not recognized as an internal or external command,
operable program or batch file.
Operation cancelled by user.
给出的行是:opcregister('install','-silent')
错误:
Warning: OPC Core Components are already installed. Reinstalling may require a repair of the Core Components.
TWarning: Installation was not successful. Exit code was 1619.
OPC Foundation Core Components not installed. Run OPCREGISTER to install the OPC Foundation Core Components.
为了比较,这是我在我的系统中得到的输出,代码是在其中开发和编译的: OPC working fine, Gives server names as outputs
'Matrikon.OPC.Simulation.1' 'Dymosim.OPCServer.1'
在开发者系统中运行良好,但在主机系统中失败。
我可以通过手动安装 OPC core components 来解决问题。
在 运行 Matlab exe 之前安装它们,解决了问题。
P.S。下载OPC核心组件前需要先创建账号。