Автоматизированная система управления производством на базе http

структура системы
Система организована на основе сети передачи данных с произвольной архитектурой. Узлами сети являются контроллеры, маршрутизаторы, серверы, пульты операторов. Контроллеры по выделенным физическим линиям звездообразно соединены с маршрутизаторами или серверами. Возможно также подключение контроллеров к серверам в сеансном режиме через модем. Пульты операторов и серверы обычно объединяются между собой в одну или несколько локальных вычислительных сетей (LAN). Маршрутизаторы объединяют разные LAN в единую вычислительную сеть системы.
Передача информации между узлами сети системы осуществляется с использованием технологии TCP/IP, поэтому нет принципиальной разницы, какое каналообразующее оборудование будет находиться между ними. Применение широко распространенного семейства протоколов TCP/IP позволяет использовать уже существующие глобальные или корпоративные сети передачи данных. Структура IP-сетей позволяет подключить любое оборудование системы (контроллер, сервер, пульт оператора) к любой точке сети, при этом не накладываются ограничения на количество объектов. Использование разветвленной топологии сети с дублированием маршрутов позволяет гарантировать ее работоспособность при выходе из строя значительного числа узлов и каналов передачи. Еще одна важная особенность данной структуры — возможность использования сетевых и системных ресурсов уже построенной системы для передачи и хранения данных другой, аналогичной. При этом принятый протокол автоматически обеспечит доступ операторов различных ведомств к нужной информации.
Представление информации о состоянии, настройках контроллеров и состоянии контролируемых объектов, отображение ее на пульте оператора осуществляется с использованием протокола HTTP. Для визуализации и управления используется стандартное программное обеспечение.
Минимальная конфигурация (при отсутствии необходимости ведения журналов отчетов) — контроллер и пульт оператора. Максимальная конфигурация может содержать более одного маршрутизатора, сервера и пульта. Максимальное число узлов сети ограничено пространством адресов протокола IP.

состав системы
Контроллер. Опрашивает подсоединенные датчики и формирует управляющие сигналы по заданному алгоритму. При возникновении аварийных ситуаций сообщает о них на сервер или пульт оператора. Встроенный WWW-сервер служит для визуализации показаний датчиков и состояний управляющего алгоритма, а также для ручного управления исполнительными механизмами.
Маршрутизатор. Служит для передачи информации от контроллеров к вышестоящим узлам сети системы, для хранения файлов изменяемых модулей управляющих программ контроллеров, для обеспечения сетевого сервиса для контроллеров (загрузка, передача даты, времени и пр.)
Сервер. Содержит программное обеспечение для запроса, преобразования и архивирования информации от контроллеров, архив работы системы. Является платформой для основного WWW-сервера.
Пульт оператора. Служит для управления системой, отображения информации о системе в наглядном виде, просмотра, получения твердой копии и распечатки журнала работы.

конструкция контроллера
Контроллер Granch SBTC представляет собой моноблочную конструкцию в пылевлагозащищенном исполнении, позволяющем устанавливать его непосредственно возле объектов управления. Контроллер крепится к вертикальной конструкции (стена, стойка и пр.). На передней панели контроллер имеет клеммную колодку для подключения проводов от датчиков и исполнительных механизмов, которая закрывается защитной крышкой. Так же на передней панели находятся индикаторы, показывающие текущее состояние работы контроллера. На нижней панели располагаются разъемы для подключения питающих и связных кабелей.

основные технические характеристики контроллера



