Показано с 1 по 10 из 14

Тема: API-документация для написания C#-скриптов в MasterSCADA 4D

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Будет ли (или есть) возможность создать/вызвать некую winform (именно свою) c элементами интерфейса, произвести операции в ней с чем то (например с БД)?

  2. #2

    По умолчанию

    Цитата Сообщение от BorschovAN Посмотреть сообщение
    Будет ли (или есть) возможность создать/вызвать некую winform (именно свою) c элементами интерфейса...
    Такая возможность есть и сейчас.
    1. Создаете проект в VS, тип проекта - Библиотека классов. В самом проекте создаете нужную вам форму. Собираете проект и получаете .dll-файл.
    2. В MasterSCADA создаете скрипт, в окне редактирования скрипта, справа внизу выбираете вкладку "Ссылки на dll", на которой справа вверху кнопка "Добавить" (в виде плюса"). Нажимаете и выбираете .dll-файл с вашей библиотекой формы. Это действие скопирует ваш .dll-файл в каталог текущего проекта MasterSCADA (каталог \<Имя проекта>\dll_dt\).
    3. Пропишите само название вашей .dll-ки во вкладке "Ссылки на dll". Также во вкладке "Пространства имен" пропишите использование вашего namespace'a.
    4. В скрипте вызовите объект вашей формы:
    Код:
    public override void DoAction()
    {
      MyForm form = new MyForm();
      form.Show();
    }
    Пробовал вышеописанный метод для WPF, получилось.

    Не отходя от кассы, задам вопросы, которые появились при проведении вышеописанных манипуляций (не к автору вышеуказанного сообщения, а к разработчикам MasterSCADA).
    Вопрос #1: При использовании собственной DLL в MasterSCADA, эта DLL ищется либо в папке текущего проекта (каталог \<Имя проекта>\dll_dt\), либо в папке с самой СКАДой (каталог \MPSSoft\MasterSCADA 4D 1.2\bin\), однако это не всегда удобно, т.к. сам скрипт, использующий кастомную DLL, может находится в пользовательской библиотеке (каталог \Users\Public\Documents\MasterSCADA4D1.2\Libraries \<Имя библиотеки>\). Можно ли заставить MasterSCADA искать DLL-ки в пользовательской библиотеке, не трогая environment variables ОС?
    Вопрос #2: Для запуска собственной формы из скрипта MasterSCADA, использовалась пользовательская библиотека классов WPF, собранная для .NET Core 3.1. Однако если собрать эту же библиотеку для .NET 5.0 или выше, то при компиляции скрипта вываливалась ошибка о несовместимости версий. Есть ли какие-нибудь конкретные требования/ограничения на подключаемые собственные DLL-ки?

    Цитата Сообщение от BorschovAN Посмотреть сообщение
    ... произвести операции в ней с чем то (например с БД)?
    Не очень понял вопроса, с БД можно работать и без MasterSCADA?
    Если имеется ввиду взаимодействие собственной формы с проектом MasterSCADA (именно с проектом, на этапе его создания/редактирования, т.к. скрипты не предназначены для работы в run-time!, а для иного есть ФБ), то есть два варианта:
    Вариант 1: Часть логики будет в самой кастомной форме, а часть - в скрипте. Взаимодействие между логиками через поля и события кастомной формы.
    Вариант 2: Вся логика в кастомной форме, в нее же передаются данные о проекте - ссылка на экземпляр класса InSAT.Framework.Script.UI.Services.ScriptBase.
    НО! Это все теория, на практике не проверял .

Похожие темы

  1. Документация MasterSCADA и MasterOPC
    от SCADAMaster в разделе Master SCADA 4D
    Ответов: 46
    Последнее сообщение: 07.03.2024, 03:49
  2. Ответов: 23
    Последнее сообщение: 03.11.2019, 23:43
  3. Программы для написания эл.схем
    от pasha250383 в разделе Трёп (Курилка)
    Ответов: 13
    Последнее сообщение: 19.07.2014, 19:25
  4. Ответов: 2
    Последнее сообщение: 25.02.2011, 11:59
  5. Ответов: 0
    Последнее сообщение: 21.02.2011, 14:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •