Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SPbGLTU_SimInTech_2020

.pdf
Скачиваний:
36
Добавлен:
03.12.2024
Размер:
10.45 Mб
Скачать

6.6. Настройка запуска сетевого расчета в автоматизированном режиме

Использование распределенной модели позволяет на разных узлах сети запускать разные проекты или пакеты проектов, которые будут взаимодействовать между собой через общесистемную базу данных. Ранее уже был рассмотрен вариант сетевого расчёта в ручном режиме. Однако он требовал выполнения достаточно большого объема дополнительных действий, которые должны быть выполнены на каждом из сетевых компьютеров.

На каждом из сетевых узлов надо было загрузить среду SimInTech, открыть нужный проект, выполнить его начальную инициализацию. И только после выполнения всех этих процедур на всех компьютерах появлялась возможность запустить с основного проекта всю распределенную модель в работу.

Если эти процедуры выполняются достаточно часто, то естественным становится желание их как-то упростить, а еще лучше централизовать их выполнение на одном из узлов сети, который отвечал бы за запуск в работу сразу всей распределенной модели. Реализовать такую централизацию управления в SimInTech можно, если использовать режим работы, который получил название сетевого расчета в автоматизиро-

ванном режиме.

Для организации процедуры автоматизированного запуска распределённой сетевой модели в работу в состав пакета SimInTech имеются две вспомогательные утилиты − это «Сервер удалённого расчёта» и «Утилита массового запуска и синхронизации». (рис. 6.34).

Рис. 6.34. Утилиты для сетевого расчета в составе пакета SimInTech.

Их совместное использование позволяет настроить работу распределенной модели в сети. Сервер удалённого расчёта является не-

121

большой программой, которая воспринимает команды, поступающие по сети от утилиты массового запуска и синхронизации. Для успешной работы распределенной модели сервер удалённого расчёта должен быть запущен на каждом из компьютеров, участвующих в распределённом расчете. Это можно выполнять вручную или для удобства работы поместить его в автозапуск. При его запуске в области уведомлений Windows появится соответствующая иконка (рис. 6.35).

Утилита массового запуска и синхронизации позволяет в автоматизированном режиме с одного узла сети отправлять команды на исполнение сразу нескольким адресатам, то есть в разные узлы в сети. На каждом из сетевых узлов эти команды, созданные в формате командной строки Windows, принимают запущенные на этих узлах серверы удалённого расчёта, которые и запускают принятые команды на выполнение. Настройку и работу сетевого расчета в автоматизированном режиме рассмотрим на той же модели, которую уже использовали при сетевом расчете в ручном режиме. Вспомним, что последними действиями в этом режиме был запуск проектов на узлах сети с использованием команд и ярлыков. При этом для загрузки проекта на узел сети предлагалось использовать команды в формате командной строки Windows.

Рис. 6.35. Запуск нового процесса при старте сервера удаленного расчета.

122

Именно такие действия и выполняет утилита массового запуска и синхронизации. Но принципиальное отличие состоит в том, что утилита эти действия выполняет удаленно и при этом посылает команды сразу на все узлы сети.

Для того, чтобы организовать работу распределенной модели, необходимо на каждом компьютере выполнить запуск SimInTech с соответствующим файлом проекта и опцией /start, которая обеспечит его инициализацию.

Ввиду того, что рассматриваемый пример использует общесетевое хранилище данных, формат команд запуска проектов имеет однотипную структуру. Поэтому в утилите массового запуска достаточно создать только один шаблон запуска, а именно:

mstarter.exe /nomainform

“\\VBOXSVR\server\\%command%”.prt /start;

Хочется обратить внимание на то, что шаблон команды в своем составе содержит макроподстановку %command%. Вместо нее в процессе работы утилиты подставляется имя конкретного проекта, который должен быть загружен на конкретном сетевом узле.

Соответствие между именем проекта и сетевым адресом узла, точно так же, как и сам шаблон команды, должны быть прописаны в настройках утилиты. В частности, для того, чтобы ввести шаблон команды надо:

открыть утилиту массового запуска и синхронизации;

перейти на вкладку «Настройки»;

