data.vk.edu.eedata.vk.edu.ee/rddr/2017 rddr/webaunomaatik n2.d…  · web viewКурс...

72
1 Курс лекций по дисциплине «Использование ВЕБ технологий в системах автоматизации». Лекция 1. Аннотация: рассматриваются современные распределённые АСУТП, их структура, обмен информацией. Определеня ряд понятий Интернет технологий. Сеть Ethernet как основа связи удалённых устройств. Введение. Современная система автоматизированного управления технологическими процессами (АСУТП) является распределённой системой управления. Это следствие того, что объекты управления(ОУ) раскиданы на большом пространстве и часто значительно удалены друг от друга. Среди множества ОУ имеются технологические установки с большой концентрацией технологических параметров, таких как давление, температуры, содержание компонентов и другие. На всех объектах контролируются и управляются потоки сырья, материалов, энергии от их источников . Средняя по мощности технологическая установка для надежной и экономичной работы использует 500 -600 аналоговых и дискретных параметров, а также 100- 150 исполнителных механизмов, регулирующих потоки. Но также присутсвуют большое число мелких технологических объектов (насосные стации, емкосные парки, узлы подготовки продуктов и т.д.) имеющие небольшое количество параметров. На таких объектах используются распределенные системы управления включающие несколько программируемых контроллеров, несколько промышленных компьютеров и набор отдельных электронных регуляторов и приборов. Ко всем этим приборам подключаются датчики и исполнительные механизмы. Программируемые контроллеры и компьютеры объединяются в локальную сеть, часто по протоколу Ethernet. На основных промышленных компьютерах устанавливаются разнообразные SCADA системы, в которых заложены программные основы для связи по сети с системами на остальных контроллерах, компьютерах и электронных приборах. Обучение программированию SCADA, отладка задач и настройка сетевой связи между всем множеством оборудования распределённой АСУТП - это функция специалистов по автоматизации. Но в SCADA системах заложены функции для передачи информации в вышестоящие уровни управляющих систем в соответствии с современными информационными технологиями и для получения обратной информации. Это вызвано также тем, что работать с таким множеством параметров невозможно без баз данных. База данных располагается на отдельном компьютере, связанном с станциями SCADA по протоколу Ethernet. Совместимость баз данных со SCADA обеспечивает широко распространенный язык запросов SQL, соответствующий международному стандарту и поддерживаемый СУБД (системами управления базами данных), например, Informix, Sybase, MS SQL Server. Интерфейс ODBC(Open Data Base Connectivity) позволяет подключать к одной и той же SCADA различные СУБД, что повышает степень ее открытости и интегрируемости. Обучение

Upload: vunhi

Post on 22-Apr-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

1

Курс лекций по дисциплине «Использование ВЕБ технологий в системах автоматизации».

Лекция 1. Аннотация: рассматриваются современные распределённые АСУТП, их структура, обмен информацией. Определеня ряд понятий Интернет технологий. Сеть Ethernet как основа связи удалённых устройств.

Введение. Современная система автоматизированного управления технологическими процессами (АСУТП) является распределённой системой управления. Это следствие того, что объекты управления(ОУ) раскиданы на большом пространстве и часто значительно удалены друг от друга. Среди множества ОУ имеются технологические установки с большой концентрацией технологических параметров, таких как давление, температуры, содержание компонентов и другие. На всех объектах контролируются и управляются потоки сырья, материалов, энергии от их источников . Средняя по мощности технологическая установка для надежной и экономичной работы использует 500 -600 аналоговых и дискретных параметров, а также 100- 150 исполнителных механизмов, регулирующих потоки. Но также присутсвуют большое число мелких технологических объектов (насосные стации, емкосные парки, узлы подготовки продуктов и т.д.) имеющие небольшое количество параметров.

На таких объектах используются распределенные системы управления включающие несколько программируемых контроллеров, несколько промышленных компьютеров и набор отдельных электронных регуляторов и приборов. Ко всем этим приборам подключаются датчики и исполнительные механизмы. Программируемые контроллеры и компьютеры объединяются в локальную сеть, часто по протоколу Ethernet. На основных промышленных компьютерах устанавливаются разнообразные SCADA системы, в которых заложены программные основы для связи по сети с системами на остальных контроллерах, компьютерах и электронных приборах. Обучение программированию SCADA, отладка задач и настройка сетевой связи между всем множеством оборудования распределённой АСУТП - это функция специалистов по автоматизации.

Но в SCADA системах заложены функции для передачи информации в вышестоящие уровни управляющих систем в соответствии с современными информационными технологиями и для получения обратной информации. Это вызвано также тем, что работать с таким множеством параметров невозможно без баз данных. База данных располагается на отдельном компьютере, связанном с станциями SCADA по протоколу Ethernet. Совместимость баз данных со SCADA обеспечивает широко распространенный язык запросов SQL, соответствующий международному стандарту и поддерживаемый СУБД (системами управления базами данных), например, Informix, Sybase, MS SQL Server. Интерфейс ODBC(Open Data Base Connectivity) позволяет подключать к одной и той же SCADA различные СУБД, что повышает степень ее открытости и интегрируемости. Обучение администрированию баз данных и обучение языку запросов SQL - это функция специалистов по инфотехнологиям.

Предметом данного курса являются использование технологий, созданных в глобальной сети World Wide Web для систем автоматизированного управвления. Будут рассмотрены два основных направления реализации Web технологий. 1. В SCADA заложены веб интерфейсы связи с другими Веб объектами. Обычно сама SCADA являются НТТР сервером и располагается на отдельном компьютере локальной сети. При этом пользователи на других компьютерах, обладающие правами доступа, с помощью стандартного веб-браузера (например, Internet Explorer) могут видеть параметры SCADA и контролировать технологический процесс. Всю информацию ему обеспечивают динамические ВЕБ-страницы, формируемые на ВЕБ-сервере связаннрм с компьютером SCADA . Связь между серверами, контроллерами, компьютерами, электронными приборами обеспечивают программы стандарта ОРС, работающими в сети World Wide Web. Они дают возможность применения оборудования различных производителей с любыми SCADA, имеющимися на рынке и связь между SCADA и ВЕБ продуктами. Некоторые ОРС используютя для привязки приборов к SCADA, другие для привязки к базам данных и к интернет серверам. 2. Второе направление – использование встроенных в приборы и контроллеры Веб серверов.

2

В рамках курса будут рассмотрены такие вопросы как: 1. Структура и принципы Интернет (базовые понятия, архитектура, стандарты и протоколы). 2. Средства интеграции контента и приложений систем автоматики в интернет среде. Современной реализацией Интернета являются структуры Веб на сетях Ethernet.

Поскольку физической основой сетей Веб является сети Ethernet, то для понимания вопросов данного курса потребуется кратко ознакомиться со структурой и протоколами Интернета и Ethernet. В настоящее время основными компонентами интернета (Internet) являются веб-серверы и веб-клиенты (браузеры). Сеть Intranet – платформа для работы с информацией внутри предприятия. Веб - сервер является программой на подключенном к сети компьютере и передающей данные по протоколу HTTP. На клиентском компьютере для просмотра информации, полученной от веб-сервера, применяется специальная программа — веб-браузер. Основная функция веб-браузера - отображение гипертекстовых страниц (веб-страниц). Для идентификации ресурсов (файлов или их частей) в WWW (World Wide Web) используются идентификаторы ресурсов URI (Uniform Resource Identifier). Для определения местонахождения ресурсов в этой сети используются локаторы ресурсов URL (Uniform Resource Locator). Такие URL-локаторы представляют собой комбинацию URI и системы имен DNS. Доменное имя (или IP-адрес) входит в состав URL для обозначения компьютера (его сетевого интерфейса), на котором работает программа веб-сервер.

Средством разработки приложений в прикладных программах является язык программирования HTML для создание -страниц для Web-серверов. На жестком диске компьютера- сервера может находиться множество веб-сайтов с уникальными адресами URL. Маршрутизация (передача в нужном направлении) данных в интернете осуществляется с помощью 32-битной IP (Internet Protocol) адресации. Веб-страницы также можно создавать с помощью расширенной версии языка HTML, который называется XML. Форму представления технологических данных, полученных от SCADA систем, совместно вырабатывают разработчики систем автоматики и инфотехнологи.

Веб-серверы в интернете обычно располагаются на мощных компьютерах, которые содержат жесткие диски большой емкости. Однако для удаленного управления в АСУ ТП небольшими объектами или получения данных с одного устройства и его настройки (датчика, исполнительного механизма) достаточно иметь на сервере всего несколько несложных веб-страниц. Для этой цели используют микро веб-серверы, встраиваемые в оборудование (встраиваемые веб-серверы, Embedded Web Server), выполненные в виде микросхемы, которая располагается на печатной плате устройства или интеллектуального датчика и др. Каждый микро-веб сервер доступен по своему интернет-адресу. В настоящее время имеются относительно дешевые однокристальные микроконтроллеры различных фирм со встроенной реализацией протокола TCP/IP. Технологии с микро веб-серверами называют "встроенным интернетом" (Embedded Internet). Для обучения технологии Embedded Internet необходимо иметь соответствующее оборудование.

У многих SCADA есть возможность выполнить пользовательский интерфейс в виде веб-страницы и расположить его на ВЕБ сервере локальной сети. Пересылка данных в Веб-сервера достигаются различными способами, например через базы данных или через специализированные ОРС программы. При этом любой пользователь, обладающий достаточными правами доступа, с помощью стандартного веб-браузера (например, Internet Explorer) может контролировать технологические процессы. Web-браузер доступен для любго клиента системы. Большинство приложений разработано на базе принципа открытых систем и должны правильно взаимодействовать в сетях Интернет/Интроанет. Технология Web обладает свойством наращиваемости и может постоянно корректироваться. Динамичность веб - страницам придают подпрограмки (скрипты), которые выполняется с помощью JScript, VBScript, Java апплетов и других средств программирования.

Общая структура систем автоматизированного управления с использованием ВЕБ интерфейсов.

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

3

командную кнопку в окне веб-браузера. Этот запрос посылается серверу через интернет, например, в формате SOAP сообщения. (SOAP - протокол используется для обмена сообщениями в формате XML. Спецификация протокола не расшифровывает название SOAP. SOAP может использоваться с любым протоколом прикладного уровня: FTP, HTTP, HTTPS. Чаще всего SOAP используется поверх HTTP.

Когда веб-сервер получает SOAP-сообщение через TCP порт 80, запрос направляется обработчику скрипта, например ASP.NET, который также располагается на веб-сервере. Веб-сервис (Web service) создает запрашиваемые данные или передает управление программе (например, на языке VB.NET), которая общается с контроллером или SCADA через ОРС сервер. Они выполняют комады ОРС и выдают данные. Полученная таким образом информация выкладывается на веб-страницу, которую видит пользователь с помощью веб-браузера. При входе на веб-сервер операционная система (Windows или Linux) производит идентификацию пользователя и предоставляет доступ к информации в соответствии с его правами.

Для SCADA- системы признаками качества являются: совместимость технологиями «DCOM» и «.NET»,со стандартом ОРС, поддержка языков стандарта МЭК 61131-3, наличие встроенного стандартного языка для реализации функций и процедур, которых нет в поставке, совместимость со базами данных и приложениями, расположенными на компьютерах сети.

Сети Ethzernet 1.1 Ethernet ([ˈ i ː θ ə r ̩ n ɛ t ] — семейство технологий пакетной передачи данных для компьютерных сетей. Работу сетей регламентирует набор стандартов «модель» сетевого взаимодействия (OSI). В частности стандарты Ethernet определяют: 1. проводные соединения и электрические сигналы на физическом уровне, 2. формат кадров и протоколы управления доступом к среде — на канальном уровне модели OSI. В настоящее время практически всегда подключение происходит через коммутаторы ( switch ) , обеспечивающим то, что кадры, отправляемые одним узлом, доходят лишь до адресата— это повышает скорость работы и безопасность сети. В стандарте первых версий (Ethernet v1.0 и Ethernet v2.0) указано, что в качестве передающей среды используется коаксиальный кабель, в дальнейшем стали использовать витую пару и оптический кабель. Витая пара обеспечивает подключение «звезда». Причиной перехода на оптический кабель была необходимость увеличить длину сегмента без повторителей. В зависимости от скорости передачи данных, и передающей среды существует несколько вариантов технологии. Независимо от способа передачи стек сетевого протокола и программы работают одинаково практически во всех вариантах.

4

Хаб (англ. hub) — в общем смысле, узел какой-то сети. В хабе имеется определенное количество разъемов (портов), к которым подключаются все ПК сети. Обычно для этого используется витая пара, обжатая определенным образом. Свитч – от английского «switch» (переключатель), сетевой коммутатор. Как и хаб, свитч предназначен для объединения множества компьютеров в одну локальную сеть. Хотя свитч очень похож на концентратор Хаб, он принципиально отличается от него способом передачи данных между компьютерами. Получив пакет от компьютера, сетевой коммутатор не передает его без разбору всем остальным ПК в сети, а направляет по адресу – тому компьютеру, с которым необходимо установить контакт. Ответ от ПК свитч также транслирует отправителю, т.е. ПК1. Для работы внутри сети при подключении к свичу у каждого компьютера должна быть правильно настроена пара адреса и маски подсети. Роутер – «router», маршрутизатор, который умеет передавать данные между различными сетями, например сетью вашего интернет провайдера и вашей домашней сетью. Роутер является связующим звеном между различными сетями и передает данные, основываясь на маршруте, указанном в его таблице маршрутизации. Эти таблицы позволяют роутеру определить, куда следует направлять пакеты. Wi-Fi роутер впишется в вашу домашнюю сеть, если у вас кабельный интернет. При этом кабель от интернета подключается к роутеру, а домашние компьютеры смогут получать интернет уже по Wi-Fi.

Контрольные вопросы.

1. Что такое распределённые объекты управления.

2. Какие два направления можно выделить в Веб технологиях, применяемых в автоматизированных системах.

3. Какие задачи решают сайты встроенного интернета.

4. Какие преимущества систем с использованием внешних баз данных.

5. Какие задачи решаются на физическом уровне сети Ethernet.

6. Какие задачи решаются на канальном уровне сети Ethernet.

7. Для чего используется Хаб.

8. Для чего используется Свитч.

9. Для чего используется router.

Резюме. Современные автоматизированные системы управления технологическими процессами (АСУТП) используют Веб технологии для распределённых технологических объектов. Основные направления использования: А)Передача информации на динамические сайты с обработкой во внешние базах данных. В) Использование встроенного Интернета. Физической основой интернета являются сети Ethernet, «железо» которого рассмотрено в лекции. Рассмотрена общая структура систем автоматизированного управления с использованием ВЕБ интерфейсов. Представлена первоначальная информация о сетях Ethernet и аппаратуре физического и канального уровней.

Лекция 2 Формат кадра. Аннотация. Уровни сетевого взаиможействия OSI. Стандарт OSI. Характеристика семи уровней. Первый и второй уровень сети Ethernet, аппаратура, функций и данные уровней. Взаимодействие интерфейсов при приеме и передаче информации на канальном, сетевом, транспортном уровнях. Протоколы и функции этих уровней.

2. При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта (равно как и встроенный сетевой интерфейс) должна иметь уникальный шестибайтный номер (MAC -адрес ), прошитый в ней при изготовлении. При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта (равно как и встроенный сетевой интерфейс) должна иметь уникальный шестибайтный номер (MAC -адрес ), прошитый в ней при изготовлении.

5

В формате кадра Ethernet, в заголовке мы видим два MAC -адрес а сетевых устройств а шестнадцатеричной форме (Нех или 0хFF). Один – адрес получателя, другой –адрес отправителя. Предполагается, что администратору не придётся настраивать MAC-адрес. Уникальность MAC-адресов достигается тем, что каждый производитель получает в координирующем комитете IEEE Registration Authority диапазон из шестнадцати миллионов (224) адресов, и по мере исчерпания выделенных адресов может запросить новый диапазон. Поэтому по трём старшим байтам MAC-адреса можно определить производителя. MAC-адрес считывается один раз из ПЗУ при инициализации сетевой карты, в дальнейшем все кадры генерируются операционной системой. Все современные операционные системы позволяют поменять его.

2.1 Уровни сетевого взаимодействия OSI. В процессе обмена сообщениями участвуют как минимум две стороны(компьютера), для которых необходимо обеспечить согласованную работу двух аппаратных и программных средств. Каждый из уровней должен поддерживать интерфейс с выше- и нижележащими уровнями системы и взаимодействие с програмной средой на своём уровне иерархии. Что такое интефейс? Интерфейс содержит три составляющих. Первая зто протокол, описывающий работу уровня. Вторая составляющая –аппаратная часть. Третья – программная часть. В рамках модели OSI (Open System Interconnection)эти средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. В распоряжение программистов предоставляется прикладной программный интерфейс, позволяющий обращаться с запросами к программами верхнего уровня - уровню приложений.

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

