Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Объектная модель в MasterScada 4D

  1. #1

    По умолчанию Объектная модель в MasterScada 4D

    Добрый день всем.
    Решил я сделать следующий шаг, сформировать законченный объект с SVG элементом.
    Как я по своей наивности вначале подумал.
    1) Создаю библиотечный объект
    2) В нем создаю окно и импортирую SVG объект, при импорте его параметризирую.
    3) Создаю стандартное окно
    4) Накладываю на него SVG объект и стандартные контролы.
    5) Прописываю интерфейс к объекту в виде функции
    6) Выходные параметры функции связываю с элементами моего составного объекта (параметры SVG объекта и параметры стандартных контроллов.

    Уффф. Ну далее стандартно:
    1) В проекте создаю главное окно.
    2) Перетаскиваю туда библиотечный объект (создаю экземпляр)
    3) Размещаю его на главном окне.
    4) Создаю переменную, и размещаю ее на главном окне как поле ввода
    5) Хочу ее связать с входным параметром моего экземпляра, который я из библиотеки перетащил.

    И тут возникают первые грабли, параметров у процедуры экземпляра нету. Связать не возможно. Вот такая хитрая объектность у МастерСкада 4D. Я слегка офигиваю -вообще говоря объектность MasterScada 4D везде рекламируется как ее основное достоинство !!
    Ладно - начинаю диалог с поддержкой. И получаю новую вводную, да параметры для процедуры экземпляра передать нельзя. Но можно сделать дополнительные переменные в библиотечном объекте (на уровне объекта). Связать их в библиотеке с параметрами процедуры. И вот их то (эти параметры) в экземпляре будет видно.
    Лады, делаю:
    1) Добавляю переменные в объект.
    2) Связываю их с параметрами процедуры. и параметрами SVG объектов и стандартых контроллов.
    3) В проекте управляющие переменные связываю с параметрами экземпляра.

    Запускаю. Уже лучше. Стандартные контроллы вполне управляются. А вот динамизация SVG элементов отсутствует как класс.
    Хотя все связи есть и значения переменных связанных с SVG элементами тоже есть, просто SVG объект их не видит.

    Понятно, крайних выход есть. Спользовать SVG объект чисто как подложку, без всякой динамизации. Просто тупо навесить на него стандартные контроллы. Но блин, обидно как то за державу. Больно какая то слабая объектная модель получается в MS 4D.

    По переписываюсь с поддержкой, по результатам отпишусь. А вообще неплохо было бы разработчикам MS 4D посмотреть например на объектную модель OpenScada. Там конечно тоже свои грабли есть, но объектность по крайней мере реальная.

  2. #2

    По умолчанию

    Поддержка сказала, что SVG объекты вязать с другимии объектами дерева проекта нельзя. Т.е. нет в составном объекте SVG элементов, есть объектная модель. Появился в нем SVG элемент - кончилась объектная модель. Т.е. Самое оптимальное - использовать SCG объект в качестве обоев, без параметризации. Ну или работать непосредственно с экземплярами.

  3. #3

    По умолчанию

    мне кажется что проблема в разной терминологии и разном смысле в двух одинаковых казалось бы словах " объект" :
    "Объект" - В Мастерскаде - если грубо то это совокупность сущностей мастерскады, организованный в дерево. Которые можно выводить в " библиотеки" и наследовать и так далее
    и
    "Объект" - в виде Svg файла с каким то набором своих параметров. - Это набор параметров для визуализации svg элемента.

    ну по-моему логично что Мастерскада "объект SVG" не считает за "Объект Мастерскады" . это разные сущности. одна из них может находится внутри объекта в части дерева "окно" или где то там ещё,
    но вполне логично что это абсолютно разные понятия,
    и нельзя объекту "слон" наследовать объект "крылья птицы" .
    это разные сущности.

  4. #4
    Пользователь
    Регистрация
    31.01.2019
    Адрес
    РФ/РБ
    Сообщений
    917

    По умолчанию

    SVG основан на XML, который поддерживает объектную модель.
    https://www.w3.org/TR/NOTE-SOX/

  5. #5

    По умолчанию

    Цитата Сообщение от keysansa Посмотреть сообщение
    SVG основан на XML, который поддерживает объектную модель.
    https://www.w3.org/TR/NOTE-SOX/
    ... Наверно удивлю, но XML на котором основан SVG поддерживает "объектную модель вообще как парадигму ооп" а не " Модель объектов мастерскада": это вообще абсолютно разные термины...
    более того,
    "Объектная модель ООП" и " Объектная модель" и " объектная модель xml" - это тоже три абсолютно разных термина означающих вообще разные вещи.

  6. #6

    По умолчанию

    Простите, но я сосдаю объект МастерСкада, который состоит из нескольких элементов. В частности один из этих элементов -SVG объект. ПО моему совершенно не логично, что появление SVG элемента в объекте МастерСкада убивает объект Максерскада.

  7. #7

    По умолчанию

    Цитата Сообщение от petr2off Посмотреть сообщение
    Простите, но я сосдаю объект МастерСкада, который состоит из нескольких элементов. В частности один из этих элементов -SVG объект. ПО моему совершенно не логично, что появление SVG элемента в объекте МастерСкада убивает объект Максерскада.
    Наверно снова вопрос в формулировках и терминологии.

    Если Вы берёте Объект Матсерскады, то в него можно добавить: Окно, Программу, СообщениеТревога, Параметр, Отчёт, или другой Объект мастерскады - вложенность.
    Вы не можете в создать Объект Мастерскады который состоит из элемента SVG. соответственно когда Вы пишите
    "Простите, но я сосдаю объект МастерСкада, который состоит из нескольких элементов. В частности один из этих элементов -SVG объект." - то это не так, такого в Мастерскаде нет.
    Повторюсь - потому что "Объект Мастерскады"- это термин МАстерскады. В этом термине нет "любого элемента" - в виде SVG, а в соответствии с иерархией есть четко заданные типы и SVG в его объявлении нет.


    Появление SVG объекта на Окне Мастерскады не убивает Объект Мастерскады. Вполне можно сделать объект Матсерскады, добавить в него Окно, положить на Окно Элемент SVG с какими то характиристиками и параметры. В этом же объекте можно сделать Параметры, которые связать со Свойствами SVG элемента. и полученный "Объект МАстерскады" вполне можно положить в Библиотеку и использовать его в понимании
    "Библиотечного объекта Мастерскады" - то-есть наследовать, тиражировать, инкапсулировать. и к примеру использовать на других окнах.
    и при этом какой элемент на окне не будет ничего убивать.

    Ваша фраза " ПО моему совершенно не логично, что появление SVG элемента в объекте МастерСкада убивает объект Максерскада." ввиду вышеописанного лишена смысла.
    этого нет, никакой элемент svg не может " убить" и даже " стереть" "Объект Мастерскады"

  8. #8

    По умолчанию

    Добрый день.
    Я думаю, что мы останемся каждый при своем мнении.
    Проблем с формулировками нет на самом деле. Мы говорим о Мастер Скада 4Д и соответственно объект имеется в виду МастерСкадаовский.
    Объект МасетрСкада - состоит из окон, процедур и переменных. В него кстати могут входить другие объекты МастерСкада, в том числе и встроенные. Но тема не о них.
    Далее, у меня в моем библиотечном объекте есть 2 окна, 1 процедура и 3 переменных. И это объект мастерскада. Все эти элементы увязаны мастерскадовскими механизмами.
    И вдруг оказывается, что если в одно окно импортируется SVG файл, причем через процедуру конвертации, то это окно перестает работать. Можно конечно придумывать всякие причины, но это просто существенная недоработка в реализации объектной модели.

  9. #9

    По умолчанию

    Добрый день. Выстроил я для себя наконец то свой вариант объектной модели в MasterScada (MS4D). Конечно, объектная парадигма в применении к MS4D не может быть канонической в любом случае. Но можно использовать инструменты Скада, для приближении к объектной модели.
    Прототипом класса в MS4D служит библиотечный объект. Экземпляр объекта генерируется при вставке объекта из библиотеки в проект.
    Объект в данном случае - это дерево, элементами которого могут быть окна, стандартные элементы, процедуры, параметры и другие объекты.
    Управление объектом в классике (по минимуму) осуществляется либо через атрибуты объекта "объект.атрибут", либо через метод объекта "объект.метод(параметры)".
    С атрибутами в MS4D - в общем то все в порядке, но есть 2 неудобства:
    1) При создании экземпляра из библиотечного объекта, параметры процедуры становятся недоступными. Т.е. управление через метод не возможно.
    2) В библиотечном объекте атрибуты окна нельзя связывать с элементами дерева проекта.
    Решение своеобразное. Можно в объекте заводить его параметры (атрибуты объекта), в окне заводит параметры окна, и вот их то можно связывать.
    Фактически получается следующее. Создаем параметры окна (WIn,WOm - входные, выходные), у процедуры есть параметрами по ее сути(PIn, POm - входные,выходные), и создаем параметры (атрибуты) объекта Ak). Атрибуты объекта связываем с параметрами процедуры (управление через метод) или с параметрами окна (управление через атрибуты).
    В проекте, в экземпляре объекта видны параметры экземпляра объекта, которые мы уже и связываем с данными системы, других объектов проекта.
    Т.е. в общем случае, один атрибут у меня получается, должен создаваться в 3-х экземпляпах:
    1) Параметр объекта
    2) Параметр процедуры
    3) Параметр окна.
    Например:
    1) В проекте у меня несколько экземпляров клапана.
    2) Один из параметров клапана (связываемый например с регистром Modbus) - регистр состояния, в котором упаковано с 10 битов, описывающих состояние клапана
    3) С параметра экземпляра, он перекидывается на параметр процедуры анализа состояния клапана.
    4) Процедура анализа выдает несколько переменных, для "динамизации" графики экземпляра, которые перекидываются на параметры окна.
    5) Параметры окна перекидываются на атрибуты графических элементов в него входящих.
    Уфффф. Может я как то сильно замудрил ?

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,653

    По умолчанию

    1) не совсем понятна суть, так как не работаю в MS4D - но может надо объявить ссылку на экземпляр объекта после его создания, чтобы воспользоваться его методами, точнее методами ссылочного экземпляра?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Вопрос по ПД200-ДД модель 155
    от tradtex в разделе Вопросы по эксплуатации датчиков
    Ответов: 2
    Последнее сообщение: 14.10.2021, 10:56
  2. 3Д модель СМИ1
    от Афанасьев Семён в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 20.04.2018, 11:04
  3. Скрипты и объектная модель MasterScada
    от anfaenger в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 29.10.2013, 14:50
  4. Новая модель НПТ
    от Адрей в разделе Разработки
    Ответов: 3
    Последнее сообщение: 19.11.2011, 20:02

Ваши права

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