в поле «Шаблоны команд» ввести нужный шаблон команды

(рис. 6.36).

Следует отметить, что в поле «Шаблоны команд» можно вводить несколько шаблонов, разделителем для них является символ точки с запятой. Идентификатором каждого шаблона является номер строки, на которой он находится. При этом нумерация строк, а следовательно и шаблонов, доступных в утилите для использования, начинается с нуля.

Что касается остальных параметров вкладки «Настройки», то в данном случае их можно не изменять. Однако задержку переключения лучше увеличить до 2000-3000 мсек. Эта настройка задает длительность паузы, которую выдерживает утилита между отправкой команд на разные сетевые узлы. В более общем случае настройка задержек определяется экспериментально и зависит как от сложности проектов, так и скорости работы компьютеров.

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

123

роваться другие проекты. Чтобы установить очередность загрузки проектов, а также адреса узлов, на которых эти проекты открываются, надо перейти на вкладку «Экраны», и задать три строки (рис. 6.37).

Рис. 6.36. Задание шаблона команд в утилите удаленного запуска задач.

Рис. 6.37. Задание имен проектов, выполняемых на узлах сети.

124

Именно строки вкладки «Экраны» определяют последовательность загрузки того или иного проекта на тот или иной узел сети. Точнее говоря, они определяют не саму загрузку проектов, а последовательность отправки команд на узлы с заданными адресами. При этом на узел расчета отправляется команда, которая соответствует заданному номеру шаблона, и в которой макроподстановка %command% будет заменена на значение из третьего столбца таблицы, а получателем команды является узел с адресом из первого столбца.

Закончив выполнения всех этих настроек, можно нажать кнопку «Запустить все», и утилита удаленного запуска задач обеспечит последовательную отправку команд на все узлы сети, где начнется загрузка проектов. После успешной инициализации всех проектов, кнопки Пуск/Пауза/Стоп главного компьютера позволят управлять сетевым расчётом (рис. 6.38).

Кнопкой «Выгрузить всё» обеспечивается завершение работы SimInTech на всех сетевых узлах. По нажатию этой кнопки фактически отправляется шаблон команды остановки на все вычислительные узлы.

Рис. 6.38. Запуск распределенной модели на трех сетевых машинах.

Есть возможность избавиться от необходимости нажатия кнопки «Пуск» основного проекта, например, если компьютер, на котором запущен основной проект, находится достаточно далеко, или у основного проекта вообще нет меню и кнопки «Пуск». В этом случае используется иной подход к запуску распределенной модели. Достаточно сформировать еще один шаблон запуска

mstarter.exe/nomainform“\\VBOXSVR\server\\%command%”.prt /start;

125

mstarter.exe/nomainform“\\VBOXSVR\server\\%command%”.prt /run

и изменить номер строки шаблона в первой строке на закладке «Экраны»

(рис. 6.39).

Рис. 6.39. Использование двух шаблонов при запуске сетевого расчета.

Меняя адреса компьютеров в настройках закладки «Экраны», можно удаленно с одного рабочего места добиться совершенно другого распределения проектов по узлам сети. С клиентами никаких проблем не возникнет, но некоторые сложности возникнут с основным проектом. Он настроен как сервер сетевого обмена, а для подключения клиентов к нему использован адрес 192.168.56.101. Поэтому, если изменять место работы основного проекта, то надо менять и привязку клиентов к серверу сетевого обмена, чтобы обеспечить нормальную работу базы данных сигналов.

Самый простой, не вызывающий проблем вариант, если утилиту запуска настроить на запуск всех трех проектов на компьютере 192.168.56.101. Также проблем не будет, если основной проект оставить на этом компьютере, а выполнение сразу двух клиентских проектов перенести на другой узел сети (рис. 6.40).

Конечно, как иллюстрация работы и использования «Утилиты массового запуска и синхронизации», данный пример показателен, но практически не эффективен. Особенно при использовании виртуальных машин. Все дело в том, что запуская два проекта на одном узле, утилита посылает два раза команды на запуск проекта, каждая из которых подгружает в память компьютера свое ядро SimInTech. Проще сформировать файл пакета из этих двух проектов и прописать в утилите шаблон команды для запуска этого проекта.

