
- •Технические характеристики интерфейса rs-485
- •Общее описание протокола Modbus rtu
- •Адресация данных в протоколе Modbus rtu
- •Контроль ошибок в протоколе Modbus rtu
- •Rtu фрейм
- •Логические ошибки
- •Стандартные коды ошибок
- •Стандартные коды функций протокола Modbus
- •0X10 Preset Multiple Registers (Установка значений в несколько регистров)
- •0X03 Read Holding Registers (Чтение значений из нескольких регистров)
- •0X06 Preset Single Register (Установка значения в один регистр)
- •0X01 Read Coil Status (Чтение значений из нескольких регистров флагов)
- •0X0f Force Multiple Coils (Запись значений в несколько регистров флагов)
- •0X05 Force Single Coil (Запись значения в один флаг регистра флагов)
- •0X50 Set date and time (Установка даты и времени)
- •Ссылки на используемые в статье источники
- •Утилиты
- •Правильная разводка сетей rs-485
- •Что такое витая пара и почему она используется?
- •Волновое сопротивление витой пары
- •Число витых пар на каждый передатчик
- •Согласующие резисторы
- •Максимальное число передатчиков и приемников в сети
- •Примеры правильных сетей
- •Один передатчик, один приемник
- •Неправильное расположение терминатора
- •Составные кабели
- •Длинные ответвители
0X50 Set date and time (Установка даты и времени)
Ниже приведены примеры команда ведущего устройства (таблица 5-4) и ответ ведомого (таблица 5-5):
Направление передачи |
00 адрес подчиненного устройства |
01 номер функции |
02 Час [0..23] |
03 Минута [0..59] |
04 Секунды [0..59] |
05 День [1..31] |
06 Месяц [1..12] |
07 Год [0..99] |
08 Столетие [19-20] |
09 CRC мл. байт |
10 CRC ст. байт |
Master→Slave |
0x01 |
0x50 |
0x0A |
0x01 |
0x00 |
0x01 |
0x0A |
0x02 |
0x14 |
0x89 |
0x1C |
Таблица 5-4. Пример установки даты и времени |
;
Направление передачи |
00 адрес подчиненного устройства |
01 номер функции |
02 Час [0..23] |
03 Минута [0..59] |
04 Секунды [0..59] |
05 День [1..31] |
06 Месяц [1..12] |
07 Год [0..99] |
08 Столетие [19-20] |
09 CRC мл. байт |
10 CRC ст. байт |
Slave→Master |
0x01 |
0x50 |
0x0A |
0x01 |
0x00 |
0x01 |
0x0A |
0x02 |
0x14 |
0x89 |
0x1C |
Таблица 5-5. Ответ на команду установки даты и времени |
Ссылки на используемые в статье источники
-
Modbus-IDA некоммерческая организация, которая поддерживает данный протокол
-
Оригинальные спецификации протокола на английском языке
-
Modbus Specifications and Implementation Guides (ModBus TCP\IP)
-
Введение в Modbus протокол
-
Описание стандартного протокола ModBus на английском языке
-
Linux C Programming Examples
-
Как Modbus работает
-
Site for software developers which develop, test modbus protocol in drivers, devices, PLC etc.
-
FreeModbus ASCII/RTU и tcp для microcontrollers
Утилиты
-
Утилита опроса и записи данных по протоколу Modbus RTU/ASCII - некорректно формирует запросы по TCP/IP (не по Modbus TCP\IP Specifications and Implementation)
-
modpoll (Master) (win32, linux, solaris, qnx6 ) - Бесплатная консольная утилита опроса и записи данных по протоколу Modbus RTU/ASCII/TCP\IP; достаточно удобная, но код выхода программы (при правильных параметрах) всегда 0 (версия 2.4.0) даже если Slave вернул код ошибки на запрос (обещано исправить в след релизе).
-
PeakHMI MODBUS TCP/IP Slave simulator (Win GUI) - бесплатная и очень удобная утилита, симулятор ModBus TCP/IP Slave
-
Simply Modbus - Программа испытания Modbus (оч. глючная и неудобная)
Правильная разводка сетей rs-485
Цель настоящей статьи - предоставить базовые рекомендации по выбору схемы соединений для сетей на основе RS-485. Спецификация RS-485 (официальное название TIA/EIA-485-A) не дает конкретных пояснений по поводу того, как должна осуществляться разводка сетей RS-485. Однако она предоставляет некоторые рекомендации. Эти рекомендации и инженерная практика в области обработки звука положены в основу этой статьи. Однако представленные здесь советы ни в коем случае не охватывают всего разнообразия возможных вариантов построения сетей.
RS-485 передает цифровую информацию между многими объектами. Скорость передачи данных может достигать 10 Мбит/с, а иногда и превышать эту величину. RS-485 предназначен для передачи этой информации на значительные расстояния, и 1000 метров хорошо укладывается в его возможности. Расстояние и скорость передачи данных, с которыми RS-485 может успешно использоваться, зависят от многих моментов при разработке схемы межсоединений системы.
Кабель
RS-485 спроектирован как балансная система. Проще говоря, это означает, что, помимо земляного, имеется два провода, которые используются для передачи сигнала.
Рис. 1. Балансная система использует, помимо земляного, два провода для передачи данных.
Система называется балансной, потому что сигнал на одном проводе является идеально точной противоположностью сигнала на втором проводе. Другими словами, если один провод передает высокий уровень, другой провод будет передавать низкий уровень, и наоборот. См. Рис. 2.
Рис. 2. Сигналы на двух проводах балансной системы идеально противоположны.
Несмотря на то, что RS-485 может успешно осуществлять передачу с использованием различных типов передающей среды, он должен использоваться с проводкой, обычно называемой "витая пара".