8-900-374-94-44
[email protected]
Slide Image
Меню

Modbus poll мануал на русском: Modbus Poll user manual

Подключение ZETSENSOR к Modbus Poll по протоколу Modbus

В одной из статей мы писали о том, как работать с цифровыми датчиками посредством программы Simply Modbus. Помимо вышеописанной утилиты предлагаем вашему вниманию еще одну программу для работы с нашими устройствами – Modbus Poll. Для правильного использования функций программы в начале надо подключить наш интеллектуальный датчик, поддерживающий протокол передачи данных RS-485, посредством стороннего контроллера или же преобразователя интерфейсов. Далее необходимо зайти в Диспетчер устройств>>Контроллер USB выбрать соответствующее устройство. В нашем случае это ZETSENSOR USB (рис. 1), открыть его свойства и во вкладке Дополнительно выставить галочку напротив «Загрузить VCP» (рис.2).


Рисунок 1


Рисунок 2

Далее необходимо выключить и включить заново контроллер/преобразователь интерфейса к ПК.

Только после проделанных выше операций следует запускать программу Modbus Poll.

После запуска программы необходимо ее настроить должным образом. Для этого зайти в верхнее менюConnection, выбрать пункт Connect…, т.е. подключение к контроллеру, который преобразует USB в COM-порт. Если программа в бесплатном режиме, сперва откроется окно с просьбой ввести регистрационный ключ, следует пропустить данную операцию посредством нажатия кнопки ОК. Далее откроется окно с возможностью выбора устройства (рис.2). Настройте как показано на рисунке 2.

В поле (рис 3.) идет опрос модуля, сканирование любого цифрового датчика (RS-485) ZET 70XX. Как видно на рисунке – имеется ошибка Timeout Error, которая возникает из-за того, что опрашивается устройство с адресом 1, нам же нужно выставить адрес существующего модуля. Узнать адрес модуля можно с помощью программы ZETLAB>>Время ZETServer, предварительно необходимо в Modbus Poll выполнить Disconnect, на рисунке показано, где отображается адрес устройства в ZETLAB.


Рисунок 3


Рисунок 4


Рисунок 5

Возвращаемся вновь к программе Modbus Poll, выполняем Connection>>Connect. Далее следует выставить адрес модуля и другие настройки в окне Setup>>Read/Write Definition как показано на рисунке 6. В ячейке Address выставляем значение, указанное в таблице, в нашем случае используется датчик абсолютного давления ZET 7012 и его адрес «20».

Чтобы получать данные в нужном формате, также необходимо выставить ряд настроек. Необходимо зайти «Display» и выбрать тип переменных, в нашем случае это Float CD AB.

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

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


Рисунок 6


Рисунок 7


Рисунок 8

Работа с устройством Modbus

 

 

Внимание!!!  Организация работы со сторонними устройствами Modbus прежде всего сводится к следующим задачам:

Поиск технической документации на устройство, в которой описана возможность работы в сетях Modbus-RTU или Modbus-TCP

Поиск технической документации на устройство, в которой описаны общие принципы взаимодействия локального и сетевого управления

Поиск технической документации на устройство, в которой описаны система уставок и параметров локального управления

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

Составление карты управляющих регистров и информационных статусов — «Карты памяти»

Составление управляющих последовательностей, необходимых для управления устройством Modbus

Преобразование форматов, используемых внутри контроллера к форматам, используемым внутри устройства Modbus

 

Терминология:

«Контроллер» — любой контроллер Segnetics

«Частотный преобразователь», он же «Преобразователь частоты» (ПЧ), он же «Inverter», он же «Инвертор», он же «Инвертер», он же «Частотник» — устройство, контролирующее работу электродвигателя:  скорость вращения, момент вращения, тормозные характеристики.
 Это устройство является ведомым по отношению к контроллеру

«Ведущий контроллер», он же «Master», он же «Мастер» — устройство, контролирующее работу сети.  Именно это устройство инициирует обмен данными в сети и контролирует порядок обмена между частотными преобразователями

«Ведомое устройство», он же «Slave», он же «Слейв» — устройство, выступающее пассивным абонентом сети.  Это устройство никогда не инициирует обмен данными, единственное что оно может и имеет право сделать — ответить Мастеру на команды чтения или записи данных