Еще одной привлекательной стороной использования «Утилиты массового запуска и синхронизации» является возможность быстрой

126

адаптации модели под нестандартный режим эксплуатации или прикладного пользователя. Допустим, что существует полностью работающая сложная распределенная модель, а требуется провести ее презентацию, или предоставить конечному пользователю для обучения, знакомства или тестирования. Что такое SimInTech он не знает или не должен знать.

Рис. 6.40. Удаленный запуск распределенной модели на двух виртуальных машинах.

В этом случае требуется запустить на одном из сетевых компьютеров некую экранную форму, которая позволяет полноценно работать со сложной моделью, скрывая подходы к ее реализации. Для рассматриваемого примера такой экранной формой может основной проект, в котором скрыты или отключены все атрибуты SimInTech, а само окно схемы проекта действительно представляет собой форму определенного размера, расположенную в определенном месте экрана дисплея.

Для реализации этой задачи достаточно прописать еще одну строку шаблона команд на закладке «Настройки», которая имеет следующий вид:

"C:\SimInTech\bin\mstarter.exe" /nomainform /hidemenus "\\VBOXSVR\server\tank_db_main.prt" /nomenu /nopanels /noborder /top 0 /left 0 /width 600 /height 250 /run

127

После этого на закладке «Экраны» достаточно изменить номер строки шаблона у соответствующего проекта. Запустив распределенную модель в работу, вид экрана узла сети с основным проектом имеет вид как на рис. 6.41.

Рис. 6.41. Вид схемы проекта заданных размеров и положения на экране.

Что же привлекательного в этом подходе? Прежде всего то, что при следующем запуске этой распределенной системы этот проект можно запустить уже не в демонстрационном зале, а на компьютере разработчика или инженера со всеми открытыми меню и опциями SimInTech. А все что нужно сделать для этого, это в утилите массового запуска изменить в одной строке вкладки «Экраны» два параметра: номер строки шаблона и IP-адрес компьютера, где запускается проект.

Заключение

Среда динамического моделирования технических систем SimInTech позволяет на основе дружественного простого интерфейса создавать сложные распределенные проекты, использующие общую базу данных сигналов и обладающие богатыми средствами визуализации происходящих в работающей модели процессов, в том числе средствами анимации.

К сожалению, в силу сложившихся обстоятельств в отечественной высшей школе в настоящее время доминируют преимущественно зарубежные программы, в частности, при изучении дисциплин, связанных с автоматическим управлением, распределенной обработкой, используется в большинстве случаев зарубежное программное обеспечение, например, Simulink (MathLab), для которых выпущено большое количество электронных пособий и печатных учебных изданий. Применение зарубежных программных средств, при наличии не менее высокоэффективных отечественных программных продуктов, противоречит наметившейся в последнее время государственной экономической политике импортозамещения в различных отраслях народно-хозяйственной деятельности РФ, в том числе и в области информационных технологий в части программного обеспечения. SimInTech − среда визуального проектирования и программирования с русскоязычной обширной справочной системой и удобным для отечественных

128

пользователей интерфейсом, не уступающая по своим функциональным возможностям и характеристикам зарубежным аналогам.

Визуальные, интерактивные средства программирования, используемые в SimInTech, сопроводительная документация отличаются "прозрачностью" и доступностью для понимания, позволяют обучающимся, при наличии элементарных навыков работы в ОС Windows, за короткий срок изучить среду SimInTech и успешно в ней работать. Следует отметить, что ПО SimInTech совместимо с ОС "Гослинкус", являющейся дистрибутивом сертифицированной в России свободно и открыто распространяемой ОС Linux, что немаловажно при необходимости перехода с ОС

Windows на ОС Linux.

Для изучения методов математического моделирования автоматических систем и распределенной обработки данных в этих системах, предусмотренных рамками настоящего учебного пособия, достаточно знать основные принципы работы систем автоматизированного регулирования, а также иметь навыки работы в среде ОС Windows. В результате последовательного выполнения рекомендаций данного пособия, обучающиеся построили проект распределенной обработки, в котором применены средства анимированной визуализации, с возможностью изменять в ходе выполнения приложения значения основных его параметров, причем делать это независимо друг от друга на разных сетевых станциях.

