четверг, 27 октября 2016 г.

Назначение исполнения объектов в сетевых проектах

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

Итак, объекты в MasterSCADA должны быть обязательно назначены исполнению на компьютере – в противном случае считается, что в проекте их попросту нет, они не вычисляются и не работают. В реальных проектах данный режим редко, но все же применяется – например, если объект содержит набор шаблонных объектов, а его экземпляры уже расположены в объектах, исполняемых на каком-либо компьютере. То есть в данном случае объект с выключенным исполнением выполняет роль локальной библиотеки.
Теперь рассмотрим назначение объектов в проектах. Назначая объект компьютеру, вы указываете где физически будет выполняться просчет содержимого объекта. В автономном проекте все достаточно просто - компьютер один, поэтому для корректного функционирования проекта достаточно просто назначить корневой объект компьютеру - более ничего делать не нужно.
В сетевых проектах компьютеров несколько, поэтому есть несколько вариантов выбора места исполнения. Здесь действует достаточно простое правило (почти не имеющее исключений) – если в компьютер добавлены ОРС серверы (или контроллер), то объект, обрабатывающий данные с него должен исполняться на этом компьютере.

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

Конечно допустим вариант, когда ОРС сервер подключен к компьютеру 1, а объект исполняется на компьютере 2. Однако в таком случае если пропадает связь между ними или компьютер 2 будет выключен, то расчет остановится, данные с ОРС сервера будут «уходить в никуда».
Теперь рассмотрим режим "Выполнять на всех". Очень часто, при первом создании сетевого проекта, пользователи назначают всем объектам данный режим исполнения, что приводит к некорректным результатам. Дело в том, что в данном режиме все объекты исполняются на всех компьютерах независимо - параллельно на каждом. Казалось бы, это то что и нужно в сетевом проекте, однако это не так. Параллельное исполнение проекта приводит к следующим проблемам:
1. Нагрузка одного и того же проекта в равной степени ложится на все компьютеры. При этом, как правило, клиентские компьютеры, имеют значительно более низкую производительность чем серверы.
2. Архивация в объектах ведется параллельно – то есть начинается дублирование архивов. И не так критично, то что это приводит к расходу дискового пространства на всех компьютерах, а то что архивы будут не синхронизированы. Например, ОРС сервер исполняется на компьютере 1, объект исполняется на всех (Компьютере 1 и Компьютере 2). Пока оба компьютера включены, все будет в порядке, но если будет выключен Компьютер 2 (например, мастер закончил смену и выключил компьютер), то данные в нем это время архивироваться не будут. Таким образом при просмотре трендов на сервере и на клиенте вы увидите разные графики.
3. Возможны и другие проблемы. Например в проекте используются дополнительные библиотеки (например библиотека "Вентиляция"), которые входят в Pro версию. Если назначить исполнение на всех, то на всех версиях MasterSCADA также должна быть Pro версия, в противном случае компоненты работать не будут. Если же исполнение будет выбрано на конкретном компьютере, то и Pro версия нужна будет только на нем.
Но для чего же тогда нужен этот режим? Иногда он также бывает полезен. Классическим вариантом использования данного режима является пользовательские тулбары. Ранее мы рассматривали пример проекта со скриптом, в котором строили собственный тулбар с выходом из режима исполнения и отображением текущего открытого окна.
Если назначить исполнение объекта со скриптом и командами на сервере, и то и работать они будут на сервере – то есть тулбар будет выводить состояние открытых окон на сервере, нажатие на кнопку завершение сеанса завершить его на сервере, что будет не совсем корректно. Вот в таких случаях и нужно включать исполнение на всех – тогда все будет функционировать правильно на любом компьютере проекта.
Возможны и другие сценарии использования. Например, можно добавить в объект значения, связанные с архивными данными и формировать отчет на клиентской машине, а не на сервере. То есть данный режим нужен именно в тех случаях, когда требуется независимое выполнение объекта на каждом компьютере. И независимо от сценария использования, исполнению на всех будут назначены не все объекты проекта, а только отдельные - те что требуют обязательного независимого исполнения на каждом компьютере.
Часто возникает вопрос - как в таком случае назначить стартовую мнемосхему для клиентских версий? Для этого у каждого компьютера, есть вкладка Режим исполнения - Стартовые окна. Добавьте на данной вкладке окно, в поле Объект перетащите объект, в котором находится нужная вам мнемосхема, а затем выберите ее в списке Документ. При этом не играет роли на каком компьютере исполняется данный объект.
Надеемся данная статья поможет вам правильно выбрать режим исполнения объектов и избежать ошибок.
Подробную документацию по созданию сетевых проектов можно скачать с нашего сайта:

Комментариев нет:

Отправить комментарий

Поделиться