«Запрос» — команды чтения или записи, поступающие к Слейвам от Мастера

«Ответ» — ответы Слейва на Запросы

«Обмен данными» — процесс обмена Мастера и Слейва Запросами и Ответами

«Переменная» — единица обмена информацией между Мастером и Слейвом.  Переменные в modbus бывают регистровыми и битовыми («регистры» и «биты»)

 

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

Часто бывает, что устройства довольно-таки отдалённых прошлых лет разработки не отличаются особым «интеллектом», либо вообще работают по принципу автоматов состояний, не допускающих произвольного следования управляющих команд.  Именно для этих устройств может возникнуть нужда составления макросов, реализующих управляющие последовательности.

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

Ярким примером служит сравнение частотных преобразователей Altivar 21 серии (особенно с программным обеспечением первых версий) с частотными преобразователями Delta серии VFD.  Для управления Альтиваром нужно после включения питания дождаться готовности и последовательно произвести инициализацию нескольких модулей внутри самого устройства, непрерывно контролируя состояния этих модулей.  Неправильная команда, либо команда, отданная не вовремя может запросто ввести преобразователь в «состояние аффекта», из которого он выводится не менее сложными последовательностями команд.  Для управления частотником от Дельты достаточно записать нужную частоту в регистр задания и дать команду «Работа» в регистр управления.  Как только это будет возможно, преобразователь самостоятельно инициализирует свои внутренние модули и запустится в работу.

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

 

Итак, ваши действия по шагам:

 

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

 


Шаг второй.  Путём внимательного осмотра наклеек на преобразователе выясняем два номера — это так называемые «ревизии» или «версии» («revision», «rev.», «version», «ver.»).  Между «версией» и «ревизией» нет никакой разницы, какое слово используется — зависит от производителя преобразователя.  Версии бывают двух типов:  аппаратная и программная.  Аппаратная версия определяет внутреннюю схемотехнику преобразователя и нам неинтересна.

 Наша цель — программная версия.  Как правило она обозначается как «SW Version» или «Soft Ver.» или «S/W Version» или другой комбинацией слов «software version».  Иногда чтобы найти номер версии нужно открыть первое попавшее описание и выяснить расположение этой маркировки.  Узнав номер версии подбираем описание, подходящее для этой версии.  Это обязательное действие, т.к. производители преобразователей непрерывно совершенствуют свою продукцию и иногда всё же вносят изменения в программный обмен данными.

 

Из наклейки выясняем, что в ПЧ использована программа управления версии 1.03 и подбираем нужный документ:

 

 


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

«Modbus» — слово для поиска широкого спектра, применяется для определения требующих просмотра мест в документе

«RTU» — слово, позволяющее быстро выяснить наличие у устройства именно Modbus-RTU.  Modbus-ASCII не подходит!

«Baud» — по этому слову можно быстро найти место, описывающее возможности и настройки связи в преобразователе:

 

 


Шаг четвёртый.  Ищем схему подключения кабеля связи и цоколёвку разъёма.  Здесь очень хорошие результаты даёт поиск по словам «connection» и «485».

 


Шаг пятый.  Ищем описание регистров Modbus.  Правильное название этого описания — «карта памяти» («memory map»).  Регистры ещё могут называть как «переменные», «слова управления», «регистры управления», «слова состояния» («control map», «status map», «register map», «modbus variables»):

 

 

В подавляющем числе случаев регистр управления содержит в своем названии слово «Command» — «команда».  Регистр задания скорости так и называется: «Speed reference» или «Speed setpoint».

 


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

 

Итак, физическая адресация.  Её признаки следующие:

Нумерация (адресация) переменных может быть с нуля

Нумерация часто осуществляется в шестнадцатиричной системе счисления (пометка «HEX» в таблице)

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

 

Прямые признаки логической адресации:

Нумерация (адресация) всегда с единицы, т.е. если вы видите нулевой номер переменной, то это точно НЕ логическая адресация

Нумерация всегда осуществляется в десятичной системе счисления

Нумерация всегда пятизначная, например: 40001, 00001 и т.
д.

Адреса двух переменных не могут совпадать, т.е. если вы видите совпадающие адреса переменных, то это точно НЕ логическая адресация

 

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

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

 

       Что же такое физическая адресация и чем она отличается от логической?

 

Карта памяти, представленная на рисунке ниже, являет собой пример неудачного оформления распределения переменных.  С одной стороны, такие технические детали, как колонка «Command» и «Type» как правило не приводятся в документации, описывающей логические адреса:  из самого адреса и так понятно, что читаем или что записываем и как мы это делаем.  С другой стороны, нумерация переменных производится с единицы безо всякой видимой причины, что является недвусмысленным намёком, что адреса всё же логические.  Но опять же, логические адреса не записываются в таком виде, они должны быть записаны числом, имеющем пять цифр.

 

 

В итоге принимаем, что всё же это логическая адресация.  Следовательно интересующие нас переменные «Command», «Speed reference» и «Error code / Drive status» в карте памяти SMLogix будут выглядеть следующим образом:

 

 

Пояснения к карте памяти:

Т.к. мы решили, что в описании использована логическая адресация, то вычитаем единицу из адреса переменных.  В итоге переменная «Command» описана нами как имеющая нулевой адрес, «Speed reference» адрес «1», а «Error code / Drive status» адрес соответственно «5»

В колонке «Command» описания указаны функции чтения записи переменных.  Эти функции соответствуют Holding register, т.е. направление «Out» («выходы») в карте памяти SMLogix

В колонке «Type» описания даны указания, что переменная «Error code / Drive status» может быть только прочитана, запись в неё запрещена.  Для реализации этой функции выбираем в карте памяти направление «R(out)», т.е. «чтение выхода»

Тип переменных integer — это однозначно соответствует регистрам в modbus

Период опроса выбран 100 мс по следующим соображениям:  у нас всего три переменные и всего один ПЧ, поэтому мы вольны опрашивать его с любой скоростью.  Но FBD-программа по умолчанию работает с циклом 100 мс и поэтому более частый опрос ПЧ попросту не нужен.  А объективных причин замедлять опрос нет

 

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

 


Шаг седьмой.  Шаг довольно-таки ответственный.  Если до этого момента все устройства по сути не отличались друг от друга, то здесь уже между различными устройствами лежит пропасть в виде различающихся моделей поведения.  Где-то достаточно записать одно число в один регистр, где-то нужно записать пять регистров и ещё два вычислить и записать в другие места.  Естественно в этом примере нельзя объять необъятное, поэтому дальнейшее описание можно воспринимать как указание направления поиска, а не как руководство к действию.

Находим описание управления через modbus:

 

 

В данном случае функции управления сконцентрированы в регистре, названном «Drive command».  Регистр разделён на 16 частей — битов.  Каждый бит выполняет свою уникальную функцию.

Обратите внимание:  здесь регистр управления назван как «Drive command», а в карте памяти он же имеет название просто «Command».  Это связано исключительно с невнимательностью составителей документации, никаких других, в том числе и скрытых смыслов данное разделение не имеет.  К этому нужно относиться как к данности.

В FBD-программе кодирование битов в регистр осуществляется блоком «bool->int» из раздела «Преобразование типов»:

 

Этот блок нужно перетащить в программу и в его свойствах задать 4 входа, после чего блок примет свой конечный вид, изображённый справа на рисунке выше.  Почему четыре входа?  Это следует из описания регистра «Drive command» — в нём использованы младшие 4 бита: «bit0», «bit1», «bit2» и «bit3».  Эти биты соответствуют входам «bool0»..»bool3″ блока «bool->int».  Для удобства блок можно оформить в макрос, подписав биты осмысленными названиями:

 

Далее разбираемся с переменной задания скорости:  из описания следует, что записывать нужно значение в десять раз большее чем то, которое мы хотим установить.  Так, для установки 12.3Гц в эту переменную нужно записать число 123.  Это число внутри ПЧ поделится на 10 и будет получено актуальное значение скорости в герцах.  Такой приём часто применяется из-за отсутствия в modbus переменных вещественного типа.

 

 

Для удобства можно составить нехитрый макрос:

 

Теперь очередь переменной, отражающей состояние ПЧ и возникающие в нём ошибки.  Находим описание этой переменной и составляем макрос для удобства нашего восприятия.  При составлении макроса пользуемся блоком, раскодированием битов из регистра.  Этот блок называется «reg16->bits».

 

 

 

Однако макрос, обрабатывающий эту переменную сложнее, чем оба предыдущих.  Это связано с тем, что одна и та же переменная фактически служит для реализации двух разных задач:  индикации состояния ПЧ с одной стороны и для индикации произошедших с ним ошибок и аварий.

Таким образом, нам нужно разделить полученную переменную на две части и обработать их в соответствии с данными описания на ПЧ.  Первое, что мы делаем, это разделяем полученную переменную на две части — верхние 8 бит (это код ошибки) и нижние 8 бит (код состояния):

 

Далее обрабатываем нижние 8 бит (нижнее слово).  В нём содержится число, отражающее состояние ПЧ:  «0» — двигатель остановлен, «1» — двигатель запущен и «2» — произошла ошибка.  Для этого используем блок DC — демультиплексор, который выдаёт единицу на тот выход, номер которого пришёл на его вход:

 

Аналогичным образом поступаем с верхним словом за той разницей, что демультиплексор включается при получении состояния ПЧ «Tripped» — это явно указано в описании на ПЧ:

 

В итоге получаем макрос, который удобен для нашего понимания:

 

Теперь подключаем все три макроса к «своим» переменным и создаём программу-стенд для проверки полученной информации.  Программа проста, она позволяет запустить двигатель нажатием кнопки «Enter» на контроллере и остановить двигатель её отпусканием.  Также, при возникновении аварии, её можно сбросить нажатием на кнопку «Esc».  Частота вращения двигателя установлена как 25.5Гц.  В исходном состоянии должна гореть вторая снизу лампочка на лицевой панели контроллера, после запуска двигателя она должна погаснуть и загореться нижняя, показывающая работу двигателя.  При возникновении какой-либо аварии включится «пищалка» контроллера, привлекая наше внимание:

 


Шаг восьмой.  Настройка ПЧ на работу по сети.  По умолчанию все приборы имеют настройку на локальное управление — с панели оператора или со специально выделенных для этого входов.

Находим описание настройки управления через modbus, используя выражения «switch control», «DI function», «modbus».  В итоге находим, что на панели оператора ПЧ нужно произвести следующие действия:

Уставке P12 нужно задать значение «3» — modbus w/internal ramp (управление через modbus)

Уставке P15 нужно задать значение «0» — DI function (режим работы входов «0» — управление переключателем)

Уставке P36 нужно задать значение «Addr1», «57. 6″, «t3000» — настройка порта ввода/вывода ПЧ на скорость 57600

Замкнуть перемычкой клеммы «1» и «2» на ПЧ для разрешения работы

Полностью параметры порта выглядят как 57600 8N1 — проверку чётности и количество стоповых битов изменить невозможно, задаём соответствующие настройке в карте памяти в SMLogix:

 


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

Скопируйте настройки из утилиты опроса MODBUS в наш регистратор данных Modbus

  • Расширенный монитор последовательного порта
  • Виртуальный нуль-модем
  • TCP COM-мост
  • Шлюз MODBUS
  • Эмулятор данных COM-порта
  • Стресс-тест COM-порта
  • Программное обеспечение регистратора данных
  • Программное обеспечение MODBUS

Усовершенствованный регистратор последовательных данных

Доверяйте!

Для Windows 2000 — Windows 11 (2019) (включая Сервер, x86 и x64). Последняя версия: 4.7.0 сборка 1223 . 23 декабря 2022 г.


Версия для печати

Сценарий проблемы:

Я могу успешно протестировать и считать данные с моего устройства MODBUS RTU с помощью программного обеспечения MODBUS Poll . Как я могу скопировать настройки запроса MODBUS в ваш регистратор, если я хочу экспортировать данные в базу данных?

Требования:

  • Advanced Serial Data Logger Professional, Enterprise или пробная версия для MODBUS RTU.
  • Advanced TCP/IP Data Logger Professional, Enterprise или пробная версия для MODBUS/TCP.