Список литературы

1.Карташов Б.А., Шабаев Е.А., Козлов О.С., Щекатуров А.М.. Среда динамического моделирования технических систем SimInTech, − Москва: ДМК Пресс, 2017. – 423 с.

2.Баум Ф.И. Программное обеспечение SimInTech для программирования приборов систем управления / Ф.И. Баум, О.С. Козлов, И.А.Паршиков, В.Н. Петухов, К.А.Тимофеев, А.М. Щекатуров // Атомная энергия, 2012. Т.113. Вып.6 С.354-357.

3.Щекатуров А.М. Методика разработки функционального программного обеспечения АСУ ТП ЯЭУ с применением модельно-ориентированного подхода в SimInTech / А.М. Щекатуров, К.А. Тимофеев, О.С. Козлов // Университетский научный журнал. 2015. №15. С.80-87.

4.Справочная система SimInTech. 2017. [Электронный ресурс]. URL: http://simintech.ru/help/rus.

129

ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ...............................................................................................................................

3

1. ОСНОВЫ РАБОТЫ В SIMINTECH...................................................................................

6

1.1. Концепция создания комплексной модели объекта в среде SimInTech.......

6

1.2. Первый запуск SimInTech.................................................................................

7

1.3. Задание на лабораторную работу ..................................................................

13

2. РАЗРАБОТКА ПРОСТЕЙШИХ МОДЕЛЕЙ ..................................................................

14

2.1. Создание нового проекта схемы автоматики................................................

15

2.2. Начало создания модели системы управления клапаном .........................

16

2.3. Модификация модели системы управления клапаном .............................

21

2.4.Генерация кода на языке Си и внешней dll-библиотеки для алгоритма

управления клапаном .............................................................................................

24

2.5.Исследование работы клапана с алгоритмом управления из

подключаемой внешней dll-библиотеки...............................................................

27

2.6. Коротко о кодогенерации ...............................................................................

29

3. ПОСТРОЕНИЕ МОДЕЛИ УПРАВЛЕНИЯ ЗАЛИВКОЙ ЦИСТЕРН ..........................

30

3.1. Разработка модели заполнения и осушения цистерны ................................

31

3.2. Разработка алгоритма управления заполнением и осушением цистерны . 35

3.3. Задание на лабораторную работу ..................................................................

42

4. ОСНОВЫ АНИМАЦИИ БЛОКОВ И СОЗДАНИЯ СОБСТВЕННЫХ БИБЛИОТЕК45

4.1. Создание анимированного изображения для блока цистерн ......................

46

4.2. Подготовка блока для его включения в библиотеку....................................

53

4.3. Создание собственной библиотеки блоков...................................................

59

4.4. Задание на лабораторную работу ..................................................................

61

4.5. Пример разработки библиотечных блоков, моделирующих

работу

клапанов ..................................................................................................................

62

4.5.1. Блок субмодели.............................................................................................

63

4.5.2. Формирование графического контейнера для блока клапана ..................

64

4.5.3. Модификация графического контейнера блока клапана ..........................

67

5. ПРОСТЕЙШИЙ ПОДХОД К ОРГАНИЗАЦИИ РАСПРЕДЕЛЕННОГО СЕТЕВОГО

РАСЧЕТА.................................................................................................................................

71

5.1. Пример использования связи по UDP-протоколу ........................................

72

5.2. Использование UDP для построения распределенной модели управления

цистерной ................................................................................................................

76

5.3. Декомпозиция модели для ее распределенной работы................................

78

5.4. Задание на лабораторную работу ..................................................................

83

5.5. Настройка виртуальных машин для тестирования распределенных

проектов SimInTech ................................................................................................

87

5.6. Основные свойства UDP блоков SimInTech..................................................

90

5.6.1. Блок UDP-клиента ........................................................................................

90

5.6.2. Блок UDP-сервер ..........................................................................................

91

5.6.3. Блок «Мультиплексор» ................................................................................

92

5.6.4. Блок «Демультиплексор».............................................................................

92

130