Просмотр полной версии : Ошибка: Библиотека CmpSysExec не установлена в системе. Подскажите, как решить
Таргет файлы нужной версии(3.5.17.31) у меня установлены. Пытался по инструкции из https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_CmpSysExec_v3.0.pdf добавить библиотеку, но ошибка не пропала. когда пытаюсь скачать её через "загрузку отсутствующих библиотек" пишет "загрузка не удалась". подскажите, что ещё можно сделать
77226
Евгений Кислов
12.07.2024, 19:33
Таргет файлы нужной версии(3.5.17.31) у меня установлены. Пытался по инструкции из https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_CmpSysExec_v3.0.pdf добавить библиотеку, но ошибка не пропала. когда пытаюсь скачать её через "загрузку отсутствующих библиотек" пишет "загрузка не удалась". подскажите, что ещё можно сделать
77226
Добрый день.
Судя по скриншоту - у вас выбран таргет-файл "cтарой" СПК (времен 3.5.4.x).
Нужная там версия CmpSysExec доступна по ссылке:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library
ВладОвен
03.12.2024, 22:36
Подскажите, а как с помощью библиотеки CmpSysExec передавать в Linux команды, в которых содержится кириллица?
Возможно ли для этого использовать CmpSysExec.sysExecute5?
aaaSashaMGGU
04.12.2024, 09:00
Подскажите, а как с помощью библиотеки CmpSysExec передавать в Linux команды, в которых содержится кириллица?
Возможно ли для этого использовать CmpSysExec.sysExecute5?
Как-то так
У всех sysExecute принцип одинаковый. Нужна UTF8
Вот мой живой пример:
//Внутренние параметры
VAR
//Имя БД в UTF8
sBD_Name_UTF8: STRING(255);
//Имя файла в UTF8
sFileName_UTF8: STRING(255);
//ФБ для отправки команд на контроллерную консоль
fbSe4: CmpSysExec.SysExecute4;
END_VAR
//Константы
VAR CONSTANT
//Команда отправки на контроллерную консоль
sCommand: STRING(255) := 'bsqldb -S read -q -t $';$' -U sa -P mypassword -D #BD_NAME# -i #FILE_NAME#';
END_VAR
//Имя БД в правильной кодировке UTF8
STU.ConvertUTF16toUTF8(ADR(sBD_Name), ADR(sBD_Name_UTF8), SIZEOF(sBD_Name_UTF8), FALSE);
sCommand_Real := OSU.ReplaceSubstring(sCommand, '#BD_NAME#', sBD_Name_UTF8);
//Имя файла в правильной кодировке UTF8
STU.ConvertUTF16toUTF8(ADR(sFileName), ADR(sFileName_UTF8), SIZEOF(sFileName_UTF8), FALSE);
sCommand_Real := OSU.ReplaceSubstring(sCommand_Real, '#FILE_NAME#', sFileName_UTF8);
//Блок отправки команды через контроллерную консоль
fbSe4
(
xExecute := fbRiseEdge.Q, //Запуск на исполнение по переднему фронту
sCommand := sCommand_Real, //Команда Linux - например 'ls /'
xAbort := FALSE, //Аварийный останов процесса
sOutput => ResultString, //Массив строк для сохранения вывода процесса
cntReadStr => CountOfStrings,//Количество считанных строк вывода процесса
xOverFlow => , //Признак переполнения массива sOutput
xDone => xDone, //Признак завершённости процесса и/или того, что в данный момент не выполняется процесс Linux
xAborted => , //Признак прерывания по пользовательской команде
xError => xError, //Признак невозможности запуска из-за возникновекния ошибки
xBusy => xBusy, //Процесс выполняется
eErrorCode => //Код ошибки
);
ВладОвен
04.12.2024, 11:58
ок. Спасибо.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot