СМИС Эксперт » Программное обеспечение » Протокол Modbus для работы OPC серверов

Протокол Modbus для работы OPC серверов

  1. Модульный OPC-сервер XPERT. МОДУЛЬ MODBUS Версия 1.1.0.10
  2. 1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ
  3. 2. ХАРАКТЕРИСТИКИ МОДУЛЯ
  4. 3. ПОДКЛЮЧЕНИЕ МОДУЛЯ
  5. 4. РАБОТА С МОДУЛЕМ

Впервые протокол Modbus увидел свет благодаря компании Modicon и предназначался для экспорта данных и создания связи между электронными устройствами. Широкий доступ к спецификации Modbus предприятия получили в 1979 г., когда она была предоставлена в открытый доступ. Сегодня OPC Modbus широко применяется на промышленных предприятиях разного назначения, где требуется организовать связь между разрозненными устройствами.

Как работает протокол Modbus?

Протокол работает по принципу: ведомый-ведущий, где ведущий (master) - главный клиент. Master - это устройство, которое направляет запросы, а также получает ответы на них, поступающие от ведомых устройств со статусом slave. Ведущее устройство может направлять команды как одному подчинённому slave, так и всем остальным подчинённым одновременно, используя широкую сеть. В ответ на запрос, полученный от главного устройства, slave формирует ответ и отправляет его инициатору.

Сегодня OPC сервера Modbus активно развиваются, функционируя на базе одноименного протокола. Он широко используется не только в промышленности, но и внедряется для работы с офисными пользовательскими программами. Каждый Modbus OPC server производства СМИС Эксперт может поддерживать работу нескольких протоколов Modbus.

Достоинства и недостатки протокола Modbus

Первоначальный стандарт для  OPC Modbus был разработан порядка 40 лет назад и учитывал потребности и техвозможности устройств конца 70-х. Современная техника шагнула далеко вперёд, поэтому традиционный стандарт не способен учесть все неё потребности. Но в тоже время он разработан весьма просто, поэтому изучать и внедрять его на промышленных производствах не составляет труда.

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

Modbus OPC сервер Lectus

Ярким примером эффективного использования протокола Modbus является OPC сервер Lectus, который функционирует на базе одноименного протокола. Modbus OPC сервер Lectus работает на базе протокола Modbus и создан специально для работы с клиентами OPC и DDE. Lectus – это сервер, который может выступать как в качестве ведущего, так и ведомого, что делает его в некоторой степени универсальным. Он обеспечивает:

  • мониторинг данных переменных;
  • возможность передавать данные на любой сервер;
  • мониторинг качества связи с устройствами;
  • связь через интерфейс RS-232C или RS-485.

Как получить бесплатный Modbus OPC Server?

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

Протокол Modbus RTU, его особенности и применение

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

Именно благодаря этим особенностям данный протокол широко используется с 1979 года. Современная автоматизация выпускает большое количество датчиков, контроллеров и модулей, работающих на базе протокола Modbus RTU. Он позволяет обеспечивать качественное управление оборудованием и контроль за его бесперебойным функционированием на предприятиях различного назначения.

Основные принципы протокола Modbus RTU

Главная особенность протокола заключается в том, что в структуре предусмотрено только одно главное устройство со статусом «master», задающее команды, а также имеются ведомые со статусом «slaves». Взаимосвязь между мастером и слейвом осуществляется по инициативе мастера. То есть контролирующее устройство, в качестве него может выступать OPC сервер Modbus RTU, посылает сигнал или запрашивает получение данных от подчиненного слейва по типу: «запрос-ответ».

Кроме того master может отправить запрос направленный сразу ко всем подчиненным слейвам, он предусматривает четкую команду и не подразумевает обратного ответа. При этом каждое сообщение от мастера, направленное к слейву представляет собой пакет данных, состоящий из адреса слейва, кода функции, данных и контрольной суммы. Далее представлено подробное описание пакета протокола Modbus RTU на русском:

  • Адрес слейва. У каждого устройства, подключенного к сети Modbus, есть свой уникальный адрес или номер. Когда от устройства-мастера поступает сообщение, начинающееся с номером того или иного устройства, его электроника перехватывает сигнал и выполняет заданную команду. Таким образом, в системе не возникают конфликты. Адреса слейвов могут быть в диапазоне от 1 до 247.
  • Код функций - это то, какую команду должно выполнить устройство. Их диапазон находится в пределах от 1 до 127.
  • Данные. В этом интервале передается информация для выполнения задачи, поставленной главным устройством.
  • Контрольная сумма. Этот блок необходим для обнаружения возможных ошибок в передаче запроса.

Передача сигналов в рамках протокола Modbus RTU

Описание того, как работает протокол Modbus RTU на конкретном примере можно увидеть ниже.

