Источник статьи

Последовательный порт передачи данных с использованием протокола MODBUS

Авторы: Saptarshi Naskar, Krishnendu Basuli, Samar Sen Sarma

Перевод: Скрыпник Д.В.

Последовательный процесс отправки данных - последовательная передача одного бита за другим, по каналам связи или шине компьютера [5,6,7]. RS-232-это стандартный интерфейс для последовательной передачи двоичных данных между терминальным оборудованием (ДТО) и аппаратурой канала данных (АКД), часто используемые в компьютерных последовательных портах.

Первоначально в стандарте RS-232 было определено только соединение ДТО, с АКД - модемы. Null модем - это способ связи для подключения двух ДТО (компьютера, терминал, принтер, и т.д.) непосредственно с помощью кабеля RS-232. Его конфигурация упрощает связи между компьютерами. В Null модема режим, минимальный 3-проводный RS-232 порт, состоящий только из передачи данных, получения данных и земля обычно используется, когда полные услуги в RS-232 не требуется [5,6,7].

Другой вид общей связи является ДТО-ДТО связи, например, связь между двумя компьютерами, в целях обмена данными между ними. Для такого соединения, так называемые Null-модемное соединение не требуется; на самом деле эта связь будет сделано в данном проекте.

Третий вид соединения - АКД-АКД. Так называемый хвост кабеля, но это очень редкий тип соединения. Другие части RS-232 технические характеристики [5,6,7]: (a) Сигнал напряжение: от-5 до -15 В (логическая 1), +5 до +15В (логический 0) , с другой стороны -10 до -15 В (логическая 1), +3 В до +15В (логический 0) на стороне приемника. Как правило, на стандартном ПК +/- 12В используется. (b) Максимальная длина кабеля: 50 футов на скорости 19200 bps, 3000 футов на 2400 bps (она может быть гораздо выше, без проблем в большинстве случаев). (c) Разъемы: наиболее распространенные RS-232 разъемы DB-9, DB-25. Существует как папа и как мама версии, в большинстве случаев ДТО имеет разьем папа и АКД имеет разъем мама (хотя могут быть различными в некоторых случаях). (d) Сигналы в различных выводах последовательного порта приведены в следующей таблице.

DB-9 DB-25 Signal Direction Description 200LX
1 8 DCD Modem → PC Обнаружение несущей данных
2 3 RxD Modem → PC Прием данных (по DTE)
3 2 TxD PC → Modem Передача данных (по DTE)
4 20 DTR PC → Modem Готовность терминала данных
5 7 GND Земля
6 6 DSR Modem → PC Готовность набора данных
7 4 RTS PC → Modem Запрос на передачу
8 5 CTS Modem → PC Готов к передаче
9 22 RI Modem → PC Индикатор вызова
10 1 Port. GND Не на DB-9. Заземление:
Щит соединители и кабели подключены.

DCD, DTR, DSR, RTS и CTS так называемые устаревшие линии, которые используются устройством для обмена информацией о их состоянии. Общий язык, используемых контроллеров Modicon-протокол MODBUS [1,7]. Это открытый протокол, и он определяет структуру сообщения, контролеры будут опозноваться и использоваться, независимо от типа сети, по которым они общаются. Он описывает процесс контроля запроса доступа к другому устройству, как он будет реагировать на запросы со стороны других устройств, и, если ошибка будет обнаружена сообщит об этом. Он устанавливает общий формат расположения и содержания области сообщение.

Протокол MODBUS обеспечивает внутренний стандарт, контроллеры Modicon используют для разбора сообщений. Во время передачи, протокол определяет, каждый контроллер который будет знать адрес устройства, обращение к ним, определение тех мер, которые будут приняты, и удаление любых данных или другую информацию, содержащую в сообщении. Если ответ не требуется, контроллер построит ответ сообщением и пошлет его с помощью протокола MODBUS. В передачи, протокол MODBUS, встроенный в каждую сетевую структуру пакетов, предоставляет общий язык с которым устройство может изменить данные.

Стандартные порты MODBUS на контроллерах Modicon используют совместимый RS-232 последовательный интерфейс, который определяет контакт-выходы, кабели, уровни сигнала, скорость передачи данных и контроль четности. Контроллеры могут быть подключены непосредственно или через модем. Контроллеры общаться с помощью master-slave, в которой только одно устройство (мастер) может инициировать операции (запросов). Другие устройства (подчиненные), отвечают путем предоставления запрошенных данных на мастер, или путем принятия действий, запрашиваемых в запросе. Мастер-устройства включают хост-процессоры и программирования панели. Подчиненные включают в себя программируемые контроллеры.

Мастер может рассматривать индивидуальных подчиненных, или может инициировать широковещательное сообщение для всех подчиненных. Slave устройства возвращают сообщения (ответа) на запросы, адресованные их по отдельности. Ответы не возвращаются к трансляции запросов от мастера. MODBUS протокол устанавливает формат для запроса мастер, помещая в него устройства (широковещательный) адрес, код функции определения требуемого действия, любые данные, которые будут направлены, и проверки ошибок поля. Ответное сообщение от подчиненных будут также построины с использованием протокола MODBUS. Он содержит поля подтверждающие принятые меры, какие-либо данные должны быть возвращены, и проверки поля ошибок. Если произошла ошибка в получении сообщения, или если подчиненный не может выполнять требуемое действие, подчиненный построит сообщение об ошибке и отправит его в качестве ответа.