Модель работы OSI представлена ниже. Пусть приложение узла А хочет взаимодействовать с приложением узла В. Для этого приложение А обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата и присоединяет к пакету данных как заголовок. После формирования такого сообщения прикладной уровень направляет его вниз по стеку на уровень представления. Протокол уровня представления на основании информации, полученной из заголовка сообщения прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию — заголовок уровня представления, в котором содержатся указания по протоколу уровня представления адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который, в свою очередь, добавляет свой заголовок и т. д. (Некоторые реализации протоколов помещают служебную информацию не только в начале сообщения в виде заголовка, но и в конце в виде так называемого концевика). Наконец, сообщение достигает нижнего, физического, уровня, который и передает его по линиям связи машине-адресату. К этому моменту сообщение «обрастает» заголовками всех уровней. Физический уровень помещает полученное сообщение на физический интерфейс компьютера 1, и оно начинает свое «путешествие» по сети вверх, к прикладному уровню. Каждый уровень анализирует и обрабатывает заголовок своего уровня отправителя, выполняет соответствующие функции, а затем удаляет заголовок отправителя своего уровня и передает сообщение вышележащему уровню. Как видно из описания, протокольные содержания одного уровня не общаются между собой непосредственно, в этом общении всегда участвуют посредники — средства протоколов нижележащих

6

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

Уровень (layer) Тип данных (PDU) Функции Примеры

Hostlayers

7. Прикладной (application)

Доступ к сетевым службам SCADA, OPC, другим HTTP, FTP, SMTP

6. Представительский (presentation)

Представление и шифрование данных, ОРС (часть)

ASCII, EBCDIC, JPEG

5. Сеансовый (session)

Управление сеансом связи и синхронизацияRPC, PAP Коммутаторы и телефоны

4. Транспортный (transport)

Сегменты (segment)/Дейтаграммы (datagram)

Прямая связь между конечными пунктами и удержание её.

TCP, UDP, SCTP

Medialayers

3. Сетевой (network)

Пакеты (packet) Определение маршрута и логические адреса . Маршрутизатор

IPv4, IPv6, IPsec, AppleTalk

7

2. Канальный (data link)

Биты (bit)/Кадры (frame)

Физическая адресация (создание адресов). Сетевая карта

PPP, Ethernet, DSL, L2TP, ARP

1. Физический (physical)

Биты (bit)Работа со средой передачи, сигналами и двоичными данными. Провода.

Контрольные вопросы 1. Какую роль играют протоколы в модели OSI. 2. Перечислите 7 уровней модели OSI в порядке взаимодействия при работе пользователя. 3. Как движется пакет информации по уровням и что происходит с пакетом на каждом уровне у отправителя и получателя. 4. Какая роль отводится канальному, сетевому и транспортному уровням по модели OSI. 5. Назовите важнейшие протоколы для канального, сетевого и транспортного уровней. 6. Как проверяется достоверность информации и чем отличается работа по протоколам IP и UDP.

Резюме. При настройках сетей Ethernet требуется выбрать и установить программное обеспечение, соответствующее Вашей аппаратуре и требованиям решаемой задачи. Поэтому нужно знать особенности и задачи протоколов, используемых на каждом уровне. Требуется устанавливать такие функции, которые необходимы для работы вашего «железа» и обеспечивают оптимальную надёжность и быстродействие обработки информации.

Лекция3. Аннотация. Взаимодействие интерфейсов сетевых уровней при приеме и передаче информации по сети.

3.1 Взаимодействие интерфейсов на трёх нижних уровнях при приеме и передаче информации по сети.

Распределенная система состоит из компьютеров, соединенных коммуникационной средой, например локальной сетью. В распределенной среде желательно обеспечить независимость вызываемых программ-сервисов от их местоположения. Доставка данных на сетевой компьютер-получатель — это еще не конец пути, так как данные необходимо переправить конкретному процессу-получателю, который имеет свой номер/порт. Клиентские процессы у получателя, с другой стороны, запрашивают номера стандартных портов у операционной системы в начале работы.

Связь между наиболее употребительными протоколами при соединении компонентов:

На уровне 2osi в (уровень 1на рисунке) операционных системах обычно функционируют драйверы различных сетевых плат, связанных физическими средствами передачи данных. Это оборудование относят к канальному уровню 2osi. Здесь действуют протоколы PPP, Ethernet, DSL, Token Ring, SLIP. Каждый протокол определяет работу с заданным видом оборудования или способом подключения устройств. Это может быть соединение «точка в точку», или соединение по разным видам коаксиального кабеля, или соединение «звезда» витой парой (Ethernet) или другие

8

комбинации. Так отдельные функции используются для соединений по оптоволоконному кабелю. Каждая точка входа имеет свой, уникальный MAC-адрес (Media Access Control). Например, каждая сетевая плата Ethernet имеет собственный уникальный 48-битовый номер, также как и сетевые устройства в контроллерах.

На сетевом уровне «IP» (3 уровень osi - уровень 2 на картинке), действуют протоколы, которые обеспечивают передачу данных между узлами связи, физически соединенными друг с другом. Передача информации на этом уровне производится на основании физических адресов сетевых устройств, соответствующих точкам входа устройства в сети связи (например, физических адресов сетевых карт). Это следующие протоколы. ARP – Address Resolution Protocol. Этот протокол переводит адреса уровня сетевого интерфейса (МАК адреса) в адрес уровня Internet – в IP адрес. IP – Internet Protocol, который обеспечивает передачу пакета на канальный уровень или доставку полученных пакетов информации на транспортный уровень TCP или UDP (уровень 3 на картинке), а также информацию для протокола ICMP. ICMP – Internet Control Message Protocol. Это протокол обработки ошибок при обмене управляющей информацией между узлами сети. Протокол RARP – Reverse Address Resolution Protocol. Этот протокол служит для решения обратной задачи: отображения адресов уровня сетевого интерфейса IP в МАК адреса канального уровня.

Центральным протоколом уровня является протокол IP. Вся информация, поступающая к нему от других протоколов, оформляется в виде IP-пакетов данных (IP datagrams). Каждый IP-пакет содержит адреса компьютера отправителя и компьютера получателя, поэтому он может передаваться по сети независимо от других пакетов и по своему собственному маршруту. Смотри формат кадра Ethernet в предыдущей лекции. IP вычисляет и проверяет контрольную сумму, которая покрывает только его 20-байтовый заголовок для пакета информации (включающий, например, адреса отправителя и получателя). Если IP-заголовок пакета при передаче оказывается испорченным, то весь пакет просто отбрасывается. Ответственность за повторную передачу пакета тем самым возлагается на вышестоящие уровни. Этим и отличаются протоколы TCP и UDP транспортного уровня. TCP повторяет запрос, а UDP нет.

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

Контрольные вопросы.

1. Какие уровни решают задачи поиска компьютера в сети. 2. За что отвечает уровень IP. 3. За что отвечает транспортный уровень. 4. Чем отличаются протоколы транспортного уровня TCP и UDP. 5. Какие протоколы действуют на канальном уровне. 6. Какие протоколы действуют на уровне Internet. 7. Перечислите функции протокола IP.

Резюме.

Лекция 4. Аннотация. IP-адрес, классификация сетей, Маска подсети, использование маски для определения номера сети и номера компьютера. Создание дополнительных подсетей. шлюз сети – Gatewai.

Поскольку на уровне Internet информация передается от компьютера-отправителя к компьютеру-получателю, ему требуются специальные IP-адреса компьютеров (а точнее, их точек подсоединения к сети – сетевых устройств). Мы будем далее работать с IP версии 4 (IPv4), которая предполагает наличие у каждого сетевого интерфейса уникального

9

32-битового адреса. IP-адрес (v4) состоит из 32-бит. IP адрес (v6) из 128 бит. Принцип нумерации простой. Каждая сеть имеет свой адрес, а в сети каждый компьютер имеет свой адрес. Поэтому каждый из IP-адресов классов A–C логически делится на две части: номер сети и номер узла в этой сети.

Номера сетей в настоящее время присваиваются локальным сетям специальной международной организацией – корпорацией Internet по присвоению имен и номеров (ICANN). Класс A предназначен для небольшого количества сетей, содержащих много компьютеров, класс C – напротив, для большого количества сетей с малым числом компьютеров. Класс B занимает среднее положение. Надо отметить, что все идентификаторы сетей классов A и B к настоящему моменту уже задействованы.

.

КлассПервые биты

Распределение байт (С — сеть, Х — хост)

Число возможных адресов сетей

Число возможных адресов хостов

Маска подсети

Стартовый адрес

Конечный адрес

A 0 С.Х.Х.Х 128 16 777 216 255.0.0.0 0.0.0.0 127.255.255.255

B 10 С.С.Х.Х 16 384 65 536 255.255.0.0 128.0.0.0 191.255.255.255

C 110 С.С.С.Х 2 097 152 256 255.255.255.0 192.0.0.0 223.255.255.255

Допустим, что вам выделен адрес сети класса C, в котором под номер узла сети отведено 8 бит. Если нужно присвоить IP-адреса 100 компьютерам, которые организованы в 10 Ethernet-сегментов по 10 компьютеров в каждом, можно поступить по-разному. Можно присвоить номера от 1 до 100 компьютерам, игнорируя их принадлежность к конкретному сегменту – воспользовавшись стандартной формой IP-адреса. Или же можно выделить несколько старших бит из адресного пространства идентификаторов узлов для идентификации сегмента сети, например 4 бита, а для адресации узлов внутри сегмента использовать оставшиеся 4 бита. Последний способ получил название адресации с использованием подсетей.

Запоминать четырехбайтовые числа для человека достаточно сложно, поэтому принято записывать IP-адреса в символической форме, переводя значение каждого составляющего байта в десятичный вид и разделяя полученные десятичные числа в записи точками, начиная со старшего байта: 192.168.253.10. Реальный IP-адрес 192.168.123.132 – представляется в двоичном обозначении как 32-разрядное число 110000000101000111101110000100 (или 806648708 в десятичном виде). Поэтому переводите адреса сетей и компьютеров из условного обозначения в десятичный вид (число) или, в двоичный вид без разделяющих точек. Зная правило формирования символьного обозначения легко переводить из одного вида в другой.

Если одна рабочая станция с операционной системой, без назначенного IP-адреса, начинает свою работу, она получает MAC-адрес от сетевой карты и рассылает RARP -запрос, содержащий этот адрес, всем компьютерам сегмента

10

сети. Только RARP -сервер, содержащий информацию о соответствии указанного физического адреса и выделенного IP-адреса, откликается на данный запрос и отправляет ответ, содержащий IP-адрес. Так работает RARP протокол сетевого уровня OSI.

Напомним что за обработку данных пользователю, полученных по адресу из сети Интернет, могут отвечать два протокола транспортного уровня - UDP (User Datagram Protocol) и TCP (Transmission Control Protocol). По протоколу UDP отправитель данных не получает подтверждения их доставки получателю. Этот протокол не контролирует порядок поступления пакетов, некоторые из них могут быть потеряны или, наоборот, возможно дублирование пакетов. UDP работает быстрее, чем TCP (ведь заголовки пакетов у него в пять раз короче - 8 против 40 байт!). Протоколы транспортного уровня (TCP) не являются частью уровня IP, но существующие стандарты определяют, как должно осуществляться взаимодействие данных TCP/ IP с использованием этих протоколов.

В глобальной сети TCP/IP за передачу данных между сетями отвечают «маршрутизаторы» которые должны обеспечивать межсетевой обмен пакетами данных. Но они не знают точного расположения узла («сетевого устройства»), для которого предназначен пакет. Маршрутизаторы знают только номер сети, к которой принадлежит узел отправки, и дальше используют сведения, хранящиеся в их таблицах маршрутизации, чтобы доставить пакет в следующую сеть в поисках узла назначения. Другая сеть поступает точно также. Как только пакет доставлен в необходимую сеть, маршрутизатор этой сети доставляет его в соответствующий узел. Для осуществления такого процесса IP-адрес имеет две части. Первая часть IP-адреса обозначает адрес сети, последняя часть – адрес узла. Например, IP-адрес 192.168.123.132 разбивается его на две части, и если на номер сети отводится три байта то адрес «192.168.123.000» это № Сети, а 132 это номер узла сети. Итак, 192.168.123.0 – адрес сети. 0.0.0.132 – адрес узла. Выполняется такое разделение с помощью Маски подсети. Элемент необходимый для работы протокола TCP/IP, – это маска подсети. Маска подсети – 32-разрядное число, используемое для выделения номера сети и номера узла в IP-адресе. В протоколе IP части адреса, используемые в качестве адреса сети и узла, не зафиксированы, следовательно, адреса сети и узла невозможно определить без наличия «маски сети». Протокол TCP использует маску подсети, чтобы определить, в какой сети находится узел: в локальной подсети или удаленной сети. Номер маски и узла получателя образуют однозначный номер (число) получателя и чужой компьютер не может полечить сообщение, маршрутизатор не пропустит. Он знает все IP адреса, которые принадлежат к его сети. В рассмотренном примере маской подсети является 255.255.255.0. Значение этого номера понятно, если знать, что число 255 в двоичном обозначении соответствует числу 11111111. Значит, маской подсети является номер: 11111111.11111111.11111111.0000000.

Расположив следующим образом IP-адрес и маску подсети, можно выделить составляющие сети и узла: 11000000.10101000.01111011.10000100 – IP-адрес (192.168.123.132) 11111111.11111111.11111111.00000000 – маска подсети (255.255.255.0)

Первые 24 разряда (число единиц в маске подсети) распознаются как адрес сети, а последние 8 разрядов (число оставшихся нолей в маске подсети) – адрес узла. Применим в вышестоящем выражении логическую операцию «И» к столбцам IP-адреса и маски для получения адреса сети. Там где в одинаковых позициях присутствует по 1, она и остаётся в номере сети. В остальных позициях будет «0». В результате будем иметь 24 разрядное число с номером сети.

Для получения адреса узла применим логическую операцию «ИЛИ» для последовательности нулей в маске и значениям в последнем байте IP адреса. Там где в одинаковых позициях присутствует одна 1, она и остаётся в номере компьютера. В остальных позициях будет «0».Таким образом, получаем два следующих результата: 11000000.10101000.01111011.00000000 – адрес сети (192.168.123.0) 7527234304 «десятичный». 00000000.00000000.00000000.10000100 – адрес узла (000.000.000.132). 132 «десятичный».

11

Из данного примера с использованием маски подсети 255.255.255.0 видно, что код сети 192.168.123.0, а адрес (номер) узла 132. Когда пакет с конечным адресом 192.168.123.132 доставляется в сеть 192.168.123.0 (из локальной подсети или удаленной сети), компьютер, имеющий такой IP, получит его из сети и обработает. Мой IPv4 Address: 10.1.4.104(Preferred) 00001010 00000001 00000100 01101000 Subnet Mask: 255.255.0.0 (11111111.11111111.00000000.00000000). Отсюда № сети – 00001010 00000001 000000000 00000000 (2561). № компьютера – 000000100 01101000 (1128). Cmd/ipconfig/

Можно представить маски десятичные числами в каждом байте и двоичными числами, у которых стоят единицы маски слева и оставшиеся нули справа. Иногда указывают IP адрес, а через косую указывают число единиц в маске. Двоичное Десятичное 11111111.11111111.11111111.11000000 255.255.255.192/26 11111111.11111111.11111111.11100000 255.255.255.224/27