Сообщение к слейву начинает интервал тишины, его протяженность по времени составляет 3,5 символа, после него главное устройство (OPC Modbus RTU) транслирует адрес слейва. После последнего символа сообщение завершается интервалом тишины в 3,5 символа. Само сообщение передается непрерывно, если по какой-то причине в теле запроса от мастера возник интервал тишины в 1,5 символ, то слейв игнорирует данное сообщение как неполное, и посылает мастеру отчет об ошибке. Мастер может отправить слейву новое сообщение только после того, как будет выдержан необходимый интервал в 3,5 символа. Если устройство будет передавать следующий запрос раньше, то он будет воспринят слейвом как продолжение предыдущего запроса, и он также пошлет сигнал об ошибке CRC.

Сам протокол Modbus RTU предусматривает возможность передачи данных от мастера и прием значений от слейвов, также при отсутствии отклика от зависимых устройств мастер воспринимает это как нарушение в их работе. Для полноценного использования данного протокола, которое подразумевает не только считывание значений, но и сигнализацию об ошибках и прекращении работы устройств мы рекомендуем установку модуля Modbus, работающего в составе программного комплекса OPC сервер «XPERT» производства СМИС Эксперт. Данный сервер создан для чтения/записи данных в рамках протокола Modbus, а также предусматривает подключение устройств и систем, работающих по другим протоколам. Это позволяет объединить в единую сеть все типы устройств, используемых на предприятии.

Протокол Modbus ASCII и его преимущества

Modbus - это коммуникационный протокол, который широко используется для обеспечения связи между промышленным оборудованием и главным контролирующим устройством. Использование данного протокола позволяет реализовать один общий формат передачи сообщений. Протокол Modbus реализуется в 3-х режимах: RTU, ASCII, TCP.

В протоколе Modbus ASCII информация передается преимущественно по линии связи RS-485. В данной системе обмен информации производится только с помощью ASCII-символов. При этом начало и окончание сообщения помечается специальными символами, так в начале сообщения помещается «:», а в конце CR/LF. Таким образом, происходит разграничение пакетов данных и не требуется заканчивать передачу каждого пакета данных выдержкой интервала тишины, как это происходит при передаче сообщений по протоколу RTU.

Протокол Modbus ASCII эффективно применяется при интеграции в систему модема. Поскольку модем не позволяет выдерживать интервалы тишины, вариант протокола Modbus ASCII, где для передачи сообщения используются только видимые символы и разделители, наиболее эффективное решение.

Протокол Modbus ASCII, как и другие версии протокола Modbus, работает по принципу главный-подчиненный, где в качестве главного устройства чаще всего выступает компьютер или конкретно Modbus ASCII OPC сервер, инициализирующий запросы, направляемые к подчинённым устройствам.

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

Как реализуется передача сообщений в режиме ASCII?

При реализации данного протокола каждый байт информации передается парой ASCII-символов. При этом даже при возникновении паузы длительностью до 1 секунды между передачей символов сообщения принимающее устройство не распознаёт её как ошибку и сообщение может быть продолжено.

Для передачи данных по протоколу Modbus ASCII используется шестнадцатеричная система кодировки и ASCII-символы в пределах 0-9, A-F. Если пауза превышает более 1 секунды, контроллер воспринимает это как ошибку. Контроллеры типа 584 и 984A/B/X допускают прием сообщений без CR/LF окончания после контрольной суммы.

Структура типичного сообщения по протоколу Modbus ASCII

Старт Адрес Номер функции Данные Контрольная сумма Конец передачи
1 сим 2 сим 2 сим n сим 2 сим 2 сим
: CR/LF

 

  • Старт - начало сообщения;
  • Адрес - идентификатор принимающего устройства;
  • Номер функции – операция, которую требуется выполнить принимающим устройством;
  • Данные – информация, объясняющая, как именно нужно выполнить запрошенную задачу и детализация номера функции;
  • Контрольная сумма - необходима для обнаружения ошибок в пакете данных;
  • Конец передачи – символы, означающие, что сообщение закончилось.

Интеграция систем и устройств, работающих по протоколу Modbus ASCII

При внедрении систем и устройств, работающих по данному протоколу, могут возникнуть сложности во взаимодействии данного оборудования с остальным оборудованием, установленным на производстве. Чтобы не допустить этот конфликт целесообразно использовать модульный OPC сервер «XPERT» производства СМИС Эксперт совместно с модулем Modbus.

Данный модуль обеспечивает взаимодействие протоколов RTU, ASCII и TCP. Данная программа призвана обеспечить не только продуктивную работу устройств, работающих на базе разных протоколов, она позволяет также записывать все полученные данные на сервер.

Подробнее узнать о работе модульного OPC сервера «XPERT», Modbus ASCII OPC и всех отдельных модулей, а также протестировать бесплатно их работу, Вы можете, обратившись к консультантам нашей компании.

Реализация протокола Modbus в сети RS-485

Протокол Modbus предоставляет возможность объединить в единую сеть на промышленном предприятии до 247 контроллеров под руководством одного ведущего устройства со статусом «master». В такой сети обмен данными происходит, когда master его инициализирует, подавая зависимому устройству определённую команду.

В одних случаях эта команда предусматривает отклик ведомого устройства мастеру. Тогда им формируется пакет данных и направляется инициализатору запроса.

