Общие сведения
Интерфейсы связи работают
по протоколам Modbus-RTU (Master/Slave) или Modbus-ASCII (Master/Slave).
Для организации обмена данными в сети через интерфейс связи необходим
Мастер сети – устройство в режиме Master. Основная функция Мастера
сети – инициировать обмен данными.
На линии связи допускается
наличие только одного устройства в режиме Master.
Примечание Приборы ПР110 и ПР114 могут работать только в режиме Slave, если
к ним подключен модуль ПР-МИ485.
Особенности работы в режиме Master
Если
прибор работает в режиме Master, то для минимизации времени получения
данных со всех устройств рекомендуется:
если одно или несколько Slave-устройств не подключены или недоступны,
то рекомендуется предусмотреть в программе блокировку опроса этих
устройств или сократить до минимума параметр «Таймаут ответа» для
этих устройств. В противном случае время опроса будет расти пропорционально
количеству неподключенных устройств и величине установленного параметра
«Таймаут ответа» для этих устройств;
во время установки параметра «Интервал между запросами» следует
учитывать количество Slave-устройств и общее количество запросов.
Если время обработки всех запросов занимает больше времени, чем установлено
параметром «Интервал между запросами», то данный параметр будет игнорироваться.
OWEN Logic допускает запрограммировать
опрос до 16 устройств по одному интерфейсу связи. Каждое устройство
поддерживает до 256 переменных. Допускается использование одинаковых
адресов и имен переменных для каждого устройства.
Количество интерфейсов связи
Количество
интерфейсов связи прибора зависит от количество слотов подключения.
Если прибор поддерживает работу до двух интерфейсов связи, то их можно
настроить на работу в двух независимых сетях.
Особенности настройки приборов с платой ПР-ИП485
Если прибор с установленной платой ПР-ИП485 настроен на работу
в режиме Master, то рекомендуется подключить подтягивающие резисторы
линий связи А и В с помощью установки перемычек на плате ПР-ИП485.
Для режима Slave рекомендуется отключение подтягивающих резисторов.
Подтягивающие резисторы устанавливаются для задания определенного
состояния линий связи, когда в сети нет передачи. Резисторы устанавливаются
в одном месте сети, как правило, возле прибора в режиме Master.
Стандартные коды ошибок Modbus
01 — принятый код функции не может быть обработан;
02 — адрес данных, указанный в запросе, недоступен;
03 — значение в поле данных запроса, является недопустимой
величиной.
Функции и области данных
При запросе Master
обращается к одной из областей памяти Slave с помощью функции. Область памяти характеризуется типом хранящихся в ней значений
(биты/регистры) и типом доступа (только чтение/чтение и запись).
Области данных протокола Modbus
Область данных | Обозначение | Тип данных | Тип доступа |
---|
Coils (Регистры
флагов) | 0x | Булевый | Чтение/запись |
Discrete
Inputs (Дискретные входы) | 1x | Булевый | Только чтение |
Input Registers
(Регистры ввода) | 3x | Целочисленный | Только чтение |
Holding
Registers (Регистры хранения) | 4x | Целочисленный | Чтение/запись |
Каждая область памяти состоит из определенного (зависящего
от конкретного устройства) количества ячеек. Каждая ячейка имеет уникальный
адрес. Для конфигурируемых устройств производитель предоставляет карту регистров, в которой содержится информация о соответствии
параметров устройства и их адресов. Для программируемых устройств
пользователь формирует такую карту самостоятельно с помощью среды
программирования. Существуют устройства, в которых сочетаются оба
рассмотренных случая – у их карты регистров есть фиксированная часть
и часть, которую пользователь может дополнить в соответствии со своей
задачей .
В некоторых устройствах области памяти наложены друг
на друга (например, 0x и 4x) – т. е. пользователь сможет
обращаться разными функциями к одним и тем же регистрам.
Функция определяет операцию (чтение/запись) и область памяти,
с которой эта операция будет произведена.
Основные функции протокола Modbus
Код функции | Имя функции | Выполняемая
команда |
---|
1 (0x01) | Read Coil Status | Чтение значений
из нескольких регистров флагов |
2 (0x02) | Read Discrete Inputs | Чтение значений
из нескольких дискретных входов |
3 (0x03) | Read Holding Registers | Чтение значений
из нескольких регистров хранения |
4 (0x04) | Read Input Registers | Чтение значений
из нескольких регистров ввода |
5 (0x05) | Force Single Coil | Запись значения
в один регистр флага |
6 (0x06) | Preset Single Register | Запись значения
в один регистр хранения |
15 (0x0F) | Force Multiple Coils | Запись значений
в несколько регистров флагов |
16 (0x10) | Preset Multiple Registers | Запись значений
в несколько регистров хранения |
В различных документах идентичные обозначения могут иметь
разный смысл в зависимости от контекста. Например, префикс 0x часто используют как указание на шестнадцатеричную систему счисления,
поэтому в одном случае 0x30 может обозначать «30-й бит области
памяти coils», а в другом – «адрес 30 в шестнадцатеричной (HEX)
системе счисления» (при этом данный адрес может относиться к любой
области памяти).
Опрос Slave может быть одиночным или групповым. При одиночном опросе Master считывает каждый
из параметров Slave отдельной командой.
При групповом опросе Master считывает одной командой сразу несколько параметров, чьи
адреса в карте регистров расположены строго последовательно и не имеют
разрывов. Групповой опрос позволяет уменьшить трафик в сети и время,
затрачиваемое на опрос устройства, но в некоторых случаях его применение
невозможно (или возможно с ограничениями) из-за индивидуальных особенностей
прибора.
Время опроса и тайм-аут ответа
При корректно
заданных параметрах, регистры опрашиваются с заданным интервалом.
Если указан меньший период опроса, чем общее время обмена, то корректный
обмен по интерфейсу будет нарушен.
Если время тайм-аута ответа
от Slave настроено меньше возможного, то ответ устройства Slave бракуется.
Следующий запрос заканчивается неудачей и данные по интерфейсу не
поступают в регистры Master.
Порядок регистров и порядок байт
Порядок
следования регистров/байт важен при считывании системных переменных
формата FLOAT (аналоговые входы/выходы) прибора в режиме Slave.
Переменные OWEN Logic при работе
по Modbus имеют следующие особенности:
целочисленный тип (uint) — занимает один регистр, настройка
следования регистров/бит не влияет на данный тип;
булевский тип (bool) — занимает один бит, можно задавать номер
бита регистра;
тип с плавающей запятой (float) — занимает два регистра, порядок
следования байт и регистров важен.
Автоподстройка времени цикла программы
Приборы
могут подстраивать время работы цикла программы в зависимости от сложности
алгоритма. Автоподстройка времени цикла программы влияет на работу
интерфейса связи, так как запросы обрабатываются в оставшееся после
выполнения программы время цикла.
Согласно алгоритму подстройки
времени цикла, минимальное число вызовов Master составляет до 50 раз
в секунду. Если Master не успевает опросить все устройства, то необходимо
внести изменения в алгоритм для оптимизации количества запросов.
Период опроса и правила его назначения
Прибор
все запросы ставит в очередь. Если очередь короткая, то прибор выполнит
все циклы запроса-ответа и остановится в ожидании пока не подойдет
к концу заданный период. Если очередь длинная и не укладывается в
заданный период, то прибор будет опрашивать все необходимые параметры
с максимально возможным периодом, но этот период будет больше заданного
в настройках.
Временная диаграмма опроса:
Для максимальной скорости 115200 бит/с опрос двух переменных
типа FLOAT в «идеальных» условиях (короткая линия связи, отсутствие
помех) у одного подчиненного устройства следует установить:
время ответа от начала запроса – 2,64 мс;
следующий запрос начинается не раньше, чем через 12 мс;
общее время на запрос 1 регистра FLOAT – 3,4 мс.
В вышеперечисленных условиях, прибор сможет отправлять 83
запроса в секунду. Данное значение справедливо и для других приборов
с подобными временными характеристиками. В процессе разработки алгоритма,
когда логика усложняется, то увеличивается время цикла и количество
запросов за секунду будет снижаться.
Значение периода опроса
зависит от алгоритма, как часто и какие параметры надо опрашивать.
Рекомендуется выставлять период опроса равным 1 с. В этом случае прибор
сможет опросить до 50 переменных.
Порядок опроса нескольких устройств на шине
Устройства опрашиваются согласно сформированной очереди. Опрос
происходит от наименьшего адреса к наибольшему. В примере на иллюстрации
ниже первым будет опрошено устройство с адресом 8, последним – с адресом
32.
Можно задавать разный период опроса подчиненных
устройств. Конкретное значение будет зависеть от решаемой задачи.
Расчет адреса и бита для считывания булевой переменной
в режиме Master
В некоторых случаях требуется вычислить
адрес регистра и номер бита подчиненного устройства. Для определения
адреса регистра и номера бита из документации на опрашиваемый прибор
берется расположение битовой переменной, например, бит 1400, далее следует:
Вычислить адрес регистра: 1400 ÷ 16 = 87.
Вычислить номер бита 1400 mod 16 = 8.
Полученные адрес и номер вводятся в поля «Регистр» и «Бит»
во время настройки опроса устройства.