AnyLogic
.docИзмените диаграмму процесса
Измените свойства объекта networkSeize. С помощью этого объекта мы хотим моделировать вызов доктора (с точки зрения сетевых ресурсов этот блок должен теперь захватывать помимо статического ресурса процедурной комнаты еще и движущийся ресурс типа "врач" и переносной типа "офтальмоскоп"). Введите {procRooms, doctors, scopes} в поле Список ресурсов {pool1, ...}. Теперь этот блок будет захватывать не один, а три ресурса трех разных типов.
Измените диаграмму процесса. Вставьте новые объекты, как показано на рисунке:
Измените свойства первого добавленного нами объекта типа NetworkSendTo (названного на рисунке с диаграммой процесса sendToStorage). Объект NetworkSendTo направляет (перемещает) сетевые ресурсы из их текущего местоположения в другое место сети, указанное пользователем. В нашем случае мы хотим отослать захваченные ресурсы (а именно - врача, поскольку другие занятые для этого пациента ресурсы сами перемещаться не могут) в комнату хранения оборудования для того, чтобы взять там свой офтальмоскоп (тот, который был ранее занят этим пациентом с помощью объекта networkSeize). Задайте следующие свойства объекта:
Назовите объект sendToStorage.
В поле Список ресурсов {pool1, ...} укажите, какие именно ресурсы Вы хотите перемещать с помощью этого блока. Введите здесь {doctors}.
Выберите опцию К захваченному ресурсу, чтобы ресурсы перемещались к захваченному ранее ресурсу (в нашем случае - офтальмоскопу).
Укажите имя ресурса, к которому будут перемещаться ресурсы. Введите в поле Ресурс имя объекта, задающего ресурс типа "офтальмоскоп": scopes.
Измените свойства следующего объекта типа NetworkSendTo, названного на рисунке с диаграммой процесса sendToPatient). Этот блок моделирует перемещение врача с офтальмоскопом к пациенту, ждущему в приемном покое. Задайте следующие свойства объекта:
Назовите объект sendToPatient.
Задайте список ресурсов, которые этот объект будет перемещать. Введите {doctors, scopes} в поле Список ресурсов {pool1, ...}
В параметре Отсылать ресурсы выберите опцию К заявке. Тем самым мы задаем в качестве адреса движения ресурсов местоположение занявшей их заявки.
Измените свойства объекта NetworkAttach. Этот блок присоединяет указанные сетевые ресурса (из числа ранее захваченных заявкой) к этой заявке. В результате присоединения они будет перемещаться вместе с заявкой (сопровождать ее в виде "эскорта") до тех пор, пока они не будут отсоединены от этой заявки или освобождены. Вы можете присоединять к заявке только те ресурсы, которые в текущий момент захвачены этой заявкой и находятся в том же самом узле сети, где и она. С помощью этого блока мы присоединим ресурсы врача и офтальмоскопа к заявке-пациенту, так что при перемещении пациента в процедурную комнату перемещаться будут все вместе. Задайте следующие свойства объекта:
В параметре Присоединять выберите опцию Все захваченные ресурсы в месте нахождения заявки. Блок NetworkAttach позволяет присоединять к заявки не только все, но и определенные выборочные ресурсы - в этом случае Вам было бы нужно выбрать опцию Заданные ресурсы и указать их в расположенном ниже поле Список ресурсов {pool1, ...}.
Измените свойства объекта NetworkDetach. Этот блок отсоединяет от заявки ранее захваченные и присоединенные нестатические сетевые ресурсы. Отсоединенные ресурсы будут по-прежнему захвачены заявкой, но уже не будут следовать вместе с ней при ее перемещении в другие узлы сети. Нам нужен этот блок для того, чтобы после проведения процедуры офтальмоскопии пациент мог покинуть отделение, а врач мог отнести офтальмоскоп на место и перейти к осмотру следующего пациента или вернуться в ординаторскую. Задайте следующие свойства объекта:
Выберите опцию Все присоединенные ресурсы.
Измените свойства последнего добавленного нами в диаграмму процесса объекта типа NetworkSendTo. С помощью этого блока мы хотим промоделировать то, как врач возвращает офтальмоскоп в комнату хранения инструментов после проведения процедуры осмотра пациента. Задайте следующие свойства объекта:
Назовите объект returnScope.
Задайте список ресурсов, которые этот объект будет перемещать. Введите {doctors, scopes} в поле Список ресурсов {pool1, ...}.
В параметре Отсылать ресурсы выберите опцию В заданный узел.
Укажите имя узла, куда будут перемещаться ресурсы. Введите storageRoom в поле Узел.
Мы закончили создание простейшей модели отделения офтальмологии. Запустите модель. Теперь Вы можете увидеть, что для проведения офтальмоскопии вызывается врач вместе с офтальмоскопом.