Блок контроля дискретных сигналов MDI8
Блок контроля дискретных сигналов MDI8
27
Введение
Сенсорные панели оператора SIMATIC TP170A/TP170B предназначены для построения профессиональных систем человеко-машинного интерфейса в системах управления на основе программируемых контроллеров SIMATIC S7. Они способны поддерживать функции мониторинга и оперативного управления, позволяют решать задачи визуализации, обеспечивают поддержку динамических полей ввода-вывода, использования сенсорной клавиатуры, масштабируемых шрифтов и других сервисных возможностей, предоставляемых операционной системой Windows CE.
Обе панели легко конфигурируются и имеют преемственность: проекты, созданные для SIMATIC TP170A, могут быть легко переведены на SIMATIC TP170B и дополнены возможностями, предоставляемыми этой панелью
Встроенный интерфейс RS 485 может быть использован для включения панелей в сети MPI или протокола MODBUS RTU. Для загрузки параметров конфигурации панели снабжены встроенным интерфейсом RS 232. Этот же интерфейс может использоваться для подключения панели к контроллерам других производителей.
Во второй части данной курсовой работы рассмотрен интерфейс передачи данных RS-485. Рассмотрены базовые понятия и способ работы.
В третий части рассмотрен протокол передачи данных для данного устройства Modbus RTU. Также рассмотрены базовые понятия и способ передачи данных.
1. Сенсорные панели оператора SIMATIC TP170A/TP170B
Конструкция
Панели SIMATIC TP170A и SIMATIC TP170B характеризуются следующими показателями:
* Фронтальная панель размерами 212х156 мм, монтажный проем размерами 198х142х42 мм.
* Прочный пластиковый корпус. Степень защиты фронтальной панели IP 65, остальной части корпуса. IP 20.
* Опциональная защитная крышка для обеспечения степени защиты NEMA4.
* Пассивный STN CCFL (Cold Cathode Fluorescence Lamps) дисплей голубого свечения. Наработка на отказ 50000 часов (6 лет непрерывной работы).
* Графическое разрешение 320х240 точек.
* Сенсорная аналоговая резистивная клавиатура.
* 32-разрядный микропроцессор с RISC архитектурой, 66МГц.
* Алфавитная клавиатура (от ProTool V5.2 SP2).
* Цифровая клавиатура, поддерживающая выполнение операций в десятичной, двоичной или шестнадцатеричной системах счисления.
* Встроенные интерфейсы RS 485 и RS 232.
* Организация связи через MPI или протокола MODBUS RTU. В сети протокола MODBUS RTU скорость передачи данных может достигать 1.5 Мбит/с для панели TP170A и 12 Мбит/с для панели TP170B.
* Терминалы для подключения питания =24В.
Дополнительные особенности SIMATIC TP 170B:
* Последовательный интерфейс RS 232 для подключения принтера.
* Разъем для установки Flash карты.
* Обмен данными через MPI со скоростью до 12 Мбит/с.
Связь
Панели SIMATIC TP 170 могут подключаться:
* К программируемым контроллерам SIMATIC S7-200/-300/-400.
* К системам компьютерного управления SIMATIC WinAC V3.0 или выше.
* К программируемым контроллерам SIMATIC S5/505.
* К системам управления SINUMERIK и SIMOTION (только TP 170B).
* К программируемым контроллерам Allen Bradley, Mitsubishi, Telemecanique, Modicon, Lucky Goldstar GLOFA, GE Fanuc, OMRON.
Функции SIMATIC TP 170A/TP 170B:
* Поля ввода-вывода для отображения и модификации значений параметров.
* Кнопки: для непосредственного вызова функций или активизации определенных действий. Допускается конфигурирование до 16 одновременно выполняемых функций.
* Графика: использование графики в качестве фоновых изображений, а также иконок для маркировки кнопок. Наличие библиотек графических объектов в инструментальных средствах конфигурирования панели. Использование графических редакторов Windows с OLE интерфейсом (Paint-Shop, Designer, Corel Draw и т.д.).
* Фиксированные тексты: для маркировки клавиш, формирования наименований диаграмм и значений переменных. Надписи могут выводиться шрифтом любого размера. Максимальная высота символов может достигать 2.4 см.
* Построение бар-графиков динамически изменяющихся параметров.
* Выбор отображаемой информации, хранящейся в памяти программируемого контроллера.
* Использование стандартных библиотек графических объектов и кнопок пакета ProTool.
* Выбор языка для вывода сообщений. Для вывода сообщений выбирается один из 21 языка. Обеспечивается поддержка русского и азиатских языков. В TP 170A поддерживается один, в TP 170B. 5 интерактивных языков (от ProTool V6.0 и выше).
* Парольная защита доступа: в TP 170A. 2-уровневая, в TP 170B. 10-уровневая.
* Обслуживание статусных и системных сообщений.
* Тексты подсказок для диаграмм, сообщений и переменных.
* Математические функции.
* Мониторинг граничных значений переменных.
* Индикация состояний автоматизируемого оборудования.
* Загрузка драйверов других производителей (от ProTool V6.0 и выше).
* Функции обслуживания и конфигурирования:
- создание резервных копий и восстановление параметров конфигурации, операционной системы, данных и микропрограмм на компьютере с использованием программного обеспечения ProSave или в CF-карте (только для TP 170B);
- загрузка / считывание параметров конфигурации через MPI/ PROFIBUS-DP/ RS 232;
- автоматическая настройка на прием параметров конфигурации;
- регулировка контрастности изображения и калибровка экрана;
- очистка экрана;
- имитационная проверка конфигурации на компьютере с программным обеспечением конфигурирования;
- упрощение обслуживания за счет отсутствия буферной батареи.
Дополнительные возможности панели SIMATIC TP 170B:
* Векторная графика: использование для оформления экрана различных геометрических фигур (линий, прямоугольников, окружностей, эллипсов и т.д.).
* Построение графиков кривых.
* Обслуживание рецептов:
- сохранение рецептурных данных и параметров настройки в CF карте;
- интерактивное/ автономное редактирование рецептур;
- сохранение рецептурных данных в стандартном Windows-формате CSV;
- внешняя обработка данных средствами Excel и Access.
* Интервальный таймер для циклического выполнения различных функций.
* Встроенный порт для подключения принтера.
* Динамическое перемещение объектов, отображение/ скрытие объектов.
* Перманентные окна, присутствующие на различных экранных изображениях.
* Поддержка сообщений помощи и информационных сообщений для переменных, диаграмм и передаваемых сообщений.
Конфигурирование
Для конфигурирования панелей SIMATIC TP 170A/TP 170B может использоваться программное обеспечение SIMATIC ProTool/Lite, SIMATIC ProTool или SIMATIC ProTool/Pro от V5.2 и выше (для панели TP 170B. от V5.2 SP2 и выше).
1.1 Общее описание интерфейса RS-485
Интерфейс RS-485 (другое название - EIA/TIA-485) - один из наиболее распространенных стандартов физического уровня связи. Физический уровень - это канал связи и способ передачи сигнала (1 уровень модели взаимосвязи открытых систем OSI).
Базовые рекомендации по выбору схемы соединений для сетей на основе RS-485. Спецификация RS-485 (официальное название TIA/EIA-485-A) не дает конкретных пояснений по поводу того, как должна осуществляться разводка сетей RS-485. Однако она предоставляет некоторые рекомендации. Эти рекомендации и инженерная практика в области обработки звука положены в основу этой статьи. Однако представленные здесь советы ни в коем случае не охватывают всего разнообразия возможных вариантов построения сетей. Сеть, построенная на интерфейсе RS-485, представляет собой приемопередатчики, соединенные при помощи витой пары - двух скрученных проводов. В основе интерфейса RS-485 лежит принцип дифференциальной (балансной) передачи данных. Суть его заключается в передаче одного сигнала по двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) - его инверсная копия. Другими словами, если на одном проводе «1», то на другом «0» и наоборот. Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при «1» она положительна, при «0» - отрицательна.
Рисунок 1.1 - Устройство передачи сигнала
Именно этой разностью потенциалов и передается сигнал. Такой способ передачи обеспечивает высокую устойчивость к синфазной помехе. Синфазной называют помеху, действующую на оба провода линии одинаково. К примеру, электромагнитная волна, проходя через участок линии связи, наводит в обоих проводах потенциал. Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего («земли»). Кроме того, на сопротивлении длинного общего провода будет падать разность потенциалов земель - дополнительный источник искажений. А при дифференциальной передаче искажения не происходит. В самом деле, если два провода пролегают близко друг к другу, да еще перевиты, то наводка на оба провода одинакова. Потенциал в обоих одинаково нагруженных проводах изменяется одинаково, при этом информативная разность потенциалов остается без изменений.
Аппаратная реализация интерфейса - микросхемы приемопередатчиков с дифференциальными входами / выходами (к линии) и цифровыми портами (к портам UART контроллера). Существуют два варианта такого интерфейса: RS-422 и RS-485.
RS-422 - полнодуплексный интерфейс. Прием и передача идут по двум отдельным парам проводов. На каждой паре проводов может быть только по одному передатчику.
RS-485 - полудуплексный интерфейс. Прием и передача идут по одной паре проводов с разделением по времени. В сети может быть много передатчиков, так как они могут отключаются в режиме приема.
Остановимся поподробнее на приемопередатчике RS-485. Цифровой выход приемника (RO) подключается к порту приемника UART (RX). Цифровой вход передатчика (DI) к порту передатчика UART (TX). Поскольку на дифференциальной стороне приемник и передатчик соединены, то во время приема нужно отключать передатчик, а во время передачи - приемник. Для этого служат управляющие входы - разрешение приемника (RE) и разрешения передатчика (DE). Так как вход RE инверсный, то его можно соединить с DE и переключать приемник и передатчик одним сигналом с любого порта контроллера. При уровне «0» - работа на прием, при «1» - на передачу.
Рисунок 2.2 - Схема работы интерфейса
Приемник, получая на дифференциальных входах (AB) разность потенциалов (UAB) переводит их в цифровой сигнал на выходе RO. Чувствительность приемника может быть разной, но гарантированный пороговый диапазон распознавания сигнала производители микросхем приемопередатчиков пишут в документации. Обычно эти пороги составляют ± 200 мВ. То есть, когда UAB > +200 мВ - приемник определяет «1», когда UAB < -200 мВ - приемник определяет «0». Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения - правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.
Все устройства подключаются к одной витой паре одинаково: прямые выходы (A) к одному проводу, инверсные (B) - к другому.
Входное сопротивление приемника со стороны линии (RAB) обычно составляет 12 КОм. Так как мощность передатчика не беспредельна, это создает ограничение на количество приемников, подключенных к линии. Согласно спецификации RS-485 c учетом согласующих резисторов передатчик может вести до 32 приемников. Однако есть ряд микросхем с повышенным входным сопротивлением, что позволяет подключить к линии значительно больше 32 устройств.
Максимальная скорость связи по спецификации RS-485 может достигать 10 Мбод/сек. Максимальное расстояние - 1200 м. Если необходимо организовать связь на расстоянии большем 1200 м или подключить больше устройств, чем допускает нагрузочная способность передатчика - применяют специальные повторители (репитеры).
Таблица 2.1
Стандартные параметры интерфейсов
|
RS-485
|
|
Допустимое число передатчиков / приемников
|
32 / 32
|
|
Максимальная длина кабеля
|
1200 м
|
|
Максимальная скорость связи
|
10 Мбит/с
|
|
Диапазон напряжений «1» передатчика
|
+1.5…+6 В
|
|
Диапазон напряжений «0» передатчика
|
-1.5… - 6 В
|
|
Диапазон синфазного напряжения передатчика
|
-1…+3 В
|
|
Допустимый диапазон напряжений приемника
|
-7…+12 В
|
|
Пороговый диапазон чувствительности приемника
|
±200 мВ
|
|
Максимальный ток короткого замыкания драйвера
|
250 мА
|
|
Допустимое сопротивление нагрузки передатчика
|
54 Ом
|
|
Входное сопротивление приемника
|
12 кОм
|
|
Максимальное время нарастания сигнала передатчика
|
30% бита
|
|
|
Кабель RS-485 спроектирован как балансная система. Проще говоря, это означает, что, помимо земляного, имеется два провода, которые используются для передачи сигнала.
Рис. 1. Балансная система использует, помимо земляного, два провода для передачи данных
Система называется балансной, потому что сигнал на одном проводе является идеально точной противоположностью сигнала на втором проводе. Другими словами, если один провод передает высокий уровень, другой провод будет передавать низкий уровень, и наоборот.
Рис. 2. Сигналы на двух проводах балансной системы идеально противоположны
Несмотря на то, что RS-485 может успешно осуществлять передачу с использованием различных типов передающей среды, он должен использоваться с проводкой, обычно называемой «витая пара».
Что такое витая пара и почему она используется?
Как следует из ее названия, витая пара - это просто пара проводов, которые имеют равную длину и свиты вместе. Использование передатчика, отвечающего требованиям спецификации RS-485, с кабелем на основе витой пары, уменьшает два главных источника проблем для разработчиков быстродействующих территориально распределенных сетей, а именно излучаемые электромагнитные помехи и индуцируемые электромагнитные помехи (наводка).
Излучаемые электромагнитные помехи
Как показано на рисунке 3, всякий раз, когда для передачи информации используются импульсы с крутыми фронтами, в сигнале присутствуют высокочастотные составляющие. Эти крутые фронты нужны при более высоких скоростях, чем способен обеспечить RS-485.
Рис. 3. Форма сигнала последовательности прямоугольных импульсов с частотой 125 кГц и ее БПФ
Полученные в итоге высокочастотные компоненты этих крутых фронтов вместе с длинными проводами могут привести к излучению электромагнитных помех (EMI). Балансная система, использующая линии связи на основе витой пары, уменьшает этот эффект, делая систему неэффективным излучателем. Это работает на очень простом принципе. Поскольку сигналы на линиях равны, но инверсны, излучаемые от каждого провода сигналы будут также иметь тенденцию быть равными, но инверсными. Это создает эффект подавления одного сигнала другим, что, в свою очередь, означает отсутствие электромагнитного излучения. Однако, это основано на предположении, что провода имеют точно одинаковую длину и точно одинаковое расположение. Поскольку невозможно одновременно иметь два провода абсолютно одинаково расположенными, провода должны быть близко друг к другу насколько возможно. Скручивание проводов помогает нейтрализовать любое остаточное электромагнитное излучение из-за конечного расстояния между двумя проводами.
Индуцируемые электромагнитные помехи - в основном та же самая проблема, что и излучаемые, но наоборот. Межсоединения, используемые в системе на основе RS-485, также действуют как антенна, которая получает нежелательные сигналы. Эти нежелательные сигналы могут искажать полезные сигналы, что, в свою очередь, может привести к ошибкам в данных. По той же самой причине, по которой витая пара помогает предотвращать излучение электромагнитных помех, она также поможет снизить влияние наводимых электромагнитных помех. Поскольку два провода расположены вместе и скручены, шум, наведенный на одном проводе будет иметь тенденцию быть тем же самым, что и наведенный на втором проводе. Этот тип шума называют «синфазным шумом». Поскольку приемники RS-485 предназначены для обнаружения сигналов, которые являются противоположностью друг друга, они могут легко подавлять шум, который является общим для обоих проводов.
В зависимости от геометрии кабеля и материалов, используемых в изоляции, витая пара будет обладать соответствующим «волновым сопротивлением (характеристическим импедансом)», которое обычно определяется ее производителем. Спецификация RS-485 рекомендует, но явно не навязывает, чтобы это волновое сопротивление было равно 120 Ом. Рекомендация этого импеданса необходима для вычисления наихудшей нагрузки и диапазонов синфазных напряжений, определенных в спецификации RS-485. По всей видимости, спецификация не диктует этот импеданс в интересах гибкости. Если по каким-либо причинам не может использоваться 120-омный кабель, рекомендуется, чтобы наихудший вариант нагрузки (допустимое число передатчиков и приемников) и наихудшие диапазоны синфазных напряжений были повторно рассчитаны, дабы удостовериться, что проектируемая система будет работать. Публикация TSB89 содержит раздел, специально посвященный таким вычислениям.
Теперь, когда мы понимаем, какой нужен тип кабеля, возникает вопрос о том, каким количеством витых пар может управлять передатчик. Ответ короткий - точно одной. Хотя передатчик и может при некоторых обстоятельствах управлять более чем одной витой парой, это не предусмотрено спецификацией.
Поскольку затронуты высокие частоты и большие расстояния, должное внимание должно быть уделено эффектам, возникающим в линиях связи. Однако, детальное обсуждение этих эффектов и корректных методов согласования далеко выходит за рамки настоящей статьи. Помня об этом, техника согласования будет кратко рассмотрена в своей простейшей форме, постольку, поскольку она имеет отношение к RS-485.
Согласующий резистор - это просто резистор, который установлен на крайнем конце или концах кабеля (Рис. 4). В идеале, сопротивление согласующего резистора равно волновому сопротивлению кабеля.
Рис. 4. Согласующие резисторы должны иметь сопротивление, равное волновому сопротивлению витой пары и должны размещаться на дальних концах кабеля
Если сопротивление согласующих резисторов не равно волновому сопротивлению кабеля, произойдет отражение, т.е. сигнал вернется по кабелю обратно. Это описывается уравнением (Rt-Zo)/(Zo+Rt), где Zo - сопротивление кабеля, а Rt - номинал согласующего резистора. Хотя, в силу допустимых отклонений в кабеле и резисторе, некоторое отражение неизбежно, значительные расхождения могут вызвать отражения, достаточно большие для того, чтобы привести к ошибкам в данных.
Помня об этом, важно обеспечить максимально-возможную близость значений сопротивления согласующего резистора и волнового сопротивления. Место установки согласующего резистора так-же очень важно. Согласующие резисторы должны всегда размещаться на дальних концах кабеля.
Рис. 5. Используя схему, показанную на верхнем рисунке, сигнал слева был получен с MAX3485, нагруженным на 120-омную витую пару, и 54-омным согласующим резистором. Сигнал справа был получен при корректном согласовании с помощью 120-омного резистора
Как общее правило, согласующие резисторы должны быть помещены на обоих дальних концах кабеля. Хотя правильное согласование обоих концов абсолютно критично для большинства системных дизайнов, можно утверждать, что в одном специальном случае необходим только один согласующий резистор. Этот случай имеет место в системе, в которой имеется единственный передатчик, и этот единственный передатчик расположен на дальнем конце кабеля. В этом случае нет необходимости размещать согласующий резистор на конце кабеля с передатчиком, поскольку сигнал всегда распространяется от этого передатчика.
Простейшая сеть на основе RS-485 состоит из одного передатчика и одного приемника. Хотя это и полезно в ряде приложении, но RS-485 привносит большую гибкость, разрешая более одного приемника и передатчика на одной витой паре. Допустимый максимум зависит от того, насколько каждое из устройств загружает систему.
В идеальном мире, все приемники и неактивные передатчики будут иметь бесконечный импеданс и никогда не будут нагружать систему. В реальном мире, однако, так не бывает. Каждый приемник, подключенный к сети и все неактивные передатчики увеличивают нагрузку. Чтобы помочь разработчику сети на основе RS-485 выяснить, сколько устройств могут быть добавлены к сети, была создана гипотетическая единица, называемая «единичная нагрузка (unit load)». Все устройства, которые подключаются к сети RS-485, должны характеризоваться отношением множителей или долей единичной нагрузки. Два примера - MAX3485, который специфицирован как 1 единичная нагрузка, и MAX487, который специфицирован как 1/4 единичной нагрузки. Максимальное число единичных нагрузок на витой паре (принимая, что мы имеем дело с должным образом согласованным кабелем, имеющим волновое сопротивление 120 Ом или больше) - 32. Для приведенных выше примеров это означает, что в одну сеть могут быть включены до 32 устройств MAX3485 или до 128 MAX487.
Вооружившись приведенной выше информацией, мы готовы разработать некоторые сети на основе RS-485. Вот несколько простых примеров.
Простейшая сеть - это один передатчик и один приемник (Рисунок 6). В этом примере, согласующий резистор показан на кабеле на стороне передатчика. Хотя здесь это необязательно, вероятно хорошей привычкой было бы проектировать сети с обоими согласующими резисторами. Это позволят перемещать передатчик в места, отличные от дальнего конца кабеля, а также позволяет, если в этом возникнет необходимость, добавить в сеть дополнительные передатчики.
Рис. 6. Сеть RS-485 с одним передатчиком и одним приемником
На рисунке 7 представлена сеть с одним передатчиком и несколькими приемниками. Здесь важно, чтобы расстояния от витой пары до приемников были как можно короче.
Рис. 7. Сеть RS-485 с одним передатчиком и несколькими приемниками
На рисунке 8 представлена сеть с двумя приемопередатчиками.
Рис. 8. Сеть RS-485 с двумя приемопередатчиками
На рисунке 8 представлена сеть с несколькими приемопередатчиками. Как и в примере с одним передатчиком и несколькими приемниками, важно, чтобы расстояния от витой пары до приемников были как можно короче.
Рис. 9. Сеть RS-485 с несколькими приемопередатчиками
Ниже представлены примеры неправильно сконфигурированных систем. В каждом примере сравнивается форма сигнала, полученного от некорректно разработанной сети, с формой сигнала, полученного от должным образом разработанной системы. Форма сигнала измерялась дифференциально в точках A и B (A-B).
В этом примере, на концах витой пары отсутствуют согласующие резисторы. Поскольку сигнал распространяется от источника, он сталкивается с открытой цепью на конце кабеля. Это приводит к рассогласованию импедансов, вызывая отражение. В случае открытой цепи (как показано ниже), вся энергия отражается назад к источнику, вызывая сильное искажение формы сигнала.
Рис. 10. Несогласованная сеть RS-485 (вверху) и ее итоговая форма сигнала (слева) по сравнению с сигналом, полученным на правильно согласованной сети (справа)
На рисунке 11 согласующий резистор присутствует, но его размещение отличается от дальнего конца кабеля. Поскольку сигнал распространяется от источника, он сталкивается с двумя рассогласованиями импеданса. Первое встречается на согласующем резисторе. Даже при том, что резистор согласован с волновым сопротивлением кабеля, есть еще кабель за резистором. Этот дополнительный кабель вызывает рассогласование, а значит и отражение сигнала.
Рис. 11. Сеть RS-485 с неправильно размещенным согласующим резистором (верхний рисунок) и ее итоговая форма сигнала (слева) по сравнению с сигналом, полученным на правильно согласованной сети
На рисунке 12 имеется целый ряд проблем с организацией межсоединений. Первая проблема заключается в том, что драйверы RS-485 разработаны для управления только одной, правильным образом согласованной, витой парой. Здесь же каждый передатчик управляет четырьмя параллельными витыми парами. Это означает, что требуемые минимальные логические уровни не могут гарантироваться. В дополнение к тяжелой нагрузке, имеется рассогласование импедансов в точке, где соединяются несколько кабелей. Рассогласование импедансов в очередной раз означает отражения и, как следствие, искажение сигнала.
Рис. 12. Сеть RS-485, некорректно использующая несколько витых пар
На рисунке 13, кабель корректно согласован и передатчик нагружен только на одну витую пару; однако сегмент провода в точке подключения (ответвитель - stub) приемника чрезмерно длинный. Длинные ответвители вызывают значительное рассогласование импедансов и, таким образом, отражение сигнала. Все ответвители должны быть как можно короче.
Рис. 13. Сеть RS-485 использующая 3-метровый ответвитель (рисунок сверху) и ее итоговый сигнал (слева) по сравнению с сигналом, полученным с коротким ответвлением
2. Описание протокола MODBUS RTU
Стандартные MODBUS-порты в контроллерах MODICON используют RS-232C совместимый последовательный интерфейс. Контроллеры могут быть соединены на прямую или через модем.
Контроллеры соединяются используя технологию главный-подчиненный, при которой только одно устройство (главный) может инициировать передачу (сделать запрос). Другие устройства (подчиненные) передают запрашиваемые главным устройством данные, или производят запрашиваемые действия. Типичное главное устройство включает в себя ведущий (HOST) процессор и панели программирования. Типичное подчиненное устройство - программируемый контроллер.
Главный может адресоваться к индивидуальному подчиненному или может инициировать широкую передачу сообщения на все подчиненные устройства. Подчиненное устройство возвращает сообщение в ответ на запрос, адресуемый именно ему. Ответы не возвращаются при широковещательном запросе от главного.
Цикл запрос - ответ.
Запрос от главного Ответ подчиненного
Адрес устройства Адрес устройства
Код функции Код функции
8 - битные 8 - битные
байты данных байты данных
Контрольная сумма Контрольная сумма
Запрос: Код функции в запросе говорит подчиненному устройству какое действие необходимо провести. Байты данных содержат информацию необходимую для выполнения запрошенной функции. Например, код функции 3 подразумевает запрос на чтение содержимого регистров подчиненного.
Ответ: Если подчиненный дает нормальный ответ, код функции в ответе повторяет код функции в запросе. В байтах данных содержится затребованная информация. Если имеет место ошибка, то код функции модифицируется, и в байтах данных передается причина ошибки.
В сетях MODBUS может быть использован один из двух способов передачи: ASCII или RTU. Пользователь выбирает необходимый режим вместе с другими параметрами (скорость передачи, режим паритета и т.д.) во время конфигурации каждого контроллера.
Формат каждого байта в RTU-режиме:
Система кодировки: 8-ми битовая двоичная, шестнадцатеричная 0-9, A-F
Две шестнадцатеричные цифры содержатся в каждом 8-ми битовом байте сообщения.
Назначение битов: 1 старт бит
8 бит данных, младшим значащим разрядом вперед 1 бит паритета; нет бита паритета
1 стоп бит если есть паритет; 2 бита если нет паритета
Контрольная сумма: Cyclical Redundancy Check (CRC)
В RTU режиме сообщение начинается с интервала тишины равного времени передачи 3.5 символов при данной скорости передачи в сети. Первым полем затем передается адрес устройства.
Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3.5 символов. Новое сообщение может начинаться после этого интервала.
Фрейм сообщения передается непрерывно. Если интервал тишины продолжительностью 1.5 возник во время передачи фрейма, принимающее устройство заканчивает прием сообщения и следующий байт будет воспринят как начало следующего сообщения.
Таким образом, если новое сообщение начнется раньше 3.5 интервала, принимающее устройство воспримет его как продолжение предыдущего сообщения. В этом случае устанавливается ошибка, так как будет несовпадение контрольных сумм. Типичный фрейм сообщения показан ниже.
Рисунок 3.1 - RTU-фрейм
Адресное поле фрейма содержит два символа (ASCII) или 8 бит (RTU). Допустимый адрес передачи находится в диапазоне 0 - 247. Каждому подчиненному устройству присваивается адрес в пределах от 1 до 247.
Адрес 0 используется для широковещательной передачи, его распознает каждое устройство. Когда MODBUS протокол используется на более высоком уровне сети, широковещательная передача может не поддерживаться или может быть реализована другими методами.
Поле функции фрейма содержит два символа (ASCII) или 8 бит (RTU). Диапазон числа 1 -255. Некоторые функции работают на всех контроллерах MODICON, некоторые - на определенных моделях, другие же коды зарезервированы для будущего использования. Имеющийся набор функций описан в приложении 2.
Когда подчиненный отвечает главному, он использует поле кода функции для фиксации ошибки. В случае нормального ответа подчиненный повторяет оригинальный код функции. Если имеет место ошибка, возвращается код функции с установленным в 1 старшим битом.
Например, сообщение от главного подчиненному прочитать группу регистров имеет следующий код функции:
0000 0011 (03 hex) Если подчиненный выполнил затребованное действие без ошибки, он возвращает такой же код. Если имеет место ошибка, то он возвращает: 10000011 (83 hex) В добавление к изменению кода функции, подчиненный размещает в поле данных уникальный код, который говорит главному какая именно ошибка произошла или причину ошибки.
Поле данных в сообщении от главного к подчиненному содержит дополнительную информацию, которая необходима подчиненному для выполнения указанной функции. Оно может содержать адреса регистров или выходов, их количество, счетчик передаваемых байтов данных.
Например, если главный запрашивает у подчиненного прочитать группу регистров (код функции 03), поле данных содержит адрес начального регистра и количество регистров. Если главный хочет записать группу регистров (код функции 10 hex), поле данных содержит адрес начального регистра, количество регистров, счетчик количества байтов данных и данные для записи в регистры.
Поле данных может не существовать (иметь нулевую длину) в определенных типах сообщений. В MODBUS - сетях используются два метода контроля ошибок передачи. Содержание поля контрольной суммы зависит от выбранного способа передачи. ASCII Когда используется ASCII-режим поле контрольной суммы содержит два ASCII-символа. Контрольная сумма является результатом вычисления Longitudinal Redundancy Check (LRC) сделанного над содержанием сообщения начиная и заканчивая CRLF. RTU Когда используется RTU-режим поле контрольной суммы содержит 16-ти битовую величину. Контрольная сумма является результатом вычисления Cyclical Redundancy Check сделанного над содержанием сообщения. CRC добавляется к сообщению последним полем младшим байтом вперед.
Передача символов идет младшим битом вперед.
RTU фрейм С контролем четности
Рисунок 3.2 - Фрейм с контролем четности
Без контроля четности
Рисунок 3.3 - Фрейм без контроля четности
Стандартная MODBUS сеть использует два метода контроля ошибок. Контроль паритета (even/odd) и контрольная сумма. Обе эти проверки генерируются в головном устройстве. Подчиненное устройство проверяет каждый байт и все сообщение в процессе приема.
Пользователь может устанавливать продолжительность интервала таймаута в течении которого головное устройство будет ожидать ответа от подчиненного. Если подчиненный обнаружил ошибку передачи, то он не формирует ответ главному.
Пользователь может конфигурировать контроллеры на проверку четного или нечетного паритета (Even/Odd).
Например, 8 бит RTU-режима содержат следующую информацию: 1100 0101 Общее количество единиц - 4. Если используется четный паритет, то бит паритета будет равен 0, и общее количество 1-иц будет по прежнему четным числом. Если используется нечетный паритет, то бит паритета будет равен 1, тогда общее количество 1-иц вместе с битом паритета будет равно 5, т.е. нечетному числу.
Контрольная сумма LRC.
Метод LRC проверяет содержание сообщения исключая начальный символ»:» и пару CRLF.
LRC это 1 байт. LRC вычисляется передающим устройством и добавляется в конец сообщения. Принимающее устройство вычисляет LRC в процессе приема сообщения и сравнивает его с принятым от главного. Если есть несовпадение, то имеет место ошибка.
Контрольная сумма CRC.
Контрольная сумма CRC состоит из двух байт. Контрольная сумма вычисляется передающим устройством и добавляется в конец сообщения. Принимающее устройство вычисляет контрольную сумму в процессе приема и сравнивает ее с полем CRC принятого сообщения.
Счетчик контрольной суммы предварительно инициализируется числом FF hex. Только восемь бит данных используются для вычисления контрольной суммы CRC. Старт и стоп биты, бит паритета, если он используется, не учитываются в контрольной сумме.
Во время генерации CRC каждый байт сообщения складывается по исключающему ИЛИ с текущим содержимым регистра контрольной суммы. Результат сдвигается в направлении младшего бита, с заполнением нулем старшего бита. Если младший бит равен 1, то производится исключающее ИЛИ содержимого регистра контрольной суммы и определенного числа. Если младший бит равен 0, то исключающее ИЛИ не делается.
Процесс сдвига повторяется восемь раз. После последнего (восьмого) сдвига, следующий байт складывается с текущей величиной регистра контрольной суммы, и процесс сдвига повторяется восемь раз как описано выше. Конечное содержание регистра и есть контрольная сумма CRC.
Заключение
В данной курсовой работе был рассмотрен блок контроля дискретных сигналов MDI8, его интерфейс и протокол передачи данных. Из данной курсовой работы ясно, что из себя представляет этот блок, с какой программой работает. Также подробно рассмотрен интерфейс RS-485, способы подключения к нему, а также подробно рассмотрено как избежать паразитных помех и токов при подключении прибора.
Приведены теоретические данные о протоколе MODBUS RTU. Разобрано как осуществляется передача данных через него.
Список использованных источников
1. Интерфейс передачи данных RS-485. Руководство по эксплуатации», ЗАО ПКО «РАСКАТ», М. - 2006.
2. Интерфейс передачи данных RS-485. Инструкция по настройке», ЗАО ПКО «РАСКАТ», М. - 2006.
3. www.mayak-bit.narod.ru
4. www.wikipedia.ru
|