Tia Portal Веб-Сервер

2020-12-02 Промышленное  Комментариев нет

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

Безусловным плюсом такого подхода является то, что нет необходимости в дорогостоящем программном обеспечении, как это зачастую бывает в случае со SCADA системами, достаточно наличия обычного веб-браузера.

Наличие веб-сервера является неотъемлемой частью большинства современных ПЛК и конечно, контроллеры Siemens не являются в данном случае исключением.

На веб-сервере уже содержатся стандартные веб-страницы, такие как общая информация о ЦПУ, диагностический буфер, состояние переменных и т.д., но ничего не мешает создавать и свои пользовательские, доступ к которым осуществляется также как к стандартным веб-страницам с компьютера либо с мобильного устройства.

Для получения доступа к веб-серверу, его необходимо активировать в настройках. Для этого в Tia Portal переходим на вкладку Web server в свойствах ЦПУ, предварительно выбрав его в Device Configuration. Устанавливаем галочку напротив Activate web server on all modules of this device. Для повышения безопасности можно выбрать Permit access only with HTTPS, в этом случае доступ к веб-серверу осуществляется только по протоколу HTTPS.

Tia Portal Web server

Далее задаем имя пользователя,пароль и уровни доступа.

Контроллеры поддерживают многопользовательскую авторизацию, каждому пользователю могут быть присвоены различные полномочия, такие как:

  • Диагностика посредством запросов
  • Чтение тегов
  • Запись тегов
  • Чтение статуса тега
  • Запись статуса тега
  • Открытие пользовательских страниц
  • Запись в пользовательские страницы
  • Чтение файлов
  • Запись/удаление файлов
  • Изменение рабочего режима
  • Мигание светодиодами
  • Выполнение обновление встроенного ПО
  • Изменение системных параметров
  • Изменение параметров приложения

Tia Portal Web server

Загружаем нашу конфигурацию в ПЛК.

Tia Portal Веб Сервер

После этого переходим в браузер и в адресной строке вводим IP-адрес нашего ПЛК. В случае успешного соединения открывается начальный экран Introduction. Нажимаем Enter и переходим к стандартным Веб-страницам сервера.

В случае создания пользовательских веб-страниц, их также необходимо будет сконфигурировать. Для этого на вкладке User-defined pages выбираем директорию, где размещена созданная заранее страница и в Default HTML page непосредственно сам HTML файл, который будет открываться по умолчанию.

Tia Portal Создание пользовательских веб-страниц

Нажимаем Generate blocks для создания страницы. Обратите внимание, что данные об HTML-страницах сохраняются в проекте в блоках данных DB333, который является управляющим блоком, отвечающим за отображение веб-страниц на сервере и DB334 — блоке данных фрагментов, содержащим скомпилированные веб-страницы. В отличии от управляющего блока, который может быть представлен только в единственном экземпляре, блоков данных фрагментов может быть несколько, в зависимости от количества файлов в директории. Если превышено максимальное количество байтов, которое может содержаться в одном блоке данных фрагментов, создается следующий блок данных и т.д.

После того, как блоки данных будут сгенерированы, все пользовательские веб-страницы, которые расположены в выбранной директории становятся частью программы. Блоки, соответствующие этим страницам, появляются в папке веб-сервера, которая находится в папке System blocks в дереве проекта.

Блоки данных веб-сервера

Веб-страницы могут создаваться в любом текстовом редакторе в стандартном формате HTML.

По умолчанию пользовательские веб-страницы автоматически не обновляются, что может повлиять на актуальность выводимых значений. Если автоматическое обновление необходимо, добавьте следующую строку к своему HTML-заголовку:

 

Для доступа к информации в ЦПУ, используются специальные AWP-команды, встраиваемые в страницу в виде HTML-комментариев.

AWP команды

Пробелы после" <!--" и до «-->» в AWP-командах важны для правильной компиляции команды. Пропуск пробелов может помешать компилятору корректно сгенерировать код. Компилятор в этом случае не будет отображать ошибку.

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

Все они, кроме команды на чтение переменных, имеют общий синтаксис — <!-- AWP_ <command name and parameters> -->.

Например команда на запись данных в ЦПУ имеет следующий синтаксис — <!-- AWP_In_Variable Name='<Varname1>' -->, где Varname1 — имя переменной ПЛК или имя тега из блока данных, которая будет записана.

Также команда может иметь такой вид — <!-- AWP_In_Variable Name='<Varname1>' [Use='<Varname2>'] -->. В данном случае записываемой переменной будет Varname2, которая представляет собой имя переменной ПЛК или имя тега из блока данных, а Varname1 будет псевдонимом для Varname2, то есть любым пользовательским именем, отличным от того, который задан в ПЛК.

Для чтения / записи переменной из таблицы тегов ПЛК достаточно указать только имя переменной, а для чтения / записи переменной из блока данных необходимо указать имя блока данных и имя переменной.

После указания на странице AWP-команды на запись, мы можем в стандартной HTML форме с помощью кнопок изменять состояние наших переменных, прописанных в AWP-команде.

AWP Команды

Для чтения переменных используется синтаксис команды :=<Varname>:, где Varname — имя переменной.

С помощью AWP команды определения типов перечислений мы можем задавать различные значения элементов для типа перечислений.

<!-- AWP_Enum_Def Name='<Enum type name>' Values='<Value>, <Value>,... ' -->

 

В данном случае AlarmEnum — это имя перечисления, далее идут элементы перечисления, сначала указывается числовое значение для назначения типа перечисления, затем имя, присвоенное элементу перечисления.

Для дальнейшей работы с типом перечислений мы можем определить переменные назначенным типам перечислений, которые могут использоваться на веб странице при чтении, либо записи. При чтении переменной сервер заменяет числовое значение, считанное из ЦПУ на соответствующее текстовое значение перечисления. При записи веб-сервер заменяет текстовое значение на числовое значение перечисления, которое соответствует тексту прежде, чем
записать значение в ЦПУ.

Синтаксис команды при чтении переменной

<!-- AWP_Out_Variable Name='<Varname>' Enum="<EnumType>" -->

<Varname> — имя тега ПЛК или имя тега из блока данных, которому установлено соответствие с типом перечисления

<EnumType> — имя типа перечисления.

 

В зависимости от значения переменной Alarm в ЦПУ, будет отображаться текстовая строка, заданная в типе перечислений. Например, если значение Alarm — 0, то на странице будет выводиться значение No alarms, 1 — Tank is full, 2 — Tank is empty.

Синтаксис команды при записи переменной

<!-- AWP_In_Variable Name='<Varname>' Enum="<EnumType>" -->

В данном случае в переменную Alarm записывается значение 1, так как оно соответствует значению в типе перечислений Tank is full.

Команды считывания и записи специальных переменных позволяют сохранять информацию об идентификаторе и имени текущего пользователя, данных заголовка страницы, о значениях именованных куки и т.д.

Например следующая команда записывает идентификатор текущего пользователя в переменную my_userid.

 

Для доступа из стандартных страниц на веб-сервере к пользовательским, в программе должна быть задействована инструкция WWW, для которой в качестве входного параметра указывается управляющий блок данных DB333, с помощью которого определяется содержимое пользовательских страниц. Возвращаемое значение   RET_VAL содержит результат функции.

Инструкция WWW

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Яндекс

Комментарии

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>