Internet RFC 1878 (доступен на http://www.internic.net) описывает действующие подсети и маски подсетей, используемые в сетевых протоколах TCP/IP.

Подсети. TCP/IP-сеть класса A, B или C может еще быть разбита на подсети системным администратором. Системный администратор, выделивший блок IP-адресов, может дополнительно организовывать сети. Узел – компьютер или другое устройство в сети TCP/IP. Например, имеется глобальная сеть с 150 узлами в трех сетях (в разных городах), соединенных маршрутизатором TCP/IP. У каждой из этих трех сетей 50 узлов. Выделяем сеть класса C с номером «192.168.123.0». (На самом деле этот адрес из серии для Интранета.) Это значит, что адреса с 192.168.123.1 по 192.168.123.254 можно использовать для этих 150 узлов. Адреса, которые нельзя использовать в данном примере, – 192.168.123.0 и 192.168.123.255, так как двоичные адреса с составляющей узла из одних единиц и нолей недопустимы. Адрес с 0 недопустим, поскольку он используется для определения номера сети (без узлов). Адрес с числом 255 (в двоичном обозначении адрес узла, состоящий из одних единиц) используется для доставки широковещательных сообщения на каждый узел сети). Следует просто запомнить, что первый и последний адрес в любой сети и подсети не может быть присвоен отдельному узлу. Подсеть – сеть меньшего размера, созданная путем разбиения более крупной сети на равные части.Теперь осталось выбрать и дать IP-адреса из 254 возможных. Это несложно, если все 150 компьютеров являются частью одной физической сети. Однако в данном примере 150 компьютеров работают в трех отдельных физических сетях. Поэтому выделенную сеть можно разбитна на подсети, что позволяет использовать один выделенный блок адресов на несколько различных физических сетей.В данном случае сеть разбивается на четыре подсети с помощью маски подсети, которая увеличивает адрес сети и уменьшает возможный диапазон адресов узлов. Другими словами, мы «одалживаем» несколько разрядов, обычно используемых для адреса узла, и используем их для составляющей сети в адресе. Маска подсети 255.255.255.192 позволяет создать четыре дополнительных сети с 62 узлами (компьютеров) в каждой. Это возможно, поскольку в двоичном обозначении 255.255.255.192 – это 1111111.11111111.1111111.11000000. Возможные комбинации «одолженных» двух байт – 00, 01, 10, 11, четыре комбинации. Первые две цифры последнего октета IP становятся адресами дополнительных сетей, поэтому появляются ещё четыре сети 00000000 (0), 01000000 (64), 10000000 (128) и 11000000 (192) по 63 адреса в каждой. В этих четырех сетях последние 6 двоичных цифр в каждой можно использовать в качестве адресов. Использование маски подсети 255.255.255.192 преобразует сеть 192.168.123.0 в четыре сети: 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь следующие действующие адреса узлов: 192.168.123.0 сеть - от 1-до 62 компьютера (000001=1, 111110=62), 192.168.123.65 сеть - от 65 до 126 компьютера (01000001=65, 01000010=66 и т.к. далее) 192.168.123.129 –от 128 до 190, 192.168.123.193 -от 193 до 254. Сетевой адрес – адрес сети, из IP-адреса, где разряды составляющих узла из одних нолей. Не забывайте, что двоичные адреса узлов с одними только единицами и нолями недействительны, поэтому нельзя использовать

12

адреса узлов со следующими числами в последнем октете: «0, 63», «64, 127», «128, 191», «192 или 255». Подобный пример на следующие два адреса узлов: 192.168.123.71 и 192.168.123.133. Если использовать по умолчанию маску подсети класса C «255.255.255.0», оба адреса будут находится в сети 192.168.123.0. Однако, если использовать маску подсети 255.255.255.192 (увеличенную), они окажутся в разных сетях: узел 192.168.123.71 – в сети 192.168.123.64, в то время как узел 192.168.123.133 – в сети 192.168.123.128. Друг друга без маршрутизатора они не увидят.

Ещё раз. Связь между TCP/IP-компьютером и узлом из другой сети обычно осуществляется через устройство, называемое маршрутизатором. В заголовке IP-пакета есть поля source IP и destination IP: адреса источника и назначения . Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника. Однако, когда IP-адрес присваивается устройству (сетевому адаптеру) компьютера или маршрутизатора, то кроме самого адреса данного устройства ему назначают еще и маску подсети. Маска не передается в заголовках IP-пакетов. Каждый IP адрес шифрует в себе последовательно адрес сети и адрес узла. Жестко и однозначно. Но расшифровать эти адреса можно с помощью ключа – маски подсети. Компьютерам маска подсети нужна для того чтобы определить, кто находится с ним в одной подсети, а кто — за ее пределами. Внутри одной сети компьютеры обмениваются пакетами «напрямую», а когда нужно послать пакет в другую сеть — шлют их шлюзу по умолчанию (третий, настраиваемый в сетевых свойствах параметр). Число масок ограничено, так как они имеют вид с несколькими последовательными нулями в конце, но нет нулей промежуточных, в части IP начиная с головы адреса. Часть IP-адреса, которой соответствуют нули в маске, является номером узла внутри подсети.

TCP/IP маршрутизатор, в составе подсети, где расположен узел, связывает эту подсеть с другими сетями и называется основным шлюзом. При приходе пакета связи между узлом и другим устройством маршрутизатор по протоколу TCP/IP сопоставляет IP-адрес назначения со своей маской подсети. В результате этого сопоставления он узнает, для какого из узлов предназначен данный пакет – для локального или удаленного. Если назначением является локальный узел, то он просто отправляет пакет в свою локальную подсеть. Если в результате сопоставления выясняется, что назначением является удаленный узел, компьютер направляет пакет на основной шлюз другой подсети, определенный в свойствах TCP/IP. Таким образом, именно маршрутизатор отвечает за отправку пакета в правильную подсеть. Таблица маршрутизации – это специальная таблица, сопоставляющая IP-адресам сетей адреса следующих маршрутизаторов, на которые следует отправлять пакеты с целью их доставки в эти сети. Обязательной записью в таблице маршрутизации является так называемый маршрут по умолчанию, содержащий информацию о том, как направлять пакеты в сети, адреса которых не присутствуют в таблице, поэтому нет необходимости описывать в таблице маршруты для всех сетей. Таблицы маршрутизации могут строиться «вручную» администратором или динамически, на основе обмена информацией, который осуществляют маршрутизаторы с помощью специальных протоколов.

Калькулятор IP на сайте http://www.ip-ping.ru/netcalc/

Шлюз (gateway) (или маршрутизатор) представляет собой устройство, которое используется для подключения пользователя к внешним сетям (одной или нескольким). Весь интернет построен на цепочках из маршрутизаторов (он же шлюз, он же Gateway). Маска подсети указывает, какая часть IP-адреса, используется для определения локальной сети или подсети. Другая часть определяет адрес компьютера в этой подсети.

Контрольные вопросы.

!. Чем IP-адрес (v4) отличается от IP адрес (v6) из 128 бит. Чем вызвано появление IP адресов (v6). 2. Какой вид имеет маска сетей класса «С». 3. Как используется маска для вычисления номера сети. 4. Как вычислить номер узла в подсети.

13

5. Какие номера нельзя использовать для узлов подсети. 6. Что разрешается делать администратору сети для увеличения числа подсетей. 7. Роль gateway в системе связи подсетей.

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

Лекция 8. Аннотация. Выявление и устранение сетевых ошибок. Использование портов и сокетов на узлах сети. Последовательность действий по нахождению и вызову нужного информационно сервиса (программы). Сервер имен ДНС.

Причиной проблем, связанных с протоколом TCP/IP, часто служит неправильная настройка трех основных элементов в TCP/IP-свойствах компьютера. Понимая влияние ошибок настройки на функционирование сети, можно решить многие распространенные проблемы протокола TCP/IP.Неверная маска подсети. Если сеть использует маску подсети, не по умолчанию для своего класса адресов, а у клиента еще настроена маска подсети по умолчанию для класса адресов, связь с соседними сетями будет невозможна, но это не относится к удаленным сетям. Например, если создать четыре подсети (как в примере о подсетях), но использовать неверную маску подсети 255.255.255.0 протокола TCP/IP, узлы не смогут определить, что некоторые компьютеры находятся в других подсетях. В таком случае пакеты, предназначенные для узлов в различных физических сетях, являющихся частью одного адреса класса C, не будут отправлены на основной шлюз для доставки. Для устранения данной проблемы укажите верную маску подсети в настройке TCP/IP для этого узла.Неверный IP-адрес. Если поместить вместе (в одну сеть – просто перенести) компьютеры с IP-адресами, которые должны быть в разных локальных подсетях, они не смогут установить связь друг с другом. Они будут пытаться послать друг другу пакеты через маршрутизатор, который не сможет направить эти пакеты соответствующим образом. Признаком данной проблемы является ситуация, когда компьютер может установить связь с узлами в удаленных сетях, но не может взаимодействовать с некоторыми или всеми компьютерами в своей локальной сети. Для устранения данной проблемы убедитесь, что все компьютеры в одной физической сети имеют IP-адреса в одной и той же IP-подсети. Проверьте, что они в одной и той же сети. Если израсходованы все IP-адреса в отдельном секторе сети, есть другие решения .

Неверный основной шлюз. Компьютер с неверно настроенным основным шлюзом сможет взаимодействовать с узлами в своем собственном сегменте сети, однако не сможет установить связь с узлами в некоторых или во всех удаленных сетях. Если одна физическая сеть имеет более одного маршрутизатора и неверный маршрутизатор настроен в качестве основного шлюза, узел сможет взаимодействовать с некоторыми удаленными сетями, но не со всеми. Эта проблема часто возникает, если в организации один маршрутизатор соединен с внутренней сетью TCP/IP, а другой — с Интернетом.

Понятие сокета. Компонент, желающий послать сообщение другому компоненту, не обязан знать, как добраться до адресуемого компьютера и до нужной программы на другом компьютере. Эта задача решается на узле, куда пришёл пакет данных. Она обеспечивается компонентом «Сокет» - совместным использованием «портов» и IP адресов. Порт – номер (адрес) логического канала ввода или вывода для вызова связанного с ним процесса-сервиса, передающего и принимающего данные. Напомним, что процесс порождается операционной системой во время исполнения заданной программы. Он представляет собой набор команд ( кода программы), используемых операционной системой. Операционная система задаёт начальный адрес (номер регистра памяти) для работы этого набора команд. Номер и имя канала ввода/вывода (например СОМ1-RS232) процесса-сервиса накрепко закреплен за этим процессом-сервисом. Это есть номер порта. Порт - это адрес памяти для приема потоков информации при

14

обмене данными. Номер порта дается в диапазоне от нуля до 65535. Порт вместе с IP адресами сетей и узлов (компьютеров) на коммуникационном уровне Internet образует сокет (socket - разъем). Процессы могут исполняться как на одной ЭВМ, так и на разных ЭВМ, связанных по сетьи. Различают клиентские и серверные сокеты. Клиентские сокеты можно сравнить с аппаратами телефонной сети, а серверные — с коммутаторами. Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты. Серверные сервисы сложнее, они создают сайта и читают их.

Процессы ВЕБ сервера «слушающий» сокет (серверный сокет) и привязывают его к какому-нибудь порту операционной системы. Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т. д.

Для корректной маршрутизации входящих и исходящих сигналов различных служб TCP/IP сопоставляет различным службам разные порты. Номера портов, закреплены за важными информационными сервисами (процессами) Internet. Порт представляет собой число, обозначающее адрес виртуального интерфейса какого то сервиса. Например, протокол FTP связывается с портом 21, а серверы Web связываются с портом 80. При наличии «службы именования» в сети сервер имен (DNS) хранит имена глобальных сервисов – процессов. Сетевые сообщения служб, которыми обмениваются приложения, сначала включаются в сегменты TCP, при этом указывается и порт транспортного протокола. Потом транспортные протоколы передают номера портов в протокол IP, который запоминает номера. Все IP-пакеты передаются по сети получателю, где происходит обратная операция. Сначала по номеру протокола в модуле IP выделенные данные пересылаются соответствующему протоколу транспортного уровня. На транспортном уровне по номеру порта получателя определяется, какому информационному сервису данные посланы.

В сокете определён набор операций, доступных приложению для обмена данными по сети по заданному протоколу, например TCP/IP. Сокеты не обязательно базируются на протоколе TCP/IP, они могут также базироваться на IPX/SPX и т.д. Номер порта трактуется как номер сервиса, то есть как адрес нужной нам процедуры. Поэтому если в запросе от клиента указывается номер порта, то ВЕБ сервер вызывает у себя на компьютере служебный процесс соответствующий этому номеру. Для транспортных протоколов в стеке TCP/IP существуют различные сокеты: UDP сокеты и TCP сокеты, имеющие различное адресное пространство портов. Сокет определяет набор операций, доступных приложению при обмене данными по сети по заданному протоколу. В семействе TCP/IP адресные пространства портов представляют собой положительные значения 16-битового числа.

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

15

задания, доставки и получения ответа нужно указать шесть параметров: <транспортный протокол, IP-адрес отправителя, порт отправителя, IP-адрес получателя, порт получателя>. И клиент, и сервер обязаны использовать один и тот же протокол транспортного уровня.

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

ОС по номеру порта определит, какому из процессов передать пакет. Процесс запрашивает у ОС определённый номер порта или любой свободный номер порта для обмена данными. ОС может предоставить запрошенный номер порт, либо она может отказать (например, если номер порта уже выдан какому-либо процессу). Обычно, порты с номерами от 1 до 1024 доступны только привилегированному пользователю. ОС сама выберет номер порта, и предоставит его процессу запрашивающего сервиса.

Если процесс получил номер порта у ОС и «держит его открытым» для приёма и передачи данных, говорят, что процесс «слушает». Номера портов для привилегированных протоколов TCP/IP (HTTP, SSH и др.) обычно назначаются организацией IANA и рекомендуются к использованию. Однако в целях безопасности номера портов могут выбираться произвольно. В заголовках протоколов TCP и UDP для хранения номеров портов выделены поля размером 16 бит. Для протокола TCP порт с номером 0 зарезервирован и не может использоваться. Для протокола UDP указание порта процесса-отправителя не является обязательным, и порт с номером 0 означает отсутствие порта.

Процесс программы, реализующей протокол SMTP ( передача почты), обычно «слушает» порт TCP с номером 25 (кратко: «tcp/25»). Процесс программы, реализующей протокол POP (для получения почты), обычно «слушает» порт TCP с номером 110 (кратко: «tcp/110»).

IP-адрес называют динамическим, если он назначается автоматически при подключении устройства к сети и используется в течение ограниченного промежутка времени (как правило, до выключения компьютера). Для получения динамического IP-адреса используется протокол DHCP (Dynamic Host Configuration Protocol — протокол динамической конфигурации узла). Компьютер обращается к компьютеру-серверу, называемому сервером DHCP.

Процесс, желающей подключиться к серверу для отправки (SMTP) или получения (POP или IMAP) почты, как правило, получает номер порта динамически от сервера DHCP . В некоторых случаях использование заранее известных номеров портов является обязательным. Например, порт 502 для драйвера Modbus TSP.

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

Процесс-клиент должен сначала совершить те же самые подготовительные действия: создать сокет и настроить его адрес. Затем он передает сообщение, указав, кому оно предназначено ( IP-адрес сетевого интерфейса и номер порта

16

сервера), ожидает от сервера ответа и продолжает свою деятельность. За распространёнными сетевыми протоколами закреплены стандартные номера портов (например, веб-серверы обычно принимают данные по протоколу HTTP на порт 80).

Ниже приведён краткий список распространённых портов сетевых сервисов с комментариями. Подразумевается использование протокола TCP там, где не оговорено иное.

FTP : 21 (для команд), 20 (для данных) (передача файлов)

telnet : 23 (удалённое управление сетевыми устройствами (если такой сервис поддерживается)) (без шифрования)

SMTP : 25 (отправка почты (без шифрования))

SMTP c SSL: 465, 587 (отправка почты с шифрованием))

DNS : 53 (UDP) (получение IP-адресов по доменным именам и наоборот)

DHCP : 67, 68/UDP (получение IP-адреса для текущего хоста, IP-адреса шлюза по умолчанию, IP-адресов серверов DNS и др.)

HTTP : 80, 8080 (получение веб-страницы (без шифрования))

HTTPS : 443 (получение веб-страниц (с шифрованием))

POP3 : 110 (получение почты (без шифрования))

POP3 с SSL: 995 (получение почты (с шифрованием))

NTP : 123 (time server) (UDP) (настройка часов)

СУБД Oracle: 1521

СУБД MySQL: 3306

RDP : 3389 (удалённое управление хостом с ОС Windows (если не запрещено)). Запретите процесс.

Как посмотреть номера открытых портов. Вызовите «командную строку» и наберите команду «netstat –aon».

17

Вы можете узнать, какая программа использует интересующий вас порт. Обратите внимание на последнюю графу – PID. В ней указаны идентификаторы процессов, с их помощью можно узнать, какая программа открывает тот или иной порт. Подробнее об этом: http://www.kakprosto.ru/kak-105441-kak-opredelit-nomer-porta#ixzz40nKTupwR Перечень правильных портов и троянских портов в файле WEB\разное\Веб примеры.

