Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpargalka_atp_v_ngp.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
46.68 Mб
Скачать

2.4 Служебная функция вызова идентификатора данных для сервера.

Далее существует необходимость в добавлении «служебной» функции, используемой для вывода идентификатора, передаваемого на сервер, исходя из имени группы (GroupName) и идентификатора элемента группы (ItemID), которым в действительности является строка, описывающая путь до необходимого параметра в SCADA системе.

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

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

Еще одна функция, которая не используется в данной работе, но ее целесообразно указать в целях упрощения дальнейших разработок в этой области. Это функция удаления элемента из группы. Элемент удаляется определяясь по имени группы и идентификатору элемента.

2.6 Использование класса орс для выборки и записи данных

Следующим шагом будет использование класса OPCServer путем объявления переменной класса и вызова ее методов. В этом приложении вы объявите глобальную переменную OPCServer типа OPCServer. Когда приложению требуется манипулировать группой или элементом, оно осуществляет запрос с использованием дескриптора. Этот дескриптор возвращается сервером при первоначальном создании группы или элемента. Кроме глобальных переменных для каждого из требуемых значений необходимо также иметь и переменные для хранения дескрипторов сервера этих переменных.

Группа IngredientInfo добавлена с темпом обновления 1000 миллисекунд или 1 секунда. Это наиболее быстрый, из возможных в OPC, темп. Так как приложение требует очень малое число точек данных, использование наилучшего из возможных темпов не является проблемой с точки зрения производительности. Для большого количества данных может стать важным разбиение элементов на группы, которые требуют различного темпа обновления и таким образом для сокращения нагрузки.

В Sub Main перед строкой frmMain.Show добавьте следующий код:

При вызове AddItem, ItemID является символьным представлением пути к элементу в SCADA, например - " OPCSAMPLE/TARGET_DRYINGR.CV". В примере конфигурации DeltaV существует модуль OPCSAMPLE. Этот модуль содержит параметр уровня модуля поименованный TARGET_DRYINGR. Расширение ".CV" указывает на поле параметра. Current Value (CV – текущее значение) является полем по умолчанию, если не специфицировано иначе. Определение поля зависит от типа параметра.

2.7 Функции выборки и записи данных для помощи орс сервера.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]