Гибкая технология современного электропривода делает его многофункциональным, высокопроизводительным и энергоэффективным устройством. Эти качества достигаются особыми конструктивными новациями и благодаря гибкому применению электронных средств управления и связи с конкретным технологическим процессом. Энергоэффективный электродвигатель позволяет не только сэкономить электроэнергию, но и сократить расходы на техобслуживание и прочие дополнительные эксплуатационные расходы [8, 3].
В современных системах автоматизации в результате постоянной модернизации производства все чаще встречаются задачи построения распределенных промышленных сетей с использованием гибких протоколов передачи данных. Прошли те времена, когда где-нибудь в аппаратной ставился огромный шкаф с оборудованием, к нему тянулись километры толстых пучков кабелей, ведущих к датчикам и исполнительным механизмам. Сегодня, в подавляющем большинстве случаев намного выгоднее установить несколько локальных контроллеров, объединенных в единую сеть, тем самым сэкономив на установке, тестировании, вводе в эксплуатацию и техническом обслуживании по сравнению с централизованной системой [2, 7].
Для организации промышленных сетей используется множество интерфейсов и протоколов передачи данных, например Modbus, Ethernet, CAN, HART, Profibus и прочие. Они необходимы для передачи данных между датчиками, контроллерами и исполнительными механизмами (ИМ); калибровки датчиков; питания датчиков и ИМ; связи нижнего и верхнего уровней автоматизированных систем управления технологическими процессами (АСУ ТП). Протоколы разрабатываются с учетом особенностей производства и технических систем, обеспечивая надежное соединение и высокую точность передачи данных между различными устройствами. Наряду с надежностью работы в жестких условиях все более важными требованиями в системах АСУ ТП становятся функциональные возможности, гибкость в построении, простота интеграции и обслуживания, соответствие промышленным стандартам [3, 4, 6].
Протокол Modbus и сеть Modbus являются самыми распространенными в мире. Несмотря на свой возраст (стандартом де-факто Modbus стал еще в 1979 году), Modbus не только не устарел, но, наоборот, существенно возросло количество новых разработок и объем организационной поддержки этого протокола. Миллионы Modbus-устройств по всему миру продолжают успешно работать. Одним из преимуществ Modbus является отсутствие необходимости в специальных интерфейсных контроллерах (Profibus и CAN требуют для своей реализации заказные микросхемы), простота программной реализации и элегантность принципов функционирования. Все это снижает затраты на освоение стандарта как системными интеграторами, так и разработчиками контроллерного оборудования. Высокая степень открытости протокола обеспечивается также полностью бесплатными текстами стандартов.
Для реализации задачи по анализу применения протокола Modbus рассмотрим его применение с помощью контроллера ECL Comfort 310 – Danfoss. Электронный регулятор ECL Comfort 310 применяется в многоконтурных технологических схемах систем централизованного тепло-, холодоснабжения, отопления. Поддерживает до 4 контуров. В зависимости от системы контроллер комплектуется соответствующими электронными ключами приложения ECL. Погодный компенсатор Danfoss ECL Comfort 310 предусматривает возможность подключения до 6 температурных датчиков. Прибор имеет также 4 конфигурируемых цифровых входа для температурных датчиков, датчиков давления или цифровых датчиков. В зависимости от конкретного применения для дополнительных входных и выходных сигналов необходимо применять встраиваемый модуль ввода-вывода ECA 32, который устанавливается в клеммную панель регулятора. Тиристорные выходы предназначены для трехпозиционного управления электроприводами двух регулирующих клапанов. Релейные выходы – для включения-выключения насосов и подключения устройства аварийной сигнализации. Регулятор ECL 310 B может быть связан с блоком дистанционного управления и другими регуляторами серии ECL Comfort 210/310 через шину передачи данных ECL 485 [1].
Описание протокола. Modbus – коммуникационный протокол, основанный на клиент-серверной архитектуре. Протокол Modbus разработан для использования в программируемых логических контроллерах, таких как управление электроприводом. В настоящее время является очень распространенным протоколом, используемым в различных промышленных системах. К примеру, данный протокол используется в контроллерах шаговых двигателей. Широко используются для передачи данных последовательные линии связи, основанные на интерфейсах RS-485, RS-422, RS-232. В начале развития применялся интерфейс RS-232 как один из наиболее простых промышленных интерфейсов для последовательной передачи данных. В настоящее время протокол часто используется поверх интерфейса RS-485, что позволяет добиться высокой скорости передачи, больших расстояний и объединения нескольких устройств в единую сеть, тем более что протокол Modbus поддерживает адресацию. Широкая распространенность протокола Modbus, обусловленная его простотой и надежностью, позволяет легко интегрировать устройства, поддерживающие Modbus, в единую сеть.
Основной особенностью протокола является наличие в сети одного ведущего устройства – master. Только ведущее устройство может опрашивать остальные устройства сети, которые являются ведомыми (slave). Подчиненное устройство не может самостоятельно инициировать передачу данных или запрашивать какие-либо данные у других устройств, работа сети строится только по принципу «запрос – ответ». Мастер может также выдать широковещательный запрос, адресованный всем устройствам в сети, в таком случае ответное сообщение не посылается.
Существует три типа протокола Modbus: Modbus ASCII; Modbus RTU; Modbus TCP.
Пакет данных в Modbus выглядит следующим образом:
Адрес → Код функции → Данные → Контрольная сумма.
Адрес – это поле, содержащее номер устройства, которому адресован запрос. Каждое устройство в сети должно иметь уникальный адрес. Устройство отвечает только на те запросы, которые поступают по его адресу, во избежание конфликтов. При этом ведомое устройство в своем ответе также посылает поле Адрес, кроме широковещательного запроса (когда ответа от ведомого быть вообще не должно). Код функции содержит номер функции Modbus (о функциях будет сказано ниже). Функция может запрашивать данные или давать команду на определенные действия. Коды функций являются числами в диапазоне от 1 до 127. Функции с номерами от 128 являются зарезервированными для пересылки в ответном сообщении информации об ошибках. В поле Данные содержится информация, которую передает мастер слэйву, либо, наоборот, в случае ответного сообщения. Длина этого поля зависит от типа передаваемых данных. Поле Контрольная сумма является важным элементом протокола: в нем содержится информация, необходимая для проверки целостности сообщения и отсутствия ошибок передачи. Максимальный размер пакета для сетей RS232/RS485 – 256 байт, для сетей TCP – 260 байт.
Существует три типа функций:
1. Стандартные. Описание этих функций опубликовано и утверждено Modbus-IDA. Эта категория включает в себя как опубликованные, так и свободные в настоящее время коды.
2. Пользовательские. Два диапазона кодов (от 65 до 72 и от 100 до 110), для которых пользователь может создать произвольную функцию.
3. Зарезервированные. В эту категорию входят коды функций, не являющиеся стандартными, но уже используемые в устройствах, производимых различными компаниями. К этим кодам относятся 9, 10, 13, 14, 41, 42, 90, 91, 125, 126 и 127. Типы данных протокола Modbus представлены в таблице.
Тип данных протокола Modbus
Параметр |
Тип данных |
Тип доступа |
Дискретные входы (Discrete Inputs) |
один бит |
только чтение |
Регистры флагов (Coils) |
один бит |
чтение и запись |
Регистры ввода (Input Registers) |
16-битное слово |
только чтение |
Регистры хранения (Holding Registers) |
16-битное слово |
чтение и запись |
Пример устройства Modbus. Рассмотрим работу протокола на примере контроллера ECL Comfort 310 (3 контурный контроллер с возможностью коммуникации). На горном предприятии контроллер ECL Comfort 310 используется для автоматизации тепловых пунктов с требованием удаленного контроля и управления (диспетчеризации) (рисунок).
Соединение Modbus и контроллера ECL Comfort 310
В документации на контроллер описано назначение регистров Modbus, которые в нем использованы. Для управления двигателем необходимо задать параметры контроллера, параметры вращения и непосредственно команду. Вся работа с контроллером при использовании протокола Modbus сводится к работе с регистрами, то есть чтению и записи. Наш контроллер имеет всего один тип регистров: Holding Registers. Этот тип регистров предназначен как для чтения, так и для записи параметров. В контроллере использовано три типа регистров: 8, 16 и 32 бита. Таким образом, для работы с ним нам понадобится использование всего лишь нескольких функций: Read Holding Registers для чтения, Preset Single Register для записи регистров размерностью 8 и 16 бит, и Preset Multiple Registers для записи значений в регистры длиной 32 бита.
Для начала работы с контроллером необходимо установить параметры контроллера и скорости вращения. Делается это последовательной записью нужных параметров в регистры согласно документации, используя необходимые функции. При этом каждая запись параметра вызывает соответствующий обработчик в контроллере, который по необходимости проверяет диапазоны значений или проводит другие необходимые действия. По сути, контроллер производит прерывание по изменению значения в регистре. Такая возможность существенно расширяет возможности применения про-
токола Modbus.
После записи всех параметров производится запись самой команды в соответствующий регистр. Такая организация работы с протоколом Modbus весьма удобна для практического применения, так как позволяет обходиться всего лишь тремя стандартными функциями. Во время выполнения команды доступ во все регистры сохраняется, в частности мы можем прочитать значение счетчика позиции при необходимости обнулить его, изменить скорость, либо задать новую команду, не дожидаясь выполнения старой. Еще одной особенностью применения протокола Modbus является то, что все регистры сохраняют свои значения до их перезаписи, поэтому если нам необходимо повторить движение с теми же параметрами, мы просто записываем команду движения в регистр команд и двигатель повторяет прошлое задание. Это не только упрощает управление, но и уменьшает трафик между контроллером двигателя и управляющим устройством.
Вывод
Таким образом, использование протокола Modbus позволяет сделать управление шаговыми двигателями очень простым, качественным и надежным [5, 8, 9, 10]. Для отладки устройств с помощью протокола Modbus нами разработана программа OSM Modbus Terminal. Данная программа позволяет быстро освоить основные принципы управления устройствами OSM MB по протоколу Modbus RTU, проверить корректную работу устройства и быстрее написать собственное программное обеспечение. Использование разработанной программы подробно рассмотрим в следующей статье.
Рецензенты:Петров В.Л., д.т.н., профессор, проректор по учебной работе МГГУ, зам. председателя Совета УМО вузов РФ по образованию в области горного дела, г. Москва;
Викулов М.А., д.т.н., профессор, заведующий кафедрой горных машин, профессор кафедры электрификации и автоматизации горного производства Политехнического института (филиал), ФГАОУ ВПО «Северо-Восточный федеральный университет имени М.К. Аммосова», г. Мирный.
Работа поступила в редакцию 28.11.2014.