PDA

Просмотр полной версии : Передача параметров между скриптами C#



BigBelka
15.07.2025, 11:57
Добрый день,
задача - передать параметры между скриптами C#. Чтобы один скрипт вычислил некие значения, записал их на выход, а следующий скрипт смог к ним обратиться.
Примеры кода, которые нашла на форуме не работают. В чем может быть ошибка?


var elem=HostFB.OutputGroup.GetPin("parameterName").Tr eePinHlp;
if (elem!=null)
double val=Convert.ToDouble(elem.GetRTPin().ObjectValue);

melky
15.07.2025, 12:23
double val - оно же private по умолчанию. Вы к нему потом хотите обратиться из другого скрипта ?

Ну и это не внутри кода должно быть, переменная вроде должна быть объявлена до кода скрипта как public.

з.ы. не знаю архитектуру скриптов MasterScada. Что справка об этом говорит?

SCADAMaster
15.07.2025, 13:18
Добрый день,
задача - передать параметры между скриптами C#. Чтобы один скрипт вычислил некие значения, записал их на выход, а следующий скрипт смог к ним обратиться.

Вам нужно обратится к выходу другого скрипта напрямую? Связь выход с входом скрипта не устраивает?
Посмотрите пример:
https://support.mps-soft.ru/MasterSCADAHelp/index.html?sluzhebnie_skript_rukovodstvo_i_primery _obrashchenie_k_peremennym_proekta_polucheniya_zna cheniya_peremennoj.html
https://support.mps-soft.ru/MasterSCADAHelp/index.html?sluzhebnie_skript_rukovodstvo_i_primery _obrashchenie_k_peremennym_proekta_perebor_peremen nyh.html
Так можно обращаться к любой переменной - в том числе и к выходу скрипта.

BigBelka
15.07.2025, 15:27
Благодарю, разобралась. Необходимо указывать полный путь к переменной, даже если она объявлена в одном объекте:

var item1 = (ITreePinHlp)HostFB.TreeItemHlp.Project.Item("Объект.Объект1.Скрипт1.Выходы.Результат");

Связь входа и выхода тоже можно использовать, просто хотелось явно объявить все в коде