В других случаях master формирует и отправляет сообщение, которое предусматривает выполнение определенной команды без необходимости обратного отклика устройствами. Они отвечают лишь в том случае, если в сообщении, отправленном главным устройством, была обнаружена ошибка. Для передачи сообщений на основании протокола связи Modbus используется несколько линий связи, среди них RS-485, RS-422, RS-232, а для протокола Modbus TCP, передающего сигнал через сеть Ethernet, используется TCP/IP соединение.

Чаще всего протокол Modbus использует интерфейс RS-485, который наиболее эффективен для передачи сигнала на большие расстояния. Данный стандарт передачи также известен как ANSI TIA/EIA-485 и обеспечивает надежную передачу сообщений на промышленных производствах даже при наличии помех.

Особенности передачи данных по интерфейсу RS-485

Если рассматривать протокол Modbus RS-485 в упрощённом виде, то данный интерфейс содержит в себе ведомые и одно главное устройство, соединенные между собой витой парой проводов. Поскольку в основе передачи информации в этой системе лежит принцип дифференциации, сигнал от главного устройства направляется к ведомому по двум переплетенным между собой проводам. Условно их можно обозначить как А и Б. Оригинальный сигнал направляется по проводу А, в то время как его инверсная копия идет по проводу Б. Ведомый контроллер принимая сигнал от 2-х проводов на месте преобразует его в один, распознавая команду, полученную от master.

Между обоими проводами всегда имеется разность потенциалов, с помощью которой и передается сообщение. Реализация способа передачи сообщений по протоколу RS-485 Modbus особенно эффективна в условиях синфазных помех, часто возникающих на производствах. При такой передаче данных невозможно искажение сигнала в целом, поскольку провода в скрутке расположены очень близко относительно друг друга, соответственно, при воздействии на них сторонних помех, потенциал изменяется в одинаковой степени. А передаваемая информация совершенно не искажаются. Неудивительно, что именно протокол передачи Modbus с использованием сети RS-485 стал наиболее оптимальной основой для передачи сигналов OPC сервером протоколов Modbus, интегрированным в систему.

Главным образом сеть RS-485 для передачи данных используют 2 режима протокола Modbus RTU и ASCII. Подробное описание протокола Modbus на русском позволяет активно внедрять его на производства для обеспечения высокого качества связи между оборудованием.

Программная продукция СМИС Эксперт для эффективной работы предприятий

Компания СМИС Эксперт предлагает большой выбор программных продуктов, реализующих протоколы передачи данных Modbus, которые вы можете использовать в условиях своего производства для более эффективной и слаженной работы всего оборудования. Модульный OPC-сервер XPERT способен обеспечить работу устройств по протоколу передачи Modbus независимо от сети, которую они используют. Модуль Modbus поддерживает работу устройств в режимах ASCII, RTU и TCP. Узнать подробнее о данном модуле вы можете в соответствующем разделе сайта или связавшись с нашим сотрудником.

Протокол Modbus TCP и его реализация

Modbus TCP представляет собой один из четырёх основных протоколов Modbus, который передает данные через TCP/IP соединение.

Протокол Modbus TCP обеспечивает обмен сообщениями между клиентами и сервером, при реализации данной модели передачи информации возможно только два типа сообщений: вопрос и ответ. В норме каждому запросу должен соответствовать свой ответ. В обмене сообщениями могут участвовать только 3 типа устройств:

  • сервер;
  • клиенты (ведомые устройства);
  • устройства, обеспечивающие связь между элементами системы.

В системе, реализующей протокол Modbus TCP IP, может быть только одно ведущее устройство со статусом master, которое направляет команды и по очереди опрашивает все ведомые устройства. В качестве ведущего устройства выступает OPC Modbus TCP server.

Описание протокола Modbus TCP

Протокол Modbus TCP работает по следующему принципу: OPC Modbus TCP server со статусом master направляет сообщение ведомому устройству, затем к нему через заданный промежуток времени поступает ответ. Если ответ не получен, то сервер автоматически считает, что устройство вышло из строя или случилась другая неполадка и сигнализирует об этом. В качестве сервера обычно выступает компьютер, который инициирует передачу данных устройствам по заранее заданному алгоритму.

Среди 4-х разновидностей протоколов Modbus протокол Modbus TCP обеспечивает возможность передавать сигналы устройствам по сети Ethernet. Если вы планируете обеспечивает связь таким образом, то внедрение протокола Modbus необходимо. В качестве ведомых устройств в системе можно перечислить такие элементы как контроллеры, датчики и регуляторы. При нормальном функционировании они быстро откликаются на запросы ведущего устройства, однако самостоятельно инициировать передачу данных не могут и вынуждены ждать опрос от мастера, чтобы передать информацию о возможных проблемах. Несмотря на зарубежное происхождение протокола Modbus TCP описание протокола во всех подробностях доступно на русском, и он широко применяется в системах контроля на предприятиях разного назначения.

Структура обмена данными по протоколу Modbus TCP