программное обеспечение контроллера
Программное обеспечение контроллера структурно разделяется на постоянное ПО (ядро) и динамическое ПО (динамический модуль). Ядро прошито в ПЗУ и не изменяется на протяжении эксплуатации контроллера. Динамический модуль в зависимости от системных установок может быть загружен из flash-памяти либо с маршрутизатора (сервера) посредством протокола TFTP.
ядро
Ядро предоставляет динамическому модулю сетевой сервис, функции для работы с flash-памятью, функции получения даты и времени, функции обработки аварийных ситуаций. После включения Контроллера управление передается загрузчику, который производит начальную инициализацию, проверку аппаратного обеспечения и загружает программу ядра. Ядро завершает инициализацию системы. Если IP-адрес получается динамически, по окончании случайной задержки стартует клиент BootP. После этого, в зависимости от системных установок, может стартовать клиент TFTP, загружающий образ динамического модуля. Проверяется контрольная сумма образа. В случае ее правильности производится сравнение загруженного образа и образа из flash-ЗУ. Если они отличаются, новый образ сохраняется во flash. Затем вызывается загрузчик динамического модуля, который загружает требуемую часть образа в ОЗУ и передает управление программе инициализации динамического модуля. После инициализации динамического модуля управление возвращается ядру и в дальнейшем взаимодействие ядра и динамического модуля осуществляется через таблицу векторов, расположенную в начале области памяти динамического модуля.
Для обеспечения сетевого сервиса в ядре реализован стек TCP/IP. Практически он не отличается от подобных реализаций в других операционных системах, за исключением двух ограничений: отсутствие возможности сборки фрагментированных IP-пакетов и ограничение количества одновременно открытых TCP-сокетов десятью. Эти ограничения обусловлены малым объемом оперативной памяти контроллера. В ядре также реализован WWW (HTTP) сервер. При приходе запроса какого-либо ресурса сначала проверяются права инициатора запроса (по схеме basic HTTP) на просмотр этого ресурса, а при наличии в запросе аргументов — на управление этим ресурсом. Если ресурс не найден, проверяется права на ответ "Ресурс не найден". При несоответствии прав отправляется ответ "Доступ запрещен". Зарезервировано 8 идентификаторов ресурсов, с помощью которых осуществляется администрирование контроллера. Запросы ресурсов обрабатываются ядром, указатели на параметры остальных передаются динамическому модулю вместе с индексом ресурса.
Администрирование контроллера осуществляется через WWW-интерфейс. Некоторые установки можно просмотреть и изменить как удаленно, так и локально, другие (относящиеся преимущественно к администрированию базы данных пользователей) — только локально. Для этого зарезервирован один из последовательных портов RS-232 и реализовано семейство протоколов PPP. Контроллер подключается к компьютеру администратора через последовательный порт и эмулирует модем (если контроллер находится в сеансном режиме работы, этот последовательный порт служит для подключения внешнего модема). Доступ к защищенным ресурсам при этом осуществляется посредством обычного dial-up соединения. При попытке запроса защищенного ресурса из сети он будет отклонен ("Ресурс не найден").
Удаленно можно просмотреть текущее системное время, время включения контроллера, правильность контрольных сумм некоторых областей памяти, статус последней операции с flash-ЗУ, состояние динамического модуля (активен / не активен). Также можно проинициализировать динамический модуль, перезагрузить динамический модуль с TFTP-сервера, перезагрузить дату и время, изменить скорость в линии связи, полностью перезагрузить контроллер (при этом перестает сбрасываться сторожевой таймер и происходит рестарт).
Локально можно просмотреть и изменить сетевые установки: IP-адрес контроллера, маску подсети, IP-адрес роутера, IP-адрес основного WWW-сервера, IP-адрес и порт сервера аварийных ситуаций, IP-адрес и порт сервера даты и времени, IP-адрес TFTP сервера, путь и имя файла образа динамического модуля. Также можно указать, использовать указанный IP-адрес или получать его по BoopP, получать образ динамического модуля по TFTP или использовать сохраненный в flash-ЗУ и др. Доступны установки, связанные с обработкой сигналов с датчиков: смещения нулей и масштабные коэффициенты для аналоговых входов (вручную или с помощью полуавтоматической тарировки по 5 пунктам), периоды для принятия решений по дискретным входам, текущие состояния дискретных входов. Отсюда также можно устанавливать состояния управляющих выходов. Операции с базой данных пользователей: просмотр списка пользователей, удаление, редактирование и добавление пользователя, поиск пользователей по критериям, проверка целостности базы, ее починка. При редактировании и добавлении пользователя указываются имя и пароль, а также права доступа для просмотра и отдельно управления каждым ресурсом в системе. Максимально может быть 64 ресурса, из них 8 зарезервировано ядром плюс сообщение "Ресурс не найден", которое также имеет права доступа. Эта информация может быть сохранена в виде бинарного файла на компьютере администратора и в дальнейшем загружена в другой контроллер. Все данные, изменяемые только локально, сохраняются в отдельном flash-ЗУ с последовательным доступом, запись в которое разрешена только во время сеанса связи по последовательному порту.
На ядро возлагаются также вспомогательные сетевые функции (обработка и генерация сообщений ICMP, необходимых для работы таких программ, как ping и другие), проверка целостности некоторых областей памяти, обработка аппаратных прерываний или передача управления обработчикам из динамического модуля, интерфейс с внешним модемом и пр.
динамический модуль
Динамический модуль — это часть программы контроллера, разрабатываемая под конкретную реализацию системы. Будучи один раз загруженным в контроллер с основного сервера, образ динамического модуля сохраняется в энергонезависимом flash-ЗУ и в дальнейшем запускается оттуда. Он представляет собой исполняемый файл формата DOS EXE с точкой входа, указывающей на программу инициализации. Динамический модуль, загруженный в память, кроме программы инициализации содержит программу управляющего алгоритма, информацию о WWW-ресурсах (HTML-страницах, определенных разработчиком), обработчик HTTP запросов, программу формирования журнала, драйвер вспомогательного PIC-процессора и др.
Взаимодействие ядра и динамического модуля осуществляется через таблицу векторов, расположенную в начале области кода динамического модуля. Первая часть таблицы содержит указатели на сервисные функции ядра и инициализируется на этапе запуска динамического модуля ядром. Вторая часть таблицы содержит относительные указатели на обработчики событий динамического модуля и формируется на этапе его компиляции.
Определены следующие события, при возникновении которых вызываются соответствующие обработчики:
Таймер реального времени — событие, возникающее каждые 10 мс вне зависимости от загрузки ресурсов ядра. На обработчик накладывается ограничение по продолжительности исполнения — не более 1 мс.
Таймер — событие, возникающее каждые 10 мс при отсутствии загрузки ресурсов ядра.
Приход HTTP-запроса — в обработчик передаются идентификатор запрошенного ресурса и указатель на список аргументов запроса. Обработчик формирует HTTP-ответ и отсылает его, используя соответствующую функцию ядра.
Прерывание приемника последовательного порта.
Прерывание передатчика последовательного порта.
Кроме этих обработчиков, существует объект данных, на который имеется ссылка в таблице указателей. Это список WWW-ресурсов динамического модуля, используемый ядром для проверки наличия ресурса, прав инициатора запроса и формирования идентификатора ресурса. Первым в этом списке находится ресурс, отдаваемый по умолчанию.
программирование динамического модуля
Отображение измеренной контроллером информации осуществляется посредством HTML-страниц. Показания датчиков форматируется и помещается в HTML-страницу по смещениям, которые вычисляются прилагающейся программой с помощью зарезервированных слов. 
Зарезервированные слова начинаются со знака "$", содержат идентификатор измерительного входа или управляющего выхода (AI — для аналогового, DI — для цифрового и DO — для управляющего) и номер входа или выхода (0-7 для аналоговых и управляющих и 0-15 для цифровых). Таким образом, HTML-код