Предполагается, что:

Вы можете успешно считывать данные с вашего устройства MODBUS, используя Опрос MODBUS (рис. 1).

Решение:

1. Создайте новую конфигурацию из главного окна с помощью кнопки «Зеленый плюс». (рис. 3). В этом примере показаны настройки подключения для MODBUS RTU. Если ваше устройство использует MODBUS TCP, посмотрите здесь. Сначала скопируйте настройки связи из опроса MODBUS (Подключение → Подключить, рис. 1, 2):

  • COM-порт, Бод, Биты данных, Четность, Стоповые биты.
  • Шпионский режим — отключить эту опцию.
  • Переключатель RTS (рис. 2) → режим RS485. Включите эту опцию, если вы подключили свои устройства MODBUS к шине RS-485 и используете преобразователь RS485-USB или RS485-RS232.
  • DTR → Управление потоком данных → Использовать DTR.
  • DSR/CTS → Управление потоком данных → Требовать DST/CTS.
  • Другие параметры — оставьте значение по умолчанию, как показано ниже.


Рис. 1: Настройка подключения для опроса MODBUS.


Рис. 2: Расширенная настройка опроса MODBUS.


Рис. 3: Настройка подключения регистратора данных MODBUS.

2. Активировать плагин «MODBUS RTU» в настройках в обоих полях «Модуль запроса данных» и «Модуль парсера». Пожалуйста, не путайте его с «MODBUS RTU [пассивный]» или «MODBUS RTU [подчиненный]», потому что они реализуют другие функции. Настраиваем мастер-станцию ​​MODBUS.


Рис. 4: Активация плагина MODBUS RTU.

3. В настройках плагина MODBUS RTU нажмите кнопку «Действие → Добавить новый запрос», чтобы добавить новый запрос запроса (рис. 6). Скопируйте базовые настройки запроса из опроса MODBUS (Setup → Read/Write Definition, рис. 5):

  • Идентификатор подчиненного устройства → Адрес устройства.
  • Функция → Функция.
  • Адрес (декабрь) → Первый регистр — значение.
  • Количество → Регистры для чтения.
  • Тайм-аут ответа (рис. 1) → Тайм-аут запроса (мс).
  • Скорость сканирования → Интервал опроса.

Примечание. Рисунок 6 является примером. Не соответствует настройкам на рисунке 5.


Рис. 5: Опрос MODBUS: Основные настройки запроса MODBUS.


Рис. 6: Регистратор: основные настройки запроса MODBUS.

4. Добавить только один элемент ответа, нажав кнопку «Действие → Добавить элемент ответа», если его нет в списке (рис. 8).

  • Имя — любое имя этого значения.
  • Смещение — это смещение в байтах в ответных данных без учета адреса устройства, функционального кода и размера данных. Установите это значение на «-1», и программа автоматически рассчитает смещение.
  • Количество — количество последовательных значений с одинаковым типом данных и именем. Это значение зависит от «Регистры для чтения» и «Тип данных». Один регистр содержит 16 бит. Таким образом, Count = Регистры для чтения * 16 / бит в значении.
  • Счетчик добавления — используется, когда «Количество» больше 1.
  • Тип данных — скопировать тип данных из меню «Дисплей» (рис. 7).
  • Unsigned — включите эту опцию, если тип данных в опросе MODBUS не имеет знака.
  • Little-endian — аналогично опции «Little-endian» в опросе MODBUS.
  • Swapped — то же самое, что опция «Byte swap».

Примечание. Рисунок 8 ниже является примером. Это не соответствует пунктам ответа на рис. 5 и 7. Правильное определение типа данных «32-битный знаковый, с обратным порядком байтов» в опросе MODBUS:

  1. Имя: ЗНАЧЕНИЕ, Смещение: -1, Счетчик добавления: Вкл., Счетчик: 5, Тип данных: Десятичный 32-разрядный, Без знака: Выкл., Little-endian: Выкл., Перестановка: Выкл.


Рис. 7: Опрос MODBUS: дисплей.


Рис. 8: Элементы ответа MODBUS.

Часто задаваемые вопросы

Как опросить несколько устройств MODBUS RTU?