Для обмена Modbus-сообщениями по физическим линиям связи устройство-master в каждом сообщении указывает адрес того или иного устройства (слейв), находящегося в сети, а также назначение и характер запроса. Таким образом, формируется пакет ADU, структура такого пакета для протокола Modbus TCP включает в себя:

  • ID обмена. Хотя изначально подразумевается, что статус для каждой операции будет уникальным, на практике это обычно два нуля. Если мастер направляет устройству несколько последовательных запросов, ID меняется.
  • ID протокола. Также два нуля.
  • Длина пакета. Младший и старший байт.
  • Адрес слейва. Адрес устройства, которому предназначена команда.
  • Код функции. Собственно требование от ведущего устройства к ведомому для выполнения конкретной операции: «запись», «чтение» и т.д.
  • Данные. Информация, которая нужна для выполнения команды.

Функции Modbus OPC Server

Назначение OPC сервера Modbus сводится к обеспечению связи с устройствами по каналам RTU, ASCII и TCP. Сам OPC сервер Modbus является Виндовс-приложением, которое устанавливается на компьютер. Теперь он может реализовать функции ведущего устройства. OPC Modbus TCP server направляет команды слейвам по чтению и записи данных.

Модуль Modbus СМИС Эксперт может поддерживать протоколы RTU, ASCII и TCP. OPC сервер Modbus TCP выполняет три ключевые функции:

  • Чтение/запись значений полученных от слейв-устройств в каналы базового приложения;
  • Передача команд от master-устройства к подключенным клиентам;
  • Определение работоспособности слейвов.

Функции ModBus

Подавляющее большинство ModBus контроллеров используют только 3 функции.

Код функции Название Описание
03 READ HOLDING REGISTERS Чтение значений одного или нескольких регистров хранения
06 FORCE SINGLE REGISTER Запись в один регистр хранения
16 FORCE MULTIPLE REGISTERS Последовательная запись нескольких регистров хранения

Детальное рассмотрение функций

Функция 03 – чтение регистров хранения

Используется для чтения значений нескольких регистров хранения. В запросе передается адрес первого элемента таблицы регистров, значение которого необходимо прочитать и количество считываемых регистров. Для адреса и количества используются 16ти разрядные числа. Старший байт передается первым.

Запрошенные данные содержатся в ответе. Перед блоком данных передается байт, который содержит число прочитанных данных в байтах.

Формат запроса функции чтения регистров хранения.

Номер байта Номер байта в параметре Параметр Пример чтения регистров с адресами 8 и 9
0 0 Адрес контроллера 01 01
1 0 Функция 03 03
2 1 Начальный адрес регистров 0008 00
3 0 08
4 1 Количество регистров 0002 00
5 0 02
6 1 Контрольная сумма 45C9 45
7 0 С9

Ответ (адрес ведомого, код функции, количество прочитанных байтов, значения регистров).

Номер байта Номер байта в параметре Параметр Пример чтения регистров с адресами 8 и 9
0 0 Адрес контроллера 01 01
1 0 Функция 03 03
2 0 Количество прочитанных байтов 04 04
3 1 Значение регистра 8 12A5 12
4 0 A5
5 1 Значение регистра 9 E020 E0
6 0 20
7 1 Контрольная сумма A770 A7
8 0 70

Функция 06 – запись в один регистр хранения

Используется для записи в единичный регистр. В запросе передается адрес регистра и значение для него. При успешном выполнении ведомый контроллер в ответе передает копию запроса.

Формат запроса функции записи одного регистра хранения.

Номер байта Номер байта в параметре Параметр Пример записи в регистр 9 значения 12A5
0 0 Адрес контроллера 01 01
1 0 Функция 06 06
2 1 Адрес регистра 0009 00
3 0 09
4 1 Значение регистра 12A5 12
5 0 A5
6 1 Контрольная сумма 9513 95
7 0 13

Ответ (повторяет запрос).

Номер байта Номер байта в параметре Параметр Пример записи в регистр 9 значения 12A5
0 0 Адрес контроллера 01 01
1 0 Функция 06 06
2 1 Адрес регистра 0009 00
3 0 09
4 1 Значение регистра 12A5 12
5 0 A5
6 1 Контрольная сумма 9513 95
7 0 13

Функция 16 – запись значений в регистры хранения

Используется для записи в несколько регистров, последовательно расположенных в таблице .

В запросе передается адрес первого регистра, количество регистров и значения для них.

В ответе возвращается начальный адрес и количество измененных регистров.

Формат запроса функции записи регистров хранения.

Номер байта Номер байта в параметре Параметр Пример записи в регистр 9 значения 12A5
0 0 Адрес контроллера 01 01
1 0 Функция 10 10
2 1 Начальный адрес регистров 0008 00
3 0 08
4 1 Количество регистров 0002 00
5 0 02
6 0 Счетчик байтов 04 04
7 1 Значение регистра 8 12A5 12
8 0 A5
9 1 Значение регистра 9 E020 E0
10 0 20
11 1 Контрольная сумма AF4A AF
12 0 4A