...... <table><tr><td>$DI3</td><td>$AI0</td></tr></table>......

выведет таблицу из двух столбцов, первый столбец которой будет содержать измеренную информацию с 3-его цифрового входа, а второй — с 0-ого аналогового. Другой HTML-код

...... <form><input type="hidden" name "$DO2" value="1"><input type="submit" value="Включить управляющий выход 2"></form>......

выведет кнопку, при нажатии на которую включится управляющий выход 2.
HTML-страницы создаются с помощью любого текстового редактора с уникальными именами из 8-ми символов с расширением.htm (имена будут использоваться в создании WWW-ресурсов), а затем компилируются программой обработки HTML-страниц, поставляемой с контроллером, в объектный код (создаются файлы по именам HTML-файлов с расширением.obj). Эти файлы потом необходимо использовать при сборке общего exe-файла.
Контроллер поставляется с набором утилит, библиотек и исходных текстов, обеспечивающим минимально необходимые функции для реализации динамического модуля без написания дополнительных программ. Он содержит обработчик HTTP-запросов, генератор журнала-отчета, обработчик аварийной ситуации по питанию (переход на питание от аккумулятора и обратно). 
При более жестких требованиях к функциональности (введение управляющего алгоритма, форматированного и неформатированного ввода и вывода, использование flash-ЗУ для хранения информации, использование последовательного порта, применение сетевых протоколов, отличных от HTTP) дополнительные программные модули пишутся на одном из языков высокого уровня. Для этого существует библиотека функций для программирования на языке С. Библиотека содержит функции чтения значений входов (как аналоговых, так и цифровых), функции установок управляющих выходов, функции ввода и вывода, функции доступа к средствам ядра и т.д.