Компьютеры используют язык чисел, в то время как пользователи предпочитают язык слов. Система доменных имен (DNS) представляет собой базу данных, в которой хранятся все доменные имена и соответствующие IP-номера для словесных названий (доменов) сетей верхнего уровня, например . com или . net . DNS выполняет поиск компьютерных систем и ресурсов в Интернете. С её помощью решается, в какую крупную сеть послать Ваш запрос для дальнейшего поиска. Например, когда пользователь вводит адрес веб-страницы или URL, система DNS проверяет соответствие словесного имени и IP-адреса для этого сайта, после чего перенаправляет пользователя в сеть верхнего уровня, где должен быть соответствующий сайт. Серверы имен DNS — это физически компьютеры-серверы, на которых хранятся записи базы данных DNS. Предполагается, что местоположение самого сервера имен хорошо известно. Каждая компьютер с DNS либо знает ответ на вопрос куда послать, либо знает, кого спросить.

Некоторые сетевые команды: Команда NETSTAT отображает статистику протокола и текущих сетевых подключений TCP/IP. Команда PING проверяет наличие связи с указанным узлом. Команда TRACERT выводит имена и IP-адреса всех маршрутизаторов, через которые проходят пакеты от локального компьютера к указанному узлу. Команда IPCONFIG выводит различные сведения о текущей конфигурации протокола IP и может осуществлять базовое конфигурирование этого протокола. Команда NSLOOKUP обращается с запросом к DNS-серверу. Команда NETSH показывает различные параметры настроек сети.

Контрольные вопросы.

1. Основные причины, вызывающие ошибки и отказы в сетях Ethzernet. 2. Какие составляющие «сокета» Вы знаете. 3. Суть понятия «порт». 4. Каким образом «порт» используется на уровнях модели OSI. 5.Как операционная система работает с «портами». 6. Какие номера портов используются для важнеших сервисов операционной системы. 7. Каков порт драйвера Modbus.

Резюме. Для вызова необходимиго сервиса на другом компьютере сетевого адреса недостаточно. Тебуется знать «номер» этого сервиса. В этом случае операционная система активизирует этот сервис. Клиентская и серверная программа устаносят «контакт» между собой и будут взаимодействавать.

Лекция 9. Встроенный интернет. Устройства с драйверами на примере Modbus. Принцип работы. Сетевые настройки и использование.

Анотация. Использование встроенного интернета на примере модулей с драйверами Modbus. Запуск, сетевая настройка, использование возможностей.

Веб-серверы обычно располагаются на мощных компьютерах, которые содержат жесткие диски большой емкости. Однако для удаленного управления в АСУ ТП небольшими объектами или получения данных с одного устройства (датчика, исполнительного механизма) достаточно иметь на сервере всего несколько несложных динамических веб-страниц. Для этой цели используют микро веб-серверы, встраиваемые в оборудование (встраиваемые веб-серверы, Embedded Web Server), выполненные в виде микросхемы, которая располагается на печатной плате устройства или интеллектуального датчика, в кондиционере, в офисном оборудовании и др. Каждый микро-веб сервер доступен по

18

своему интернет-адресу. В настоящее время имеются дешевые однокристальные микроконтроллеры со встроенной реализацией протокола TCP/IP. Это позволило применять веб-серверы на выходе датчика. Технологию применения микро веб-серверов называют "встроенным интернетом" (Embedded Internet). Для обучения технологии Embedded Internet необходимо иметь соответствующее оборудование.

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

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

В СКАДА заложены соответствующие программные блоки для различных приборов , которые могут взаимодействовать с программными частями, включенными в сами приборы. Поскольку драйвер для связи двух своих частей использует интерфейс обмена данными, драйвер более широкое понятие, чем интерфейс. Но каждый драйвер реализует обработку только одного типа получения и обмена данными , с конкретным «железом» одного типа устройств. Поэтому драйвер разработка узко направленная, и работает только с конкретными приборами. Разные приборы имеют разные драйверы. Этим объясняется большое число наличных драйверов. Напомним, что драйверы разделены на две составляющие части, размещенные в разных устройствах. Драйверы, использующие одинаковые интерфейсы и протоколы различаются адресами, номерами регистров и другими подобными элементами. Все СКАДА системы ориентированы на работу с драйверами. В среде разработки TRACE MODE предусмотрено использование около 2000 драйверов, реализующие интерфейсы и протоколы.

Мы рассмотрим использование драйверов на примере широко распространённого драйвера «Modbus». Его поддерживают практически все контроллеры и СКАДА системы. Используем СКАДА «TRACE MODE» и модуль сбора и управления данными ET 7019., связанными по сети Ethernet и протоколам IP/TSP. Физическим уровнем для передачи данных является витая пара (металл) или радиоволны. Уровни, где устройство получает и хранит свой адрес, является интерфейс Ethernet. «Modbus» работает по командам /функциям драйвера. Правила использования функций описаны в инструкциях СКАДА и инструкциях на устройство ET 7019. Мы будем использовать функции 4 (опрос датчиков ), 5 (управление состоянием дискретных выходов, 16 (задание напряжения на аналоговый выход). Зайдём на сайт модуля ET 7019 по электронному адресу и паролю, заданным по умолчанию заводом изготовителем. Они указываются в технической документации, поставляемой с устройством. Затем заходим на страницу сетевых данных и устанавливаем сетевые настройки, согласно характеристикам нашей сети . После этого выбираем другие страницы встроенного сайта и настраиваем параметры каждого канала сбора информации (аналоговых и дискретных). При этом учитывается типы наших датчиков, величину выходных сигналов, порядок подключения приборов. Каналы являются источниками данных. Эти сведения необходимо очень чётко использовать в СКАДА во время привязки аргументам программы к источникам данных. Неправильная привязка вызывает сбой работы системы. На отдельной странице проводится настройке предаварийных и аварийных границ для каждого канала сбора информации. На ВЕБ сайте имеются отдельные страницы с небольшим числом заготовок для самостоятельного создания графического представления Вашего объекта с привязкой к каналам опрашиваемых датчиков. Поэтому

19

можно создавать свои графические образы для чеовеко-машинного интерфейса. В Trace Mode требуется создать компоненты, принимающие пакеты данных от модуля ET 7019 или

направляющие данные на выходные каналы модуля. При получении данных команду модулю для получения направляет СКАДА система, модуль выполняет функцию и передаёт данные СКАДА, которая анализирует полученный ответ/сообщение от ET 7019 для определения ошибок. При отправке задания кроме команды, СКАДА посылает данные для ET 7019, который направляет их на выходной канал, контроль ошибок проводит программа на модуле. Она сообщает СКАДА о выполнении полученной команды. Весь этот обмен производится по правилам и протоколам «Интернет», используя отработанные Веб технологии .

Контрольные вопросы. 1. Что означает понятие «Встроенный интернет». 2. На каких устройствах средств автоматики может располагаться встроенный веб сервер. 3. Сколько программных частей содержит драйвер. 4. Почему «Modbus» IP/TSP является сетевым интернет продуктом. 5. Каков принцип взаимодействия удалённого модуля и СКАДА системы. 6. Какие Веб страницы имеются на встроенном Веб сервере модуля ET 7019.

Резюме. Встроенный интернет получил широкое распространение в устройствах автоматики (датчиках, исполнительных механизмах, модулях, контроллерах) и облегчает работу по контролю, настройке и наладке систем автоматизации производств.

Лекция 10. ОРС сервера. Аннотация. Технология ОРС. Настройка устройств нижнего и верхнего уровня, привязка в СКАДА. Встроенный Интернет. Устойства с драйверами на примере Modbus. Принцип работы. Сетевые настройки и

10.1. Технология OPC (OLE for Process Control) — семейство программных технологий, предоставляющих единый интерфейс для управления объектами автоматизации и технологическими процессами. Многие из OPC протоколов базируются на Windows-технологиях: COM/DCOM. Технология OPC определяет способ обмена данными между программами на ПЭВМ под управлением ОС Windows. Разработана международной организацией OPC Foundation как промышленный стандарт для взаимодействия программ, обслуживающих комплексы контроллеров и телемеханики разных производителей.

Состоит из двух компонентов «ОРС-сервер» и «OPC-клиент». Программа «ОРС-сервер» непосредственно взаимодействует с контроллерами, модулями, с аппаратурой нижнего уровня, используя сетевое оборудование компьютера или другие интерфейсы компьютера. ОРС-сервер обеспечивает сбор данных, передачу команд управления, диагностику каналов связи и т.д. Программа, для которой предназначены данные, собираемые OPC-сервером должна быть OPC-клиентом. OPC-клиент, например SCADA, получает данные через ОРС -сервера и выполняет их комплексную обработку — использует для визуализации, строит графики, выводит на печать, сохраняет на диске и т.д. В системе управления станцией ГГС 5 клиентом является SCADA «TraseMode».

20

Наиболее широко используемый сервер это OPC DA —(OPC Data Access), который предоставляет доступ к данным изменяющимся в реальном времени. В этом стандарте помимо синхронного обмена данными, при котором клиент ждет ответа от сервера, введена поддержка асинхронного обмена данными. Асинхронный обмен данных позволяет продолжать выполнение программы без ожидания ответа устройства. Этот метод снижает нагрузку на сеть и должен быть рекомендован как основной. Получение данных часто реализуется с помощью callback -функции пользовательской программы. Callback или функция обратного в зоваы́ — передача контроллеру кода для исполнения в качестве одного из параметров запроса, который направляет ОРС- программа расположенная на компьютере оператора/пользователя. Обратный вызов требует от контроллера исполнять код, который задаётся в аргументах в функции. Результат передается обратно основной части ОРС процедуры, как ответ на первый вызов (звонок) связи к интересующему нас объекту.

ОPC Unified Architecture - разрабатывается. Спецификация OPC UA открывает новые горизонты для применения OPC-технологий. В частности, обеспечивается кросс-платформенная совместимость и отказ от использования COM-интерфейса. Новый стандарт должен обеспечить более высокий уровень безопасности данных, чем OPC DA. Кроме того, новая спецификация дает возможность организации передачи информации через сеть интернет.

В настоящее время общепризнанным стандартом является только спецификации OPC DA и OPC HDA, а остальные спецификации только начинают завоевывать себе место под солнцем. В последние годы активно развивается стандарт OPC HDA. OPC HDA (Historical Data Access) OPC. Historical Data Access предоставляет доступ к уже сохраненным данным, например в базах данных.

Разновидность OPC-сервера — шлюз к сети полевой шины, такой, как Profibus или LonWorks. Реализация этой схемы очень похожа на предыдущие случаи. На компьютере с ОС Windows будет установлен адаптер fieldbus-сети, а OPC-сервер будет взаимодействовать с этой сетью через драйвер адаптера. Modbus OPC/DDE сервер – предназначен для связи приборов и контроллеров, работающих по протоколу Modbus, со SCADA-системами. Он обеспечивает связь с устройствами по протоколу Modbus RTU/ASCII, используя последовательный интерфейс RS-232C или RS-485; OPC XML-DA (XML-Data Access) — предоставляет гибкий, управляемый правилами формат обмена данными через HTTP (ВЕБ сети).

10.2. Правила работы с ОРС сервером в СКАДА «TRACE MODE» .

Требуется скачать и установить программу NAPOPC_ST DA с сайта производителя http://opc.icpdas.com/download.htm#PC, окно персональных компьютеров. Дополнительно требуется в директорию, где находится программа «napopcsvr» нужно добавить файлы «*module.ini» с сайта того же производителя http://opc.icpdas.com/download.htm . Эти модули дадут дополнительную информацию о ваших устройствах для ОРС сервера. Для настройки ОРС нужно запустить из меню пункт "Добавить /Поиск модулей ..."("Add/ New Device…") или на нажать на значок «поиск». Такие действия позволят найти и добавить новые модули, поддерживающие технологию ОРС.

Для задания поиска конкретных устройств, всплывает окно характеристик этого устройства, где указывается тип драйвера, сетевые настройки, временные настройки связи и другие.

21

После завершения поиска в правой части экрана появляется изображение устройства вместе со своими входами /выходами. Нажатие правой кнопка на модуле вызовет настроечную таблицу, где указываем тип модуля, IP адрес, тайм аут. Люди могут уменьшить значение времени таймаута , чтобы сократить время поиска значений. Будьте осторожны, короткое время поиска может привести к сбою связи. Код ошибки тайм-аута «15». В большинстве случаев, это означает, модуль не успел ответить на текущий запрос.

Функцию "монитор", позволяет увидеть значения каналов-тегов путем выбора в меню пункта "Вид /Монитор ". Нажмите на пункт меню "Вид / Monitor" или значок монитора, чтобы организовать вывод показаний сигналов подключённых к каналам. Флажок "Word Swap" включает интерпретацию и 4 байтовых значений с плавающей запятой. Иногда нам нужно установить флажок "TRUE" для достижения Высокой / Низкой скоростей связи.

Значения, полученные ОРС, принимаются и используются в СКАДА системах для визуализации и управления технологическими параметрами . ОРС сервера передают значения сигнала на всех аналоговых входах контроллера, а также состояния дискретных входов/выходов контроллера. ОРС позволяет передавать управляющие сигналы на аналоговые и дискретные выходы контроллера.

В СКАДА системе «TRACE MODE» в «источниках/приемниках» создаётся группа ОРС. В этой группе затем создаётся подгруппа «ОРС_сервер». С помощью правой кнопки мыши создаётся компонент ОРС сервера. В редакторе компонента ему дают понятное имя и через кнопку «Browse» связывают с заданным входом ОРС сервера. Затем таким же образом создаются другие ОРС компоненты, которые через «ОРС» привязываются к нужным входам контроллера. Привязку можно проводить как к аналоговым входам, так и к дискретным выходам/ выходам. В редакторе компонента указывают направление «Input» или «Input» компонента и формат «Аналоговый» или «Дискретный».

Для каналов включения оборудования выбирается компонент «Output» и формат «Дискретный». Эти компоненты переносятся в группу «каналы» узла RTM и редактируются в соответствии с правилами ТМ. В атрибутах канала в редакторе (первая закладка) важными свойствами являются тип канала и время обработки. Для каналов включения оборудования использованы тип «Output» и период 1сек. Затем каналы ОРС из узла RTM вносятся в список

22

аргументов. Каналы для чтения (входные) вносятся как тип «In», выходные как тип «Out». В выходной канал (для включения) через кнопку на графической форме посылается значение «1» в атрибут «In» этого канала. Этот сигнал действует кратковременно. Для выполнения длительного включения оборудования нужно использовать программу типа «триггер». Контролировать состояние можно через атрибут «R». Выходной сигнал держится некоторое время и затем сбрасывается.

В свою очередь «каналы» узла RTM привязываются к аргументам экрана данных. В атрибуте «REAL» «каналы» узла RTM находится значение считанного параметра после его обработки (масштабирования). Простейший способ организовать перевод кода в параметры в значения в нужных единицах измерений - использовать раздел "Обработка" в редакторе канала для входных и выходных значений. В настройках канала (вызывается при выборе подменю редактировать) нужно установить флаг «Использовать». Если этот флаг снят, канал является каналом без обработки, если флаг установлен – каналом FLOAT с обработкой; Если в канале в формулу обработки поставить в поля «А» максимальное и минимальное значения физического входного сигнала выдаваемого прибором, например 10в и 0в, в результате пересчёта появится измеренное физическое значение текущего параметра. Оно будет в виде числа с плавающей запятой. Число цифр после запятой задается в формате привязки к графическому элементу. Реальную настройку связи СКАДА через ОРС программу с модулем ЕТ 7019 и получение значения входов модуля и выводом их на соответствующие ГЭ проведем на практической работе. При это будем контролировать состояние текущих параметров с помощью встроенного в модуль ВЕБ сервера .

Контрольные вопросы. 1.Какие Windows-технологии используются в ОРС программах? 2. Различие ОРС клиент и ОРС сервер? 3. Особенности функционирования сервера OPC DA? 4. Порядок настройки сервере OPC DA на рабочей станции? 5.Как создаётся компонент ОРС в СКАДА «TRACE MODE»? 6. Какие типы каналов «TRACE MODE» используется при работе с компонентами ОРС? 7. Какие элементы Интернет технологий применяются во время работы с ОРС программами?

Резюме. Студенты получили представление о ОРС технологии и правилах использования ОРС клиентов и ОРС серверов в автоматизированных системах управления технологическими производствами.

Лекция 11 Аннотация. В лекции вводятся основные понятия реляционных баз данных, а также определяется сущность реляционной модели данных.

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

Выделим следующие основные понятия реляционных баз данных: тип данных, домен (проверенные имена), атрибут (заголовок столбца), кортеж (строка), отношение (сама таблица), первичный ключ. Для начала покажем смысл этих понятий на примере отношения (таблицы) СЛУЖАЩИЕ, содержащего информацию о служащих некоторого предприятия (рис. 3.1).

Типы данных. Значения данных, хранимые в реляционной базе данных, являются типизированными, т. е. известен тип каждого хранимого значения. Понятие типа данных в реляционной модели данных соответствует понятию типа данных в языках программирования. Напомним, что традиционное (нестрогое) определение типа данных состоит из

23

трех основных компонентов: определение множества значений данного типа; определение набора операций, применимых к значениям типа; определение способа внешнего представления значений типа (литералов).

В современных реляционных базах данных допускаются символьные данные, числовые данные, специальные числовые данные ( «деньги»), а также данные времени (дата, время, временной интервал). Кроме того, в реляционных системах поддерживается возможность определения пользователями собственных типов данных. В примере на рис. 3.1 мы имеем дело с данными трех типов: строки символов (имена), целые числа и «деньги»(выплаты служащим)

Домен. Интуитивной трактовкой понятия домена является его восприятие как набор элементов прошедших проверку на допустимость, т.е. ограничение подмножества значений данного типа. Например, домен ИМЕНА в примере определен на типе символьных строк, но в число его значений могут входить только те строки, которые могут быть именами. В частности, для представления русских имен такие строки не могут начинаться с мягкого или твердого знака и не могут быть длиннее 20 символов. Имеются и другие правила. Гурбангул Мяликгул евич ы́ ы́Бердымухам дове́ носит титул Аркадаг ( покровитель) Туркмении. Его имя в домен русских имён база данных не пропустит, что видно по реакции программы Word. Элемент данных является элементом домена в том и только в том случае, если вычисление логического выражения дает результат истина (истина и ложь или true и false).

Если в таблице правила проверки определяется для заголовка некоторого, то в дальнейшем ограничения на значения этого атрибута играет роль как ограничение всех элементов домена. Данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов НОМЕРА ПРОПУСКОВ и НОМЕРА ОТДЕЛОВ относятся к типу целых чисел, но не являются сравнимыми (допускать их сравнение было бы бессмысленно). На них наложены разные проверочные логические операции, поэтому они относятся к разным доменам.

Элемент реляционной модели Форма представления

Отношение Таблица Заголовок (схема) отношения Заголовок таблицы Кортеж Строка таблицы Сущность Описание свойств объекта Атрибут Заголовок столбца таблицы Домен Множество допустимых значений атрибута Значение атрибута Значение поля в записи

24

Первичный ключ. Один или несколько атрибутов Тип данных Тип значений элементов таблицы

Отношение представляет собой двумерную таблицу, содержащую некоторые данные. В шапке (заголовках) таблицы записана схема отношения. В строках записаны кортежи отношения. Имена столбцов данной таблицы соответствуют именам атрибутов.

1. Все строки таблицы должны быть различными, т.е. не может быть двух строк с одинаковыми значениями. 2. Имена столбцов таблицы должны быть различными. 3. В каждой ячейке таблицы должно быть записано только одно значение из домена, соответствующего столбцу. 4. Все строки одной таблицы должны иметь одинаковую структуру, соответствующую шапке таблицы. 5. Порядок размещения строк в таблице может быть произвольным

Отношение. Понятие отношения (таблицы) является фундаментальным в реляционном подходе к организации баз данных. Это описание некоторой связи порождающей N-арное «отношение» (таблицу) из данных, хранящихся в реляционной базе. Термин реляционный происходит от relation (отношение). Говоря о связанных данных, мы имеем в виду тип данных, значения этого типа и переменные, в которых сохраняются значения. Соответственно, для уточнения термина «отношение» выделяются понятия заголовок отношения, значения отношения и переменной этого отношения. В отношения вступают, как минимум, два разных типа данных. Таблица не может иметь менее двух столбцов. Смотри WEB/разное/ лекция 2.

Сущность определена как «нечто», о чем необходимо записывать информацию. Сущности имеют некоторые свойства (properties). Данные о сущности хранятся в отношении (таблице).

Атрибуты (Заголовки) представляют собой общие свойства сущностей, характеризующие эту сущность. В структуре таблицы каждый атрибут получает имя через заголовок некоторого столбца таблицы(атрибут это «кликуха» элементов данного племени, данной сущности). Заголовком отношения или схемой отношения называется конечное множество упорядоченных пар вида <A, T>, где A имя атрибута, а T обозначает имя ранее определенного домена. Каждому атрибуту соответствует свои «проверенные и пропущенные на работу» типы данных. По определению требуется, чтобы все имена атрибутов в заголовке отношения были различны и отличались между собой. В примере на рис. 3.1 заголовками отношения СЛУЖАЩИЕ является четыре пары {<слу_номер, номера_пропусков>, <слу_имя, имена>, <слу_зарп, размеры_выплат>, <слу_отд_номер, номера_отделов>}.

Если все атрибуты заголовка отношения определены на разных доменах, то, чтобы не плодить лишних имен, разумно использовать для атрибутов имена соответствующих доменов (не забывая, конечно, о том, что это всего лишь удобный способ именования, который не устраняет различия между понятиями домена и атрибута).

Кортежем, для конкретного заголовка Hr, называется множество упорядоченных триплетов вида <A, T, v>. Третий элемент – v – триплета <A, T, v> является конкретным допустимым значением этого типа данных (домена T). Заголовку отношения СЛУЖАЩИЕ соответствуют, например, следующие кортежи: {<слу_номер, номера_пропусков, 2934>, <слу_имя, имена, Иванов>, <слу_зарп, размеры_выплат, 22.000>, <слу_отд_номер, номера_отделов, 310>}, {<слу_номер, номера_пропусков, 2940>, <слу_имя, имена, Кузнецов>, <слу_зарп, размеры_выплат, 35.000>, <слу_отд_номер, номера_отделов, 320>}. Кортеж – набор всех триплетов составляет, которые составляют строку таблицы.

Телом Br отношения r называется произвольное множество (набор строк) кортежей tr. Одно из возможных тел отношения СЛУЖАЩИЕ показано на рис. 3.1. Заметим, что в общем случае, могут существовать такие кортежи tr, которые соответствуют заголовку Hr, но не входят в набор строк Br.

25

Значением Vr отношения r называется пара множеств, состоящая из двух множеств – одно заголовок, другое тело- (Hr и Br). Вообще, тело величина переменная, её значения изменяются во времени, так что отношения это изменяющаяся функция. Таблицы разные бывают. Одно из допустимых значений отношения СЛУЖАЩИЕ показано на рис. 3.1. Старое и новое значения концептуально являются разными.

В изменчивой реляционной базе данных хранятся отношения, значения которых изменяются во времени. Переменной базы (VARr) называется временной контейнер (поток таблиц), который может содержать любое допустимое значение таблицы с заголовком и телом (Vr). Естественно, что при определении любой VARr требуется указывать соответствующий заголовок отношения Hr. Подчеркнём, что любая операция обновления базы данных – INSERT (вставка кортежа в переменную отношения), DELETE (удаление кортежа из отношения) и UPDATE (модификация кортежа) – является операцией создающей новое значения отношения. По определению, степенью, или «арностью» отношения является мощность заголовка отношения. Например, в примере степень отношения СЛУЖАЩИЕ равна четырем (четыре столбца в заголовке), т. е. оно является 4-арным (кватернарным).

Схемой реляционной базы данных считается набор пар, включающий имена и заголовки всех таблиц (отношений), которые определены в базе данных. Реляционная база данных – это набор пар <VARr, Hr> (конечно, каждая переменная отношения в любой момент времени содержит некоторое значение-отношение, в частности, пустое).

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

Обычным житейским представлением отношения является таблица, заголовком которой является «схема отношения», а строками – величины кортежей отношения; в этом случае имена атрибутов соответствуют именам столбцов данной таблицы. Поэтому иногда говорят про «столбцы таблицы», имея в виду «атрибуты отношения».

Конечно, это достаточно грубая терминология, поскольку у обычных таблиц и строки, и столбцы упорядочены, тогда как атрибуты и кортежи отношений являются элементами неупорядоченных множеств. Когда мы будем рассматривать практические вопросы баз данных и средств управления, то будем использовать эту терминологию. Подобной терминологии придерживаются в большинстве коммерческих реляционных СУБД. Иногда также используются термины файл как аналог таблицы, запись как аналог строки и поле как аналог столбца.

Контрольные вопросы. 1. Какова структура реляционных баз данных? 2. Типы данных и домены? 3.Перечислите основные понятия/термины реляционных баз данных? 4 Как связаны понятия реализационных моделей и таблиц базы данных? 5. Сколько полей минимально может иметь одна таблица?

Резюме.

Лекция 12. Аннотация. Ключи баз данных и нормализация баз.

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

26

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

Ключи используют для достижения следующих целей: 1) исключения дублирования в ключевых атрибутах; Если ключ выбран, то никаких других ключей использовать уже нельзя. 2) ускорения обращения к кортежам; 3) организации связывания таблиц. 4)Первичный ключ используется для идентификации записей в таблице.