В контроллеры могут быть настройки для связи на стандарт сети MODBUS, используя один из двух способов передачи информации: ASCII или RTU [1]. Пользователям необходимо выбрать нужный режим, наряду с последовательным портом параметры связи (скорость передачи, контроль четности, и т.д.), во время конфигурации каждого контроллера. Режим и параметры последовательных портов должны быть одинаковыми для всех устройств сети MODBUS. В настоящее время форматы сообщений для двух режимов применяются.

В режиме ASCII, сообщения начинаются с двоеточия (:) символ (ASCII 3A Hex), а в конце возврат каретки строки (CRLF) пара (ASCII 0x0D и 0x0A). Допустимые символы, переданные для всех других полей, например, от 0 до 9, а затем через F. Сетевые устройства контролируют сетевые шины непрерывно в течение двоеточие. Когда кто-то получил сообщение, каждое устройство декодирует следующее поле (поле адреса), чтобы узнать, есть ли имя устройства. Интервалом до одной секунды может пройти между символов в сообщении. Если больший интервал происходит, приемное устройство предполагает, что произошла ошибка.

В режиме RTU, сообщения начинаются с тихим интервал, по крайней мере в 3,5 раза. Это наиболее легко реализовано в виде нескольких символов на скорость передачи данных, которая используется в сети. Первое поле, а потом передается-адрес устройства. Допустимые символы, переданные для всех полей являются шестнадцатеричными от 0 до 9, а затем через F. Сетевые устройства контролируют шины сети постоянно, в том числе во время silent интервала. Когда первое поле поле address(адрес) - получил, каждое устройство декодирует его, чтобы узнать, есть ли имя устройства. После последнего передается символ, аналогичный интервалу не менее 3,5 раза означает конец сообщения. Новое сообщение может начаться после этого интервала. Весь кадр сообщения должен передаваться в виде непрерывного потока. Если молчания, более чем в 1,5 раза происходит завершения кадра, принимающее устройство инициализирует неполное сообщение и предполагает, что следующий байт будет адрес поля нового сообщения. Аналогичным образом, если новое сообщение начинается раньше, чем в 3,5 раза ниже предыдущего сообщения, принимающее устройство будет рассматривать его как продолжение предыдущего сообщения. Это позволит установить ошибку, конечным значением CRC поля не будут действительными для комбинированных сообщений.

Основной целью проекта является отображение магнитного поля внутри магнита (Магнит с полой цилиндрической формы) [2,3,4,7]. В этой схеме, один компьютер мастер и связан с другим, как подчиненный терминал, применяются для связи. Главный терминал на платформе MS Windows XP и содержит оператора, интерфейс, разработанный с использованием Borland C (Var. 4.5). Подчиненный терминал на платформе MS Windows 98 и он фактически управляет механической системой и передает данные после расшифровки на Главный терминал. Master и Slave терминалы соединены равный-к-равному последовательной шиной через их последовательный порт (COM-порты). Ведомый компьютер подключен к модулю напряжение-частота, в лаборатории сделали чтение схемы и схемы управления двигателем через PCL 812 PC-карты. Для отображения магнитного поля мы использовали катушку (10.000 витков) в качестве датчика магнитного поля. Напряжения, возникающие в катушке, двигающиеся по радиальной оси на средней плоскости, магнит-модуль преобразовует напряжения в частоту. Этот модуль, в свою очередь, генерирует импульсы различной частоты в зависимости от выходного напряжения катушки. Импульсы, генерируемые модулем подсчитываются с помощью счетчика PCL 812. Граф дает относительные измерения магнитного поля в определенной точке. Направление и движение катушки двигателя-снова под контролем DA Converter цепи, усилитель мощности и реле, управляемые картами. Позиции в катушке определяется оптическим датчиком, установленного на валу приводного двигателя катушки. Оптический датчик производит квадратурные импульсы на два канала, которые, опять же, отсчитывает оптический энкодер читатель цепи и, следовательно, передается в контроллер ПК с помощью цифрового порта PCL 812. Механические устройства выполнены таким образом, что, оптический датчик генерирует 400 импульсов для вращения 53 мм поисковой катушки. Выходных импульсов оптического датчика снова используются для создания аппаратных прерываний (IRQ 3) и на каждое 10-е прерывание устройства считывания данных канала и PCL 812 счетчик данные считываются и сохраняются в локальном буфере, у видомого терминала. Эти данные передаются на главный терминал по требованию.

В этом проекте только в режиме ASCII протокола MODBUS выполняется. Режим RTU devicenet-протокола, также могут быть реализованы в дальнейшем, потому что режим RTU имеет преимущество над режиме ASCII проверка ошибок в методологии. В режиме ASCII проверки ошибок осуществляется с помощью LRC (Liner Redundancy Check) метода, но в случае RTU режим проверки ошибок осуществляется с помощью CRC (cyclic redundancy check) метода. В случае RTU в режиме синхронизации, необходимых для передачи данных между Master-Slave терминалов, это является недостатком этого режима в режим ASCII. Однако, реализация режим RTU devicenet-протокола, делают общение более жесткими, и быстрее, и обеспечить безопасность сообщений при разработке техники.

Список используемой литературы

Статья опубликована Ubiquity Volume 9, Issue 3 (January 22, 2008 - January 28, 2008)