Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Канальный уровень



Рис. 2.31. Структура фрейма Ethernet. Общая длина 72 байта. Пакеты TCP/UDP и IP инкапсулированы в поле "Данные"

Канальный уровень модели OSI состоит из подуровня управления логическим соединением LLC (Logical Link Control) и подуровня доступа к физической линии передачи MAC (Media Access Control).

На рис. 2.31 представлена структура Ethernet-фрейма. Он начинается с преамбулы, которая представляет собой чередующиеся единицы и нули и указывает получателю, что начинается передача фрейма. Поле "Флаг начала" указывает получателю, что сразу по окончании этого поля начнется передача содержательной части фрейма. Адрес отправителя и получателя представляют собой MAC-адреса. Поле "Тип" указывает, какой тип протокола более высокого уровня (TCP/UDP и IP) инкапсулирован в поле данных. Поле CRC содержит значение циклического избыточного кода (CRC) для всего фрейма.

Поле данных содержит пакеты протокола более высокого уровня, например, TCP/UDP и IP, и данные. Это поле может также содержать протоколы прикладного уровня других промышленных сетей, образуя гибридные сетевые протоколы Modbus TCP (на основе Modbus RTU, от компании Schneider Electric), EtherNet/IP (на основе DeviceNet, разработан Rockwell Automation и ODVA), HSE (на основе Foundation Fielbus), ProfiNet (Profibus в Ethernet), Interbus-TCP/IP и другие (более 14 протоколов). В этих протоколах остаются следующие общие черты Ethernet:

o технология передачи данных на физическом уровне (Ethernet);

o метод доступа к сети CSMA/CD;

o IP протокол на 3-м уровне модели OSI;

o TCP и UDP протоколы на 4-м уровне модели OSI.

Modbus TCP

Протокол Modbus TCP [Modbus] (или Modbus TCP/IP) используется для того, чтобы подключить устройства с протоколом Modbus к Ethernet или Internet сети. Он использует кадры Modbus RTU на 7-м (прикладном) уровне модели OSI, протоколы Ethernet на 1-м и 2-м уровне модели OSI и TCP/IP на 3-м и 4-м уровне, т. е. Ethernet TCP/IP используется для транспортировки модифицированного кадра Modbus RTU.

Рис. 2.32. Часть фрейма Modbus TCP, встраиваемая в поле "Данные" фрейма Ethernet (рис. 2.31)

Кадр Modbus RTU (рис. 2.25) используется без поля контрольной суммы, поскольку используется стандартная контрольная сумма Ethernet TCP/IP. Не используется также поле адреса, поскольку в Ethernet используется иная систем адресации. Таким образом, только два поля: "Код функции" и "Данные" (блок PDU) встраиваются в протокол Ethernet TCP/IP. Перед ними вставляется новое поле - заголовок MBAP (ModBus Application Protocol- "прикладной протокол MobBus"), рис. 2.32.

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

Поле "Идентификатор протокола" содержит нули и зарезервировано для будущих применений. Поле "Длина" указывает количество следующих за ним байт.

Поле "Идентификатор устройства" идентифицирует удаленный сервер, расположенный вне сети Ethernet (например, в сети Modbus RTU, которая соединена с Ethernet с помощью межсетевого моста). Чаще всего это поле содержит нули или единицы, игнорируется сервером и отправляется обратно в том же виде (как эхо).

Рис. 2.33. Процесс передачи кадра Modbus RTU по уровням модели OSI через стек протоколов Ethernet TCP/IP в сетях с протоколом Modbus TCP

Изображенный на рис. 2.32фрейм называется фреймомADU (Application Data Unit), встраивается в поле "Данные" фрейма Ethernet (рис. 2.31) и посылается через TCP порт 502, специально зарезервированный для Modbus TCP (порты назначаются и контролируются организацией IANA(Internet Assigned Numbers Authority), www.iana.org). Клиенты и серверы Modbus посылают, получают и прослушивают сообщения через TCP порт 502.

Таким образом, структура кадра и смысл его полей "Код функции" и "Данные" для Modbus и Modbus TCP совершенно идентичны, поэтому для работы с Modbus TCP не требуется дополнительного обучения по сравнению с Modbus RTU. Те же самые коды функций и данные, что и в Modbus RTU, передаются по очереди с прикладного (7-го) уровня модели OSI (рис.2.33) на транспортный уровень, который добавляет к блоку PDU кадра Modbus RTU (рис. 2.25) заголовок с протоколом TCP. Далее новый полученный кадр передается на сетевой уровень, где в него добавляется заголовок IP, затем он передается на канальный уровень Ethernet и на физический. Дойдя до физического уровня, блок PDU оказывается "обросшим" заголовками протоколов всех уровней, через которые он прошел. Пройдя по линии связи, сообщение продвигается снизу вверх по стеку протоколов (уровням модели OSI) в устройстве получателя, где на каждом уровне из него удаляется соответствующий заголовок, а на прикладном уровне выделяется блок PDU (код функции и данные) кадра протокола Modbus RTU.