MODBUS RTU позволяет подключить до 254 устройств на одну шину RS-485. Вы можете указать несколько адресов, таких как 1,2,3,4,5 в поле » Адрес устройства » (рис. 3).

Могу ли я опрашивать устройства MODBUS TCP?

Да, конечно. TCP вместо MODBUS RTU на шаге 2). , Лэндис+Гир)

Подробнее о:

Интерфейс последовательного порта Регистратор портов RS232 Регистратор COM-порта Регистратор данных RS232 Программное обеспечение регистратора данных для счетчика электроэнергии RS232 к ODBC RS232 к MySQL RS232 к серверу MS SQL RS232 к базе данных

Опрос MODBUS RTU: Настройка главной станции

  • Расширенный монитор последовательного порта
  • Виртуальный нуль-модем
  • TCP COM-мост
  • Шлюз MODBUS
  • Эмулятор данных COM-порта
  • Стресс-тест COM-порта
  • Программное обеспечение регистратора данных
  • Программное обеспечение MODBUS

Усовершенствованный регистратор последовательных данных

Доверяйте!

Для Windows 2000 — Windows 11 (2019) (включая Сервер, x86 и x64). Последняя версия: 4.7.0 сборка 1223 . 23 декабря 2022 г.


Версия для печати

Задача:

Опрос MODBUS для двух устройств MODBUS и запись полученных данных в базу данных.

Предварительные требования:

  • Advanced Serial Data Logger Professional, Enterprise или пробная версия;
  • Модуль MODBUS RTU для регистратора данных.

Предполагается, что:

  1. Вы уже работали с устройствами MODBUS.
  2. Вы знаете адреса регистров, в которых хранятся нужные вам значения.
  3. Кроме того, вы знаете параметры подключения устройств (скорость передачи данных, количество битов данных и т. д.).

Загрузить Advanced Serial Data Logger

Загрузить бесплатную пробную версию. Это позволяет вам попробовать все функции! Плагины можно скачать отдельно здесь


Настройка COM-порта

Настройка подключения (рис. 1). Устройства MODBUS обычно подключаются к компьютеру через интерфейс RS485, с помощью специального преобразователя. В этом случае установите флажок «Режим интерфейса RS485» .


Рисунок 1: Параметры подключения

Настройка опроса через MODBUS

При опросе устройства MODBUS и захвате данных компьютер является «ведущим», а устройство — «ведомым». Это означает, что запущенное на компьютере приложение отправляет запросы MODBUS, а устройство отвечает на них. Для настройки опроса используйте модуль MODBUS RTU в ASDL (рисунок 2). На вкладке «Фильтр синтаксического анализа запроса» выберите этот модуль и нажмите кнопку «Настройка» справа от имени модуля в списке.


Рис. 2: Выбор модуля запроса данных и синтаксического анализатора

Когда откроется окно (рис. 3), нажмите «Действие → Добавить новый запрос», чтобы добавить один или несколько запросов.


Рисунок 3: Добавление запросов в очередь

Значение параметров запроса можно понять по их названиям. Дополнительные сведения об опциях запроса см. в файле справки для модуля MODBUS (Пуск → Программы → Регистратор данных → Справка).

Обратите внимание, что вы должны определить элементы ответа для устройства и формат этих элементов. В противном случае приложение не сможет дизассемблировать пакеты MODBUS. Например, в примере, показанном на рисунке 3, считываются два регистра, расположенные по адресу 8214. Каждый регистр содержит два байта (16 бит) данных. В примере будут прочитаны четыре байта, начиная с адреса 8214. Значение этих байтов зависит от версии прошивки устройства MODBUS и карты регистров.

Случай 1 (рис. 3). Оба регистра имеют одинаковый тип данных. Каждое значение состоит из двух байтов (2 * 8 = 16 бит).

  1. В поле «Имя» введите базовое имя для каждого значения: ЗНАЧЕНИЕ.
  2. В поле «Количество» введите количество значений: 2.
  3. Установите флажок «Добавлять счетчик к имени»: Приложение автоматически добавит порядковый номер (1 или 2) к базовому имени. В результате значения будут называться VALUE1 и VALUE2.
  4. В поле «Тип данных» выберите тип данных в зависимости от количества битов данных.
  5. Если значение беззнаковое, установите флажок «Беззнаковое».