сервер
Он содержит программное обеспечение для запроса, преобразования и архивирования информации от контроллеров, архив работы системы. Является платформой для основного WWW-сервера. Решает следующие задачи:
1. Обеспечение передачи информации между контроллерами, маршрутизаторами и пультами операторов.
Для обеспечения связи между всеми компонентами системы используется стандартный протокол TCP/IP, поддерживаемый наиболее распространенными коммуникационными системами.
Для обеспечения связи используется операционная система UNIX, которая в настоящее время наиболее широко применяется для построения сетей на базе Internet-технологий. Она предоставляет полный набор функций по доставке и маршрутизации пакетов TCP/IP, а также предоставляет средства для защиты системы от несанкционированного доступа.
2. Получение, накопление, хранение и архивация данных, поступающих от контроллеров.
В течение всего времени работы системы сервер накапливает информацию, поступающую к нему от контроллеров, путем периодического обращения к каждому из них и получения информационных массивов, которые сортируются, анализируются и обрабатываются соответствующими программами. В состав программного обеспечения сервера входят следующие компоненты:
‰ Программа получения данных от контроллера getlog. Она предназначена для получения данных, их обработки, помещения в основной массив данных на хранение, динамического изменения ссылок в html-файлах и шаблонах, на основании которых они формируются, вызова программы формирования html-страниц, содержащих данные для просмотра их стандартными средствами, а также анализа состояния опрошенного контроллера и, в зависимости от его состояния, установки или сброса отображаемого на пульте оператора сигнала аварии. Запуск осуществляется программой опроса контроллеров в стандартном режиме или программой обработки аварийной ситуации в случае возникновения таковой. Настройка осуществляется путем редактирования конфигурационного файла, содержащего все необходимые указания о размещении программ и данных, значения параметров.
‰ Программа опроса контроллеров getshell. Она предназначена для периодического опроса контроллеров с целью получения от них накопленных за истекший промежуток времени данных. Запуск ее осуществляется стандартным планировщиком задач операционной системы UNIX, в котором можно установить необходимую частоту сбора информации. Настройка программы, в том числе и настройка порядка опроса контроллеров, осуществляется редактированием конфигурационного файла, содержащего все необходимые указания о размещении программ, данных и значения параметров.
‰ Программа приема сообщений об аварийных ситуациях alarmd. Она предназначена для приема сообщений о возникновении аварийной ситуации на узле или участке, данные с которого снимаются контроллером, регистрации поступившего сообщения и вызова программы получения данных от контроллера. Запуск программы осуществляется во время старта сервера и ее функционирование не прекращается все время, пока функционирует система. Настройка ее заключается в редактировании конфигурационного файла, содержащего все необходимые для нее указания о размещении программ и данных, значения параметров.
‰ Программа формирования html-файлов с данными для просмотра их стандартными средствами genapplet. Программа предназначена для формирования html-файлов, содержащих массивы исходных данных, подготовленных для просмотра стандартными средствами сети Internet. В формируемый html-файл закладываются все необходимые параметры для Java-апплета, реализующего функцию просмотра, передается массив данных, формируемый на основе хранимого на сервере основного массива, и производится динамическая замена шаблонных ссылок на ссылки, указывающие на действительные адреса. Запуск осуществляется из программы получения данных от контроллера. Настройка заключается в редактировании конфигурационного файла, содержащего все необходимые указания о размещении программ и данных, значения параметров. Программа использует предварительно подготовленные двоичные конфигурационные файлы, что позволяет изменять структуру записи регистрационного журнала в широких пределах, а также изменять передаваемые в формируемые файлы параметры и их количество без внесения изменений в ее исходный код.
‰ Программа формирования текстового журнала printnodelog. Она предназначена для формирования текстового журнала, отображаемого по запросу с пульта оператора. Программа запускается из cgi-скрипта обработчика формы просмотра текстового регистрационного журнала, но может быть запущена также из командной строки. Настройка ее заключается в редактировании конфигурационного файла, содержащего все необходимые для программы значения параметров. Она может быть также использована для непосредственной работы с командной строкой.
‰ Обработчик формы просмотра текстового регистрационного журнала logview. Он представляет собой интерфейсный модуль, предназначенный для ведения диалога с оператором пульта, необходимого для выбора параметров просмотра регистрационного журнала. У оператора запрашивается значение дня и месяца, за который он хочет просмотреть регистрационный журнал. При запуске модуля эти значения автоматически устанавливаются равными текущим. Выбор пользователя проверяется и, если он признан ошибочным или данные по запрошенному периоду отсутствуют, выдается предупреждающее сообщение. В этом случае на рабочем экране пульта присутствует только одна кнопка, позволяющая вернуться назад и задать правильные значения. Если данные по запрошенному периоду найдены, то рабочий экран пульта делится на две неравные части: в верхней постоянно присутствуют кнопки возврата на страницу мастера журналов, перехода на главную страницу контроллера, с которым в данный момент проводится работа, и возврата к выбору дня и месяца просмотра, в нижней просматривается регистрационный журнал за указанный день. Выведенную на экран информацию можно прокручивать с помощью кнопок <PageUp>/ <PageDown>или используя линейки прокрутки окна. Обработчик формы вызывается из мастера журналов переходом по ссылке "Текстовый регистрационный журнал". Обработчик написан на языке Perl версии 5.004.04
‰ Программа формирования html-файла twograf для просмотра стандартными средствами двух графиков одновременно. Она предназначена для формирования массива исходных данных для Java-апплета, реализующего функцию совмещенного просмотра двух графиков стандартными средствами просмотра документов сети Internet. В формируемый html-файл закладываются все необходимые параметры для реализующего функцию просмотра Java-апплета, передается массив данных, формируемый на основе хранимого на сервере основного массива и производится динамическая замена шаблонных ссылок на ссылки, указывающие на реальные адреса. Сформированный массив будет содержать данные в диапазоне двух недель от указанного момента времени с точностью до одной минуты. Запуск программы осуществляется по запросу оператора указанием необходимой даты, а также видов графиков, которые требуется совместить. Все параметры, вводимые оператором, проверяются на правильность их ввода, в случае ввода недопустимых параметров оператор получает сообщение об ошибке, при этом вызова программы не происходит. Настройка программы заключается в редактировании конфигурационного файла.
‰ Программа добавления в систему нового узла addnode. Она предназначена для добавления нового узла в регистрационный файл системы station.conf, описывающий зарегистрированные узлы. Для формирования новой записи об узле программа задает вопросы пользователю, запустившему ее. Он должен указать IP-адрес добавляемого узла, имена каталогов первого, возможно, второго и третьего уровней, а также возможность получения с узла данных при запуске системы. Кроме того, программа автоматически сформирует длинное описание (состоящее из имен каталогов первого и второго уровней), отображаемое в различных отчетных документах. После указания всей требуемой информации программа предлагает перепроверить ее и после этого заносит изменения в файл описания зарегистрированных узлов.
‰ Программы для формирования двоичных конфигурационных файлов описания структуры записи регистрационного журнала и массива создаваемых файлов reccompile/graphcompile. Исходными данными для обеих программ являются текстовые конфигурационные файлы, содержащие соответственно описание полей записи регистрационного журнала и параметров обработки данных, а также значения, помещаемые в формируемые файлы. Они читают исходные файлы, поверяют корректность задания параметров, приведенных в них, и формируют двоичные файлы фиксированной структуры, что упрощает их разбор программами-обработчиками. При обнаружении ошибок программы выдают подробную диагностику, не создавая выходных файлов. Они также помещают в заголовок двоичного конфигурационного файла признак, по которому программа-обработчик определяет, что ей передан правильный файл.