Одна аналогия. Когда вы звоните в службу технической поддержки, оператор обычно просит вас назвать какой-либо номер (договора, телефона и пр.), по которому вас можно идентифицировать в системе.Если вы забыли свой номер, то оператор службы технической поддержки попросит предоставить вас какую-либо другую информацию, которая поможет уникальным образом идентифицировать вас. Например, комбинация вашего дня рождения и фамилия. Они тоже могут являться первичным ключом, точнее их комбинация. Значение первичного ключа может встретиться в столбце, атрибут которого выбран в качестве первичного ключа, только один раз.

Составные первичные ключи.Часто первичный ключ состоит из одного поля, но он может быть и комбинацией нескольких столбцов, например, двух (трех, четырех…). Но вы помните, что первичный ключ всегда уникален, а значит нужно, чтобы комбинация n-го количества полей была уникальна.

Поле первичного ключа часто создаётся и используется самой базой данных. Вы можете, условно, сказать базе данных, чтобы она сама автоматически присваивала уникальное числовое значение каждой записи при ее создании. База данных, обычно, начинает нумерацию с 1 и увеличивает это число для каждой записи на одну единицу. Такой первичный ключ называется автоинкрементным или авто нумерованным. Использование автоинкрементных ключей – хороший способ для задания уникальных первичных ключей. Классическое название такого ключа – суррогатный первичный ключ. Такой ключ не содержит полезной информации, относящейся к сущности (объекту) в таблице, поэтому он и называется суррогатным.

Часто пытаются сохранять информацию, которая кажется родственной, в одной таблице. Можно, например, хранить информацию о заказах в таблице клиентов. Ведь заказы принадлежат клиентам, верно? Нет. Клиенты и заказы представляют собой отдельные сущности в базе данных, у них много собственных свойств. То же самое с заказами. И тому и другому нужна своя собственная таблица для записи этих свойств. А записи в этих двух таблицах могут быть связаны для того, чтобы установить связи между ними. Проектирование базы данных – это решение вопросов: 1. определение того, какие сущности вы хотите хранить в ней; 2. какие связи между этими сущностями существуют.

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

Таблица клиентов. Атрибуты ниже – это минимальные блоки информации, которые относятся к клиентам:

27

customer_id (primary key) – идентификатор клиента. first_name — имя. last_name — отчество. address — адрес. zip_code – почтовый индекс. country — страна. birth_date – дата рождения. username – регистрационное имя (логин) password – пароль. Вот столько столбцов со своими названиями. Клиенты имеют свой набор сущностей.

Таблица заказа. Вот сущности (минимум – минимум) для заказа. Аргументы таблицы. order_id (primary key) – идентификатор заказа. order_date – дата и время заказа. customer – клиент заказа.

Здесь в столбце customer располагаются номера- идентификатор клиента customer_id.

Эти две таблицы (клиентов и заказов) уже связаны потому, что поле customer в таблице заказов ссылается на первичный ключ (customer_id) таблицы клиентов. Такая связь называется связью по внешнему ключу. Вы можете представлять себе внешний ключ как простую копию (копию значения) первичного ключа другой таблицы. В нашем случае значение поля customer_id из таблицы клиентов копируется в таблицу заказов при вставке каждой записи о заказе. Таким образом, у каждый заказ привязан к клиенту. Заказов у каждого клиента может быть много, как и говорилось выше.

Повтор – определение. Пусть в какой то таблице R2 имеется атрибут B, значения которого являются (входят в состав) значений Первичного ключа другой таблицы R1. Тогда говорят, что атрибут B отношения R2 есть внешний ключ (FK) .

Каждое значение внешнего ключа (FK) в текущем значении таблицы R2 должно обязательно совпадать со значением такого же атрибута из первичного ключа какого-то из кортежей в текущем значении таблицы R1. Если значение атрибута появилось в таблице R2, то и в таблице R1 будет строка, в которой присутствует это значение атрибута.

Базы данных представляют собой скопление различных таблиц, как будто не связанных друг с другом. Но наличие в этих таблицах хотя бы по одному связывающему элементу (внешнему ключу) позволяет просматривать новые порции информации о новых сущностях. Внешние ключи позволяют вызывать новые таблицы с дополнительной информацией о связях с другими элементами базы данных.

Фактически базы данных и придуманы для того чтобы связывать различные таблицы с разной информацией, которые увязаны только одним ключевым словом, в которых данные рассматриваются с различных часто неожиданных точек зрения. И происходит это с помощью Внешних ключей. Причем выборка происходит автоматически без трудоёмких поисков и сравнений. Пример вызова дополнительных таблиц по внешним ключам посмотрим в одной обучающей лекции. WEB/разное/ лекция 2. В нижней таблице есть составной первичный ключ. Его аргументы, используемые как внешние ключи, позволяют получить ещё две таблицы с новой информацией, которой нет в исходной таблице.

Связывание таблиц. Вы задаёте вопрос: “Как я могу увидеть, что поле customer в таблице заказов ссылается на поле customer_id в таблице клиентов”. Вы не можете сделать этого потому, что я еще не показал вам как создать связь.Ниже – окно SQLyog с окном, которое я использовал для создания связи между таблицами. Пример создания связи по внешнему ключу между таблицами заказов и клиентов. В окне ниже вы можете видеть, как поле customer таблицы заказов слева связывается с первичным ключом (customer_id) таблицы клиентов справа. Foreign key – Внешний ключ. Source Column – столбец источника. Primary key –первичный ключ. Target Column –столбец цели. Referenced table – ссылочная (соединительная) таблица.

28

Выбираем атрибут в текущей таблице и привязываем соответствующий ему атрибут первичного ключа в ссылочной таблице. Нажимаем «Create».

Теперь, когда вы посмотрите на данные, которые могли бы быть в таблицах, вы увидите, что две таблицы связаны. Заказы связаны с клиентами через поле customer, которое ссылается на таблицу клиентов.

На изображении вы видите, что клиент mary поместила три заказа, клиент pablo поместил один, а клиент john – ни одного.Вы спросите: “А что же именно заказали все эти люди?” Вы возможно ожидали увидеть заказанные товары в таблице заказов. Но это был бы плохой пример проектирования. Товары – это отдельные сущности, которые должны храниться в отдельной таблице. И связь между таблицами заказов и товаров будет являться связью один-ко-многим.

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

29

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

Когда одна запись в таблице А может быть связана с 0, 1 или множеством записей в таблице B, вы имеете дело со связью один-ко-многим. В реляционной модели данных связь один-ко-многим использует две таблицы.

Связь многие-ко-многим – это связь, при которой множественным записям из одной таблицы (A) могут соответствовать множественные записи из другой (B). Примером такой связи может служить школа, где учителя обучают учащихся. В большинстве школ каждый учитель обучает многих учащихся, а каждый учащийся может обучаться несколькими учителями.

Связь многие-ко-многим создается с помощью трех таблиц. Две таблицы – “источника” и одна соединительная таблица. Первичный ключ соединительной таблицы A_B – составной. Она состоит из двух полей, двух внешних ключей, которые ссылаются на первичные ключи таблиц A и B.

Все первичные ключи должны быть уникальными. Это подразумевает и то, что комбинация полей A и B должна быть уникальной в таблице A_B. Связь многие-ко-многим состоит из двух связей один-ко-многим. Обе таблицы: А и В имеют связь один-ко-многим с соединительной таблицей.

В связи один-к-одному каждый блок сущности A может быть ассоциирован или с 0 или с 1 блоком сущности B. Наемный работник, например, обычно связан с одним офисом. Или пивной бренд может иметь только одну страну происхождения. Связь один-к-одному легко моделируется в одной таблице. Записи таблицы содержат данные, которые находятся в связи один-к-одному с первичным ключом или записью. Но могут использоваться две таблицы.

30