Вариант 2 (рис. 4). Каждый регистр содержит 16 бит, но с разным типом данных (со знаком и без знака).

  1. Добавьте два элемента ответа: Выберите «Элементы ответа» в дереве и нажмите «Действия → Добавить элемент ответа».
  2. В поле «Имя» введите базовое имя для каждого значения: ЗНАЧ1 или ЗНАЧ2.
  3. В поле «Количество» введите количество значений: 1.
  4. Снимите флажок «Добавлять счетчик к имени», так как полные имена были определены через поле «Имя». В результате результирующие имена значений будут ЗНАЧ1 и ЗНАЧ2.
  5. В поле «Тип данных» выберите тип данных для каждого элемента ответа.
  6. Установите или снимите флажок «Без знака» для каждого значения.


Рисунок 4: Вариант ответа

Случай 3 (рис. 5). Одно значение имеет длину 16 бит и занимает один регистр; другое значение имеет длину 32 бита и занимает два регистра.

  1. Добавьте два элемента ответа: Выберите «Элементы ответа» в дереве и нажмите «Действия → Добавить элемент ответа».
  2. В поле «Имя» введите базовое имя для каждого значения: ЗНАЧ1 или ЗНАЧ2.
  3. В поле «Количество» введите количество значений: 1.
  4. Снимите флажок «Добавлять счетчик к имени», так как полные имена были определены через поле «Имя». В результате результирующие имена значений будут ЗНАЧ1 и ЗНАЧ2.
  5. В поле «Тип данных» выберите тип данных для каждого элемента ответа.
  6. Установите или снимите флажок «Без знака» для каждого значения.


Рисунок 5: Параметры ответа

Вариант 4 (Рисунок 6). Вам нужно прочитать два регистра, но они не расположены в памяти устройства друг за другом: Между ними есть другие регистры (значения).
Вы можете прочитать около 100 регистров одновременно через MODBUS. Если разрыв между двумя регистрами в памяти устройства достаточно мал, вы можете прочитать весь диапазон значений одним запросом, а затем выбрать нужные вам значения из захваченного массива. В противном случае вам придется разбить ваш запрос на два запроса по разным адресам. Вот пример одного запроса. В памяти устройства нужные нам значения расположены по адресам 8214 и 8218.

  1. Добавить запрос; в свойствах запроса указать чтение пяти регистров, начиная с 8214.
  2. Добавьте два элемента ответа: выберите «Элементы ответа» в дереве и нажмите «Действия → Добавить элемент ответа».
  3. В поле «Имя» введите базовое имя для каждого значения: ЗНАЧ1 или ЗНАЧ2.
  4. В поле «Количество» введите количество значений: 1.
  5. Снимите флажок «Добавлять счетчик к имени», так как полные имена были определены через поле «Имя». В результате результирующие имена значений будут ЗНАЧ1 и ЗНАЧ2.
  6. В поле «Тип данных» выберите тип данных для каждого элемента ответа.
  7. Установите или снимите флажок «Без знака» для каждого значения.
  8. Для второго элемента ответа укажите смещение в байтах относительно начала массива. В этом случае «8» означает пропуск четырех 2-байтовых регистров. В предыдущих примерах смещение было «-1»; приложение подсчитывало смещение автоматически в зависимости от объема данных в предыдущих элементах ответа.


Рис. 6: Параметры запроса и ответа

Вариант 5 (рис. 7). Вам необходимо считать значения аналоговых входов и выходов в соответствии со следующей картой регистров MODBUS:

Адрес Имя Описание
0003 айн1 Аналоговый вход №1
0004 айн2 Аналоговый вход #2
0005 айн3 Аналоговый вход #3
0006 айн4 Аналоговый вход #4
0007 точка Цифровые выходы как 16 бит, 0, если нет
0008 аот1 Аналоговый выход №1
0009 аот2 Аналоговый выход №2
0010 аот3 Аналоговый выход №3
0011 аот4 Аналоговый выход №4
  1. Добавить запрос.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *