Содержание
Протокол Modbus: особенности, преимущества и недостатки
Modbus — это сетевой протокол прикладного уровня, широко используемый в промышленном производстве для обмена данными между устройствами (Machine-to-Machine, M2M).
С момента разработки в 1979 году он не теряет своей популярности. Согласно статистике HMS Industrial Networks в 2021 году Modbus занимает 10% мирового рынка промышленных сетей (по 5% приходится на Modbus RTU и Modbus TCP).
В статье расскажем об основных особенностях протокола Modbus, его преимуществах и недостатках, а также наиболее частых сценариях использования.
Базовые принципы работы Modbus
Modbus использует архитектуру Master-Slave, которая относительно недавно была переименована разработчиком в Client-Server. Согласно этому подходу в сети выделяется клиентское (ведущее) устройство, которое периодически отправляет запросы на серверные (ведомые) устройства с целью чтения или записи их параметров.
Все запросы может инициировать только клиентское устройство: передача сообщений от серверных устройств без предварительного опроса со стороны клиента в протоколе не предусмотрена.
Архитектура Client-Server (ранее Master-Slave), лежащая в основе протокола Modbus
Пакет данных Modbus включает в себя постоянную часть PDU (Protocol Data Unit), общую для всех реализаций протокола и состоящую из кода функции и данных. Кроме этого, возможен ряд специфических полей, которые будут различаться в зависимости от физического уровня сети — чаще всего это адрес серверного устройства и контрольная сумма для выявления ошибок. С учетом дополнительных полей полный пакет Modbus носит название ADU (Application Data Unit). Рассмотрим более подробно каждое поле пакета ADU в обобщенном виде. Особенности, присущие различным вариантам протокола, будут описаны в следующем разделе.
- Адрес серверного устройства (Additional address). Определяет, по какому адресу следует отправить клиентский запрос. Может принимать значения в диапазоне от 1 до 247. Адрес 0 используется для широковещательной передачи данных от клиента всем серверным устройствам (ответ сервера при этом не предусмотрен), а адреса 248–255 считаются зарезервированными.
В некоторых реализациях протокола поле игнорируется — например, в Modbus TCP, где чаще всего применяется стандартная IP-адресация.
- Код функции (Function code). Определяет, какое действие необходимо выполнить серверному устройству. Значения кодов функций лежат в диапазоне от 1 до 255, причем коды от 128 до 255 зарезервированы для сообщений об ошибках. Код 0 не используется.
Для кодов из диапазонов 65-72 и 100-110 пользователи могут реализовать собственные функции (User-Defined Function Codes). Некоторые коды, например 9, 10, 13 и другие, зарезервированы определенными поставщиками для своего оборудования и закрыты для общего использования (Reserved Function Codes). Не входящие в эти два подмножества коды относятся к публичным (Public Function Codes) — это задокументированные функции, находящиеся в открытом доступе.
- Данные (Data). Данные, необходимые для выполнения выбранной функции на серверном устройстве. Чаще всего это адреса регистров для чтения или записи, их количество и так далее. Длина и формат поля зависят от кода функции. Некоторые функции не требуют передачи данных.
- Контрольная сумма (Error check). Содержит рассчитанное при помощи специального алгоритма число для проверки целостности пакета. В качестве алгоритма для расчетов используется CRC-16 или LRC-8. В некоторых реализациях протокола поле отсутствует — например, в Modbus TCP, где контроль целостности пакета обеспечивается средствами протокола TCP/IP.
Структура пакета данных Modbus в обобщенном виде
Рассмотрим передачу пакетов в Modbus. Протокол обеспечивает клиент-серверное взаимодействие в режиме Request/Response. Клиент инициирует запрос в серверное устройство, передавая в PDU код функции и данные. В зависимости от физического уровня сети в пакете могут быть дополнительные поля, рассмотренные выше.
Если обработка запроса проходит без ошибок, то сервер возвращает пакет, содержащий исходный код функции и запрошенные данные.
Схема работы Modbus в случае отсутствия ошибок на серверном устройстве
При возникновении ошибки серверное устройство возвращает в качестве данных код исключения, а вместо исходного кода функции — его значение, увеличенное на 128 (0x80 в шестнадцатеричной системе HEX).
Также предусмотрены тайм-ауты на стороне клиента во избежание длительного ожидания ответа от вышедших из строя устройств.
Схема работы Modbus в случае ошибок на серверном устройстве
Разновидности Modbus: ASCII, TCP и RTU
Modbus — это протокол прикладного (седьмого) уровня модели OSI (Open Systems Interconnection model). Он не зависит от нижележащих уровней и может использоваться совместно с другими протоколами, например Ethernet TCP/IP или UDP/IP, а в качестве физической среды для передачи сигналов применять последовательные интерфейсы RS-232, RS-422, RS-485, оптоволокно, радиоканалы и другое.
Разновидности протокола Modbus
Опишем отличия наиболее известных реализаций протокола Modbus: RTU, ASCII и TCP.
Modbus RTU (Remote Terminal Unit). Это разновидность протокола, которая в качестве физического уровня сети чаще всего использует последовательный интерфейс RS-485, реже — RS-232 и RS-422. По сути, все эти интерфейсы определяют связь с помощью витых пар, но различаются характеристиками вида максимальной длины кабеля, количества узлов и так далее.
Формат пакета Modbus RTU в целом совпадает с обобщенной формой, описанной ранее: дополнительные поля не используются. Контроль целостности пакетов ведется с помощью алгоритма CRC-16.
Важная особенность Modbus RTU в том, что для разделения пакетов должны использоваться временные паузы продолжительностью не менее чем произведение 3,5*t, где t — время передачи одного байта в текущей сети. А передача байтов данных в пределах одного пакета производится последовательно с промежутком времени между соседними байтами не более 1,5*t, иначе передача будет считаться ложной. Эти правила не дают использовать Modbus RTU в медленных, например модемных, сетях.
Структура пакета данных в Modbus RTU
Modbus ASCII. Это разновидность протокола, также работающая поверх интерфейсов RS-232/RS-485, но для кодирования сообщений использующая ASCII-символы.
По сравнению с Modbus RTU в формате пакета добавляются еще два поля — специальные символы для отметки начала и конца сообщения: двоеточие и символы возврата каретки / перевода строки. Временные паузы между пакетами не нужны. Для проверки целостности применяется алгоритм LRC-8.
В целом этот вариант протокола сейчас используется крайне редко — из-за сложностей кодирования и большого размера сообщений. Однако он может стать хорошей альтернативой Modbus RTU на линиях с сетевыми задержками и оборудовании с менее точными таймерами.
Структура пакета данных в Modbus ASCII
Modbus TCP. Это реализация ModBus в сетях Ethernet. Работает поверх TCP/IP стека.
В отличие от Modbus RTU и ASCII, в Modbus TCP соединение устанавливается с конкретным устройством средствами TCP/IP. Поэтому адрес в пакете Modbus чаще всего игнорируется, а широковещательная рассылка сообщений не используется. Однако адрес может потребоваться, если соединение устанавливается со шлюзом, который, в свою очередь, выводит на сеть RS485 — чтобы далее общаться с устройствами уже на языке Modbus.
Контроль целостности пакетов также обеспечивается средствами протокола TCP/IP, поэтому нет необходимости в его Modbus-реализации.
Наряду с адресом в заголовке пакета Modbus TCP присутствует ряд дополнительных полей:
-
ID транзакции (или ID обмена)
Чаще всего заполняется нулями. Необходим для случаев, когда клиентское устройство отправляет несколько сообщений, не дожидаясь ответа на предыдущие, чтобы затем связать ответы с запросами.
-
ID протокола
Всегда заполняется нулями, зарезервирован для будущего использования.
-
Длина остатка пакета
Длина оставшейся части пакета: адреса и PDU (кода функции и данных).
Структура пакета данных в Modbus TCP
Мы рассмотрели только открытые и самые распространенные реализации протокола Modbus. Но их гораздо больше, например MODBUS Plus — проприетарный протокол от Schneider Electric, поддерживающий режим Multi-Master.
Регистры и функции Modbus
Так как Modbus предназначен для работы с промышленной автоматикой, обмен данными с Modbus-устройствами происходит через регистры. Они делятся на входы и выходы. Входы можно только читать, а выходы — читать и писать. Бывают 1-битные регистры Modbus для описания дискретных входов/выходов (Discrete Inputs и Coils) и 16-битные регистры для аналоговых входов/выходов (Input Registers и Holding Registers).
Доступ к регистрам осуществляется с помощью 16-битного адреса. Первому элементу в каждой группе регистров соответствует адрес 0. То есть адрес любого регистра может принимать значения из диапазона 0-65535 (0x0000-0xFFFF в HEX-формате). При этом спецификация протокола не определяет, что физически из себя представляют адресные пространства и по каким внутренним адресам устройства должны быть доступны регистры. В общем случае значения регистров с одинаковым адресом, но разными типами отличаются друг от друга.
Примечание
В документации ряда производителей на некоторые, особенно старые устройства адреса регистров могут быть указаны в других форматах — где адресация начинается не с нуля и первая цифра адреса определяет тип регистра. Например, Input Register с адресом 0 может быть описан как 30001, а Holding Register — как 40001. В таких случаях в пакетах данных следует передавать адреса в стандартном формате Modbus независимо от способа представления их в документации. Для получения верного адреса достаточно вычесть смещение, соответствующее типу регистра. В некоторые программные пакеты заложена автоматическая корректировка адресов.
Тип регистров | Назначение | Размер | Доступ | Стандартный адрес | Примеры нестандартных адресов |
Coils | Регистры флагов, обозначающие текущее состояние выхода устройства. Например, при включенном реле значение 1. | 1 бит | Чтение и запись (выход) | 0-65535 (0x0000-0xFFFF в HEX-формате) |
00001-09999 или 000001-065536 |
Discrete Inputs | Дискретные входы, описывающие состояние входа устройства. Например, при поданном напряжении значение 1. | 1 бит | Чтение (вход) | 0-65535 (0x0000-0xFFFF в HEX-формате) |
10001-19999 или 100001-165536 |
Input Registers | Регистры ввода, предназначенные для чтения настроек (например, текущего значения температуры). | 16 битов | Чтение (вход) | 0-65535 (0x0000-0xFFFF в HEX-формате) |
30001-39999 или 300001-365536 |
Holding Registers | Регистры, предназначенные для хранения настроек с возможностью их чтения и записи. | 16 битов | Чтение и запись (выход) | 0-65535 (0x0000-0xFFFF в HEX-формате) |
40001-49999 или 400001-465536 |
Для работы с каждым типом регистров определены функции чтения и записи. Наиболее часто используемые функции описаны ниже.
Код |
HEX-код для PDU |
Название функции | Тип данных | Назначение |
1 | 0x01 | Read Coils | Coils | Чтение значений нескольких регистров флагов |
2 | 0x02 | Read Discrete Inputs | Discrete Inputs | Чтение значений нескольких дискретных входов |
3 | 0x03 | Read Holding Registers | Holding Registers | Чтение значений нескольких регистров хранения |
4 | 0x04 | Read Input Registers | Input Registers | Чтение значений нескольких регистров ввода |
5 | 0x05 | Write Single Coil | Coils | Запись одного регистра флагов |
6 | 0x06 | Write Single Register | Holding Registers | Запись одного регистра хранения |
15 | 0x0F | Write Multiple Coils | Coils | Запись нескольких регистров флагов |
16 | 0x10 | Write Multiple Register | Holding Registers | Запись нескольких регистров хранения |
Для каждой функции в спецификации протокола Modbus определена структура PDU: какие данные и в каком порядке должны использоваться в запросах и ответах. Рассмотрим формирование пакетов Modbus RTU на примере функции Read Coils с кодом 1. Эта функция, кроме передачи собственного кода, требует наличия в запросе адреса первого Coil-регистра и количества регистров, которые необходимо прочитать. В случае успешного выполнения запроса в ответе будут возвращены код функции, число байт, необходимое для вывода запрошенных Coil-регистров, и статус всех этих регистров.
Предположим, нам нужно обратиться к серверному устройству с адресом 1 и прочитать 19 его Coil-регистров с номерами 20–38. Адресация регистров ведется с 0, поэтому адрес первого нужного нам регистра будет 0x13 (это 19 в HEX-системе). Требуемое для чтения количество регистров также будет равно 0x13 (для чтения запрошено 19). В качестве адреса и кода функции указываем 01. Контрольная сумма формируется по алгоритму CRC-16 на основе других полей пакета.
В случае отсутствия ошибок в ответе вернутся без изменений адрес серверного устройства и код функции. Для расчета числа байтов, которые потребуются для возврата состояния регистров, нужно разделить запрошенное количество регистров на 8 и к результату прибавить 1, если остаток от деления не равен 0. В нашем случае результат деления 19 на 8 равен 2, но остаток положительный — поэтому для вывода регистров потребуется 2+1=3 байта. Это значение будет указано в ответе после кода функции. И далее будут следовать 3 байта, описывающие состояние выбранных регистров. Например, первый байт будет описывать состояние 8 Coil-регистров с номерами 27-20. Если в поле, к примеру, содержится HEX-значение CD — статус соответствующих 8 регистров такой: 1100 1101.
Пример успешного выполнения функции Read Coils
Если в процессе обработки запроса на серверном устройстве возникнет ошибка (например, обнаружен несуществующий адрес регистра), то в ответе будет содержаться измененный код функции, равный исходному коду плюс смещение 0x80 — в нашем примере 0x81, и код исключения — в нашем примере 03, что значит неверный формат запроса. С полным перечнем возможных исключений можно ознакомиться в документации.
Пример возврата исключения для функции Read Coils
Преимущества и недостатки Modbus
К преимуществам Modbus относятся:
-
Простота реализации, диагностики и отладки
Использование стандартных интерфейсов (RS-232/RS-485 и Ethernet) делает Modbus удобным как для разработчиков, так и для пользователей оборудования. При разработке контроллеров и устройств не нужно устанавливать заказные микросхемы для реализации протокола, в отличие от конкурентов-аналогов Profibus и CAN.
-
Высокая скорость внедрения
Для развертывания первого Modbus-решения нужно всего пара дней, тогда как некоторые протоколы требуют месяцев на подготовку.
-
Нетребовательность к ресурсам
Разработанный в эпоху 8-битных процессоров, Modbus не предъявляет высоких требований к CPU и RAM. Для начала работы требуется минимум оборудования, и разработка проста в любой операционной системе.
-
Высокая надежность и достоверность при передаче данных
Поддержка CRC и LRC позволяет определять ошибки в передаче данных с высокой точностью.
-
Универсальность и открытость
Практически все промышленные АСУ ТП имеют программные драйверы для работы с Modbus-сетями. Благодаря этому Modbus принято считать стандартом де-факто в интеграции мультивендорного оборудования. Протокол реализован сотнями поставщиков на множестве различных датчиков и исполнительных устройств для передачи дискретной и аналоговой информации. Благодаря единому протоколу устройства от различных производителей могут без труда общаться друг с другом.
Разумеется, у использования протокола есть и недостатки:
-
Отсутствие встроенной аутентификации и шифрования передаваемых данных
Поэтому при использовании протокола Modbus TCP необходимо настраивать дополнительные VPN-тоннели. Относительно недавно для Modbus TCP было разработано расширение Modbus Security (с поддержкой TLS), но оно пока не получило широкого распространения.
-
Отсутствие начальной инициализации системы
Назначать сетевые адреса и настраивать параметры каждого конкретного устройства требуется вручную. Некоторые производители разрабатывают шаблоны для своих Modbus-устройств, но это не упрощает их взаимодействие с контроллерами и ПО других производителей.
-
Спецификации для ограниченного набора типов данных
В протоколе определен метод передачи только для битов и 16-битных регистров. С другими типами данных (строки, числа с плавающей запятой и так далее) различные производители Modbus-решений поступали по собственному усмотрению. По этой причине впоследствии невозможно было внести дополнения в протокол, так как это могло привести к проблемам из-за уже существующего несовпадения форматов.
-
Недостатки Master-Slave-взаимодействия
Модель «ведущий — ведомый», изначально положенная в основу протокола, предполагает обмен данными только по инициативе клиентского (ведущего) устройства, которое по очереди опрашивает все серверные (ведомые). Из-за этого возникают следующие ограничения:
- У серверных устройств нет возможности отправить оперативную информацию клиенту (например, сигнал прерывания): нужно ждать своей очереди в опросе.
- Серверные устройства не способны обнаружить потерю связи с клиентом.
- Серверные устройства не могут обмениваться данными друг с другом без участия клиента.
-
Отсутствие поддержки режима Multi-Master для интерфейсов RS-232/RS-485
Другие протоколы, основанные на этих же интерфейсах, поддерживают работу с несколькими ведущими устройствами (например, CAN и Profibus).
Однако стоит отметить, что именно описанные выше недостатки обеспечивают простоту использования протокола и высокую скорость его промышленного внедрения. В какой-то степени отсутствие «лишнего» функционала в Modbus и есть его главное достоинство.
Где используется Modbus
Чаще всего Modbus применяется для передачи сигналов от контрольно-измерительных приборов к главному контроллеру или системе сбора данных. Основные сценарии использования Modbus:
- Клиент-серверные приложения для мониторинга и программирования устройств (в том числе дистанционного) в промышленности, строительстве, инфраструктуре, транспорте, энергетике. Примеры: мониторинг энергопотребления, контроль производственных процессов, надзор за ходом строительства и так далее.
- Передача данных от датчиков и приборов интеллектуальным устройствам в интернете вещей (Internet of Things, IoT).
- Связь диспетчерских компьютеров с удаленными терминалами в SCADA-системах.
- Приложения, где требуется беспроводная связь, например в газовой и нефтяной промышленности.
Несмотря на свой возраст, Modbus активно используется и с современными технологиями — например, он отлично чувствует себя в облаке. Многие провайдеры предлагают возможность создания облачных IoT-платформ — для снижения затрат на разработку IoT-сервисов, обеспечения сбора данных и управления устройствами в real-time-режиме. И поддержка Modbus — обязательный пункт для подобных решений, так как невозможно построить межмашинное взаимодействие без протокола, реализованного множеством поставщиков на тысячах различных устройств.
Такая сочетаемость с современными трендами лишний раз показывает, что за прошедшие годы Modbus не только не утратил своей популярности, но и до сих пор остается одним из самых востребованных протоколов в промышленной производственной среде.
АКЭЛ
Внимание! Страница может отображаться некорректно! Включите JavaScript в вашем браузере для адекватной роботы
- Главная
- Продукция АКЭЛ
- Цифровой измерительный прибор MAC-AKEL
MAC-AKEL
ОСОБЕННОСТИ СЕРИИ
- MAC-AKEL — это цифровой интегрированный прибор для измерения и отображения параметров электрических сетей (3-х фазное напряжение/ток, электрическая мощность, электроэнергия, коэффициент мощности, частота, потребляемый ток, предельные значения и т.д.).
- Используется в распределительных устройствах в схемах подключения сети: 1 фаза два провода, 1 фаза три провода, 3 фазы три провода А, 3 фазы три провода Y, 3 фазы четыре провода.
- Высокая точность измерений. Гарантируется высокая точность измерений даже при скачках показателей частоты, 0.3% (от показания) при номинальном напряжении 10–452 В, 0.3% (от диапазона) при значения тока от 0.05–6 А (ТТ 5 А), 0.01–1.2 А (ТТ 1 A) и класс точности 0.5 по стандарту IEC 1036 для электроэнергетики
- Широкий диапазон напряжений при работе с трансформатором напряжения (AC 380 В). Легко устанавливаются в сетях АС 10–380 В + 120% (АС1 0–452В). Также прибор может устанавливаться напрямую без дополнительного трансформатора напряжения
- Различные параметры измерений. У прибора есть 3 информационных дисплея, 13 показателей для нерасширяемого типа и 40 показателей для расширяемого типа
- Компактные внешние размеры и размеры выреза в передней панели щита. Внешние размеры 144(Ш) х 144(В) х 85(Г) мм и размеры выреза в шкафу в соответствии со стандартам DIN 96 или ANSI 4
- Протокол связи RS485/RS422 MODBUS. Поддерживаемые протоколы связи RS485/RS422 MODBUS RTU
- Различные параметры цепей измерения. Доступны различные типы напряжения цепей измерения в диапазоне AC/DC 88–264 В
- Проверка правильности соединения. При неправильном соединении трансформатора напряжения отображается ошибка на экране, как при нарушении фазировки (функция доступна только для З фаз четыре провода и 3 фаз три провода Y, типов соединений)
- Автоматическое пролистывание данных на экране. При одновременном нажатии клавиш [DOWN] и [ENTER] данные на экранах будут пролистываться с интервалом 10 секунд
Каталог по измерительным приборам MAС-AKEL
Заказать просчет
Заказать 3D модель
Телеизмерение | |||||
Тип подключения сети | 1 фаза два провода/1 фаза три провода/3 фазы три провода Д/3 фазы три провода Y/3 фазы четыре провода | ||||
Измеряемое напряжение (В) | 10-425, Напряжение между фазами Va, Vb, Vc, Vn | ||||
Измеряемый ток (А) | 0. 05-6 (ТТ 5A), 0.01-1.2 (ТТ 1А) | ||||
ТТ номинальный ток (А) | 1/5 | ||||
Частота (Гц) | 50/60 | ||||
Мощность ТН иТТ (ВА) | менее 0.5 | ||||
Напряжение питания (В) | AC/DC 88-264 | ||||
Мощность потребления от цепи питания (Вт) | менее 2 | ||||
Интерфейсы связи | Modbus/RS422/RS485/l-Net | ||||
Условия эксплуатации | |||||
Рабочий диапазон температур (вС) | От минус 10 до плюс 55 | ||||
Температурный диапазон хранения (”С) | От минус 25 до плюс 75 | ||||
Монтаж | В щит | ||||
Сечение проводов (ммЛ2) | 2,5 | ||||
Влажность (%) | Менее 80 (с условием отсутствия конденсата) | ||||
Высота над уровнем моря (м) | менее 2000 | ||||
Габаритные размеры (мм) (ШхВхГ) | 144x144x85 | ||||
Масса (кг) | 0,52 | ||||
Высота знака единичного индикатора (мм) | 18 | ||||
Измеряемые и вычисляемые параметры | Основная погрешность | Обозначение | Измеряемые параметры | ||
Нерасширяемый тип | Расширяемый тип | ||||
Напряжение | Действующее значение фазного напряжения | 0,003 | Ua, Ub, Uc | + | + |
Среднее действующее значение фазного напряжения | 0,003 | Uavg | + | + | |
Действующее значение междуфазного напряжения | 0,003 | Vab, Vbc, Vca | + | + | |
Ток | Действующее значение фазного тока | 0,3% | la, lb, Ic | + | + |
Среднее действующее значение фазного тока | 0,3% | lavg | + | + | |
Мощность | Активная мощность фазы нагрузки | 0,5% | Pa, Pb, Pc | + | — |
Суммарная активная мощность | 0,5% | P | + | + | |
Реактивная мощность фазы нагрузки | 0,5% | Qa, Ob, Qc | + | — | |
Суммарная реактивная мощность | 0,5% | Q | + | + | |
Полная мощность фазы нагрузки | 0,5% | Sa, Sb, Sc | + | — | |
Суммарная полная мощность | 0,5% | S | + | + | |
Коэффициент мощности | Коэффициент мощности в каждой фазе | Cos фа, Cos фЬ, Cos фс | + | — | |
Общий коэффициент мощности | Cos ф | + | + | ||
Частота | Частота сети | 0. 05 Гц | F | + | + |
Электрическая энергия | Активная электрическая энергия | 0,5% | WH | + | + |
Реактивная электрическая энергия | 0,5% | VARH | + | + | |
Реверс активной электрической энергии | 0,5% | rWH | + | — | |
Реверс реактивной электрической энергии | 0,5% | rVARH | + | — | |
Полная энергия | 0,5% | VAH | + | + | |
Коэффициент нелинейных искажений | КНИ напряжения | THD Va(ab), Vb(bc), Vc(ca) | + | — | |
КНИ тока | THD la, lb, Ic | — | + | ||
Гармоники | Гармоники напряжения | 1-15 гармоники Va(ab), Vb(bc), Vc(ca) | + | — | |
Гармоники тока | 1-15 гармоники la, lb, Ic | + | — |
Запросы по продукции MAС-AKEL отправляйте на e-mail: ak-el@ak-el. ru.
RS485 — Возможные проблемы с полярностью RS485
RS485 — это стандарт электрической связи, используемый Modbus RTU, BACnet MS/TP и многими другими протоколами автоматизации зданий. В этой статье рассматриваются вопросы, связанные с полярностью дифференциальной балансной линии RS485. Дифференциальная симметричная линия состоит из двух проводов (отрицательного и положительного). Двоичный ‘1’ обозначается
в
напряжение на положительном проводе больше, чем на отрицательном. Двоичный «0» обозначается положительным
проволока
напряжение меньше отрицательного провода. Ожидается, что разница в напряжениях будет не менее 0,2 В.
по стандарту RS485, хотя не все устройства этому соответствуют. Если разница между
положительный и отрицательный провода менее 0,2 В, то шина простаивает.
В+ В > 0,2 В : 1
В В+ > 0,2 В : 0
0,2 В
Четырехпроводный интерфейс RS485 имеет две дифференциальные симметричные линии. Двухпроводной RS485 использует одну дифференциальную симметричную линию.
Этикетки полярности RS485 различаются у разных производителей. В соответствии со стандартом RS485 две клеммы: A
для отрицательного и B для положительного.
Вместо этого большинство производителей будут использовать + и — или некоторые вариации, такие как D+, D . Некоторые производители маркируют
входы как A и B, но с обратной полярностью, поэтому A положительный. Важно прочитать руководство, а не предполагать, что производитель следует стандарту.
RS485 имеет репутацию нечувствительного к полярности, потому что в нормальных условиях большинство устройств автоматически определяет, какой провод в дифференциальной симметричной линии положительный, а какой отрицательный. Это связано с тем, что в состоянии покоя положительный провод должен иметь немного более высокое напряжение, чем отрицательный провод. А
типичное сообщение RS485 с указанием полярности положительного и отрицательного проводов в состоянии ожидания — красный крестик,
[ИКС]. С помощью мультиметра можно проверить, находится ли положительный провод выше отрицательного на холостом ходу.
Положительный провод имеет более высокое напряжение, чем отрицательный провод в состоянии ожидания, поскольку в дифференциальных линиях RS485 используются согласующие резисторы. Линия простаивает, когда никакие устройства не отправляют данные, что означает, что все устройства переключили свои выходы на высокий импеданс. В этом состоянии уровни напряжения проводов в основном задаются согласующими резисторами. На рис. 2 показан примерный набор согласующих резисторов RS485 и напряжение, которое они создают.
на проводах во время простоя.
Возможные проблемы с автоматическим определением полярности:
- Нагрузочные резисторы настроены неправильно.
- Электрический шум влияет на уровни напряжения в состоянии простоя.
- Заземление согласующих резисторов не соответствует заземлению устройств.
- Напряжение Vcc, подключенное к согласующим резисторам, не соответствует Vcc устройств.
- Устройство RS485 не поддерживает определение полярности. (это очень редко).
Как избежать проблем с полярностью:
- Подключите положительный и отрицательный провода к устройству, как указано в руководстве.
- Убедитесь, что согласующие резисторы подходят.
- Проложите общий провод (провод заземления) ко всем устройствам и согласующим резисторам.
- Проверьте с помощью мультиметра, какой из проводов положительный, в состоянии простоя. Не думайте, что окраска проводов правильная.
Отзывы
Посмотреть больше отзывов…
Загрузка формы обратной связи. Если форма не загружается, воспользуйтесь онлайн-чатом, чтобы связаться с нами.
связь — 485 рупий A и B Этикетки используются непоследовательно
спросил
Изменено
1 год, 6 месяцев назад
Просмотрено
1к раз
\$\начало группы\$
Я хотел бы знать, существует ли официальный стандарт в отношении терминалов RS-485 с маркировкой A и B .
Я всегда считал:
A => + (положительный)
и
B => — (отрицательный)
однако, я недавно работал с WEG и Danfos VSD, и они, похоже, имеют A(-) отрицательный и B(+) положительный.
Существует ли официальный стандарт или он неправильно используется во всем мире в зависимости от каждого продукта и/или торговой марки?
- связь
- RS485
- протокол
- стандарт
- Modbus
\$\конечная группа\$
\$\начало группы\$
Стандарт RS-485 определяет линию A как отрицательную, а линию B как положительную, как видно отсюда:
Дифференциальная линия RS-485 состоит из двух сигналов:
- А, низкий уровень для логической 1 и высокий для логического 0 и,
- B, высокий уровень для логической 1 и низкий для логического 0.
Производители часто не следуют этому соглашению и маркируют линии в обратном порядке: A — положительный, B — отрицательный. Некоторые из них даже используют другое соглашение, такое как D+ и D-.
Всегда полезно проверить руководство по эксплуатации оборудования.
\$\конечная группа\$
\$\начало группы\$
Нижеследующее взято из версии 1994 года TIA-EIA-422-B, которая определяет различные параметры для RS-422.
Обратите внимание, что 1==знак => Va Хотя у меня нет определяющего документа для RS-485, я полагаю, что поскольку RS-485 произошел от ‘422, официальные определения для Va и Vb будут одинаковыми. Остается только гадать, все ли производители устройств RS-485 следуют этому стандарту. Добавлен контрпример ниже И тут, порывшись в своих файлах, я наткнулся на техпаспорт драйвера National Semiconductor DS26LV31T RS-422. В этой таблице данных показано, что выход DO+ следует за входом, а выход DO- инвертируется относительно входа.
\$\конечная группа\$
\$\начало группы\$
Стандарт TIA-485 гласит:
Клемма A генератора должна быть отрицательной по отношению к клемме B для состояния двоичной 1 (ВЫКЛ. )
и
Клемма А генератора должна быть положительной по отношению к клемме В для состояния двоичного 0 (ВКЛ)
Вот и все. A+ или A- или любая другая маркировка в стандарте не описывается. Интерпретация вышеизложенного неочевидна (по крайней мере, я нахожу противоречивым; двоичный 0 равен включен? ), так что, вероятно, это является причиной того, что большинство производителей приемопередатчиков остановились на терминологии, которая, как можно было бы утверждать, противоречит стандарту.
Пока мы на нем; в стандарте нет:
- Определяют фактическую логическую работу приемопередатчиков.
- Определите любое смещение сети
автобус? - Упоминается только отказоустойчивость, но не затрагивается тема реализации, т.к.
это «специфическое приложение» (в результате каждый трансивер
производитель придумал свои идеи — может, а может и нет
быть совместимыми друг с другом) (хотя в наши дни это лучше. Современные
приемопередатчики чертовски хороши, но ~ 15 лет назад это было болезненно. И: кое-что из этой чепухи до сих пор остается плохой практикой)
Однако; Как кто-то может создать функционирующую сеть R485 на основе стандарта, который едва охватывает самое необходимое, для меня загадка. (Забавный факт: они этого не делают. Вы когда-нибудь пытались построить сеть с устройствами от разных производителей? Это кошмар.) Я видел много сумасшедших вещей, основанных на некоторых идеях умного инженера, заново изобретающего колесо. Это может быть умно и может сработать, но если заменить USB-конвертер, вся сеть рухнет. RS485 может быть замечательным, но стандарт слишком расплывчат в своей реализации, чтобы гарантировать совместимость. Но: Если вы контролируете все узлы в сети, RS485 может быть чертовски хорош.
Наконец, можно надеяться, что руководство по внедрению TSB-89 разъяснит эту терминологию… но нет. Но он предлагает больше информации о реализации, которая, как я подозреваю, была проигнорирована или проигнорирована некоторыми крупными брендами, создающими устройства RS485.
Добавить комментарий