Ответ (адрес ведомого, код функции, начальный адрес и количество регистров).

Номер байта Номер байта в параметре Параметр Пример записи регистров с адресами 8 и 9
0 0 Адрес контроллера 01 01
1 0 Функция 10 10
2 1 Начальный адрес регистров 0008 00
3 0 08
4 1 Количество регистров 0002 00
5 0 02
6 1 Контрольная сумма С00A C0
7 0 0A

Модуль ввода Modbus: принцип работы и применение

Модуль ввода-вывода Modbus представляет собой устройство, которое устанавливается в сетях для обеспечения удаленного доступа к сети оборудования. Модуль такого рода позволяет увеличить количество каналов для передачи данных как к оборудованию, так и от него.

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

  • дискретные;
  • аналоговые.

Дискретные модули созданы для приёма и последующего анализа дискретных сигналов, по завершении которого они передаются на главное устройство.

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

В дискретных и аналоговых системах передачи данных используется различные сигналы, которые передаются в унифицированном диапазоне. Контроль передачи сигналов в таких системах обеспечивается по принципу «master-slave». В таком случае модуль ввода Modbus RTU играет роль ведомого устройства, то есть slave.

Процессор модуля, получив инициирующий сигнал от главного устройства, осуществляет опрос всех подключенных каналов и фиксирует их состояние, после чего отправляет полученные значения для master. Однако в некоторых системах модуль ввода-вывода Modbus может исполнять роль ведущего устройства в сети, инициируя посыл сигнала и опрос подключенных пользователей. Получив данные, он фиксирует значения.

Среди особенностей, которыми обладает модуль ввода-вывода Modbus можно перечислить:

  • возможность контроля напряжения в электрической системе;
  • проведение калибровки показаний от приборов и их линеаризация;

Модуль аналогового ввода Modbus

Модуль аналогового ввода Modbus представляет собой надежное и эффективное решение, которое обеспечивает качественную связь между устройствами, составляющими единую сеть. Это универсальное оборудование. Оно может быть интегрировано в качестве ведомого устройства, которое может быть опрошено любым контролирующим устройством в сети, выступающим в качестве «мастера», им может быть ПК, контроллер и т.д.

Также модули ввода-вывода Modbus RTU и Modbus TCP свободно могут интегрироваться в систему, которая находится под контролем OPC сервера «Xpert». Он представляет собой устройство типа «мастер», который может одновременно контролировать модуль ввода-вывода Modbus TCP и модуль ввода вывода Modbus RTU, а также другие модули, работающее на основе различных протоколов. Использование данного сервера особенно удобно на крупных промышленных объектах, где просто невозможно задействовать оборудование, работающее с использованием только одного протокола.

Области использования модуля ввода-вывода Modbus

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

В общих чертах области применения данных модулей сводятся к:

  • автоматизации удаленного производственного оборудования, расположенного локально;
  • организации систематического получения и отправки данных;
  • обеспечение работы в автоматизированном режиме различных линий, участков на производстве (сборочные и конвейерные линии, станочные комплексы);
  • установке удаленного диспетчерского контроля на обширных промышленных комплексах.

Модульный OPC-сервер XPERT. МОДУЛЬ MODBUS Версия 1.1.0.10

АННОТАЦИЯ

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

Содержание и оформление руководства программиста подготовлено в соответствии с ГОСТ 19.504-79.

1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ

Назначение программного модуля.

Модуль Modbus входит в состав программного комплекса модульный OPC сервер «XPERT» и предназначен для чтения/записи данных по протоколу Modbus.

Функции программы.

Модуль Modbus должен обеспечивать:

  • чтение/запись данных;
  • определение работоспособности устройств;
  • поддержку протоколов RTU, ASCII, TCP.

Технические требования.

Модуль предназначен для функционирования только в составе модульного OPC сервера «XPERT».

Требования в техническим средствам см. «Руководство программиста модульный OPC сервер «XPERT».

2. ХАРАКТЕРИСТИКИ МОДУЛЯ

Структура программы и составные части.

Дополнительные файлы, создаваемые модулем:

  • STModbus.xml – содержит конфигурацию модуля. Создается в папке /Configure.

Основные характеристики.

Возможности программы:

  • Чтение данных с устройства Modbus.
  • Определение и передача данных о работоспособности устройств.
  • Поддержка протоколов:
    • Modbus ASCII Master - для обмена используются только ASCII символы. Для передачи данных преимущественно используются последовательные линии связи RS-48.5, RS-422, RS-232. Устройство выступает в качестве ведущего (инициирует запросы с ведомых устройств).
    • Modbus RTU Master - компактный двоичный вариант. Для передачи данных преимущественно используются последовательные линии связи RS-485, RS-422, RS-232. Устройство выступает в качестве ведущего.
    • Modbus TCP Master - для передачи данных через TCP/IP соединение. Устройство выступает в качестве ведущего.
    • Modbus TCP Slave - для передачи данных через TCP/IP соединение. Устройство выступает в качестве ведомого (ждет запросов от ведущих устройств). Список поддерживаемых функций:
      • 01 READ COIL STATUS. Получение текущего состояния (ON/OFF) группы логических ячеек.
      • 02 READ INPUT STATUS. Получение текущего состояния (ON/OFF) группы дискретных входов.
      • 03 READ HOLDING REGISTERS. Получение текущего значения одного или нескольких регистров хранения.
      • 04 READ INPUT REGISTERS. Получение текущего значения одного или нескольких входных регистров.
      • 05 FORCE SINGLE COIL. Изменение логической ячейки в состояние ON или OFF.
      • 06 FORCE SINGLE REGISTER. Запись нового значения в регистр хранения.
      • 15 FORCE MULTIPLE COILS. Изменение состояния (ON/OFF) нескольких последовательных логических ячеек.
      • 16 FORCE MULTIPLE REGISTERS. Изменение значений нескольких последовательных регистров.
  • Конфигурирование параметров запросов регистров.