Требования к аппаратному обеспечению сервера
Для нормального функционирования требуются следующие аппаратные ресурсы:
Компьютер IBM PC или совместимый в следующей конфигурации:
процессор 486 и выше, оперативная память 16 мегабайт и больше,
жесткий диск размером 1 гигабайт и более (в размер жесткого диска включено место, требуемое для хранения архива данных, поступивших от контроллеров в систему).

Требования к стандартному программному обеспечению сервера
Для нормального функционирования сервера требуются следующие программные ресурсы:
операционная система UNIX FreeBSD версии 2.2.5 и выше или BSD/OS версии 2.1 и выше, установленная в минимальной или более расширенной конфигурации,
WWW-сервер Apache версии 1.2.2 и выше,
Perl версии 5.004 и выше,
дополнительные модули языка Perl: Mime::Base64

пульт оператора
Пульт оператора представляет собой РС-совместимый компьютер (минимальные требования: Р166, 32 Мб RAM, 2 Мб VRAM, SVGA 15' 1024x768) с операционной системой Win95/WinNT4.0, включающей броузер Internet Explorer 4.0 и выше с установленной Java VM 5.0.0.3167. Программы установки Internet Explorer и Java VM можно получить по Internet по адресу http://www.microsoft.com бесплатно.
Кроме этого, если этот пульт оператора используется для приема сообщений об аварийных ситуациях от контроллера или сервера и их отображения, устанавливается дополнительная программа-обработчик сообщений об аварийных ситуациях, являющаяся отдельным приложением. При загрузке она запускает броузер, создает серверный порт TCP/IP в соответствии с параметрами, записанными в конфигурационном файле, и ждет сообщений по этому порту. При приходе сообщения, после проверки правильности всех полей, программа отображает в броузере соответствующую страницу с указанным URL и по тому же порту передает инициатору сообщения подтверждение, что оно получено.
Формат полей строки сообщения таков:


— Версия — версия протокола (=1).
— Тип — тип сообщения. Для строки сообщения контроллера — 1, для строки ответа — 2.
— Магическое число — случайное число, сгенерированное контроллером. В ответе это число возвращается контроллеру, измененное суммой по модулю 2 с числом 0xFFFFFFFF.
— FCS — двухбайтовая контрольная сумма строки (rfc1662).
— Приоритет — приоритет сообщения, используется при наличии очереди из нескольких сообщений.
— Длина URL — длина содержащегося в сообщении URL в байтах, включая завершающий пробел.
Сообщение должно заканчиваться пробелом.

По материалам разработчика и производителя системы — российской фирмы "Гранч"


Сетевые решения. Статья была опубликована в номере 05 за 2001 год в рубрике решения

©1999-2024 Сетевые решения