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