Смекни!
smekni.com

Блок контроля дискретных сигналов MDI8 (стр. 3 из 4)

Простейшая сеть на основе RS-485 состоит из одного передатчика и одного приемника. Хотя это и полезно в ряде приложении, но RS-485 привносит большую гибкость, разрешая более одного приемника и передатчика на одной витой паре. Допустимый максимум зависит от того, насколько каждое из устройств загружает систему.

В идеальном мире, все приемники и неактивные передатчики будут иметь бесконечный импеданс и никогда не будут нагружать систему. В реальном мире, однако, так не бывает. Каждый приемник, подключенный к сети и все неактивные передатчики увеличивают нагрузку. Чтобы помочь разработчику сети на основе RS-485 выяснить, сколько устройств могут быть добавлены к сети, была создана гипотетическая единица, называемая «единичная нагрузка (unit load)». Все устройства, которые подключаются к сети RS-485, должны характеризоваться отношением множителей или долей единичной нагрузки. Два примера – MAX3485, который специфицирован как 1 единичная нагрузка, и MAX487, который специфицирован как 1/4 единичной нагрузки. Максимальное число единичных нагрузок на витой паре (принимая, что мы имеем дело с должным образом согласованным кабелем, имеющим волновое сопротивление 120 Ом или больше) – 32. Для приведенных выше примеров это означает, что в одну сеть могут быть включены до 32 устройств MAX3485 или до 128 MAX487.

Вооружившись приведенной выше информацией, мы готовы разработать некоторые сети на основе RS-485. Вот несколько простых примеров.

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

Рис. 6. Сеть RS-485 с одним передатчиком и одним приемником

На рисунке 7 представлена сеть с одним передатчиком и несколькими приемниками. Здесь важно, чтобы расстояния от витой пары до приемников были как можно короче.


Рис. 7. Сеть RS-485 с одним передатчиком и несколькими приемниками

На рисунке 8 представлена сеть с двумя приемопередатчиками.

Рис. 8. Сеть RS-485 с двумя приемопередатчиками

На рисунке 8 представлена сеть с несколькими приемопередатчиками. Как и в примере с одним передатчиком и несколькими приемниками, важно, чтобы расстояния от витой пары до приемников были как можно короче.

Рис. 9. Сеть RS-485 с несколькими приемопередатчиками


Ниже представлены примеры неправильно сконфигурированных систем. В каждом примере сравнивается форма сигнала, полученного от некорректно разработанной сети, с формой сигнала, полученного от должным образом разработанной системы. Форма сигнала измерялась дифференциально в точках A и B (A-B).

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

Рис. 10. Несогласованная сеть RS-485 (вверху) и ее итоговая форма сигнала (слева) по сравнению с сигналом, полученным на правильно согласованной сети (справа)

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


Рис. 11. Сеть RS-485 с неправильно размещенным согласующим резистором (верхний рисунок) и ее итоговая форма сигнала (слева) по сравнению с сигналом, полученным на правильно согласованной сети

На рисунке 12 имеется целый ряд проблем с организацией межсоединений. Первая проблема заключается в том, что драйверы RS-485 разработаны для управления только одной, правильным образом согласованной, витой парой. Здесь же каждый передатчик управляет четырьмя параллельными витыми парами. Это означает, что требуемые минимальные логические уровни не могут гарантироваться. В дополнение к тяжелой нагрузке, имеется рассогласование импедансов в точке, где соединяются несколько кабелей. Рассогласование импедансов в очередной раз означает отражения и, как следствие, искажение сигнала.

Рис. 12. Сеть RS-485, некорректно использующая несколько витых пар

На рисунке 13, кабель корректно согласован и передатчик нагружен только на одну витую пару; однако сегмент провода в точке подключения (ответвитель – stub) приемника чрезмерно длинный. Длинные ответвители вызывают значительное рассогласование импедансов и, таким образом, отражение сигнала. Все ответвители должны быть как можно короче.

Рис. 13. Сеть RS-485 использующая 3-метровый ответвитель (рисунок сверху) и ее итоговый сигнал (слева) по сравнению с сигналом, полученным с коротким ответвлением

2. Описание протокола MODBUSRTU

Стандартные MODBUS-порты в контроллерах MODICON используют RS-232C совместимый последовательный интерфейс. Контроллеры могут быть соединены на прямую или через модем.

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

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

Цикл запрос – ответ.

Запрос от главного Ответ подчиненного

Адрес устройства Адрес устройства

Код функции Код функции

8 – битные 8 – битные

байты данных байты данных

Контрольная сумма Контрольная сумма

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

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

В сетях MODBUS может быть использован один из двух способов передачи: ASCII или RTU. Пользователь выбирает необходимый режим вместе с другими параметрами (скорость передачи, режим паритета и т.д.) во время конфигурации каждого контроллера.

Формат каждого байта в RTU-режиме:

Система кодировки: 8-ми битовая двоичная, шестнадцатеричная 0–9, A-F

Две шестнадцатеричные цифры содержатся в каждом 8-ми битовом байте сообщения.

Назначение битов: 1 старт бит

8 бит данных, младшим значащим разрядом вперед 1 бит паритета; нет бита паритета

1 стоп бит если есть паритет; 2 бита если нет паритета

Контрольная сумма: Cyclical Redundancy Check (CRC)

В RTU режиме сообщение начинается с интервала тишины равного времени передачи 3.5 символов при данной скорости передачи в сети. Первым полем затем передается адрес устройства.

Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3.5 символов. Новое сообщение может начинаться после этого интервала.

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

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

Рисунок 3.1 – RTU-фрейм

Адресное поле фрейма содержит два символа (ASCII) или 8 бит (RTU). Допустимый адрес передачи находится в диапазоне 0 – 247. Каждому подчиненному устройству присваивается адрес в пределах от 1 до 247.

Адрес 0 используется для широковещательной передачи, его распознает каждое устройство. Когда MODBUS протокол используется на более высоком уровне сети, широковещательная передача может не поддерживаться или может быть реализована другими методами.