В сети c протоколом Modbus TCP устройства взаимодействуют по типу "клиент-сервер", где в качестве клиента выступает ведущее устройство, в качестве сервера - ведомое. Сервер не может инициировать связи в сети, но некоторые устройства в сети могут выполнять роль как клиента, так и сервера.

Modbus TCP не имеет широковещательного или многоабонентского режима, он осуществляет соединение только между двумя устройствами.

Profinet

Profinet (Profibus + Ethernet) является одним из современных стандартов (IEC 61158 и IEC 61784), который обеспечивает простую интеграцию устройств Profibus, ASI и Interbus c промышленным Ethernet. Протокол ProfiNet разработан Profibus International на базе Ethernet как совместимый с протоколом Profibus, поддерживаемым компанией Siemens.


*Брандмауэр - межсетевой экран для защиты от несанкционированного доступа. Другие названия: файервол, фильтр.

Протокол DCON

Протокол DCON, использованный в модулях фмрмы ICP DAS не относится к стандартным, однако очень широко распространен в России благодаря популярности модулей RealLab! серии NL фирмы НИЛ АП и усилиям фирм, продвигающих на Российский рынок изделия Тайваньских производителей ICP DAS и Advantech.

Этот протокол использует только физический и прикладной уровень модели OSI. На физическом уровне используется прямое двоичное кодирование, когда логический ноль представлен низким уровнем напряжения в шине RS-485, логическая единица - высоким уровнем. Требования к среде передачи (витая пара) определяются стандартом на интерфейс RS-485.

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

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

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

Рис. 2.34. Формат кадра протокола DCON

Кадры протокола DCON имеют структуру, показанную на рис. 2.34. Каждый кадр начинается с разделителя, в качестве которого могут быть использованы знаки: $, #, %, @, *, в ответах ведомого устройства используются символы ~,!,?, >.

За некоторыми командами следуют данные, но их может и не быть. Контрольная сумма, состоящая из двух символов, может отсутствовать. Каждый кадр должен оканчиваться символом возврата каретки cr (ASCII код 0Dh).

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

Вся информация, содержащаяся в кадре, включая адрес модуля и данные, передается в ASCII кодах.

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

Например, если нужно переслать ведомому устройству команду $012(cr), то сумма ASCII кодов символов команды (символ возврата каретки не считается) равна

“$”+”0”+”1”+”2” = 24h+30h+31h+32h=B7h, контрольная сумма равна B7h, т.е. перед символом (cr) в команде надо указать ”B7”, и команда $012(cr) будет выглядеть как $012B7(cr).

Если ответ модуля на эту команду без контрольной суммы получен в виде, например,!01400600(cr), то сумма ASCII кодов символов этой команды равна:

“!”+”0”+”1”+”4”+”0”+”0”+”6”+”0”+”0”=21h+30h+31h+34h+30h+30h+36h +30h +30h =1AСh, и контрольная сумма для этого случая равна ACh, т.е. ответ модуля при работе с контрольной суммой будет, например,!014006С0AC(cr), где предпоследний байт С0 означает, что установлен режим обмена с контрольной суммой.

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

Табл. 2.15. Примеры команд протокола DCON
Команда Ответ Описание
%AANNTTCCFF !AA Устанавливает адрес, диапазон входных напряжений, скорость обмена, формат данных, контрольную сумму
#AA >(Data) Возвращает все входные значения для заданного модуля
#AAN >(Data) Возвращает входное значение в канале номер N для модуля с заранее заданным адресом
$AA0 !AA Выполняет калибровку аналогового модуля для компенсации погрешности коэффициента передачи
$AA1 !AA Выполняет калибровку аналогового модуля для компенсации погрешности смещения нуля
$AA2 !AATTCCFF Возвращает параметры конфигурации модуля с указанным адресом
$AA8 !AAV Читает конфигурацию светодиодного индикатора
$AA8V !AA Устанавливает конфигурацию светодиодного индикатора

Команды протокола DCON делятся на 4 типа:

o команды модулей аналогового ввода;

o команды модулей аналогового вывода;

o команды дискретного ввода-вывода;

o команды счетчиков/таймеров.

Рассмотрим пример применения команды #AA (см. табл. 2.1) для получения данных из модуля аналогового ввода.

Синтаксис команды: #AA[CHK](cr), где AA - адрес модуля (от 00 до FF).

Ответ модуля на эту команду имеет вид >(Data)[CHK](cr), если команда выполнена. Здесь > - символ-разделитель при выполненной команде; (Data) - измеренные данные. Если имели место синтаксические ошибки или ошибки связи, то ответа нет.

Например, для опроса модуля с адресом 01 рассматриваемая команда примет вид #01(cr). Ответ на нее может выглядеть следующим образом:

>+1.2345+0.3456+0.0001+2.5000+1.2345+0.3456+0.0001+2.5000

В ответе представлены 8 значений напряжений на 8 входах модуля ввода.

Подробное описание команд протокола DCON можно найти на вебсайте НИЛ АП.





Дата публикования: 2015-11-01; Прочитано: 1366 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...