3. ПОДКЛЮЧЕНИЕ МОДУЛЯ

Вызов модуля.

Перед запуском модуля в составе OPC сервера «XPERT» необходимо проверить:

  • В ключе защиты прописана лицензия на модуль (Идентификатор модуля: «STModbus»). Подробнее см «Руководство программиста Модульный OPC сервер «XPERT».
  • Модуль STModbus.dll находится в директории …/Drivers

Запустите программу Модульный OPC сервер «XPERT» – исполняемый файл STenv.exe

 

Рисунок 1

Рисунок 1.

При удачном запуске появится окно Модульный OPC сервер «XPERT» 2.1 и модуль Modbus появится в списке подключенных модулей 2.2.

 

Рисунок 2

Рисунок 2.

4. РАБОТА С МОДУЛЕМ

Добавление устройства.

Для добавления устройства перейдите на модуль 2.2 нажмите на кнопку «Добавить устройство» 2.1. Откроется окно добавления устройства.

На первой вкладке задаются общие параметры для Modbus устройств.

 

Рисунок 3

Рисунок 3.
  • Протокол 3.1 – позволяет выбрать протокол взаимодействия. Поддерживаются Modbus RTU Master, ASCII Master, TCP Master/Slave.
  • Количество попыток при неудачном запросе 3.2 – позволяет задать количество попыток неудачных запросов после которого по каналу ядра определится ошибка (параметр используется в запросах чтения значений регистров).

Добавление Modbus RTU и ASCII.

В поле выбираем необходимый протокол и нажимаем на кнопку «Далее» 3.3.

В следующем окне необходимо задать параметры COM порта. Подробнее о параметрах для COM порта 4.1 см. руководство для подключаемого устройства. О самих параметрах см. Приложение 1.4. Параметры COM порта. Для перехода к следующему шагу нажмите «Далее» 4.2.

 

Рисунок 4

Рисунок 4.

Добавление TCP Master.

При добавлении устройства, поддерживающего TCP Master, на следующем шаге откроется окно:

 

Рисунок 5

Рисунок 5.

В данном окне необходимо заполнить следующие параметры TCP Modbus устройства:

  • IP адрес устройства 5.1 – IP адрес устройства, к которому необходимо подключиться.
  • Порт 5.2 – порт через который осуществляется TCP соединение
  • Таймаут подключения 5.3 – задает таймаут на подключение в миллисекундах.
  • Таймаут чтения 5.4 – задает таймаут ожидание на запрос чтения запроса значения регистра(ов).

Для перехода на следующий шаг заполнения параметров устройства нажмите на «Далее» 5.5.

Добавление TCP Slave.

При добавлении TCP Slave необходимо на следующем шаге указать лишь порт устройства 6.1. Устройство создаст TCP Server на данном порту, и будет ожидать запросов.

 

Рисунок 6

Рисунок 6.

На последнем этапе необходимо задать типовые параметры устройства 7.1. Подробнее о данных параметрах см. Приложение 1.1 Типовые параметры устройств.

Для добавления устройства нажмите «Создать» 7.2. Новое устройство появится в списке устройств 8.2 в группе модуля Modbus 8.1.

 

Рисунок 7

Рисунок 7.

 

Рисунок 8

Рисунок 8.

Удаление устройства.

Для удаления устройства выделите устройство в списке устройств 9.1 – нажмите на «Удалить устройство» 9.2 - подтвердите удаление 9.3.

 

Рисунок 9

Рисунок 9.

Настройка устройства.

Для перехода на форму настройки устройства: выделите устройство 10.1 в списке устройств – в левой части отобразится форма настройки устройства 10.2.

 

Рисунок 10

Рисунок 10.

Форму можно разделить на две части:

  • Панель групп 10.3. Подробнее об использовании основных возможностей панелей групп см. Приложение 1.2. Работа с группами.
  • Таблица регистров 10.4. В данной таблице отображается список регистров выделенной группы. (Все регистры объединяются в группы).

Добавление запросов на чтение регистров.

Для добавления запроса чтения регистра(ов): выделите группу 11.1 в которую необходимо добавить регистры, нажмите на кнопку «Добавить регистр» 11.2, введите параметры регистра 11.3 - 11.10.

 

