Просмотр полной версии : ФБ "Запуск процесса"
Alexandr
03.04.2012, 10:54
Добрый день!
Есть потребность использовать самописное приложение, как дополнение к скаде.
Реализуется без проблем.
Вопрос в следующем.
ФБ "Запуск процесса" копирует запускаемый exe-файл в папку, куда установлена Скада.
Дело в том, что мое exe приложение использует библиотеки, которые прописаны относительными адресами (т.е. библиотеки должны находиться в одной папке с exe файлом).
В принципе, я могу установить свое приложение (с библиотеками) в папку с MS, но логично предположить, что структурно мастерскада и мое приложение должны быть расположены в разных папках.
Хотелось бы узнать, чем обусловдена такая особенность этого ФБ?
SCADAMaster
03.04.2012, 11:02
Мы не наблюдали такого поведения данного ФБ.
Если указать полный путь к приложению, то оно никуда не копируется.
Alexandr
03.04.2012, 12:14
Извиняюсь, что ввел в заблуждение. ФБ работает нормально.
Тему можно удалить.
Спасибо.
Alexandr
05.04.2012, 09:32
Можно ли в ФБ "Запуск процесса" присвоить Имя команды из другой переменной (с выхода)?
SCADAMaster
05.04.2012, 09:40
Для этого нужно использовать входы данного ФБ. Задаете в настройках количество параметров, а затем формируете маску в строке аргументов или команды.
Вызовите справку к данному ФБ - там все описано.
Alexandr
05.04.2012, 10:32
Имя команды: {0}
Количество параметров: 1
Показывать окно: Истина
Строка аргументов:
С Параметр0 установлена связь, в него передается адрес приложения D:\prog.exe
При вызове ФБ в статусе ошибки выдается следующее:
System.ComponentModel.Win32Exception: Не удается найти указанный файл
в System.Diagnostics.Process.StartWithCreateProcess( ProcessStartInfo startInfo)
в System.Diagnostics.Process.Start()
в System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
в InSAT.Library.ProcessHlp.StartProcessWithoutOutput (ProcessStartInfo startInfo, String& output, String& errors)
В справке не удалось найти подробного описания на этой случай.
SCADAMaster
05.04.2012, 11:35
Это ошибка. Мы ее устраним.
Пока что можем предложить использовать модуль "Скрипт C#".
Код пример такой (код запускается по переднему фронту входа "Параметр1"):
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using System.Linq;
using System.Diagnostics;
public partial class ФБ : ScriptBase
{
bool? M=false;
public override void Execute()
{
if (Параметр1==true && M==false)
{
ProcessStartInfo infoStartProcess = new ProcessStartInfo();
infoStartProcess.WorkingDirectory = @"C:\";
infoStartProcess.FileName = @"C:\Prog.exe";
Process.Start(infoStartProcess);
}
M=Параметр1;
}
}
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot