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

Напоминаю терминологию:

  • Тип точек данных (Datapoint Type) является объявлением структуры (или объекта внешнего мира, вроде задвижки).

  • Точка данных (Datapoint) - экземпляр объявленной структуры (конкретная задвижка).

  • Элемент точки данных (Datapoint element) - как правило, «лист» в дереве, конечная переменная с конкретным типом данных (float, int, bool и т.д.)

  • Конфиг - некоторый объект, который «привязывается» к элементу точки данных и расширяет функционал этого элемента. Например, привязывает его значение к значению какого-либо тэга контроллера (address). Запоминает изменения переменной в базе данных (archive). Ограничивает диапазон (value range). И так далее.

Любая точка данных создается полностью в соответствии с заданным типом. А вот конфиги можно размещать индивидуально, где-то он есть, где-то его нет. Существует механизм мастер-точек данных, но в настоящей заметке речь идет не о ней. Таким образом, настройка всех конфигов для всех точек данных в реальных проектах становится времяемкой, если использовать исключительно «ручное вколачивание» через модуль Para. Для экономии времени в WinCC OA создан механизм импорта/экспорта точек данных.

Для примера создан тип точек данных «аналоговый вход». Создан, конечно, упрощенно. Вот его описание.

Есть само значение переменной и его диапазон, от и до, все переменные - типа REAL. Создана одна точек данных с именем Level0. На все ее DPE размещены конфиги «адрес» и «сглаживание». Адресный конфиг настроен на протокол Modbus TCP, сервер которого так же запущен на ПК с установленной WinCC OA. Значения обновляются по протоколу. Настройки конфигов для val приведены ниже.

Настройки DPE MinEU и MaxEU аналогичны, за исключением, конечно же, конфига address, MinEU - это уже второй регистр, MaxEU - четвертый.

Для выполнения экспорта данных необходимо запустить System Management и в меню Database найти ASCII Manager

В окне импорта/экспорта необходимо выбрать экспорт, указать имя файла, указать, что конкретно экспортируется (точки данных и их параметры, в нашем случае это address для изменения адреса модбас, в distrib хранится номер драйвера и smooth для сглаживания). Так же я ограничиваю экспорт типом точек данных AnalogInput.

Далее нажимаем кнопку Start и вводим пароль пользователя root

Нажав третью кнопку рядом с именем файла, можно открыть получившийся экспорт в Excel. Импорт / экспорт работает с файлами типа csv, но в табличном виде результат, конечно же, нагляднее. Итого мы видим сейчас одну точку данных и 9 конфигов (по три на каждый DPE).

Для начала интересен список точек данных, который состоит из трех полей: имя точки данных, имя типа точки данных и ID. Сразу возникает закономерный вопрос, это идентификатор чего - точки или типа? Что будет, если я переименую точку, оставлю тип и запущу импорт? Для ответа на первый вопрос создам еще одну точки данных этого типа и выполню экспорт заново.

Из новой таблицы становится понятно, что ID - это идентификатор точки данных. Некоторое внутреннее значение, которое в модуле Para ни задать, ни прочитать. И как теперь мне создавать через импорт новые точки данных, если я не знаю, какой им задавать ID? Ответы на эти вопросы можно получить только экспериментально. Я удаляю точку данных TempDP и возвращаюсь к самому первому экспорту, будем его редактировать. Меняю имя точки данных на Level1 и меняю настройки адреса modbus. ID остается старый, который принадлежит точке Level0.

Выполним импорт и посмотрим, что произойдет. Переключаю менеджер ASCII на импорт, оставляю то же имя файла, запускаю импорт, ввожу пароль и смотрю в журнал:

Импорт прошел с предупреждением. Посмотрим, что у нас в модуле Para. У нас, все же, появилась точка данных Level с настроенными, как надо, адресами протокола модбас. Регистры хранения 6, 8 и 10 у меня заранее заданы в симуляторе сервера Modbus TCP, их значение сразу пришло в систему.

Я снова выполняю экспорт, мне интересен новый список точек данных и их ID.

Очевидно, что при импорте точки Level1 система определила конфликт ID и задала новый идентификатор для точки данных Level1, что и послужило предлогом для вывода предупреждения в лог-файл. Смотрим соответствующие строки в логе:

WCCOAascii_info:Datapoint/DpId (5): Datapoint (System1:Level0) with ID 512 already exists, new ID will be generated

Интересно, что произойдет, если выполнить переименование точки данных, но удалить ее ID, как в примере ниже:

В этом случае импорт пройдет без предупреждений, и будет создана новая точка данных - Level 2.

С моей точки зрения целесообразно удалять ID новой DP при импорте, дабы импорт выполнялся без предупреждений.

Таким образом мы убедились в возможности создания новых точек данных в системе, используя механизм импорта / экспорта данных.

Комментарии (0)