Обмен информацией между устройствами, входящими в состав автоматизированной системы (компьютерами, контроллерами, датчиками, исполнительными устройствами), происходит в общем случае через промышленную сеть. В настоящее время насчитывается более 50 типов промышленных сетей (Modbus, Profibus, DeviceNet, CANopen, LonWorks, ControlNet, SDS, Seriplex, ArcNet, BACnet, FDDI, FIP, FF, ASI, Ethernet, WorldFIP, Foundation Fieldbus, Interbus, BitBus и др.).
Соединение промышленной сети с ее компонентами (устройствами, узлами сети) выполняется с помощью интерфейсов. Сетевым интерфейсом называют логическую и (или) физическую границу между устройством и средой передачи информации. Обычно этой границей является набор электронных компонентов и связанного с ними программного обеспечения. При существенных модификациях внутренней структуры устройства или программного обеспечения интерфейс остается без изменений, что является одним из признаков, позволяющих выделить интерфейс в составе оборудования.
Наиболее важными параметрами интерфейса являются пропускная способность и максимальная длина подключаемого кабеля. Промышленные интерфейсы обычно обеспечивают гальваническую развязку между соединяемыми устройствами. Наиболее распространены в промышленной автоматизации последовательные интерфейсы RS-485, RS-232, RS-422, Ethernet, CAN, HART, AS-интерфейс.
Для обмена информацией взаимодействующие устройства должны иметь одинаковый протокол обмена. В простейшей форме протокол - это набор правил, которые управляют обменом информацией. Он определяет синтаксис и семантику сообщений, операции управления, синхронизацию и состояния при коммуникации. Протокол может быть реализован аппаратно, программно или программно-аппаратно. Название сети обычно совпадает с названием протокола, что объясняется его определяющей ролью при создания сети.
Взаимодействие устройств в промышленных сетях выполняется в соответствии с моделями клиент-сервер или издатель-подписчик. В модели клиент-сервер взаимодействуют два объекта. Сервером является объект, который предоставляет сервис, т.е. который выполняет некоторые действия по запросу клиента. Сеть может содержать несколько серверов и несколько клиентов. Каждый клиент может посылать запросы нескольким серверам, а каждый сервер может отвечать на запросы нескольких клиентов. Эта модель удобна для передачи данных, которые появляются периодически или в заранее известное время, как, например, значения температуры в периодическом технологическом процессе. Однако эта модель неудобна для передачи случайно возникающий событий, например, события, состоящего в случайном срабатывании датчика уровня, поскольку для получения этого события клиент должен периодически, с высокой частотой, запрашивать состояние датчика и анализировать его, перегружая сеть бесполезным трафиком.
В модели взаимодействия издатель-подписчик имеется один издатель и множество подписчиков. Подписчики сообщают издателю список тегов, значения которых они хотят получать по определенному расписанию или по мере появления новых данных. Каждый клиент может подписаться на свой набор тегов. В соответствии с установленным расписанием издатель рассылает подписчикам запрошенную информацию.
В любой модели взаимодействия можно выделить устройство, которое управляет другим (подчиненным) устройством. Устройство, проявившее инициативу в обмене, называют ведущим, главным или мастером (Master). Устройство, которое отвечает на запросы мастера, называют ведомым, подчиненным или слейвом (Slave). Ведомое устройство никогда не начинает коммуникацию первым. Оно ждет запроса от ведущего и только отвечает на запросы. Например, в модели клиент-сервер клиент является мастером, сервер - подчиненным. В модели издатель-подписчик на этапе подписки мастером является клиент, а на этапе рассылки публикаций - сервер.
В сети может быть одно или несколько ведущих устройств. Такие сети называется, соответственно, одномастерными или многомастерными. В многомастерной сети возникает проблема разрешения конфликтов между устройствами, пытающимися одновременно получить доступ к среде передачи информации. Конфликты могут быть разрешены методом передачи маркера, как, например, в сети Profibus, методом побитного сравнения идентификатора (используется в CAN), методом прослушивания сети (используется в Ethernet) и методом предотвращения коллизий (используется в беспроводных сетях).
Во всех сетях применяется "широковещательная рассылка" без определенного адреса, т.е. всем участникам сети. Такой режим используется обычно для синхронизации процессов в сети, например, для одновременного запуска процесса ввода данных всеми устройствами ввода или для синхронизации часов.
Некоторые сети используют многоабонентский режим, когда одно и то же сообщение посылается нескольким устройствам одновременно.
Передача информации в сети выполняется через канал между передающим и приемным устройством. Канал является понятием теории информации и включает в себя линию связи и приемопередающие устройства. В общем случае вместо термина "линия связи" используют термин "среда передачи", в качестве которой может выступать, например, оптоволокно, эфир или витая пара проводов.
В распределенных системах на основе промышленных сетей может быть пять типов данных: сигналы, команды, состояния, события, запросы.
При описании сетей часто используется понятие фрейма. Под фреймом понимают набор данных, передаваемых по сети и имеющих строго оговоренную структуру (формат). Термины "кадр", "дейтаграмма" "сегмент", используемые в стандартах на различные промышленные сети, используются как синонимы фрейма.
Сети могут иметь топологию звезды, кольца, шины или смешанную. "Звезда" в промышленной автоматизации используется редко. Кольцо используется в основном для передачи маркера в многомастерных сетях. Шинная топология является общепринятой, что является одной из причин применения термина "промышленная шина" вместо "промышленная сеть". К общей шине в разных местах может быть подключено произвольное количество устройств.
Основными параметрами промышленных сетей являются производительность и надежность. Производительность сети характеризуется временем реакции и пропускной способностью.
Время реакции сети определяется как интервал времени между запросом ведущего устройства и ответом ведомого при условии, что ведомое устройство имеет пренебрежимо малую задержку выработки ответа на запрос.
Пропускная способность сети определяет количество информации, переносимой сетью в единицу времени. Измеряется в бит/с и зависит от быстродействия сетевых приемопередатчиков и среды передачи.
Поскольку основной функцией сети является соединение между собой различного оборудования, проблема открытости, в частности, стандартизации, для сетей приобретает особое значение. В связи с этим в начале 80-х годов международной организацией по стандартизации ISO (International Standardization Organization) совместно с рядом других организаций была сформулирована и принята модель взаимодействия открытых систем OSI (Open System Interconnection), которая сыграла и играет до сих пор важную роль в развитии сетей.
Полное описание модели OSI занимает более 1000 страниц текста. Это связано с тем, что сетевое взаимодействие устройств является сложной задачей. Для решения таких задач обычно используется декомпозиция сложной задачи на более простые. Декомпозиция выполняется таким образом, чтобы количество и сложность связей, а также поток данных между подзадачами были минимальными. В модели OSI было использовано 7 подзадач (уровней), причем декомпозиция выполнена таким образом, что взаимодействие осуществляется только между соседними уровнями.
Такой подход обеспечил возможность решения задачи взаимодействия систем для каждого уровня отдельно, в том числе независимыми группами разработчиков. В частности, для сетевого взаимодействия устройств необходимо согласовать между собой электрические уровни сигналов, задержки и длительности импульсов, типы соединителей, способы кодирования информации, способы обеспечения достоверности передачи, формы и форматы адресации, форматы данных, способы доступа к сети, способы буферизации данных, способы деления их на пакеты и восстановления целостности сообщений и др.
Эталонная модель OSI представлена в следующей таблице
Номер уровня | Название уровня | Название протокола | Примеры | Название единицы обмена |
---|---|---|---|---|
7 | Прикладной | Прикладной протокол | FTP, HTTP, SMTP | APDU, сообщение |
6 | Уровень представления | Протокол уровня представления | SSL | PPDU |
5 | Сеансовый | Сеансовый протокол | SPDU | |
4 | Транспортный | Транспортный протокол | TCP, UDP, SPX | TPDU |
3 | Сетевой | Сетевой | IP, IPX | Пакет |
2 | Канальный (передачи данных) | Протокол канального уровня | Кадр | |
1 | Физический | Протокол физического уровня | Бит |
Модель OSI не включает средства взаимодействия между собой приложений, расположенных на разных компьютерах сети, такие, как, например, DDE, OPC или CORBA, а описывает только средства, реализуемые операционной системой, системными утилитами и аппаратурой. Поэтому прикладной уровень нельзя путать с уровнем взаимодействия приложений, который в модель OSI не входит.
Если приложение обращается с запросом к прикладному уровню, то на основании этого запроса программное обеспечение прикладного уровня формирует сообщение, состоящее из заголовка и поля данных, и передает его вниз, на уровень представления. Протокол представительного уровня выполняет требуемые действия, содержащиеся в заголовке прикладного уровня и добавляет к сообщению свою служебную информацию - заголовок представительного уровня, в котором содержатся инструкции для соответствующего уровня получателя сообщения. Сформированное таким образом сообщение с уже двумя заголовками передается вниз сеансовому уровню, который также добавляет к нему свой заголовок. Таким образом, дойдя до физического уровня, сообщение обрастает семью заголовками, после чего оно передается по сети адресату. Когда сообщение достигнет адресата, оно проходит весь стек протоколов в обратном порядке, от физического уровня до прикладного. На каждом уровне выполняются соответствующие функции, содержащиеся в заголовке каждого уровня.
Большинство уровней модели OSI имеют смысл только в сетях с коммутацией пакетов (а не каналов). Тем не менее, отдельные ее уровни и термины используются практически во всех сетях. Сеансовый уровень и уровень представления на практике используются редко, а сетевой уровень и канальный - практически всегда и сильно перегружены.
Физический уровень. На физическом уровне (Physical layer) происходит передача данных по таким линиям связи, как витая пара, коаксиальный кабель, оптоволоконный кабель или радиоканал. Основная функция физического уровня - обеспечить прием логической единицы (а не нуля) на стороне получателя в том случае, если на стороне отправителя передана единица. На физическом уровне используются понятия: длительность импульса и паузы, длительности фронтов импульсов, количество проводов и цоколевки разъемов, помехозащищенность, волновое сопротивление, полоса пропускания, кодирование информации, синхронизация, модуляция, определение начала кадра, уровень логической единицы и логического нуля.
Канальный уровень. На физическом уровне не учитывается, что канал передачи может быть занят другими устройствами, подключенными к сети. Проверка доступности канала передачи осуществляется на канальном уровне (Data Link Layer). Канальный уровень разбивает передаваемые данные на кадры и выполняет функции обнаружения и коррекции ошибок с помощью контрольной суммы, помещаемой в начало или конец каждого кадра. Кадр считается полученным, если контрольная сумма, вычисленная на стороне получателя, совпадает с контрольной суммой, приписанной к переданному кадру. При обнаружении ошибки канальный уровень может выполнить повторную передачу поврежденного кадра. Функция исправления ошибок не является обязательным требованием стандарта. Канальный уровень условно говоря делят на два подуровня: управление логическим каналом (LLC, Logical Link Control) и управление доступом к среде (MAC, Media Access Control).
Сетевой уровень. Основное назначение сетевого уровня (Network Layer) - определение маршрутов пересылки пакетов от источника к приемнику сообщений. Маршруты могут быть жестко заданы или меняться динамически в зависимости от текущей загруженности сети. Сетевой уровень отвечает также за объединение нескольких разных сетей в единую транспортную систему, причем эти сети могут использовать различные принципы передачи сообщений, методы адресации и обладать произвольной структурой связей. Сетевой уровень вводит термин «маршрутизация» и IP – адрес.
Транспортный уровень. Транспортный уровень (Transport Layer) обеспечивает доставку сообщений с требуемым уровнем качества (надежности). В модели OSI выделяют на выбор пользователя пять классов сервиса, которые отличаются срочностью доставки сообщений, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, способностью к обнаружению и исправлению ошибок передачи (таких как искажение, потеря или дублирование пакетов). На транспортном уровне выполняется разбивка сообщений сеансового уровня на пакеты, их нумерация, буферизация принимаемых пакетов, упорядочивание прибывающих пакетов, управление потоками. Транспортный уровень обеспечивает передачу данных по сети зачастую используя протоколы TCP и UDP. Разница в том, что различный транспорт применяется для разной категории трафика: если трафик чувствителен к потерям, тогда используется протокол TCP (Transmission Control Protocol), так как он обеспечивает контроль за передачей данных, а если скорость передачи данных важнее точности, напимер в системах реального времени, тогда используется протокол UDP (User Datagram Protocol).
Сеансовый уровень. Сеансовый уровень (Session Layer) управляет диалогом (сеансом связи): отслеживает очередность передачи сообщений участниками сети; вставляет метки в длинные сообщения, чтобы в случае потери связи выполнит повторную передачу только утерянной части сообщения; устанавливает способ обмена (дуплексный или полудуплексный). Этот уровень редко используется на практике, а его функции часто объединяются с функциями прикладного уровня.
Уровень представления. Уровень представления (Presentation Layer) оперирует с формой представления передаваемой по сети информации, не изменяя ее содержания. На этом уровне может задаваться тип кодирования символов (например, ASCII или ANSI), может изменяться синтаксис передаваемых сообщений, задаваться тип шифрования и дешифрования данных для обеспечения их секретности. Примером такого протокола является Secure Socket Layer (SSL), обеспечивающий секретность сообщений для протокола TCP IP.
Прикладной уровень. Прикладной уровень (Application Layer) представляет собой набор популярных протоколов, с помощью которых осуществляется доступ к файлам (например, с помощью протокола FTP) или веб-страницам (с помощью HTTP), к электронной почте (SMTP).
Несмотря на то, что модель OSI является общепризнанным стандартом, в промышленных сетях часто используются только два или три уровня этой модели – даже сеть Ethernet не использует уровни 5 и 6. Тем не менее, методологически модель OSI очень актуальна и все сетевые стандарты начинают свое описание с указания соответствия между этой моделью и конкретным стандартом.