нефтехимическое производство

Оглавление сайта

Главная

  Приветствие

  Что нового

  Системные требования

  Общая блок-схема

  Запуск программы

  Панель "Расчет"

  Панель "Аппараты"

  Панель "Потоки"

  Панель "Схема"

  Встроенный Паскаль

  Работа с AutoCAD

  Объектная модель

  Оглавление банка ФХС

  Как создать библиотеку

  Подключение библиотеки

  Как собрать схему

  Выполнение расчета

  Структурный анализ

  Отладка

  Загрузка и сохранение

  Итерационные расчеты

  Работа с ФХС

  Использование в учебном процессе

  Синтез аммиака

  Синтез метанола

  Производство бензола

  Производство азотной кислоты

  Производство серной кислоты

  Процесс Клауса

  Контакты

  Как получить программу

  Лицензия

Скачать

Видеоурок

Объектная модель Komfort
Previous   Top   Next


Объектная модель Komfort
            
            Программа Komfort является OLE-сервером, с помощью его объектной модели можно получить доступ к описанию потоков и аппаратов схемы. В принципе, этот доступ предоставляется любой программе, поддерживающей работу с объектами Active X, в качестве примера можно назвать среды VBA в AutoCAD и Excel.
            Откройте книгу Excel, в ней - проект VBA (Макросы/Проект VBA). Щелкните пункт меню Tools(Сервис) / References (Ссылки). В открывшемся списке поставьте галочку на библиотеке Komfort2011  Library
graphic  
Теперь в проекте VBA, в пункте меню View/Object Browser Вы можете просмотреть объектную модель этой библиотеки
graphic
Модель состоит из объектов:
Application со свойствами и методами:
             FileName          имя текущего файла описания схемы (read/write)
             Load                 загрузить файл описания схемы (см.свойство FileName )
             Save                 сохранить файл описания схемы (см.свойство FileName )
             Execute           выполнить расчет всей схемы
             Common("Name")           глобальные variant-значения расчета схемы (read/write)
             Text                  текст описания схемы
             Apps                 коллекция аппаратов схемы - объектов App
             Flows               коллекция потоков схемы - объектов Flow
             AppIndex          номер текущего(выбранного пользователем) аппарата (1,2...)
             FlowIndex         номер текущего(выбранного пользователем) потока (1,2...)
             I = AppIndexOf("Caption")          номер аппарата (1,2...) по наименованию, если не найден, то 0
             I = FlowIndexOf("Caption")         номер потока (1,2...) по наименованию, если не найден, то 0
             ClearAll         очистить схему, удалить все потоки и аппараты
             Set xFlow = AddFlow "Тип потока", "Имя потока", массив_значений_параметров         добавить новый поток в схему и задать его параметры
             Set xApp = AddApp "Тип аппарата", "Имя аппарата", массив_значений_параметров, массив_имен_вх_потоков, массив_имен_вых_потоков         добавить новый аппарат в схему, задать его параметры, входные и выходные потоки

Коллекции Apps и Flows имеют свойства
             Count              число элементов в коллекции
             Item (номер или наименование) элемент коллекции, соответственно,
                                    объект типа App   или Flow

Объект App - аппарат имеет свойства:
             Index                                                                 номер аппарата в схеме
             TypeName                                                         наименование типа аппарата
             Caption                                                             наименование аппарата в схеме
             Text                                                                  текст описания аппарата
             Count                                                                число параметров аппарата
             Value (номер от 1 до Count)                              значения параметров аппарата (read/write)
             ItemName (номер от 1 до Count)                      наименования параметров аппарата
             InputCount                                                        число входных потоков
             Input (номер от 1 до InputCount)                       номера входных потоков аппарата
             InputName (номер от 1 до InputCount)              наименования типов входных потоков
             OutputCount                                                    число выходных потоков
             Output (номер от 1 до OutputCount)                 номера выходных потоков аппарата
             OutputName (номер от 1 до OutputCount)        наименования типов выходных потоков
             Execute                                                             рассчитать один аппарат
                        
