Разделы сайта

Блок управления источником питания Bertan 210

Рис. 3 Цикл запрос - ответ

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

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

В любой посылке присутствует поле проверки ошибок.

При использовании MODBUS необходимо выбрать один из двух режимов последовательной передачи данных: ASCII или RTU. При использовании ASCII режима каждый байт сообщения передается как два ASCII символа. Существенным различием между режимами является то, как подчинённое устройство определяет, принадлежность очередного пришедшего символа к той или иной посылке. В ASCII режиме пакеты разделяются определённым символом, а в режиме RTU необходимо отмерять промежутки времени, прошедшего с приёма предыдущего символа.

Содержимое поля проверки ошибок определяется по алгоритму, выбор которого зависит от выбранного режима Modbus (ASCII или RTU).

При написании Modbus для микроконтроллеров семейства Intel 8051, размеры RAM которых не превышают 256 байт, было бы неоптимально реализовывать режим ASCII, т.к. потребовалось бы сохранение всех пришедших символов до момента прихода символа «:», разделяющего посылки. Таким образом, оптимальней использовать режим RTU (Рис. 4).

Рис. 4 Структура пакета

Modbus RTU

Создание библиотеки

Modbus

slave

Учитывая то, что в автоматизации работы установки ГДЛ используется большое количество контроллеров семейства MCS-51, возникло желание создать библиотеку для унификации работы контроллеров семейства Intel MCS-51 по стандартному промышленному протоколу. В качестве протокола был выбран Modbus, работу с которым можно реализовать для выбранного семейства.

Специфика работы заключается в крайней ограниченности ресурсов микроконтроллера MSC-51 (в частности RAM), которые делятся между основной программой и программой работы по Modbus.

Рассматривая основные параметры контроллеров во всём семействе MSC-51, отметим, что объём памяти RAM для разных моделей меняется от 128 байт до 256 байт. Длина пакета Modbus ограничена сверху 256 байтами [6], то есть slave сможет обработать не всякую посылку. Также, спецификация Modbus позволяет использовать до 255 различных кодов функций, но для работы каждого slave, нужны далеко не все.

Необходимо создать интерфейс к данной библиотеке, позволяющий запускать на контроллере Modbus slave с определёнными ограничениями. Например, необходимо программно отслеживать слишком длинные пакеты и неподдерживаемые коды функций, а затем реагировать на них согласно спецификации протокола.

Данная библиотека, находящаяся сейчас в разработке, должна позволять запустить на определённом контроллере семейства Intel 8051 протокол Modbus с учётом значений следующих параметров:

Последовательная скорость передачи (9600 бит/c , 19200 бит/c и т.п.)

Объём RAM

Адрес начала в оперативной памяти и размер буфера

Список используемых функций Modbus

Наличие/отсутствие проверки чётности

Относительно основной программы, библиотека Modbus обрабатывает запросы от системы управления установкой, работая в прерываниях. Возникает необходимость защиты от вызова обработчика Modbus в процессе изменения значения переменной, к которой как раз обращается Modbus. Должна быть возможность приостановить работу Modbus на время выполнения указанных транзакций.

С точки зрения стороннего разработчика, использующего разработанную библиотеку, можно выделить несколько функций:

Запуск Modbus с заданными значениями параметров

Заблокировать работу Modbus на время обработки транзакции

Перейти на страницу: 1 2 3 4 5 6 7

Интересное из раздела

Организация и расчет сетей поездной и станционной радиосвязи
Бурное развитие радиотехники создало все предпосылки для широкого использования радиосредств на железнодорожном транспорте. Массовое внедрение радиосвязи н ...

Проектирование генераторного триода дециметрового диапазона
Генераторные лампы предназначены для генерирования и усиления электрических колебаний низких и высоких частот. По роду работы генераторные лампы можно разде ...

Цифровая обработка сигналов
Развитие телекоммуникационных сетей увеличивает роль и значение передачи дискретных сообщений в электросвязи. Целью дисциплины ТЦС является: · изложение п ...