Проект реляционной базы данных – это коллекция таблиц, которые связываются первичными и внешними ключами. Реляционная модель данных включает в себя ряд правил, которые помогают вам создать верные связи между таблицами. Эти правила называются “нормальными формами.

Если есть многие данные, которые могу быть присвоены многим людям, то имеем дело со связью многие-ко-многим. Например, есть таблица со списком людей и мы хотим хранить информацию о том, какие страны посетил каждый человек. В данном случае имеется две сущности: люди и страны. Любой человек может посетить любое количество стран равно, как и любая страна может быть посещена любым человеком. Т.е., в данном случае, страна не является уникальными данными для конкретного человека и может использоваться повторно. В таких случаях использование связи многие-ко-многим с использованием трех таблиц и с хранением общей информации централизованно очень удобно. Ведь если общие данные меняются, то для того, чтобы информация в базе данных соответствовала действительности достаточно подправить ее только в одном месте, т.к. хранится она только в одном месте (таблице), в остальных таблицах имеются лишь ссылки на нее.

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

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

Атомарность. Правило: поля не имеют дубликатов и каждое поле содержит только одно значение. Примером плохой практики при проектировании является хранение множественных значений в ячейке.

31

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

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

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

Если посмотрите на эту таблицу, то вы увидите примеры дублирования данных среди записей. Поле brand могло бы быть выделено в отдельную таблицу. Также, как и поле type (модель), которое также могло бы быть выделено в отдельную таблицу, которая бы имела связь многие-к-одному с таблицей brand потому, что у бренда могут быть разные модели. Колонка store содержит наименование магазина, в котором в настоящее время находится машина. Store – это очевидный пример избыточности данных и хороший кандидат для отдельной сущности, которая должна быть связана с таблицей автомобилей связью по внешнему ключу. Ниже пример того, как бы вы моги смоделировать базу данных для автомобилей, избегая избыточности данных.

32

В примере выше таблица car имеет внешний ключи – ссылку на таблицы type и store. Столбец brand исчез потому, что на бренд есть неявная ссылка через таблицу type. Когда есть ссылка на type, есть ссылка и на brand, т.к. type принадлежит brand. И даже сейчас вы не должны быть удовлетворены результатом потому, что вы также могли бы выделить поле color в отдельную таблицу. Если вы планируете хранить огромное количество единиц автомобилей в системе и вы хотите иметь возможность производить поиск по цвету (color), то было бы мудрым решением выделить цвета в отдельную таблицу так, чтобы они не дублировались.

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

Правило: не может быть транзитивных зависимостей между полями в таблице.Таблица клиентов (мои клиенты – игроки немецкой и французской футбольной команды) ниже содержит транзитивные зависимости.

33

В этой таблице не все поля зависят исключительно от первичного ключа. Существует отдельная связь между полем postal_code и полями города (city) и провинции (province). В Нидерландах оба значение: город и провинция – определяются почтовым кодом, индексом. Таким образом, нет необходимости хранить город и провинцию в клиентской таблице. Если вы знаете почтовый код, то вы уже знаете город и провинцию. Такая транзитивной зависимости следует избегать, если вы хотите, чтобы ваша модель базы данных была в третьей нормальной форме. В данном случае устранение транзитивной зависимости из таблицы может быть достигнуто путем удаления полей города и провинции из таблицы и хранение их в отдельной таблице, содержащей почтовый код (первичный ключ), имя провинции и имя города. Получение комбинации почтовый код-город-провинция для целой страны может быть весьма нетривиальным занятием. Вот почему такие таблицы зачастую продаются. Другим примером для применения третьей нормальной формы может служить (слишком) простой пример таблицы заказов интернет-магазина ниже.

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

Четвёртая и пятая нормальные формы не рассматриваются.

Практическое занятие 3 2.1 Работа Trace Moud с бозой Access

34

Занятие 11. SQL (Structured Query Language) — Структурированный Язык Запросов — стандартный язык запросов по работе с реляционными БД. Первый стандарт языка SQL был принят в 1989 г. (мы будем называть его SQL/89). Однако развитие информационных технологий, связанных с базами данных, и необходимость реализации переносимых приложений потребовали доработки первого стандарта SQL. В 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшим будем называть SQL/92 или SQL2. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.

В 1999 году появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 соответствует качественным преобразованиям. В SQL3 введены новые типы данных, при этом есть возможность задания сложных структурированных типов данных. Добавлен раздел, который вводит стандарты на события и триггеры. В стандарте определена четкая спецификация триггеров как совокупности события и действия. В качестве действия могут выступать не только последовательность операторов SQL, но и операторы управления ходом выполнения программы. В рамках управления транзакциями введена возможность указания в операторе отката «ROLLBACK» точек возврата, которые позволит откатывать транзакцию не в начало, а в промежуточную точку.

SQL содержит разделы, представленные ниже:

Таблица 5.1. Операторы определения данных DDL

Оператор Смысл Действие

CREATE TABLE

Создать таблицу Создает новую таблицу в БД

DROP TABLE

Удалить таблицу Удаляет таблицу из БД

CREATE VIEW

Создать представление Создает виртуальную таблицу, соответствующую некоторому SQL-запросу

CREATE INDEX

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

DROP INDEX

Удалить индекс Удаляет ранее созданный индекс

Таблица 5.2. Операторы манипулирования данными (DML)

Оператор Смысл Действие

DELETE Удалить строки

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

INSERT Вставить строку

Вставляет одну строку в базовую таблицу.

35

UPDATE Обновить строку

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

Таблица 5.3. Язык запросов (DQL)

Оператор Смысл Действие

SELECT Выбрать строки Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу

Таблица 5.4. Средства управления транзакциями

ROLLBACK Откатить транзакцию

Отменить изменения, проведенные в ходе выполнения транзакции

Таблица 5.5. Средства администрирования данных

Оператор Смысл Действие

ALTER PASSWORD Изменить пароль Изменить пароль для всей базы данных

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

При выполнении сравнений в операциях фильтрации используются константы заданных типов. Для числовых типов данных определены константы в виде последовательности цифр с необязательным заданием знака числа и десятичной точкой. То есть правильными будут константы:

213.314 612.716 + 551.702

Строковые константы должны быть заключены в одинарные кавычки: 'Крылов Ю.Д.' 'Санкт-Петербург'

Константы даты, времени и временного интервала в реляционных СУБД представляются в виде строковых констант. Форматы этих констант отличаются в различных СУБД. Кроме того, формат представления даты различен в разных странах. В большинстве СУБД реализованы способы настройки форматов представления дат или специальные функции преобразования форматов дат. Приведем примеры констант в MS SQL Server:

March 15, 1999 Mar 15 1999 3/15/1999 3-15-99 1999 MAR 15

В операторах SQL могут использоваться выражения, которые строятся по стандартным правилам применения знаков арифметических операций сложения (+), вычитания (-), умножения (*) и деления (/). Однако в ряде СУБД операция деления (/) интерпретируется как деление нацело, поэтому при построении сложных выражений вы можете получить результат, не соответствующий ожидаемому. В стандарт SQL2 включена возможность выполнения операций сложения и вычитания над датами. В СУБД определена операция конкатенации над строковыми данными, но обозначается онапо-разному. Так, например, для DB2 операция конкатенации обозначается двойной вертикальной чертой, в MS SQL Server — знаком сложения (+), поэтому два выражения, созданные в разных СУБД, эквивалентны:

'Mr./Mrs. ' || NAME || ' ' LAST_NAME 'Mr./Mrs. ' + NAME + ' ' LAST_NAME

36

Язык запросов в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры. Однако писать запросы на языке SQL сначала совсем не просто. Один и тот же запрос может быть реализован несколькими способами, и, будучи все правильными, они, тем не менее, могут существенно отличаться по времени исполнения, и это важно для больших баз данных.

Синтаксис оператора SELECT имеет следующий вид:

SELECT [ALL|DISTINCT] (<Список полей>|*)

FROM <Список таблиц>

[WHERE <Предикат-условие выборки или соединения>]

[GROUP BY <Список полей результата>]

[HAVING <Предикат-условие для группы>]

[ORDER BY <Список полей, по которым упорядочить вывод>]

Ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса. Значит, в результирующий набор могут попасть одинаковые строки. И это нарушение принципов теории отношений . Ключевое слово DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор.

Символ *. (звездочка) означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса.

В разделе FROM задается перечень отношений (таблиц) запроса. В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц. В разделе GROUP BY задается список полей группировки. В разделе HAVING задаются условия, накладываемые на каждую группу. В части ORDER BY задается список полей, который определяет порядок сортировки в результирующем отношении (таблице). Например, если первым полем списка будет указана Фамилия, а вторым Номер группы, то в результирующем отношении сначала будут собраны в алфавитном порядке студенты, и если найдутся однофамильцы, то они будут расположены в порядке возрастания номеров групп.

В выражении условий раздела WHERE могут быть использованы следующие предикаты: 1. Предикаты(свойство) сравнения { =, <>, >,<, >=,<= },которые имеют традиционный смысл. 2. Предикат(свойство) Between A and B — значения между A и B. Предикат истинен, когда значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and B,который истинен тогда, когда значение не попадает в заданный интервал, включая его границы. 3. Предикат (свойство) вхождения в множество IN (множество). Истинен тогда, когда значение входит в множество заданных значений. При этом множество значений может быть задано перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество. 4. Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается значение. Предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл. В шаблон могут быть включены специальные символы: символ подчеркивания ( _ ) — для обозначения одиночного символа; символ процента ( % ) — для обозначения любой произвольной последовательности символов; 5. Предикат сравнения с неопределенным значением IS NULL. Неопределенное значение интерпретируется в

37

реляционной модели как значение, неизвестное на данный момент времени. Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение. Одно неопределенное значение никогда не считается равным другому неопределенному значению. Для выявления равенства значения некоторого атрибута неопределенному значению применяют специальные стандартные предикаты: <имя атрибута>IS NULL и <имя атрибута> IS NOT NULL. Если в данном кортеже (в данной строке) указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение "Истина" ( TRUE ), а предикат IS NOT NULL — "Ложь" FALSE.

Занятие 17 Опрос и использование данных с контроллера по ВЕБ сети.

Скачать и установить NAPOPC_ST DA http://opc.icpdas.com/download.htm#PC . Скачать с окошка для РС (персональных компьютеров).

В директорию где находится «napopcsvr» нужно добавить файлы «*module.ini» с сайта http://opc.icpdas.com/download.htm . Эти модули дадут информацию о ваших устройствах для ОРС сервера. Шаг 1: Нажмите на кнопку "Добавить /Поиск модулей ..."("Add/ New Device…") пункт меню или на значок «поиск», чтобы добавить новый Модуль.

Окно для настройки свойств нужного устройства.

38

Мы ищем модуль ЕТ 7019 с адресом 10.1.5.160. Поэтому выбираем галочки «Modbus», «Modbus TCP», «General modbus device», вводим адрес.

В правой части экрана изображение устройства вместе со своими входами /выходами. Правая Кнопка на модуле вызовет настроечную таблицу, где указываем тип модуля, IP адрес, тайм аут. Люди могут уменьшить значение времени таймаута , чтобы сократить время поиска значений. Будь осторожены, короткое время поиска может привести к сбою связи. Код ошибки тайм-аута «15». В большинстве случаев, это означает, модуль не отвечал на текущий запрос.

Шаг 2. Используйте функцию "монитор", чтобы увидеть значения каналов-тегов путем включения в "Вид /Монитор " меню. Установите галочки, чтобы установить мониторинг. Нажмите на пункт меню "Вид / Monitor" или значок монитора, чтобы включить показания каналов. Флажок "Word Swap" включает интерпретацию 4 байтовых значений. Иногда нам нужно установить флажок "TRUE" для достижения Высокой / Низкой скоростей связи.

Значения, полученные ОРС, принимаются и используются в СКАДА системах для визуализации и управления технологическими параметрами . ОРС сервера показывают значения сигнала на всех аналоговых входах контроллера и состояния дискретных входов/выходов контроллера. Он также позволяет передавать управляющие сигналы на аналоговые и дискретные выходы контроллера.

Создание каналов связи с источниками данных. Смотреть проект ТМ 11.

Порядок работы. Создаётся в «источниках/приемниках» группа ОРС. В этой группе создаётся подгруппа «ОРС_сервер». С помощью правой кнопки мыши создаётся компонент ОРС сервера. В редакторе компонента ему дают понятное имя и через кнопку «Browse» связывают с заданым входом ОРС сервера. Затем таким же образом создаются другие ОРС каналы-компоненты, которые привязываются к нужным входам контроллера. Привязку можно проводить как к аналоговым входам, так и к дискретным выходам/ выходам. В редакторе компонента указывают направление «Input» или «Input» компонента и формат «Аналоговый» или «Дискретный».

39

Для каналов включения оборудования выбирается компонент «Output» и формат «Дискретный». Эти компоненты переносятся в группу «каналы» узла RTM и редактируются в соответствии с правилами ТМ. В атрибутах канала в редакторе (первая закладка) важными свойствами являются тип канала и время обработки. Для каналов включения оборудования использованы тип «Output» и период 1сек. Затем каналы ОРС из узла RTM вносятся в список аргументов. Каналы для чтения (входные) вносятся как тип «In», выходные как тип «Out». В выходной канал (для включения) через кнопку на графической форме посылается значение «1» в атрибут «In» этого канала. Этот сигнал действует кратковременно. Для выполнения длительного включения оборудования нужно использовать программу типа «тригер». Контролировать состояние можно через атрибут «R». Выходной сигнал держится некоторое время и затем сбрасывается.

Обработка входного/выходного сигнала. Обработка производится либо с помощью встроенной в канал программы, либо с помощью самостоятельно написанной программы. Результат обработки записывается в атрибут «REAL». В привязках к графическим элементам используются как атрибут «IN» так и атрибут «REAL». В атрибуте «IN» находится то значение (число) которое считано с регистра источника в виде кода. В атрибут «REAL» заносится величина пересчитанного значения.

В атрибуте «IN» считанное значение представлено в виде кода считанного с входного регистра. Значение может быть в десятичном виде или в шестнадцатиричном виде. Максимальный код для ЕТ 7019 и ЕТ 7026 для максимальных значений входного сигнала составляет 32767, минимальный код - 0. Для модуля I7017 максимальный код для максимальных значений входного сигнала составляет 11480, минимальный код – 0. Текущие значения технологических параметров лежат в этих границах. В атрибуте «REAL» находится значение параметра после обработки (масштабирования). Простейший способ организовать перевод кода в параметры в значения в нужных единицах измерений - это раздел "Обработка" в редакторе канала для входных и выходных значений. В настройках канала (вызывается при выборе подменю редактировать) нужно установить флаг «Использовать». Если этот флаг снят, канал является каналом без обработки, если флаг установлен – каналом FLOAT с обработкой; Если в канале в формулу обработки поставить в поля «А» максимальное и минимальное значения физического входного сигнала выдаваемого прибором, например 10в и 0в, в результате пересчёта появится измеренное физическое значение текущего параметра. Оно будет в виде числа с плавающей запятой. Число цифр после запятой задается в формате привязки к графическому элементу.

Атрибуты Множитель и Смещение также рассчитываются в разделе Масштабирование. Для активизации раздела нужно установить флаг Масштабирование. В результате рассчитывается следующие величины: Множитель (KX) и Смещение (Z) – параметры масштабирования в формуле A= «In»*KX+Z в канале типа INPUT; Q=(A+Z)*KX в канале типа OUTPUT. По умолчанию KX=1, Z=0. Формула расчёта автоматически связывается с типом канала (INPUT или OUTPUT) и имеет соответствующий вид . Также в этом разделе предусмотрена установка галочек для реализации дополнительных функций. Пик – этот параметр конфигурирует подавление одиночных пиков в канале INPUT и алгоритм линейного сглаживания – в канале OUTPUT. Установка Сглаживание реализует функцию Экспоненциальное сглаживание. Автопосылка – это способность монитора передавать в сеть реальные значения каналов в виде широковещательных сообщений (в сети TCP/IP широковещательные сообщения отправляются по специальному IP-адресу, все биты которого равны единице).

40

Самостоятельная работа. Настроить связь через ОРС с ЕТ 7019, получить значения с трех различных входов модуля ЕТ 7019 вывести на разные ГЭ. Организовать обработку полученного сигнала по одному каналу для вывода физического значения входного сигнала. Для двух других величин входов организовать обработку полученного сигнала для различных техологических параметров (Т, Р, Уровень, Расход) с пределами шкал выбранных Вами приборов для Вашего обеъкта упрвления. Контолировать состояние текущего кода каждого параметра.