Рисунок 11

Рисунок 11.
  • Номер устройства 11.3 – задаёт номер Modbus устройства для регистра.
    • 01 COIL STATUS - однобитовый тип, доступен для чтения и записи;
    • 02 INPUT STATUS - однобитовый тип, доступен только для чтения;
    • 03 HOLDING REGISTERS - 16-битовый знаковый или беззнаковый тип, доступен только для чтения;
    • 04 INPUT REGISTERS - 16-битовый знаковый или беззнаковый тип, доступен только для чтения.
  • Смещение 11.5 – задает адрес регистра в таблице для выбранной выбранного типа.
  • Тип переменной 11.6 – задаёт тип переменной. Возможные значения:
    • Целое 32 - 32 битное целое знаковое значение;
    • Слово – 16 битное целое беззнаковое значение;
    • Двойное слово - 32 битное целое беззнаковое значение;
    • Вещественное64 – 64 битное вещественное значение;
    • Вещественное32 – 32 битное вещественное значение;
    • Строка – строковый тип данных;
    • Логический – 1 битовое значение. Принимает значение 1 либо 0;
    • для COIL STATUS и INPUT STATUS регистров выбор типа ограничен типом «Логический».
  • Количество переменных 11.7 – задает количество переменных заданного типа которое необходимо считать за один запрос. Данный параметр может использоваться для быстродействия операции считывания, за один запрос можно считать сразу несколько регистров. Максимальное значение для 16 битных типов – 125; для 32 битных – 62; для 64 битных – 31. Для примера, если задана функция «HOLDING REGISTERS» тип «Целое 32» и задано количество регистров «4». За один запрос будет считываться 4 * 2 (для типа Целое 32 необходимо два 16 битных регистра) – 8 регистров (каждый регистр 16 бит).
  • Формат 11.8 - определяет порядок применения регистров при формировании результата. Используется для запросов к котором указаны следующие типов: Целое32, Двойное слово, Вещественное32, Вещественное64. Возможные значения:
    • 1_2 – используется прямой порядок регистров при формировании результата для типов использующих больше 16 бит.
    • 2_1 – используется обратный порядок регистров при формировании результата для типов использующих больше 16 бит.
  • Каналы ядра 11.9 – задает название канала для ядра. При добавлении регистра в группе устройства создастся соответствующий канал – в который будут записываться значения регистров. Если параметр «Количество регистров» задано больше 1 12.1, для каждой переменной создаётся своя привязка на канал ядра 12.2.
     

    Рисунок 12

    Рисунок 12.
  • Количество однотипных запросов 11.10 – позволяет за одно заполнение параметров запроса создать заданное количество однотипных запросов.

Необходимо помнить, чтоб при выбранном типе в запросе будет участвовать столько регистров сколько необходимо для данного типа. Например, если выбран функция «03 HOLDING REGISTERS», а тип переменной задан как «Двойное слово», то за один запрос будет вычитано два регистра. Так как тип «Двойное слово» имеет 32 битный целый формат, а в регистре «03 HOLDING REGISTERS» помещается только 16 битов.

После настройки вышеуказанных параметров для добавления нажмите «Добавить» 11.1.

Пример настройки параметров запросов.

Для примера заданы следующие параметры для запросов:

  • Количество переменных 13.1 равно 4.
  • Количество однотипных запросов 13.1 равно 2.

 

Рисунок 13

Рисунок 13.

В итоге будет создано два запроса 14.1 для чтения 4 переменных 15.1 типа «Вещ.64». (Для отображения невидимых колонок таблицы воспользуетесь скролом 15.2).

 

Рисунок 14

Рисунок 14.

 

Рисунок 15

Рисунок 15.

Добавление запросов списком.

Добавление списком – данная возможность позволяет заполнить сначала список параметров запросов регистров, а затем добавить их. Бывает удобно пользоваться данной возможность если у вас где-то уже сформирован этот список в виде таблицы, например, в MS Excel.

Для добавления списком: нажмите «Добавить регистры» 16.1 - откроется форма «Добавление списком».

 

Рисунок 16

Рисунок 16.

Для добавления элементов по одному воспользуйтесь кнопкой «Добавить регистр» 16.2.

Для удаления элемента из списка: выделите элемент 16.3 – нажмите на кнопку «Удалить выделенные регистры» 16.4.

Для вставки элементов из буфера в таблицу: скопируйте элементы в буфер обмена – в контекстном меню выберите пункт «Вставить» 16.5.

Для вставки элементов из буфера только в выбранный столбец: скопируйте элементы в буфер – на выбранном столбце в контекстном меню выберите пункт «Вставить в столбец» 16.6.

Если список сформирован, для добавления элементов списка нажмите на «Добавить» 16.7.

Таблица списка запросов.

Список параметров для регистров Modbus TCP Slave отличается от списка параметров для регистров Modbus ASCII/ RTU/ TCP Master. На рисунке представлена панель Modbus ASCII/ RTU/ TCP Master.

 