Объект Flow - поток имеет свойства:
             Index                                                                номер потока в схеме
             TypeName                                                         наименование типа потока
             Caption                                                             наименование потока в схеме
             Text                                                                  текст описания потока
             Count                                                                число параметров потока
             Value (номер от 1 до Count)                              значения параметров потока (read/write)
             ItemName (номер от 1 до Count)                      наименования параметров потока
             Into                                                                   номер аппарата,откуда выходит поток
             From                                                                 номер аппарата, куда входит поток

Свойства аппаратов и потоков Value( номер ) - read/write, остальные свойства - readonly.


            Пример 1 - распечатка списка аппаратов схемы Sub TestApp() Debug.Print "--- Аппараты схемы ---" Dim xKom As New Komfort2011.Application Dim xApps As Komfort2011.Apps Set xApps = xKom.Apps Dim I As Integer, N As Integer N = xApps.Count For I = 1 To N Dim xApp As Komfort2011.App Set xApp = xApps.Item(I) Debug.Print "Aппарат[" & I & "] """; xApp.Caption; """ типа "; xApp.TypeName Dim K As Integer For K = 1 To xApp.Count Debug.Print " Параметр[" & K & "] "; xApp.ItemName(K); " = "; xApp.Value(K) Next K Debug.Print " Входные потоки:" For K = 1 To xApp.InputCount Debug.Print " "; xApp.InputName(K); " = поток[" & xApp.Input(K) & "]" Next K Debug.Print " Выходные потоки:" For K = 1 To xApp.OutputCount Debug.Print " "; xApp.OutputName(K); " = поток[" & xApp.Output(K) & "]" Next K Next I End Sub

            Пример 2 - распечатка списка потоков схемы Sub TestFlow() Debug.Print "--- Потоки схемы ---" Dim xKom As New Komfort2011.Application Dim xFlows As Komfort2011.Flows Set xFlows = xKom.Flows Dim I As Integer, N As Integer N = xFlows.Count For I = 1 To N Dim xFlow As Komfort2011.Flow Set xFlow = xFlows.Item(I) Debug.Print "Поток[" & I & "] """; xFlow.Caption; """ типа "; xFlow.TypeName; " выходит из "; xFlow.From; ", входит в "; xFlow.Into; " аппарат" Dim K As Integer For K = 1 To xFlow.Count Debug.Print " Параметр[" & K & "] "; xFlow.ItemName(K); " = "; xFlow.Value(K) Next K Next I End Sub

            Пример 3 - создание и расчет схемы Sub TestCreateSchema() Dim xKom As New Komfort2011.Application 'Очистим схему xKom.ClearAll Dim xApp As App, xParams, xInputs, xOutputs, xFlow As Flow 'Добавим в схему поток П1 ReDim xParams(1 To 8) xParams(1) = 100 xParams(2) = 4 xParams(3) = 303 xParams(4) = 0 xParams(5) = 0 xParams(6) = 0.3 xParams(7) = 0.3 xParams(8) = 0.4 Set xFlow = xKom.AddFlow("Flow", "П1", xParams) 'Добавим в схему аппарат ДУБЛЬ с вх.потоком П1 и выходным П2 ReDim xParams(1 To 5) xParams(1) = 0 xParams(2) = 45000 xParams(3) = 0 xParams(4) = 4 xParams(5) = 313 ReDim xInputs(1 To 1) xInputs(1) = "П1" ReDim xOutputs(1 To 1) xOutputs(1) = "П2" Set xApp = xKom.AddApp("ДУБЛЬ", "Мой дубль", xParams, xInputs, xOutputs) ' 'Рассчитаем аппарат xApp.Execute 'Пустой массив: ReDim xParams(0 To 0) End Sub

Объектная модель Komfort в ДЕМО-версии отключена.

 

Объектная модель Komfort
Previous   Top   Next