http :// dev . vk . edu . ee /~ t 124402/ PhpProject 1/

Занятие 18. Аргументы и графика на форме связи внешей базой данных.

Раздел для считывания параметров из базы данных. Аргументы Экрана. Все аргументы «In/Out».

Idr – заданая строка для считывания из базы данных. Привязан к ГЭ «№ строки Ж». (Real).

Pname – имя параметра отправляемого в базу данных. Привязан к ГЭ «Имя». (String).

Число – Значение параметра отправляемого в базу данных. Привязан к ГЭ «Значение». (Real).

Datatime – Время и дата отправления параметра. Привязан к ГЭ «Время». (Date and Time).

Id - Номер реальной строки, направляемая в базу данных. Привязан к кнопке «№ строки». (Unit).

Nzapros- № SQl запроса, направляемый во входной атрибут канала базы данных. Привязан к кнопке «Получить». (Unit).

База данных_In - Значение исполняемого запроса. Привязан к ГЭ «№ запроса». (Int).

Аргументы База данных. Все аргументы «In/Out».

Idr – заданая строка для считывания из базы данных. Привязан к аргументу таблицы БД « Id ». Выводит номер запрашиваемой строки.

Pname – имя параметра отправляемого в базу данных. Привязан к аргументу таблицы БД «name ». Выводит имя параметра.

Число – Значение параметра отправляемого в базу данных. Привязан к аргументу таблицы БД «number ». Выводит значение параметра.

Datatime – Время и дата отправления параметра. Привязан к аргументу таблицы БД «addDate ». Выводит время записи информации в базу данных.

Id - Номер реальной строки, направляемой в базу данных. Привязан к аргументу таблицы БД « Id ». Задаёт номер запрашиваемой строки.

Смотри проект 10 ТМ из COPY.

Занятие 19.

Создать новый набор кнопок и аргументов на экране для связи определения своего идентификатора в системе «TraseMode6BD».

1.Привязки аргументов «формы» аргументы «базы» между собой.

41

2. Создание ГЭ для получения данных из БД. Создание запроса 2. Привязка аргументов получения данных.

4. Общее. Привязки строковых параметров в форме и базе

5. Общее. Привязки номеров запросов.

Занятие 20 Создание базы данных Access и её заполнение. Показать на примере.

Занятие 21. Представление и использование данных на ВЕБ серверах.

SCADA системы также поддерживают веб-технологии, при которых интерфейс SCADA выполняется в виде веб-страницы и располагается на отдельном компьютере-сервере (или устройстве-сервере) локальной сети. При этом любой пользователь на другом компьютере, обладающий правами доступа, с помощью стандартного веб-браузера (например, Internet Explorer) может видеть параметры SCADA и контролировать технологический процесс. Всю информацию ему обеспечивают динамические ВЕБ-страницы, формируемые на ВЕБ-сервере. Другое направление: связь между контроллерами, компьютерами, серверами, электронными приборами обеспечивают программы стандарта ОРС .Они дают возможность применения оборудования различных производителей практически с любыми SCADA, имеющимися на рынке, а также связь между SCADA и программными продуктами интернет технологий. Часть программ ОРС используютя для привязки приборов к SCADA системам, другая часть для привязки их базам данных или к интенет серверам ВЕБ технологий. Обучение привязки SCADA к базам данных или к интенет серверам ВЕБ технологий – это совместная задача преподавателей автоматики и инфотехнологов.

Технология World Wide Web. Сайты

Огромная популярность Всемирной паутины (WWW), придуманной Бернер-сом-Ли из Европейской организации по ядерным исследованиям (CERN) в Женеве привела к очень быстрому росту сети Internet. Страницы WWW размещены на Web-серверах. Каждая страница обычно содержит графику и ссылки на другие страницы данного сайта.

Основными элементами технологии разработки элементов WWW являются [Артемьев В.И. Разработка INTRANET-приложений. Учебное пособие. Ярославль: изд-во ЯрГПУ, 1998, 233 с.]: язык гипертекстовой разметки документов (Hyper Text Markup Language - HTML); протокол обмена гипертекстовой информацией (Hyper Text Transfer Protocol - HTTP); универсальный способ адресации ресурсов в сети (Universal Resource Identifier - URI, и Universal Resource Locator - URL); система доменных имен (Domain Name System - DNS); универсальный интерфейс шлюзов (Common Gateway Interface - CGI), добавленный позже сотрудниками Национального Центра Суперкомпьютерных Приложений (National Center for Supercomputing Applications - NCSA); расширяемый язык разметки (eXtensible Markup Language - XML), рекомендованный Консорциумом Всемирной паутины.

42

Web-страница создается с помощью языка разметки, например языка HTML (Hyper Text Markup Language – язык разметки гипертекста). Язык гипертекстовой разметки HTML создан на опыте использования методов представления текста в электронной форме (стандарт ISO 8879). Основная идея гипертекста заключается в присутствии внутри ASCII-текста форматирующих полей и ссылок как внутри документа, так и на другие документы. Благодаря этому можно просматривать документы в том порядке, в каком требуется, а не последовательно, как при чтении книг. HTML справляется с проблемами путём определения небольшого набора структурных элементов — дескрипторов (описателей). Дескрипторы также называют «тегами». С помощью HTML можно легко создать простой, красиво оформленный документ. Дополнительно в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

Язык HTML интерпретируется (расшифровывается) браузерами и отображается в виде документа в удобной для человека форме. Для получения файла из Internet браузеру нужно знать, где находится файл и как общаться с компьютером, на котором этот файл находится. Программа-клиент WWW передает имя необходимого файла, его местоположение в Internet (адрес хоста) и метод доступа (обычно протокол HTTP или FTP). Комбинация этих элементов формирует универсальный идентификатор ресурса (Universal Resource Identifier - URI).

Используется также язык XML (eXtensible Markup Language – расширяемый язык разметки). В отличие от HTML, вместо использования ограниченного набора определённых элементов вы имеете возможность создавать ваши собственные элементы и присваивать им любые имена по вашему выбору. XML решает ряд проблем, которые не решает HTML,

43

например: 1. Представление документов любого (не только текстового) типа, например, музыки, математических уравнений и т.д. 2. Сортировка, фильтрация и поиск информации. 3.Представление информации в иерархическом виде. Язык XHTML является более строгим вариантом HTML, он следует всем ограничениям XML.

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

служба пересылки и приема сообщений (E-mail); служба гипертекстовой среды (WWW); служба передачи файлов (File Transfer Protocol - FTP); служба удаленного управления компьютером (Teletype Network - Telnet); служба имен доменов (Domain Name System); служба телеконференций (Users Network - Usenet) и чат-конференций (Интернет Relay Chat - IRC). Инструментальные средства разработки Internet-приложений разнообразны и включают: редакторы гипертекста и графические редакторы; средства разметки карт изображений и конверторы изображений; средства мультимедиа (аудио, анимация, видео); средства генерации виртуальной реальности; средства и языки программирования серверных и клиентских приложений и расширений.

Схема взаимодействий в Internet

Типичная веб-страница представляет из себя текстовый файл в формате HTML, который содержит теги и ссылки на файлы в других форматах (графические изображения, видео, аудио, мультимедиа). Несколько веб-страниц, объединённых общей темой, и также связанных между собой ссылками, образуют веб-сайт. При этом образующие

44

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

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

Занятие 22. Тема . Проверка приёма данных из базы в ручном режиме. Движение информации. Работта по Проекту 102. operator_data.addDate записывает время в аргумент БД #datatime#, In/Out (который может быть связан с самим собой в аргуменнте каналБД, затем значение поступает → в аргумент экрана #datatime#, In, который привязан к ГЭ «время », везде тип данных Data_ and_ Time.

operator_data.id записывает «номер строки» в аргумент БД #id#, In/Out, затем значение поступает → в аргумент экрана #id#, In, через привязку к аргументу БД. Этот аргумент экрана привязан к ГЭ «№ строки», всё тип «целое число».

Measurement.name записывает «единицу измерения» в аргумент БД #measurement#, In/Out, привязанный к атрибуту 80 ( коментарий) канала температура, из этого атрибута значение считывается аргументом экрана #measurement#, также привязанному к атрибуту 80 ( коментарий) канала температура. Этот аргумент привязан к графическому элементу «Единица измерений». Всё тип «string». operator_data.name записывает «имя параметра» в аргумент БД #Pname#, In/Out, привязанный к атрибуту 80 ( коментарий) канала «экран», из этого атрибута значение считывается аргументом экрана #Pname#, также привязанному к атрибуту 80 ( коментарий) канала «экран». Этот аргумент привязан к графическому элементу «Имя». Всё тип «string».

operator_data.number записывает «Значениие параметра» в аргумент БД #число#, In/Out, затем это значение поступает → в аргумент экрана #число#, In/Out, через привязку к аргументу БД. Этот аргумент экрана привязан к ГЭ «Значение», всё тип «Real». operator_data.measurement_id записывает «код измерения» в аргумент БД #measurementIDR#, In/Out, затем значение поступает → в аргумент экрана #measurementIDR#, In, через привязку к аргументу БД. Этот аргумент экрана привязан к ГЭ «№ единицы измерения», всё тип «целое число». Номер желаемой строки вводится через кнопку «№ строки» в аргумент экрана #id# и направляется в в аргумент БД #id#, через привязку аргументов. Номер запроса вводится через кнопку «Получить» в аргумент экрана #Nzapos# и направляется в атрибут «входной» канала БД , через привязку аргумента экрана и атрибута канала БД.

Занятие 23 Тема Работта по Проекту 102. Создание кнопок и аргументов для получения идентификатора пользователя. Создание запроса 7. Привязка аргументов и атрибутов. Движение информации. Вводим своё имя пользовтеля с кнопки ввода, через аргумент экрана «loginvy», тип строка, через коментарий моего канала «задание» в аргумент БД «loginvy», также привязанный к коментарию моего канала «задание». Этот аргумент БД привязан параметру запроса «selekt» №7. Номер запроса привязан к кнопке «Получить ID», привязанной к аргументу экрана #Nzapos# . Запрос получает из таблицы базы данных «users» номер пользователя и через привязку аргументов БД и экрана «userID» выводит его на графический элемент экрана. Для контроля имя user выводится на отдельный графический элемент.

45

Задача Создание сайта. Смотреть Пример в Интернете изготовления простых ВЕБ страниц.

Занятие. Распределённая система контроля и управления с базой данных «TraseMode6testDB1».

Структура распределённой системы управления

Регистрацистрация пользователя в базе данных «TraseMode6testDB1»

1 Набрать в браузере http://dev.vk.edu.ee/~t124402/PhpProject1/Register.php . 2 Появится форма из четырех полей. В первое поле ввести логин на латыни operator1, operator2, и т.д. 3 Во второе поле ввести свой пароль (от 4 до 10 символов) на латыни. 4 В третье поле повторить пароль. 5 В четвёртое поле ввести емайл.

Работа в распределённой системе. Вызов через Submit http :// dev . vk . edu . ee /~ t 124402/ PhpProject 1/ myTest . php Сайт данных технологических параметров. Можно зайти в свою таблицу. Набрать в браузе http://dev.vk.edu.ee/~t124402/PhpProject1/ Введите логин и пароль. Появятся пустые таблицы. Самостоятельная работа – заполнение таблиц пересылкой технологических данных с приборов.

Для динамических страниц ВЕБ сайта контент (информацию) содержат в базе данных. Сервер получает запрос от Клиента (например, page.ru/index.php) и запускает обработку файла-скрипта (в данном случае - index.php) программой – интерпретатором, называемую Веб-сервером. Сервер генерирует HTML-код динамической страницы для обработки браузером или другим агентом пользователя На этой стадии происходит выборка необходимой информации из баз данных и наполнение ею страниц, после чего готовая страница передаётся Клиенту. Наполнение происходит путем реализации написанных программистом скриптов (кусочков кодов), которые работают с базой данных. Языки программирования на Серверной стороне используются разные, наиболее часто встречаются, например: Java, PHP, Perl, ASP.NET.

Для ОС Microsoft Windows с Веб-сервером управления IIS используется язык ASP.NET. Сервер IIS позволяет размещать в Интернете созданные сайты. Он поддерживает сетевые протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP и использует скрипты созданные на языке ASP.NET. Разработчики могут писать и включать в ASP.NET коды, используя любые языки программирования, входящие в комплект NET Framework (C#, Visual Basic.NET и JScript .NET).

Для Веб-сервера Apache, работающего под управлением ОС Linux , Мас и других, используется технология JSP (JavaServer Pages) со скриптовым языком PHP. .

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

Внешний модуль, или вставка (plug-in), – это программа, которая помещается в браузер и расширяет его возможности – скажем, позволяет обрабатывать аудио- и видеоданные, посылаемые сервером. Внешний модуль может входить в дистрибутив браузера или загружаться отдельно с определенного сервера. С появлением WWW и Web-браузеров в начале 90-х годов браузер стал распространенным пользовательским интерфейсом для распределенных приложений.

Intranet - это внутреннее информационное пространство отдельной организации, реализуемое либо в локальной сети LAN (Local Area Network), либо в компьютерной сети WAN (Wide Area Network), охватывающей несколько территорий и включающей в себя десятки и/или сотни тысяч компьютеров) и обладающее всеми возможностями Internet.

Занятие 25. Продолжение работы с внешней базой данных.

46

Тема Создание кнопок и аргументов для записи данных в БД. Создание запроса 2. Привязка аргументов и атрибутов. Движение информации. Вводим вручную имя параметра и величину значения которое хотим отправить с соответствующих кнопок ввода. Они через аргументы экрана «chislovy», тип Real и «Pnamevy», тип строка, связанный с коментарием канала «База данных», направляются в аргумент БД «chislovy» и в аргумент БД «Pnamevy», привязанному к коментарию канала «База данных». Аргумент БД «datatimevy» привязан к атрибуту канала «База данных», который называется «время изменения» и срабатывает при вызове канала. Для контроля этот аргумент связан аргументом экрана «datatimevy» и значение выводится на графический элемент экрана.

Эти аргументы БД привязаны параметрам запроса «INSERT» № 2. Номер запроса привязан к кнопке «Получить ID», привязанной к аргументу экрана #Nzapos#. Запрос передаёт даные в таблицу базы данных «operator_data» и вставляет их в последнюю строчку таблицы. Проверить запись можно через обратное получение данных в вашей системе или через ВЕБ сайт. Все ГЭ кнопки, принимают информацию и передают в аргументы типа Out.

Тема Проверка работы записи данных в ручном режиме через ВЕБ сайт. Использовать проект 102.

Занятие 26. Тема Подготовка программы для автоматической записи данных. Движение информации при записи. Проект 102.

Тема Проверка работы записи данных в автоматическом режиме через ВЕБ сайт. Использовать проект 102.

Занятие 27. Тема Использование встроенных процедур базы данных. Подготовка в SCADA SQL для взаимодействия со встроенными прцедурами базы данных. ПроекТМ 102.

Занятие 28.

Монитор ТМ как сервер WEB сайта. МРВ может выступать в качестве сервера HTTP, обеспечивая доступ к сайту по адресу <IP-адрес>:<порт HTTP>/tm6. Сервер HTTP конфигурируется в файле *.cnf с помощью следующей ключей:

HTTP_ADDR=<IP-адрес>; HTTP_PORT=<порт HTTP, DEC>;

HTTP_SRV=<маска конфигурации сервера, HEX> – младшие 16 бит маски запрещают (0) или разрешают (1) страницы сайта. Установленный бит 28 (0x10000000) запрещает автоматический запуск сервера HTTP при старте МРВ.

Для запуска/остановки сервера HTTP используются следующие команды на вкладке Компоненты панели МРВ (см. Панель МРВ ), передаваемые в любой атрибут любого канала:

http=on – запустить сервер HTTP; http=off – остановить сервер HTTP.

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

Тема Работа с устройствами имеющими встроенный Интернет. На примере контроллера ET-7019Z .

47

Прежде всего нужно првести конфигурирование ET-7019Z Сетевые настройки: - IP-адрес, Маска подсети, шлюз по умолчанию, DHCP. Для начальных работ DHCP отключён. Шлюз (gateway) (или маршрутизатор) представляет собой систему, которая используется для подключения данной сети пользователя к одной или нескольким другими внешним сетям. Маска подсети указывает, какая часть IP-адреса, используется для определения адресса сети. Есть два способа настройки сетевых параметров: динамическая конфигурация - через Сервер DHCP, который автоматически назначает IP-адрес устройства. При отсутствии DHCP, для модуля ET-7019Z / ПЭТ-7019Z вручную настраиваются IP-адреса, маски и шлюзы.

