ОРС Клиент (rtOPCClient)#
Утилита ОРС Клиент предназначена для получения и передачи данных с использованием технологии OPC-DA (OLE for Process Control - Data Access).
Назначение#
Утилита ОРС Клиент предназначена для получения и передачи данных с использованием технологии OPC-DA (OLE for Process Control - Data Access).
Утилита позволяет:
Связать переменные конфигурации IngortechSCADA с тегами, публикуемыми серверами ОРС.
Получать данные реального времени для связанных переменных.
Передавать управляющие воздействия оборудования путем записи значений в связанные переменные.
Интерфейс#
Интерфейс утилиты представляет собой основное окно программы из которого осуществляется доступ к таким функциям как:
Запуск и остановка работы.
Настройка утилиты.
Завершение утилиты.
Просмотр данных об установленных связях с ОРС серверами.
В заголовки утилиты, после запуска, отображается следующая информация:
«RTS: Клиент ИМЯ»
Название утилиты, где текст «ИМЯ» может быть задан с помощью ключей командной строки.
«очередь: ЧИСЛО»
Число значений полученных ОРС клиентом от ОРС серверов и еще не прошедших обработку.
В нормальном режиме работы утилиты это значение должно быть минимальным, стремящимся к нулю.
Если это значение постоянно установлено в значащую величину или постоянно увеличивается - это говорит о перегрузке утилиты и необходимо предпринять действия по настройке утилиты или ее окружения для того чтобы исправить ситуацию.
«пол: ЧИСЛО, обр: ЧИСЛО»
Общее число значений полученных и обработанных утилитой.
В нормальном режиме работы утилиты эти значения должны полностью совпадать, что говорит о том, что все полученные значения были успешно обработаны.
«отбр: ЧИСЛО из ЧИСЛО»
Количество значений от общего числа, которые были отброшены ОРС клиентом из-за того, что он не успел их обработать из-за высокой загрузки.
В нормальном режиме работы утилиты все полученные значения должны быть обработаны, поэтому число отброшенных значений должно быть равно нулю.
Основное окно#
Основное окно утилиты rtOPCClient.exe состоит из следующих блоков:
Меню управления и настроек Программа.
Информация о текущем состоянии связи с сервером.
Утилита может находиться в следующих состояниях связи с сервером:
Остановлен: Связь с сервером не установлена. Утилита находится в этом состоянии с момента начала запуска работы до момента установки соединения с сервером ОРС.
Соединение установлено: Связь с сервером установлена. Утилита находится в этом состоянии с момента начала работы до момента остановки.
Данные РТС сервера.
Адрес - IP-адрес и порт связи с сервером РТС.
Конфигурация - Идентификатор активной конфигурации.
Время - Время и версия ПО на сервере РТС.
Данные ОРС сервера.
Сервера - количество используемых для получения данных ОРС серверов.
Кэш - количество новых значений полученных от ОРС серверов еще не переданных РТС серверу.
Переменные - число переменных из конфигурации РТС связанных с ОРС тегами.
Кнопка
Просмотроткрывает окно со списком используемых ОРС серверов.
Операция. При выполнении любой длительной операции, такой как, например, получение конфигурации, в поле Операция отображается наименование выполняемого действия, а в поле Прогресс процесс его выполнения.
Дневник состояния - выпадающий список сообщений генерируемые утилитой во время выполнения различных операций.
Программа
Пункт меню программа содержит основные данные пункты управления и настройки утилиты.
Запустить / Остановить |
Запускает/Останавливает процесс соединения с сервером. |
Просмотр соединений ОРС |
Открывает окно Используемые ОРС сервера. |
Настройка… |
Открывает окно Параметры для настройки утилиты. |
Сохранить настройки |
Сохранение всех настроек осуществленных в окне Параметры. |
Окно сообщений |
Окно отображает стандартное окно сообщений, создаваемых при работе программы. |
О программе |
Раздел с общими данными о программе. |
Версия ПО |
Открывает окно Версия ПО с указанием данных о версиях локально ПО и ПО на сервере. |
Выход |
Завершение работы программы. |
Диалог настроек#
Настройки утилиты осуществляются в окне Параметры через меню .
Окно параметры состоит из трех закладок
.
Программа#
На закладке Программа приведены общие настройки управления утилитой.
Запускать свернутым
Если
, то при запуске программы она автоматически будет свернута.
Разрешить запуск нескольких копий программы
Если
, то можно будет запустить несколько копий программы.
Если
, и утилита уже запущена, то новая копия программы активирует окно предыдущей копии программы и автоматически завершится.
Сервер RTS#
На данной закладке собраны настройки сервера RTS.
Автоматическая установка связи при запуске программы
Если
, то при запуске утилиты сервер будет запущен автоматически и программа перейдет с состояние «Запущена», как если бы осуществлялось подключение к серверу через меню .
Сервер / Порт
IP-адрес и порт связи с сервером RTS.
Список серверов
Список серверов в стандартном для ПО IngortechSCADA виде.
Учетная запись
Параметры учетной записи, которые будут использоваться для подключения к основному серверу РТС устаревших версий.
Предупреждение
Параметры учетной записи используются только для доступа к устаревшим версиям Сервера РТС и при соединении с современными версиями не используются. Авторизация на сервере новых версий происходит автоматически.
Пауза между попытками соединения
При выполнении команды на установку соединения, если соединение не удалось установить, попытка соединения будет повторятся с указанной периодичностью.
Использовать контроллеры с протоколом
Номер протокола, который будет использоваться этим экземпляром ОРС клиента для обработки..
В случае, если это поле установлено в ненулевое значение, только указанный номер протокола будет использоваться ОРС клиентом. Все остальные протоколы будут проигнорированы. В случае, если поле установлено в нулевое значение ОРС Клиент будет обрабатывать все контроллеры, с протоколом «ОРС».
Эту настройку можно использовать для разделения работы с многими ОРС серверами разными клиентами. Для этого необходимо в конфигурации назначить различные номера протоколов для разных ОРС серверов, запустить несколько копий ОРС клиента в каждой из которых указать один уникальный номер протокола для использования. Эта техника используется для разгрузки ОРС Клиента в случае, если одновременно необходимо работать с ОРС серверами с очень разными свойствами связи (сервера которые медленно обрабатывают команды, медленно обрабатывают значения или склонны к обрывам связи). В этом случае работа с медленными или некорректно работающими серверами не будет оказывать влияния на работу с другими серверами и не будет деградации скорости работы с ними.
Сохранять в лог информацию о полученных переменных
Если
, то информация о значениях переменных получаемых с Сервера РТС будет сохраняться в основной лог-файл программы.
Период получения новых переменных с сервера
При работе, ОРС клиент периодически запрашивает изменившиеся значения с Сервера РТС. Среди этих значений передаются команды управления, которые будут обрабатываться клиентом и передаваться ОРС серверам специальным образом.
Установленное значение определяет скорость прохождения команды от момент ее формирования пользователем в Оболочке Оператора до ее получения ОРС Клиентом. Рекомендуется устанавливать это значение в максимально приемлемую величину. Чем меньше значение периода опроса, тем больше нагрузка на линию связи и функционал ОРС клиента.
Кэш отправляемых переменных
Устанавливает максимальное количество накапливаемых в промежуточном кеше переменных, перед их отправкой РТС серверу.
Эта настройка определяет максимальное количество новых значений получаемых от ОРС сервера перед тем, как они будут отправлены РТС серверу как обновления.
Эта настройка работает совместно с настройкой «Время жизни кэша отправляемых переменных» (см).
Время жизни кэша отправляемых переменных
Устанавливает максимальное время, которое новые значений могут содержаться во временном кеше перед их отправкой серверу РТС.
Эта настройка работает совместно с настройкой «Кэш отправляемых переменных». Значения будут отправлены РТС серверу в случае, если накоплено более указанного количества изменений или самое старое значение в кеше содержится дольше указанной величины. Таким образом, используя обе настройки, можно гибко настроить количество потока изменений, отправляемых сервером.
В некоторых случаях, например при первоначальном подключении к ОРС серверу, может генерироваться очень большое количество новых значений, значительно превышающее число изменений принимаемых в среднем. Для сглаживания подобных «пиков» количества, с целью уменьшения числа отправок значений, рекомендуется устанавливать значение настройки «Кэш отправляемых переменных» в величину, сравнимую с общим количеством переменных обрабатываемых этим ОРС клиентом, в то время как значение настройки «Время жизни кэша отправляемых переменных» в величину, приемлемую для обеспечения требуемой скорости передачи изменений.
Сервер ОРС#
На данной закладке собраны настройки сервера ОРС.
Параметры связи с OPC
Период обновления переменных ОРС
Значение рекомендуемого периода обновления данных тегов на ОРС сервере.
Стандарт протокола определяет, что этот параметр может использоваться ОРС сервером для настройки каналов общения с оборудованием.
Предупреждение
Не все ОРС сервера поддерживают эту настройку.
Если сервер не поддерживает эту настройку, то ее значение игнорируется и использоваться не будет.
Система IngortechSCADA работает с дискретностью штампов времени значений равной одной секунде, поэтому устанавливать значения менее этой величины не имеет смысла.
В случае, если сервер поддерживает эту настройку ее можно использовать как параметр уменьшения дребезга, т.е. уменьшения числа изменений передаваемых ОРС сервером подряд. Для этого можно установить значение настройки в величину равную нескольким секундам.
Предупреждение
Фактическое поведение ОРС сервера при различных значениях этой настройки стандартом протокола не определено и ее значение должно подбираться индивидуально экспериментально.
В случае, если роль этой настройки не важна, ее можно установить в значение около 1 секунды (800-1200мс), что не окажет заметного влияния на поток данных от ОРС сервера вне зависимости от того поддерживает он эту настройку или нет.
Разница значений для обновлений
Рекомендуемая величина изменения модуля измерения при превышении которой ОРС сервер будет генерировать новое изменения.
Стандарт протокола ОРС описывает эту настройку, но ее реализация не определена, поэтому ОРС сервера ее могут не поддерживать. Ее поддержка и фактическое влияние на генерируемый поток изменений необходимо проверять для каждого ОРС сервера индивидуально.
Если величина настройки установлена в нулевое значение, то этот параметр передаваться серверу не будет и сервер, если он поддерживает эту настройку, будет использовать значение по умолчанию.
Идентификатор клиента
Текстовое название, идентифицирующее утилиту ОРС клиент на каждом ОРС сервере к которому она подключена.
Эту настройку можно использовать для идентификации отдельных копий ОРС клиентов, в случае если их запускается несколько. Идентификатор будет отображаться в интерфейсе сервера, в лог файлах и журнале управления.
Фоновая задача
Период выполнения фоновых задач
Многие операции, такие как подключение к ОРС серверам, проверка связи с ними, периодическая проверка значений и т.д. выполняются клиентом в фоновом режиме.
Эта настройка определяет дискретность выполнения всех фоновых задач, т.е. любая задача запланированная на исполнение в фоне будет исполняться не чаще указанной величины. Эта настройка определяет скорость частоты выполнения фоновых задач, однако указание очень маленьких ее значений приведет к избыточной загрузке ЦП проверками наличия таких задач. Указание значений менее 500мс не рекомендуется, величина периодичности менее 100см заметно сказывается на отзывчивости ОРС клиента и выполнении им задач не связанных с фоновыми, такими как передача и прием данных от Сервера РТС.
Опрос значений подключаемых элементов
Если
, ОРС клиент будет включать в вписок выполняемых фоновых задач проверку значения всех подключенных тегов для всех используемых ОРС серверов.
Эта настройка необходима в том случае, если ОРС сервер может переставать присылать уведомления об изменении значений. В случае, если ОРс сервер корректно присылает обновления всегда, рекомендуется эту настройку отключить.
При проверке значений тегов, для каждого ОРС сервера и каждого тега будет произведен запрос его текущего состояния (качества, времени и значений). В случае, если будет обнаружено несоответствие текущих данных переменной значениям тега, ОРС клиент сгенерирует обновление значения. Генерация значения исполняется полностью аналогично, как будто это значение было передано ОРС сервером.
Предупреждение
В случае, если ОРС сервер настроен для медленной передачи значений или передает их медленно в связи с какими-либо особенностями может возникать ситуация, когда при проверке значений уже было сгенерировано изменение для какой-то переменной, а уведомление об этом будет передано ОРС сервером позже и, возможно, с другим штампом времени. что может приводить к накоплению очереди задерживаемых РТС сервером значений и замедлению его работы.
При использовании этой настройки необходимо произвести предварительный анализ поведения конкретного ОРС сервера и скорректировать как необходимость использования такой настройки в принципе, так и влияния настроек как Период обновления переменных ОРС и Разница значений для обновлений на поведение сервера.
Для корректной и максимально эффективной работы ОРС клиента и РТС сервера необходимо добиться того, чтобы значения получаемые в результате фоновой проверки генерировались только в тех случаях, когда это реально необходимо.
Период повтора авто-подключения для контроллера
Определяет период выполнения фоновой задачи для повтора подключения к ОРС серверу.
В случае, если ОРС сервер используется, но связь с ним не была корректно установлена или прервалась в процессе работы ОРС клиента этот период будет использоваться как период попыток установки связи и подключения тегов.
Если это значение установлено в значение 0 (ноль) механизм автоматического подключения использоваться не будет. В этом случае будет предпринята одна попытка установить связь и, в случае возникновения ошибок, более попытки предприниматься не будут и состояние ошибки сохранится до изменения конфигурации.
Если механизм автоматического подключения включен, то будут предприниматься периодические попытки установить связь со всеми ОРС серверами, связь с которыми не была установлена или потеряна.
Попыток подключения для контроллера
Устанавливает ограничение на количество повторов попыток установки связи с ОРС серверами. Определяет число попыток исполнения задачи настройки Период повтора авто-подключения для контроллера.
Если установлено нулевое значение, то количество попыток не ограничивается.
Предупреждение
Счетчик повтора соединений сбрасывается каждый раз при смене конфигурации сервера РТС и начинается заново.
Попыток подключения для тегов
Устанавливает ограничение на количество повторов попыток установки связи с тегами ОРС серверов.
Если установлено нулевое значение, то количество попыток не ограничено.
Предупреждение
Счетчик повтора соединений сбрасывается каждый раз при смене конфигурации сервера РТС и начинается заново.
Сдвиг времени в свойствах тега
Устанавливает сдвиг времени, который необходимо применить к штампу времени получаемому от ОРС сервера из свойства тега.
Некоторые ОРС сервера указывают время для новых значений и в свойствах тега в разных часовых поясах. Эта настройка предназначена для корректировки такой ситуации, когда в свойстве тега «время измерения» указывается время не соответствующее стандарту UTC0. В настройке можно использовать как положительные (сдвиг времени в прошлое), так и отрицательные (сдвиг времени в будущее) значения.
Предупреждение
Эта настройка влияет на все ОРС сервера обрабатываемые текущей копией клиента.
В случае, если для какого-то сервера необходимо использовать корректировку времени, его необходимо выделить в отдельную группу (присвоить ему уникальный номер протокола в конфигурации) и обслуживать такой сервер отдельной копией ОРС клиента.
Обработка получаемых значений
Корректировать время из будущего
Этот параметр предназначен для интерпретации значений, полученных от ОРС сервером, метка времени у которых находится в будущем по сравнению с текущим локальным временем ОРС клиента.
Если
, значение с меткой времени из будущего будет обработано, при этом значение времени установлено в текущее время ОРС клиента. Если этот параметр отключен, такие значения будут переданы серверу РТС без изменений.
При получении новых значений сервер РТС подразумевает, что все значения для каждой переменной передаются последовательно и каждое следующее полученное значение измерялось позже предыдущего.
Если ОРС сервер генерирует новые измерения со временем из будущего относительно текущего времени это может говорить как о неполадках в формировании новых значений на ОРС сервере или на де синхронизации времени между ОРС сервером и ОРС клиентом. В случае выявления таких проблем необходимо разобраться в причинах их возникновения и найти решение. При нормальной работе ПО значений генерируемых с метками из будущего быть не должно.
Предупреждение
Передача значений меткой времени из будущего ОРС серверу приводит к задержке этого значения до момента наступления времени измерения и, в случае очень больших расхождений времени, может приводить к очень большому росту очереди задерживаемых значений.
В случае, если на сервере РТС не используется (отключена) настройка обработки задержек, передача таких значений не имеет смысл т.к. эти значений будут им отброшены без задержек и в этом случае использование этой настройки в ОРС клиенте не имеет смысла и она должна быть включена, т.е. ОРС клиент должен корректировать время таких изменений приводя его к текущему времени.
Установить состояние «нет связи» для не изменяющихся значений, При задержке значений более чем на …
Если
, и значение для переменной не меняется более установленного периода времени, для этого значения будет сгенерировано новое измерение с состоянием «нет связи».
Предупреждение
Генерируемое таким образом значение не имеет статуса метрологической значимости вне зависимости от того как сконфигурирована переменная.
Лог полученных от OPC значений
Если
, получаемые от ОРС сервера значения (а так же генерируемые ОРС клиентом самостоятельно, например при работе фоновой задачи проверки значений) будут сохраняться в основной лог файле программы.
Эта настройка необходима для поиска причин неисправностей при передаче и получении значений и управляющих воздействий (команд).
В случае, если наблюдается потеря значений (не получение и не сохранение в архивах значений, которые заведомо должны быть) или перебои в обработке управляющих воздействий эта настройка должна быть включена для обеспечения анализа происходящего и выявления неисправностей. В случае, если перебоев в потоке данных и управляющих воздействий при работе ОРС клиента нет, рекомендуется отключить эту настройку для уменьшения накладных расходов связанных с объемом сохраняемой в лог файл информации.
Контроль связи (формула WATCH)
В конфигурации IngortechSCADA для переменных можно использовать формулы. Существует специальная формула «WATCH», предназначенная для контроля наличия связи.
Переменная у которой указана такая формула используется как watchdog, т.е. изменения ее значения используются как сигнал наличия связи.
Если у переменной указана формула «WATCH» и ее значение, штамп времени или статус не меняется более указанного в формуле количества секунд, считается что связь с контроллером, к которому подключена эта переменной, потеряна.
В случае потери связи ОРС клиент отключится от указанного контроллера и будет пытаться восстановить с ним связь в соответствии с остальными настройками программы.
Количество переменных для которых может быть указана формула «WATCH» не ограничено. Период контроля у переменных может быть указана разным.
В случае, если формула указана у нескольких переменных все они будет контролироваться. При это отсутствие связи будет определено если у любой из контролируемых переменных время между изменениями превысит указанный в формуле период допустимой задержки.
Контролировать изменение тегов по формуле WATCH
Если
, то механизм контроля связи с контроллером используется. Если отключено, механизм контроля связи использоваться не будет.
При восстановлении связи сбрасывать счетчик для всего протокола
Если
, то при установке связи с контроллером все счетчики связанные с автоматическим восстановлением связи и контроля формул «WATCH» будут сброшены и отсчет начнется заново.
Если этот параметр отключен, то после восстановления связи счетчики сброшены не будут. В этом случае все переменные у которых указаны формулы «WATCH» продолжат отсчет отсутствия значений так, как если бы связь не была потеряна.
Окно связей с ОРС#
При нажатии на кнопку Просмотр в блоке с данными ОРС сервера открывается окно Используемые ОРС сервера.
Окно состоит из следующих блоков:
Список подключенных ОРС серверов.
cfgN - Номер контроллера в конфигурации.
Связь - Текущее состояние связи сервера.
Имя машины - Имя машины, на которой расположен ОРС сервер.
Имя сервера - Внутреннее имя ОРС сервера.
Переменных - Количество используемых тегов связанных с переменными.
Список переменных
При выделении одного из серверов в блоке списка серверов, в списке будут отражены только те переменные, которые загружены на выбранный сервер.
cfgN - номер переменной в конфигурации.
Имя - Имя переменной в конфигурации.
Обозначение - Имя переменной на ОРС сервере.
Тип - Тип переменной РТС.
Статус - Статус переменной РТС на момент загрузки на сервер.
Значение - Значение переменной в момент загрузки на сервер.
Время - Дата и время последнего обновления данных.
ОРС параметры
При выделении переменной в блоке ОРС параметры будут отражены параметры выбранного тега.
Технология ОРС позволяет к каждому тегу, дополнительно, приписать набор свойств связанных с его состоянием и значением. Содержимое этого набора определяется конкретным ОРС сервером публикующим информацию и может отличаться у разных ОРС серверов. ОРС клиент отображает список свойств в качестве справочной информации, в виде таблицы в следующей форме:
N - Порядковый номер свойства.
ID - Идентификатор свойства, как он описан на ОРС сервере.
Тип - Стандартный тип свойства.
Имя - Название свойства заданное в ОРС сервере.
Значение - значение свойства.
Рекомендации#
В этом разделе описаны основные рекомендации по настройке и эксплуатации утилиты, а так же приведены примеры решения основных проблем, возникающих при эксплуатации.
Проблемы и инструменты#
Перед запуском утилиты в эксплуатацию, на этапе настройки или в процессе выявления проблем, должна быть установлена настройка Выводить информацию по каждой полученной от ОРС переменной.
При установке этой настройки при получении значений от ОРС сервера данные будут сохранены в лог файл программы, что позволит контролировать правильность настройки связей переменных с тегами ОРС и выявлять источник проблем с отсутствием или несвоевременным получением данных.
В случае обнаружения каких либо проблем с данными от ОРС, такими как:
Отсутствие данных.
Ситуация, когда данные обновляются на ОРС сервере, но не доходят до ОРС клиента или РТС сервера.
Задержка данных.
Ситуация, когда не все данные полученные от ОРС сервера доходят до ОРС клиента, РТС сервера или других клиентов IngortechSCADA.
Неверные форматы или значения данных.
Ситуация, когда данные полученные от ОРС сервера неправильно интерпретируются или декодируются ОРС клиентом или РТС сервером.
можно использовать следующие инструменты:
Утилиту Отладчик ОРС, которая входит в основной комплект поставки IngortechSCADA.
С помощью этой утилиты можно сравнивать процесс обновления данных в ОРС Клиенте и другом независимом клиенте данных ОРС (Отладчике ОРС), что позволяет выявить источник проблем связанных с задержками значений, неправильной интерпретацией значений и ошибками связи тегов с переменными.
Утилиту Просмотр логов, с помощью которой можно просматривать лог файлы создаваемые любой утилитой комплекта IngortechSCADA, в том числе ОРС Клиентом, Отладчиком ОРС или РТС сервером.
Эта утилита используется в процессе расследования путей движения значений от ОРС сервера по всем цепочкам передаваемых данных.
Любой сторонний ОРС клиент. Некоторые свободно распространяемые клиенты можно скачать с сайта разработки ПО IngortechSCADA по адресу:
Проблемы с получением данных#
В случае возникновения проблем с получение данных таких как:
Полное отсутствие данных.
Задержки при получении данных.
Пропадание некоторых, ключевых значений.
необходимо использовать методики поиска источника проблемы описанные ниже.
Проверка передачи данных
Необходимо убедиться, что данные измеряемые оборудованием корректно измеряются и могут быть получены ОРС сервером.
В случае, если используемый ОРС сервер имеет собственный интерфейс для отображения публикуемых тегов необходимо убедиться, что значение для нужного тега корректно отображается в самом ОРС сервере. Значение соответствует измеряемому сигналу, имеет нормальное качество и обновляется с необходимой частотой.
В случае, если ОРС сервер не имеет собственного интерфейса, осуществить проверку получения данных ОРС сервером будет невозможно и необходимо использовать проверку публикации данных.
Проверка публикации данных
На этом этапе необходимо убедиться, что ОРС сервер корректно публикует данные измерений в тегах, соответствующих измеряемой величине.
Необходимо убедиться, что:
Необходимый тег (или их набор) содержит значение соответствующее подключенному к ОРС серверу оборудованию.
Качество тега соответствует качеству линии связи, т.е. в случае как отсутствия связи с датчиком, так и при наличии этой связи качество тега должно отражать реальное состояние.
В случае наличия связи с оборудованием значение тега должно соответствовать значению, передаваемому оборудованием и задержка в передаче значения должна соответствовать проектной.
Для проверки необходимо установить какой-либо сторонний ОРС клиент и использовать утилиту Отладчик ОРС. С помощью этих утилит необходимо осуществить следующие действия:
Запустить сторонний ОРС клиент. Выбрать в нем необходимый для проверки тег и настроить его для отображения данных реального времени.
Запустить утилиту Отладчик ОРС и добавить необходимый для проверки тег в группу контроля.
Проконтролировать значение и качество необходимого тега с использованием двух независимых клиентов и убедиться в идентичности их поведения.
Проконтролировать качество и значение передаваемых данных.
Возможные проблемы:
В случае, если ОРС клиенты невозможно настроить для отображения контролируемого тега необходимо проверить правильность доступности и правильности его настройки на сервере ОРС.
В случае, если обнаружено принципиальное расхождение в значениях и качестве данных тега между различными ОРС клиентами, необходимо проверить настройки клиентов и, в случае если данные утилиты Отладчик ОРС IngortechSCADA выходят за пределы допустимых различий, необходимо собрать данные о ситуации и создать сообщение об ошибке для разработчика.
В случае, если при изменении качества или значения измеряемой величины это изменение не отображается в ОРС клиентах, необходимо проверить настройку ОРС сервера и правильность описания и настройки соответствующего тега.
В случае, если при использовании двух различных клиентов они отображают идентичную (с учетом допустимых расхождений) информацию, в дальнейшем для контроля можно использовать какой-либо один из них. Рекомендуется использование утилиты Отладчик ОРС из комплекта ПО IngortechSCADA.
Проверка потери данных и их последовательности
На этом этапе необходимо проконтролировать получение всех данных и их последовательность.
Эта проверка очень важна для правильного отображения значений и, в особенности для дискретных переменных, корректности работы различных критических алгоритмов, таких как управление вентиляцией и аварийным отключением электро-энергии.
Для проверки необходимо осуществить следующие действия:
Выбрать дискретные переменные, для контроля.
Изменяя их состояние на оборудовании (или в интерфейсе ОРС сервера, если он позволяет ручное управление значениями) контролировать получение всех измененных значений ОРС клиентами в строгом соответствии с порядком их изменения.
Значения могут поступать с задержками (см. Допустимые расхождения), но обязаны быть получены все изменения значения строго в том порядке, в котором они происходили.
Предупреждение
В случае обнаружения ситуаций, когда какие-то значение не доходят до ОРС клиентов или нарушается порядок их прохождения необходимо решать эту проблему перед осуществлением всех прочих действий по настройке системы т.к. подобные нарушения могут приводить к полной неработоспособности всей системы и к аварийным ситуациям на объекте.
В случае невозможности решения проблемы необходимо собрать данные о ситуации и создать сообщение об ошибке для разработчика в случае, если проблема локализована в программной части ПО IngortechSCADA.
Проверка интерпретации данных
На этом этапе необходимо проверить корректность интерпретации получаемых данных утилитой ОРС Клиент.
Необходимо проконтролировать следующие параметры:
Значение измерения соответствует измеренной (или заданной) величине.
В случае неправильной конфигурации переменных IngortechSCADA или ошибках в привязке к тегам ОРС отображаемая величина может отображаться некорректно. Возможные причины и способы их решения описаны в разделе Типовые ошибки значений.
Значение соответствует установленному типу сигнала
В случае неправильной конфигурации переменных IngortechSCADA или ошибках в привязке к тегам ОРС отображаемая величина может отображаться некорректно. Возможные причины и способы их решения описаны в разделе Типовые ошибки значений.
Проверка передачи данных
На этом этапе необходимо проверить правильность и скорость передачи данных ОРС клиентом серверу РТС.
Необходимо проконтролировать
Типовые ошибки значений#
В случае неправильной конфигурации переменных IngortechSCADA или ошибках в привязке к тегам ОРС отображаемая величина может отображаться некорректно.
Возможны следующие ошибки отображения:
Значение неправильно масштабируется, сдвигаясь в некорректный диапазон.
Получаемое от Орс сервера значение интерпретируется в ПО IngortechSCADA как электрическая величина и в случае, если для переменной связанной с ОРС тегом выбран тип сигнала не соответствующий используемому оборудованию преобразование электрических единиц в инженерные и наоборот может производиться некорректно.
К примеру, если какое-то оборудование передает измерения в диапазоне 0..100, а в настройках связанной с ним переменной указан диапазон 0..500, то при преобразовании значения в инженерные единицы значение будет уменьшено в 5 раз от фактического.
Значение обрезается, не отображая весь диапазон. Значение принимает статусы ВЫШЕ или НИЖЕ предела измерения при нормальной эксплуатации.
Если какое-то оборудование передает измерения в диапазоне 0..100, но в настройках связанной с ним переменной указан диапазон 0..10, то при получении значения более 10 оно будет интерпретировано как выходящее за пределы диапазона. В этом случае значение будет обрезано до границы диапазона и переменная примет состояние «выход за пределы диапазона»
Значение дискретной переменной «инвертировано».
В ПО IngortechSCADA существует возможность использования как нормально замкнутых, так и нормально разомкнутых дискретных входов. Состояние включено или выключено для этих переменных формируется в соответствии с разными значениями измерения. Указание типа нормального состояния для дискретной переменной указывается в полях «электрических диапазон» ее типа сигнала. В случае, если минимум электрического диапазона указан величиной отличной от нуля и его модуль более максимума электрического диапазона используется механизм автоматической инверсии значения. В случае использования инверсии, значение
0будет заменено значением1и наоборот.Значение аналоговой переменной является неадекватным числом или нулем вне зависимости от измеряемой величины
В случаях использования метрологически значимых средств измерения их значения передаются в закодированной форме и могут представлять из себя произвольные, в том числе очень большие по величине числа.
Правила декодирования таких значений определяются типом сигнала и, в случае некорректной конфигурации такой переменной декодирование будет происходить с ошибкой или не будет выполняться вовсе. В этих случаях значение может быть всегда установлено в величину
0(произошла ошибка декодирования) или в произвольную величину (декодирование не производилось).
Рекомендации по конфигурации РТС#
При создании конфигурации РТС необходимо учесть следующие рекомендации:
Полностью исключить возможность использования в конфигурации контроллеров, связь с которыми невозможно установить.
Минимизировать (исключить?) все переменные, связать с которыми теги невозможно.
Индивидуально для объекта подбирать число контроллеров, подключенных к одному ОРС серверу и число переменных на них.
Информация
Операции выполняемые в фоновой задаче имеют меньший приоритет, чем операции выполняемые в основном потоке (вручную, в интерфейсе).
В результате, может казаться, что вручную теги подключаются быстро и без проблем, а автоматически долго.
Однако «медленность» автоматики объясняется в том числе длительными задержками между попытками и, что самое главное, из-за большего приоритета основного потока, каждый раз, когда в нем выполняется какая-то монопольная операция (а изменение состояния контроллеров и тегов такая операция) фоновая задача прерывает работу и ждет окончания такой операции, после чего возвращается к продолжению работы цикла.
Итого: ручное управление соединениями не имеет никакого смысла и приводит к фактическому замедлению выполнения операций фоновой задачи.
Допустимые расхождения данных#
При сравнении с данными, отображаемыми различными ОРС клиентами для одного и того же тега необходимо учитывать следующие различия, которые являются допустимыми и не являются ошибкой работы ПО:
Расхождение во времени (штампе времени).
В случае, если ни значение ни качество тега не меняется, то допустимо, чтобы различные ОРС клиенты отображали этот тег с расхождением в штампе времени.
Различие только штампа времени не гарантирует наличие нового измерения и может игнорироваться.
Задержка получения значений.
Различные ОРС клиенты могут получать данные в разное время. Различия во времени получения определяется структурой и загруженностью ОРС сервера, структурой и загруженностью ОРС клиента и общей загруженностью операционной системы.
Допустимо получение данных одного и того же измерения (качество, значение и штамп времени совпадают) различными клиентами в разное время и задержки в получении ошибками не являются.
Однако, вне зависимости от того с какими задержками получены значения должно обеспечиваться их синхронность. и последовательность Т.е. в случае, если было произведено два измерения, которые отличаются друг от друга качеством иили значением, то оба эти измерения должны быть получены ОРС клиентами строго в порядке их измерения.
Различие в значениях.
Для аналоговых сигналов допускается различие в модуле отображаемого значения.
Как на стороне ОРС сервера, так и на стороне ОРС клиентов могут использоваться различные механизмы для предотвращения дребезга сигнала, которые могут приводить к различию в модуле отображаемой величины.
В случае, если различие не превышает предельно допустимого для используемого оборудования и соответствует требованиям технического проекта, такие различия являются допустимыми.
Нулевое значение при плохом качестве
В случае, если ОРС тег имеет качество отличное от OPCST_ST_OK, допускается отображение значения измерения как величины
0.В случае, если качество значения не гарантирует того, что значение было корректно измерено его (значения) величина может быть установлена в любое значение. В ПО IngortechSCADA такие значения устанавливаются в величину
0.Не соответствие ненулевых значений для дискретных переменных
В случае, если тег привязан к дискретной переменной и ОРС сервер передает для него ненулевое значение отличное от единицы, допускается установка его значения в величину
1.К примеру, ОРС тег привязан к дискретной переменной и значение этого тега установлено на ОРС сервере в величину
15. Допустимо, если это значение отображается в Орс клиента как величина1.При этом величина
0всегда должна отображаться именно как значение0.Не соответствие значений несовместимых типов
В случае, если ОРС тег описан как тип не соответствующий целому числу (тип с плавающей точкой, строка, массив и т.д.) связан с дискретной переменной конфигурации IngortechSCADA допустимо: отображение значения
0для значений тегов, которые не могут быть преобразованы в число и математическое округление значений с плавающей точкой.К примеру, значение переменой привязанной к строковому тегу всегда будет иметь значение
0вне зависимости от значения строки. Значение значение переменой привязанной к тегу со значением0.4будет отображаться как0, а со значением0.6будет отображаться как1по правилам математического округления.
Статусы ОРС#
При получении данных от OPC серверов измерение, помимо значения характеризуется таким параметром как «качество».
Качество - это числовое значение, которое состоит из набора битов описанных в стандарте ОРС. Качество определяет то, насколько полученному значения можно доверять, т.е. было ли оно получено в результате успешного измерения или при его получении возникали какие-либо ошибки.
При получении значений от ОРС сервера ОРС Клиент производит следующие действия:
Транслирует значения качества протокола ОРС в статусы системы IngortechSCADA.
Если полученное значение характеризуется «Хорошим качеством», ОРС клиент анализирует пришедшие значения в зависимости от текущей конфигурации IngortechSCADA и определяет значимость значения.
Производит дополнительную проверку значений на соответствие ограничениям, заданным в текущей конфигурации.
Передает значение переменной РТС Серверу.
Качество ОРС#
Качество значения передается сервером ОРС и представляет из себя число, содержащее набор битов для описания качество полученного значения и его состояние.
Интерпретация качества
При получении значения от OPC сервера, для интерпретации качество измерения необходимо перевести полученной значение в двоичную систему счисления, выделить необходимые биты и, в соответствии с таблицами выше, вычислить расшифровку состояния измерения.
Как правило, качество измерения передается типовым набором значений, поэтому на практике, для определения качества, можно использовать следующую таблицу с диапазонами значений качества:
Десятичное |
16-ричное |
Качество |
64 и менее |
0x40 |
Качество плохое, значение измерено с ошибкой |
65..191 |
0x41..0xBF |
Качество неуверенное, значению нельзя доверять |
192 и более |
0xC0 |
Качество хорошее |
Стандартные значения качества
Качество значения интерпретируется утилитой и переводится в стандартные статусы системы IngortechSCADA.
Общее ОРС качество измерения определяется набором из трех компонентов:
OPC_QUALITY_MASK |
0xC0 |
11000000 |
Тип качества |
OPC_STATE_MASK |
0x3C |
00111100 |
Тип состояния |
OPC_LIMIT_MASK |
0x03 |
00000011 |
Тип превышения |
Тип качества#
Значения в диапазоне «11000000» обозначают тип качества измерения.
Тип качества определяет общее качество измерения и может принимать следующие значения:
OPCST_ST_OK |
0xC0 |
11000000 |
Хорошее Этот типа качества обозначает, что значение было корректно измерено в нормальных условиях и без ошибок. |
OPCST_ST_BAD |
0x00 |
00000000 |
Плохое Этот типа качества обозначает, что при измерении возникли ошибки и значение не было измерено. |
OPCST_ST_UNC |
0x40 |
01000000 |
Неуверенное Этот типа качества обозначает, что значение было измерено, но его величина может не точно соответствовать измеряемой величине. |
OPCST_ST_UNK |
0x80 |
10000000 |
Неизвестное Этот типа качества обозначает, что значение находится в неизвестном состоянии по каким-либо причинам. |
Информация
Из набора выше только тип состояния OPCST_ST_OK обозначает что измерение произведено полностью успешно.
Значение этого состояния в десятичной системе: 192, таким образом, если ОРС передал измерение с качеством 192 - это обозначает, что измерение полностью успешное и при этом не содержит никакой дополнительной информации.
Предупреждение
В случае, если ОРС качество отличается от значения OPCST_ST_OK, утилита устанавливает значение переменной в величину 0 вне зависимости от фактического значения переданного ОРС сервером.
Тип состояния#
Значения в диапазоне «00111100» обозначают тип состояния.
Тип состояния - это код, определяемый разработчиком оборудования, которые используется для обозначения состояния измерения или его ошибки.
Стандарт ОРС подразумевает, что для каждого типа качества определен свой набор значений типов состояний.
OPCST_ST_OK, Хорошее качество
Типы состояний стандартом не определяются, однако производители могут использовать свои значения.
OPCST_ST_BAD, Плохое качество
Для этого состояния стандарт описывает следующий набор состояний:
OPC_QUALITY_CONFIG_ERROR |
0x04 |
Ошибка конфигурации |
OPC_QUALITY_NOT_CONNECTED |
0x08 |
Датчик не подключен |
OPC_QUALITY_DEVICE_FAILURE |
0x0c |
Ошибка датчика/Измерителя |
OPC_QUALITY_SENSOR_FAILURE |
0x10 |
Ошибка чувствительного элемента |
OPC_QUALITY_LAST_KNOWN |
0x14 |
Последнее известное значение |
OPC_QUALITY_COMM_FAILURE |
0x18 |
Ошибка связи |
OPC_QUALITY_OUT_OF_SERVICE |
0x1C |
Датчик отключен |
Так же, производители могут использовать дополнительные значения для обозначения собственных состояний.
OPCST_ST_UNC, Неуверенное качество
Для этого состояния стандарт описывает следующий набор состояний:
OPC_QUALITY_LAST_USABLE |
0x44 |
Последнее известное |
OPC_QUALITY_SENSOR_CAL |
0x50 |
Датчик калибруется |
OPC_QUALITY_EGU_EXCEEDED |
0x54 |
Превышение |
OPC_QUALITY_SUB_NORMAL |
0x58 |
Так же, производители могут использовать дополнительные значения для обозначения собственных состояний.
OPCST_ST_UNK, Неизвестное качество
Для этого состояния стандарт описывает следующий набор состояний:
OPC_QUALITY_LOCAL_OVERRIDE |
0xD8 |
Так же, производители могут использовать дополнительные значения для обозначения собственных состояний.
Тип превышения#
Значения в диапазоне «00000011» обозначают тип превышения измерением установленных порогов.
Стандарт определяет следующие значения для этой величины:
OPC_LIMIT_OK |
0 |
Значение находится в нормальной зоне |
OPC_LIMIT_LOW |
1 |
Значение ниже нижнего порога |
OPC_LIMIT_HIGH |
2 |
Значение выше верхнего порога |
OPC_LIMIT_CONST |
3 |
Пороги не определены |
Статусы из качества ОРС#
При получении значения от OPC сервера, в зависимости от полученного качества устанавливаются различные статусы РТС.
OPCST_ST_OK, Хорошее качество
Если эти биты установлены, то устанавливается статус «ОК» для всех типов переменных.
Аналоговые |
0 |
VARS_A_OK |
Дискретные |
0 или 1 |
Статус устанавливается в значение VARS_D_ON (1) или VARS_D_OFF (0) в зависимости от значения измерения. |
Команды |
0 |
VARS_C_COMPLETE |
Ответ |
7 |
VARS_R_COMPLETE |
Уведомление |
10 |
VARS_N_COMPLETE |
Другое качество
В случае, если значение типа качества не соответствует величине «хорошее» (OPCST_ST_OK), значение статуса РТС устанавливается в зависимости от типа переменной РТС и полученного в качестве типа состояния.
Аналоговые переменные
OPC_QUALITY_BAD |
2 |
VARS_A_NOTWORK |
OPC_QUALITY_CONFIG_ERROR |
5 |
VARS_A_CONFIG |
OPC_QUALITY_NOT_CONNECTED |
1 |
VARS_A_NOTCONNECT |
OPC_QUALITY_DEVICE_FAILURE |
2 |
VARS_A_NOTWORK |
OPC_QUALITY_SENSOR_FAILURE |
2 |
VARS_A_NOTWORK |
OPC_QUALITY_COMM_FAILURE |
11 |
VARS_A_NOCARIER |
OPC_QUALITY_OUT_OF_SERVICE |
1 |
VARS_A_NOTCONNECT |
OPC_QUALITY_WAITING_FOR_INITIAL_DATA |
11 |
VARS_A_NOCARIER |
Для всех остальных значений используется статус VARS_A_UNKNOWN (15).
Дискретные переменные
OPC_QUALITY_BAD |
3 |
VARS_D_ERROR |
OPC_QUALITY_CONFIG_ERROR |
7 |
VARS_D_CONFIG |
OPC_QUALITY_NOT_CONNECTED |
2 |
VARS_D_NOTCONFIG |
OPC_QUALITY_DEVICE_FAILURE |
3 |
VARS_D_ERROR |
OPC_QUALITY_SENSOR_FAILURE |
3 |
VARS_D_ERROR |
OPC_QUALITY_COMM_FAILURE |
4 |
VARS_D_NOCARIER |
OPC_QUALITY_OUT_OF_SERVICE |
2 |
VARS_D_NOTCONFIG |
OPC_QUALITY_WAITING_FOR_INITIAL_DATA |
2 |
VARS_D_NOCARIER |
Для всех остальных значений используется статус VARS_D_UNKNOWN (15).
Команды
OPC_QUALITY_BAD |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_CONFIG_ERROR |
5 |
VARS_C_NOTCONNECT |
OPC_QUALITY_NOT_CONNECTED |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_DEVICE_FAILURE |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_SENSOR_FAILURE |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_COMM_FAILURE |
5 |
VARS_C_NOTCONNECT |
OPC_QUALITY_OUT_OF_SERVICE |
7 |
VARS_D_NOTCONFIG |
OPC_QUALITY_WAITING_FOR_INITIAL_DATA |
5 |
VARS_C_NOTCONNECT |
Для всех остальных значений используется статус VARS_C_INVALID (3).
Ответы
Все значения качества для переменных этого типа транслируются в статус VARS_R_INVALID (10).
Уведомления
Все значения качества для переменных этого типа транслируются в статус VARS_N_INVALID (12).
Значимость значений#
В случае, если полученное значение характеризуется «Хорошим качеством», ОРС клиент анализирует полученное от ОРС значение в зависимости от того, как это значение было сконфигурировано в текущей конфигурации IngortechSCADA.
В этом разделе приведено описание условий которым должно соответствовать получаемое значение для того, чтобы это значение было интерпретировано как «значимое», т.е. полученное без искажений от источника измерения.
Предупреждение
Значимыми могут быть только аналоговые переменные. Все остальные типы переменных будут не значимы вне зависимости от того, как они сконфигурированы в конфигурации IngortechSCADA.
Значения КРУГ
Если значение генерируется ОРС сервером оборудования «КРУГ», значение передается в закодированной форме, в которой указывается само значение и его статус в системе IngortechSCADA.
Если ОРС клиент обнаружит, что полученное от ОРС сервера значение закодировано в форме оборудования «КРУГ», то значение будет декодировано и, при успешном декодировании:
будет установлено значение и статус, переданные в значении
значение будет интерпретировано как «значимое» в случае, если для этого типа сигнала установлен значимый тип сигнала
Дискретные значения КУШ
При получении дискретных значений, если они привязаны к контроллеру со следующими протоколами:
CoDeSys/01OPCCoDeSys/01
происходит дополнительный анализ значений ОРС.
Если получено одно из специальных значений, то оно интерпретируется специальным образом.
Значение |
Интерпретация |
-10000 |
|
-20000 |
|
-30000 |
|
Дополнительно, для всех значений равных 0 (нулю) устанавливается статус VARS_D_OFF и статус VARS_D_ON для всех остальных значений.
Значение при этом не изменяется и передается в том виде, в каком оно было получено.
Аналоговые значения КУШ
Пр получении значений для переменных, сконфигурированных в конфигурации IngortechSCADA как «Аналоговые», последовательно производятся следующие проверки:
Если тип протокола значим и тип сигнала значим
Если наименование протокола установлено в значение
CoDeSys/01илиOPCCoDeSys/01Ожидается, что значение будет передано в закодированной форме
Происходит попытка декодирования значения из полученной от ОРС сервера величины
Если декодирование прошло успешно, то:
Значение электрической величины устанавливается в декодированное значение
Статус устанавливается в декодированное значение
Значение инженерной величины вычисляется с использованием параметров типа сигнала из текущей конфигурации
Если при декодировании обнаружена ошибка:
Значение электрической и инженерной величин устанавливаются в принятые значения без изменений.
Статус переменной устанавливается в значение VARS_A_UNKNOWN.
Если наименование протокола установлено в значение
Modbus/КУШ-УМНОжидается, что значение обозначает электрическое измерение, передаваемое значениями в диапазоне 0..255
Значение электрической величины устанавливается в декодированное значение
Если значение находится в диапазоне 0..255
Значение электрической величины вычисляется по формуле:
значение/100Статус устанавливается в значение VARS_A_OK
Значение инженерной величины вычисляется с использованием параметров типа сигнала из текущей конфигурации
Если значение находится вне диапазона 0..255
Значение электрической и инженерной величин устанавливаются в одинаковое значение: принятое значение без изменений.
Статус переменной устанавливается в значение VARS_A_OK.
Если тип протокола любой и тип сигнала любой
Значение электрической величины устанавливается в полученное значение
Статус устанавливается в значение VARS_A_OK
Значение инженерной величины вычисляется с использованием параметров типа сигнала из текущей конфигурации
Обработка значений#
После назначения статуса и установки значимости значения, ОРС Клиент производит проверку значений переменной с учетом ограничений, установленных в текущей конфигурации IngortechSCADA.
Аналоговые переменные
Если статус переменной установлен в значение из набора: VARS_A_NOTCONNECT, VARS_A_NOTWORK, VARS_A_CONFIG, VARS_A_NOCARIER, VARS_A_EXERR, VARS_A_UNCERTAIN, устанавливает инженерное значение в величину 0 (ноль).
Если статус переменной установлен в значение VARS_A_UNKNOWN, значение переменной не изменяется.
Если статус переменной установлен в значение VARS_A_OK, производится проверка значения на такие ограничения конфигурации как:
Границы инженерного диапазона.
В зависимости от инженерного значения переменной и установленных в КОНФИГУРАТОРЕ инженерных порогов для переменной устанавливаются такие статусы как: VARS_A_L_L, VARS_A_M_H, VARS_A_L_LL и VARS_A_M_HH, обозначающие превышение предупредительного или аварийного порогов соответственно.
Границы электрического диапазона.
В зависимости от электрического значения переменной и установленного в КОНФИГУРАТОРЕ диапазона электрического сигнала устанавливаются такие статусы как: VARS_A_L_V и VARS_A_M_V, обозначающие выход за пределы диапазона.
Другие типы переменных
Дополнительный анализ для всех остальных типов переменных не производится.
Передача значений серверу РТС#
После назначения статуса, установки значимости значения и дополнительной обработки, ОРС Клиент анализирует значения переменной и передает их серверу РТС.
Серверу РТС передаются только те значения, для которых выполнится хотя бы одно из следующих условий:
Новое инженерное значение отличается от предыдущего более чем на 0.000001.
Новое электрическое значение отличается от предыдущего более чем на 0.000001.
Новый статус отличается от предыдущего.
Время измерения отличается от предыдущего не менее чем на 1 (одну) секунду.
FAQ: Ответы на вопросы#
Список вопросов и пояснений по поведению или настройке утилиты.
- В:
Что такое фоновая задача?
- О:
При запуске ОРС клиента, для выполнения различных действий на которые может потребоваться длительное время или их выполнение требуется повторять с какой-то периодичностью, запускается специальная фоновая задача (нить, поток) в рамках этой программы.
Действия выполняемые фоновой задачей зависят от текущей используемой конфигурации и настроек утилиты.
- В:
Какие действия могут выполняться в фоновой задаче?
- О:
Утилита может производить следующие действия:
Установку и восстановление связи с контроллером.
Установку и восстановление связи с тегами контроллера.
Отключение контроллера или их группы при выявлении проблем связи.
Периодический опрос значений подключенных тегов для выявления изменения в значениях ии состоянии.
- В:
Как настраивается выполнение задач в фоне?
- О:
В диалоге настроек клиента, на закладке «ОРС» в группе настроек «Фоновая задача».
- В:
Что означает настройка «Опрос значений подключенных переменных»? Если галочку не поставить, переменные не будут опрашиваться?
- О:
Некоторые ОРС сервера имеют ошибки, в результате которых уведомления об обновлении тегов не всегда доходит до клиента.
Для решения этой проблемы можно установить эту настройку. В этом случае клиент будет читать значение и состояние всех подключенных тегов для всех активных контроллеров и, в случае обнаружения изменений, генерировать новое значение так, как будто оно было получено стандартным способом.
Опрос значений для всех тегов может быть длительной операцией и, при работе с ОРС серверами которые не имеют подобной ошибки, можно эту настройку отключить для уменьшения загрузки ОРС сервера и клиента.
- В:
Какие настройки существуют для управления периодом и количеством действий в фоновой задаче?
- О:
Фоновая задача имеет 3 типа настроек:
Период выполнения фоновых задач. Здесь можно указывать секундные значения.
Период повтора авто-подключения для контроллера. Задается в минутах.
Ограничения на количество попыток повтора действий (подключение контроллера и тегов на нем). Задается в штуках. начиная с нуля. Если установлено нулевое значение, количество попыток не ограничено.
- В:
Как происходит выполнение задач в фоне?
- О:
Логика работы ОРС клиента следующая:
Фоновые задачи выполняется в цикле, с задержкой между итерациями в размере настройки н.1 (из предыдущего вопроса). Т.е. никакие действия в фоне не могут выполняться чаще чем эта установка. Каждую итерацию производится только одно действие.
Длительность выполнения действий на каждую итерацию определяется той операцией которая выполняется. Т.е. фактическое время, которое потребуется на каждую итерацию определяется скоростью выполнения действия.
Действия выполняются в следующем порядке:
Если обнаружен отключенный контроллер
И с момента его последней проверки прошло более настройки н.2
И количество попыток для подключения для этого контроллера не исчерпано
Происходит попытка подключения к этому контроллеру и на этом итерация завершается.
Если обнаружено что контроллер активен, но количество активных тегов на нем менее числа зарегистрированных
И с момента его последней проверки прошло более настройки н.2
И количество попыток для подключения тегов для этого контроллера не исчерпано
Происходит попытка активации недостающих тегов и на этом итерация завершается.
Для каждого активного контроллера, для всех его активных тегов
Происходит чтение параметров тега и сравнение с текущими значениями переменных. В случае обнаружения обновления значения или статуса генерируется новое значение.
- В:
Как влияют настройки на выполнение задач в фоне?
- О:
Порядок выполнения фоновых задач описан выше. Фактические результат выполнения:
Попытки подключения контроллеров происходят (в идеале) с периодичностью настройки н.1 для всех контроллеров по очереди.
Попытки подключения тегов контроллеров происходят (в идеале) с периодичностью настройки н.1, для одного контроллера за раз.
Если какие-либо действия для какого-то контроллера была произведены с момент запуска клиента, то их повтор происходит не чаще чем н.2.
Если какие-то действия (подключение тегов, контроллеров или чтение значений) происходят медленно, то они увеличивают длительность выполнения итерации цикла и следующие операции будут выполняться позже.
Подключение к контроллерам и тегам имеет приоритет перед чтением данных. Если связь с каким-то контроллером не может быть установлена или подключение каких-то тегов невозможна, то на каждой итерации будет происходить проверка возможности восстановления с периодичностью (для каждого контроллера индивидуально) в соответствии с настройкой н.2.
Фактическое восстановление будет происходить с периодичностью н.2 для каждого контроллера, но если таких проблемных контроллеров много, то возникает эффект очереди, когда почти всегда есть какой-то контроллер на котором надо что-то восстанавливать.
Следствие: если в конфигурации есть заведомо неработоспособные контроллеры или на каких-то контроллерах заведомо отсутствующие теги, то общий отклик всех выполняющихся операций будет заметно падать за счет выполнения операций заведомо ошибочных операций по поиску контроллеров и тегов.
- В:
Можно привести конкретные примеры работы утилиты?
- О:
Пример1:
Происходит первоначальное подключение клиента: все контроллеры отключены, состояние всех переменных «нет связи».
С периодичностью н.1 будет последовательно производиться подключение контроллеров.
При возникновении любой ошибки на любом контроллере процесс прервется и итерация завершится.
Т.е., если н.1 установлена в значение
1секи все контроллеры подключаются успешно и их20 штук, то время на их подключение будет равно:1сек+время_подключения*20. Если при подключении к каждому контроллеру будет возникать ошибка, то время их подключения будет равно:20*1сек+время_подключения*20. Таким образом, каждый контроллер с ошибкой задерживает общий процесс по крайней мере на время н.1.Полностью аналогичная ситуация происходит в случае, если на контроллере оказываются теги, подключение к которым невозможно. Каждая ошибка на контроллере задерживает время обработки следующих.
В результате, если ошибок при связи не происходит мы видим, что все контроллеры подключаются практически одновременно.
Если возникает ошибка, то видим следующее: контроллеры до ошибочного подключены, контроллеры начиная с него не подключены. Через время н.2 начинают подключаться следующие за проблемным контроллеры и ситуация повторяется (если нет ошибок, то все почти одновременно, если есть, то на проблемном операция опять прервется).
Пример2:
В результате каких-либо проблем контроллер или часть его тегов не были подключен.
При возникновении ошибки для контроллера уменьшается счетчик повторов соответствующей операции и устанавливается время ошибки.
Следующая попытка для этого контроллера будет произведена в соответствии с н.2, минимум через минуту.
В результате, мы видим что при проблемах соединения, подключения части тегов или временной потере связи, контроллер переходит в отключенное состояние и пребывает в нем не менее чем н.2.
В случае если связь с контроллером установлена, но возникли ошибки при подключении тегов мы видим, что состояние связи с контроллером отображается как активное, а состояние всех тегов начиная с проблемного - отключено.
- В:
Почему реализована такая странная логика выполнения фоновой задачи?
- О:
Такое поведение алгоритма, когда любая ошибка вызывает прерывание всей операции и ее повтор заново на следующей итерации сделаны по следующим причинам:
При работе с ОРС фактически невозможно определить причину ошибки. В случае, если ошибка связана с потерей связи с контроллером; всем сервером; системой ОЛЕ - какие-либо дальнейшие действия выполнять бессмысленно. Их выполнение просто приведет к бесцельной трате времени. Необходим заново проверить состояние ОЛЕ и состояние работы ОРС сервера, после чего повторять действия, если это оказалось возможным.
Как правило ОРС клиент работает с единственным (или небольшим числом) ОРС серверов. Возникновение каких-либо внезапных ошибок, как правило, свидетельствует о каких-то фатальных проблемах с ОРС сервером и… см п1.
Особенности работы сервера
Codesys, которые заключаются в непредсказуемом возникновении ошибок при: подключении контроллеров, тегов или чтения их значений. Вероятность возникновения выше, если операции производятся быстрее. В результате возникновения проблем наиболее эффективно оказалось прервать всю работу, проверить активность всех доступных интерфейсов и продолжить операцию с места ошибки.
Ключи командной строки#
Использование командной строки для передачи данных программе описано в разделе «Ключи командной строки».
Утилита rtOPCClient.exe поддерживают следующие ключи командной строки:
rtOPCClient.exe [ПАРАМЕТРЫ]
|
Устанавливает имя для основного лог файла программы. Если ключ не указан, то для файла лога будет использовано имя по умолчанию, соответствующее имени программы, с указанием даты создания и расширением |
|
Если указан, то лог файл вестись не будет. |
|
Если ключ не указан, то для файла конфигурации будет использовано имя по умолчанию, которое, как правило, совпадает с именем программы. |
|
Устанавливает имя для программы. Установленное имя будет отображаться в заголовке программы и в заголовке окна с сообщениями. Это имя используется для того, чтобы различить различные копии программы. Если ключ не указан, то используется имя по умолчанию, совпадающее с именем программы. |
|
Если указан, то при запуске программа передаст сигнал о завершении предыдущей запущенной копии программы. После передачи команды на завершение, программа автоматически закроется. Этот ключ использует имя, установленное с помощью ключа Если предыдущая копия запущена, то программа дождется ее завершения. Если предыдущей копии программы не будет обнаружено, то программа сразу же завершится. |
|
Разрешить запуск нескольких копий программы одновременно. |
|
Показывать в заголовке статистику обработки очереди данных ОРС. |
|
Инициализировать подсистему OLE в очереди периодического опроса. |
|
Запрет автоматического запуска для этой копии программы. |
|
Использование одно-потоковой модели взаимодействия с ОРС. |
|
Не сохранять данные команд в общий файл доступа «access-X.log». |