Рисунок 17

Рисунок 17.
  • Индекс 17.1 – отображает номер запроса в устройстве.
  • Уст-во 17.2 – номер Modbus устройства.
  • Функция 17.3 – отображает тип регистра (отображает функцию чтения).
  • Адрес 17.4 – смещение для регистра.
  • Регистр 17.5 – отображает номер регистра в таблице регистров согласно спецификации Modbus.
  • Тип 17.6 – тип переменной. От типа зависит количество регистров для чтения.
  • Формат 17.7 – порядок байтов при формировании итогового числа ().
  • Описание 17.8 – дополнительное описание регистра. Используется для справочных целей.
  • QC 17.8 – Quality Check. Активирует проверку Quality у привязанного канала. Используется только для устройства Modbus TCP Slave. Если свойство активировано и Quality у канала отлично от 192, то на запрос значения регистра устройство вернет ошибку 03 ( ILLEGAL DATA VALUE - значения в поле данных недопустимы для данного SLAVE).
  • Поле записи 17.9 – дает возможность задать поле канала базового приложения, в которую будут записываться значения при запросе на запись.
  • Переменная 0 17.10 – отображает привязку каналов к регистрам. Позволяет также изменить привязку. Подробнее об изменении привязок см. Приложение 1.3. Диалоговое окно выбора каналов.
  • Кол-во 17.11 – отображает количество переменных (заданного типа), которое необходимо считать за один запрос. Позволяет сократить время циклического запроса большого количества регистров. Используется только для устройств типа Modbus Master. К каждой переменной привязывается свой канал базового приложения.

Работа с каналами ядра.

Каждый параметр 18.3 запроса 18.1 Modbus устройства 18.3 привязывается к каналу 19.2 базового приложения (ядра) 19.1.

 

Рисунок 18

Рисунок 18.

 

Рисунок 19

Рисунок 19.

Для быстрого перехода к каналу базового приложения из форму устройства: выделите ячейку 20.1, указывающего на канал базового приложения – в контекстном меню выберите пункт «Перейти к каналу ядра» 20.2 - указатель перейдет на выделенный канал базового приложения 21.2.

 

Рисунок 20

Рисунок 20.

 

Рисунок 21

Рисунок 21.

Работа с привязанным каналом Modbus Master.

При чтении регистра Modbus Master записывает полученное значение 20.2 в поле «Вх значение» 22.1 привязанного канала (в общем случае поле «Вх значение» 20.1 связано с полем «Значение» 20.3).

При изменение поля «Установка» 22.5 Modbus Master посылает запрос на изменение соответствующего регистра устройства Modbus в соответствии с заданным значением 22.6.

 

Рисунок 22

Рисунок 22.

Работа с привязанным каналом Modbus Slave.

При запросе на чтение значения регистра Modbus Slave возвращает поле «Значение» привязанного канала 23.1.

При запросе на запись Modbus Slave записывает значение в указанное поле 23.2 связанного канала 23.1.

 

Рисунок 23

Рисунок 23.

Дополнительные настройки.

Панель дополнительных настроек позволяет задать следующие настройки

 

Рисунок 24

Рисунок 24.
  • Параметры устройства 24.1 – позволяет изменить типовые параметры устройства. Подробнее см. Приложение 1.1 Типовые параметры устройств.
  • Настройки COM порта 24.2 – позволяет изменить настройки COM порта. Актуально для протоколов ASCII Master, RTU Master. Подробнее см. Приложение 1.4. Параметры COM порта.
  • Настройки Modbus TCP Master 24.3 – позволяет изменить настройки устройства Modbus TCP Master. Подобнее о параметрах см. пункт Добавление устройства.
  • Общие настройки Modbus 24.4 – позволяет изменить типовые параметра Modbus устройства. Подробнее см. пункт Добавление устройства.
  • Настройки Modbus TCP Slave 24.5 – позволяет изменить настройки устройства Modbus TCP Slave. Подобнее о параметрах см. пункт Добавление TCP Slave.

Работа с шаблонами.

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

Для сохранение конфигурации выбранной группы (будет сохранена конфигурация все подгрупп, входящих в выделенную группу) в виде шаблона в файл: выделите группу 25.1 – нажмите на «Создать шаблон для выделенной группы» 25.2 - выберите либо задайте название файла для сохранения 25.3 – нажмите «Сохранить» 25.4.

 

Рисунок 25

Рисунок 25.

Для загрузки конфигурации из шаблона: выделите группу 26.1 в которую будет добавления конфигурация из шаблона – нажмите на «Загрузить регистры из шаблона для выделенной группы» 26.2 - выберите файл с шаблоном 26.3 – нажмите «Открыть» 26.4.

 

Рисунок 26

Рисунок 26.

МОДУЛЬНЫЙ OPC SERVER «XPERT»

Модульный OPC сервер Xpert — это суперкомпактное SCADA-подобное приложение. Это ПО создавалось для работы в составе СМИС.

МОДУЛЬ «MODBUS»

Предназначен для работы с устройствами по протоколу Modbus.