Для ручной настройки сетевых параметров ЕТ 7019 используется утилита MiniOS7. Её нужно скачать по адресу:

http://ftp.icpdas.com/pub/cd/8000cd/napdos/minios7/utility/minios7_utility/

и инсталлировать на Ваш компьютер. По умолчанию в контроллере установлены следующие настройки: IP Address 192.168.255.1 Subnet Mask 255.255.0.0 Gateway 192.168.0.1. С помощью утилиты Вы устанавливаете нужные Вам настройки.

Производитель включил в программное обеспечение модуля ВЕБ сервер, который генерирует ВЕБ станицы для связи с браузерами через драйвера Modbus/TCP, и которые показывает его настройки и все входные/ выходные сигналы, позволяют конфигурировать контроллер и создавать на этом сайте Ваши ВЕБ страницы. До 10 ВЕБ страниц. Вы можете таким образом вынести в интернет Ваш объект управления, например Ваш умный дом. Чтобы Ваши страницы были динамическими и значения технологических параметров менялись в реальном времени, следует добавить в Ваш браузер «Adobe Flash Player Download Center». Скачать его можно по адресу:The Adobe Flash Player Download Center: http://get.adobe.com/flashplayer/. Следует его инсталлировать в соответствие с инструкциями инсталляционного файла.

Вызов сайта осуществляется вводом через браузер настроенного IP Addressа. После ввода IP-адреса появлется диалоговое окно для ввода «логин» и пароль. Появляется страница с информацией о модуле и строки меню для дальнейшей работы. Можно выбрать страницу базовых настроек и подкоректировать их.

48

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

Модуль ET-7019Z имеет веб-страницу HMI для отображения в реальном времени значений ввода / вывода и сигналов тревоги через локальную сеть или Интернет. В любом интернет-браузере пользователи могут контролироватьв режиме реального времени значений ввода / вывода и сигнализаций на местных или удаленных сайтах. Веб-HMI появляется немедленно, без какого-либо программирования.

49

Занятие 29. Модуль ET-7019Z предоставляет функции для создания определяемых пользователем веб-страниц.Пользователи могут загружать конкретные рисунки (BMP, JPG, GIF формат) и определять описание для каждой точки ввода / вывода. Для создания веб-страниц навыков по HTML-или Java не требуется.

Выбрать строку «моя страница» и закладку «Carriage». По умолчанию, нет заполненых страниц. Их нужно создать из заготовок для ЕТ-7019Z. Сайт поддерживает до 10 определяемых пользователем веб-страниц. Пример

50

Создание веб-страницы для контроля конвейерной системы. I/O система содержит датчик, который используется для обнаружения продуктов, и переключатель, который используется, чтобы включить/выключить двигатель. Шаг 1 Click На форме Web PageConfiguration кнопкой «Add new Page» для добавки новой страницы. Появится заготовка экрана и кнопки для выбора изображения и загрузки.Шаг 2 Загрузите вашу первую картинку. Нажмите кнопку Обзор (Browse ) ..., чтобы выбрать изображение, а затем нажмите кнопку Upload для загрузки изображений в модулль ET-7019Z. После завершения загрузки, информация об изображении будет отображаться в строчке-окне , а изображение будет добавлено в список.Шаг 3 Установить имя страницы и потом выберите схему из списка изображений для этого имени. ( После выбора схемы, диаграмма будет показано в окне предварительного просмотра)Шаг 4 Add the register item (номер) для чтения входа датчика. В таблице регистров «Group» щелкните кнопку «Edit» для редактирования подключаемого входа.Появится новая форма «Edit Group Register». Шаг 5 Добавте дискретный вхд DI для использования. Установивсвязь для входа, вы можете использовать Modbus Register 0, а затем выберите Discrete Input в Register Type и свяжите его формой PHS1. Шаг 6. Сохранить связь нажав «Save» на форме «Edit Group Register». После сохранения запись о связях регистра будет хранится в первой строчке таблицы. Шаг 7. Нажать «Edit» во второй стоке таблицы «Group» и снова появится «Edit Group Register». Добавить дискретный выход DO Motor для включения двигателя, используя Modbus Register 0, и потом выбирите «Coil» как тип Register и Motor как связь. Сохранить запись о связях регистра во второй строчке таблицы.

Шаг 8. Привяжите остальные формы PHS2 и PHS3.

Созданная ВЕБ страничка будет работать и реагировать на изменние вход и выходов в реалбном времени.

Занятие 30. Передача информации с модуля ЕТ-7019Z в СКАДА систему по сети Ethzernet. Проект ТМ 102.

Приложение. Дополненительная информация при организации работы с базой данных и ВЕБ сервером.

51

Форматы данных ТМ. Обозначению формата предшествует знак процента (%), реальный вывод зависит от региональных настроек ОС: %c – дата и время в соответствии с региональными настройками ОС; %x – дата в соответствии с региональными настройками ОС; %X – время в соответствии с региональными настройками ОС; Любому из форматов может предшествовать знак #. Для различных форматов этот знак имеет различный смысл: Например, %#c – длинное представление даты и времени в соответствии с региональными настройками ОС (например, Tuesday, March 14, 1995, 12:41:29); Для %#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% – знак # игнорируется; %#x – длинное представление даты в соответствии с региональными настройками ОС (например, Tuesday, March 14, 1995); %#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y – удаление лидирующих нулей.

В редакторах Инструменталбной Системы IP-адрес задается в виде четырех числовых полей, разделенных точками. Если число в поле начинается с отличной от 0 цифры, оно интерпретируется как десятичное, если с нуля – как восьмеричное, если с префикса 0x – как шестнадцатеричное.

Связывание клиентов и серверов. Статическое связывание выполняется на этапе компиляции и означает, что все адреса для обращения клиента к серверу жестко «зашиты» в код.

Динамическое связывание производится во время выполнения запущенной программы. Оно характеризуется большей гибкостью, чем статическое, но меньшей эффективностью. Для динамического связывания необходимо указать имя сервера, который ведет справочник имен и адресов серверов. Каждый сервер регистрирует свое местоположение и предоставляемые сервисы у программы «сервера имен». Клиент посылает запрос серверу имен, передавая имя объекта, и получает ссылку на него. Затем эта ссылка используется для доступа к удаленному серверу.

Преимуществом применения интернет-технологий в АСУ ТП является возможность использования на компьютере клиента любого веб-браузера (например, Internet Explorer), независимо от его производителя, типа аппаратной платформы или операционной системы. Например, компьютер диспетчера может работать под Windows, Linux, Unix, QNX, Windows CE и др. Этот же подход может использоваться и в интранете (интранет - это локальная сеть, которая содержит веб-сервер и работает по тем же протоколам, что и интернет).

Протокол HTTP

HTTP (HyperText Transfer Protocol - "протокол передачи гипертекста") - сетевой протокол прикладного уровня для передачи файлов. Основным назначением HTTP является передача веб-страниц (текстовых файлов с разметкой HTML), хотя с помощью него с успехом передаются и другие файлы, как связанные с веб-страницами (изображения и приложения), так и не связанные с ними. HTTP предполагает, что клиентская программа (веб-браузер) способна отображать гипертекстовые веб-страницы и файлы других типов в удобной для пользователя форме.

Хост (host - хозяин, принимающий гостей) - это любое устройство, предоставляющее услуги "клиент-сервер" в режиме сервера по каким-либо интерфейсам. В более частном случае под хостом могут понимать любой компьютер, сервер, маршрутизатор, подключенный к локальной или глобальной сети. Сетевой порт - это условный адрес (число) в диапазоне от 1 до 65535, по которому начинается выполнение программы (сервиса) на компьютере. Такой подход позволяет программам работать независимо друг от друга. Каждая программа "слушает" свой номер порта. Обычно за распространёнными сетевыми протоколами закреплены стандартные номера портов (например, веб-серверы обычно принимают данные по протоколу HTTP на порт 80).

HTTPS — расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTP, "упаковываются" в криптографический протокол SSL или TLS, и тем самым обеспечивается защита этих данных. В отличие от HTTP, для HTTPS по умолчанию используется порт 443.

52

Обмен сообщениями идёт по обыкновенной схеме "запрос-ответ". В отличие от многих протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами "запрос-ответ". Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, по последним запросам и ответами. Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, т.к. к нему не предъявляются такие требования.

Стандарт HTTP 1.1 описан в официальном документе RFC 2068, который можно найти в Интернете.

Каждый запрос/ответ состоит из трёх частей:

стартовая строка

заголовки

тело сообщения, содержащее данные запроса, запрашиваемый ресурс или описание проблемы, если запрос не был выполнен

Стартовые строки различаются для запроса и ответа. Строка запроса выглядит так:

<Метод> <URI> HTTP/<Версия>

Возможные методы (в основном используются методы GET и POST):

OPTIONSВозвращает методы HTTP, которые поддерживаются сервером. Этот метод может служить для определения возможностей веб-сервера.

GET

Запрашивает содержимое указанного ресурса. Запрашиваемый ресурс может принимать параметры (например, поисковая система может принимать в качестве параметра искомую строку). Они передаются в строке URI (например: http://www.example.net/resource?param1=value1&param2=value2). Согласно стандарту HTTP, многократное повторение одного и того же запроса GET должно приводить к одинаковым результатам (при условии, что сам ресурс не изменился за время между запросами). Это позволяет кэшировать ответы на запросы GET.

HEADАналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. Это полезно для извлечения мета-информации, заданной в заголовках ответа, без пересылки всего содержимого.

POST

Передаёт пользовательские данные (например, из HTML-формы) заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. В отличие от метода GET, многократное повторение одних и тех же запросов POST может возвращать разные результаты (например, после каждой отправки комментария будет появляться одна копия этого комментария).

PUT Загружает указанный ресурс на сервер.

DELETE Удаляет указанный ресурс.

53

TRACEВозвращает полученный запрос так, что клиент может увидеть, что промежуточные сервера добавляют или изменяют в запросе.

CONNECTДля использования вместе с прокси-серверами, которые могут динамически переключаться в туннельный режим SSL.

Стартовая строка ответа выглядит так:

HTTP/<Версия> <Код статуса> <Описание статуса>

Первая цифра кода статуса предназначена для определения класса ответа.

1: запрос получен, продолжается обработка.

2: успех, запрос был полностью получен, понят и принят к обработке.

3: перенаправление, клиенту следует предпринять дальнейшие действия для успешного выполнения запроса.

4: ошибка клиента - запрос, содержащий неправильные синтаксические конструкции, который не может быть успешно выполнен (ошибка была допущена со стороны клиента).

5: ошибка сервера - сервер не смог дать ответ на корректно поставленный запрос, сервер либо знает, что он допустил ошибку, либо не способен обработать запрос.

Отдельные значения кодов и описаний статуса:

100 Continue Клиент может продолжать запрос.

101 Switching ProtocolsСервер принял запрос клиента на переключение на модифицированный протокол.

200 Oк (НТТР_ОК) Успешный запрос.

201 Created (HTTP_CREATED) Запрос выполнен, в результате этого был создан новый запрос.

202 Accepted (HTTP_ACCEPTED) Запрос был принят на обработку, но обработка не завершена.

203Non-Authoritative Information (HTTP_NON_AUTHORITATIVE)

Возвращенная информация была собрана с копии третьей стороны.

204 No Content (HTTP_NO_CONTENT) Сервер обработал запрос, но в результате данные не получены.

205 Reset Content Пользовательский агент переустановит отображение документа.

206 Partial Content Сервер выполнил частичный запрос GET к документу.

54

300Multiple Choices (HTTP_MULTIPLE_CHOICES)

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

301Moved Permanently (HTTP_MOVED_PERMANENTLY)

Запрошенный документ был перенесен на новый URI.

302 Found (HTTP_FOUND) Запрошенный ресурс был временно перемещен на новый URI.

303 See Other (HTTP_SEE_OTHER)Ответ на запрос можно найти под различными URI. Он может быть выбран с помощью запроса, сделанного методом GET к этому ресурсу.

304 Not Modified (HTTP_NOT_MODIFIED)Сервер отвечает этим кодом, когда клиент выполнил условный запрос GET и запрос был разрешен, но документ не модифицирован.

305 Use Proxy (HTTP_USE_PROXY)Доступ к запрошенному ресурсу должен производиться через proxy, заданный в поле Location. Поле Location задает URI для proxy.

307Temporary Redirect (HTTP TEMPORARY REDIRECT)

Запрошенный ресурс временно находится под другими URI. Так как переадресация может быть отменена в любой удобный момент, для будущих запросов клиент должен использовать Request-URI.

400 Bad Request Запрос не понят сервером из-за наличия синтаксической ошибки.

401 Unauthorized Запрос требует идентификации пользователя.

402 Payment Required Требуется оплата.

403 ForbiddenСервер понял запрос, но он отказывается его выполнять. Запрещено. Идентификация тут не помогает.

404 Not Found Сервер не нашел соответствия по запросу Request-URI.

405 Method Not AllowedМетод, указанный в Request-Line, не соответствует ресурсу, заданному Request-URI.

406 Not AcceptableРесурс, определенный запросом, может генерировать только ответ, характеристики которого не соответствуют заголовкам, посланным в запросе.

407 Proxy Authentication RequiredЭтот код подобен коду 401 (unauthorized), но в этом случае клиент должен сначала идентифицировать себя с помощью proxy.

408 Request Time-out На протяжении периода ожидания сервера клиент не сделал запроса.

409 ConflictЗапрос не будет завершен вследствие конфликта с текущим состоянием ресурса.

55

410 GoneЗапрошенный ресурс и адрес, по которому можно сделать пересылку, на сервере отсутствуют.

411 Length RequiredСервер отказывается принимать запрос без определенного Content-Length.

412 Precondition FailedПри проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие.

413 Request Entity Too LargeСервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер.

414 Request-URI Too LargeСервер отказывается обрабатывать запрос потому, что Request-URI превышает размеры, которые может обработать сервер.

415 Unsupported Media Type Неподдерживаемый медиа тип.

500 Internal Server Error Внутренняя ошибка сервера.

501 Not ImplementedСервер не поддерживает возможностей, необходимых для обработки запроса.

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

503 Service UnavailableВ данный момент сервер не в состоянии обработать запрос из-за того, что сервер перегружен или находится на профилактическом обслуживании.

504 Gateway Time-outРаботая в режиме шлюза или proxy, сервер не получил вовремя ответ от сервера верхнего уровня.

505 HTTP Version not supportedСервер не поддерживает или отказывается поддерживать версию протокола HTTP, которая была использована в последнем запросе.

Заголовки HTTP — это строки, каждая из которых состоит из имени параметра, за которым следует двоеточие и его значение. Они несут информацию для браузера или для серверных программ (таких, как CGI-приложения). Между заголовками и телом обязательно должна быть пустая строка.

Чтобы обеспечить корректную работу TRACE MODE 6 со значениями с плавающей запятой, в качестве разделителя дробной части числа в региональных настройках Windows должна быть установлена точка.

Полный набор параметров драйвера TCP/IP (Tcpip.sys) задается в реестре Windows (TCP/IP and NBT Configuration Parameters for Windows XP в MSDN). В TM начальные параметры обмена по TCP/IP конфигурируются с помощью редактора узла, ключей команды запуска и ключей в файле *.cnf (см. Задание параметров работы мониторов ).

На уровне АСУТП существует более десятка сетей и полевых шин, конкурирующих за право считаться основной .

56

Протоколы Profibus, Interbus-S, Modbus, WordFip, DeviceNet, Fieldbus Foundation и другие являются широко распространенными, и хотя обмен между ними теоретически возможен, практически это требует от пользователя больших дополнительных расходов по их стыковке и дальнейшему обслуживанию.

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

Развитие сети Ethernet и ее нынешние характеристики позволяют использовать эту сеть в качестве как локальной промышленной сети, так и полевой шины. Повышение пропускной способности сети, связанное с новыми возможностями сетевых коммутаторов и маршрутизаторов, повышение скорости обмена до 100, 200 Мбод и далее до 1 Гбод, возможность сегментации сетей все это привело к тому, что протокол Ethernet может быть открытым и эффективным решением не только для систем автоматизации офисной деятельности, но и для организации промышленных сетей. С решением главной проблемы Ethernet обеспечением необходимого детерминизма эта сеть может превосходить другие промышленные ЛВС (LAN) и промышленные шины (fieldbus) по ряду параметров. Число популярность Ethernet в мире (согласно данным маркетингового агентства ARC, в США количество установленных узлов Ethernet в 1997 г. составляло 93 % от общего количества всех LAN и fieldbus в мире. Предпочтение Ethernet становится очевидным.