Автономное приложение, сгенерированное Matlab deploytool / compilation с OP C, не работает в хост-системе - PullRequest
1 голос
/ 19 февраля 2020

Мое приложение matlab связывается с программным обеспечением dymola (для динамического c моделирования / симуляции / расчета), предоставляя входные данные и выбирая выходные данные. Все отлично работает в командном окне Matlab. Автономное приложение, разработанное в Matlab (с использованием компилятора приложений), прекрасно работает в той же системе, в которой оно было разработано. Как только я устанавливаю приложение (с Matlab Runtime) в хост-систему без полной установки Matlab, OP C код не работает * Код разработан / скомпилирован в: Windows 10 Pro, * развернут на / хост-систему: Windows 10 Pro, * Matlab версия 2017b * OP C набор инструментов версии 4.0.4 * Matlab runtime 9.3

Фрагмент кода OP C выглядит следующим образом:

%% 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.

Для сравнения: это вывод, который я получаю в моей системе, тот, в котором код был разработан и скомпилирован: OP C работает нормально, выдает имена серверов как выходные данные

'Matrikon.OPC.Simulation.1'    'Dymosim.OPCServer.1'

Он отлично работает в системе разработчика, но не работает в хост-системе.

1 Ответ

0 голосов
/ 29 февраля 2020

Мне удалось решить проблему, установив OP C основные компоненты вручную.

Установка их перед запуском Matlab exe, решила проблему.

PS Вам необходимо создать учетную запись перед загрузкой основных компонентов OP C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...