В одной из статей мы писали о том, как работать с цифровыми датчиками посредством программы 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 прежде всего сводится к следующим задачам:
Терминология:
Сложность задачи состоит в основном в необходимости поиска нужной информации. Эти сведения часто достаточно хаотически раскиданы по разного рода описаниям и сопроводительной документации. Сам по себе процесс организации обмена между контроллером и устройством очень прост при наличии всей нужной информации. Часто бывает, что устройства довольно-таки отдалённых прошлых лет разработки не отличаются особым «интеллектом», либо вообще работают по принципу автоматов состояний, не допускающих произвольного следования управляющих команд. Именно для этих устройств может возникнуть нужда составления макросов, реализующих управляющие последовательности. Современными же устройствами как правило можно управлять с помощью одной-двух команд, вместо десятка или даже двух десятков в особо запущенных случаях. Ярким примером служит сравнение частотных преобразователей Altivar 21 серии (особенно с программным обеспечением первых версий) с частотными преобразователями Delta серии VFD. Поэтому подключение к любому устройству прежде это всего исследовательская работа. Сама по себе наладка связи — очень простое и быстрое действие. В данном примере невозможно охватить весь спектр присутствующих на рынке устройств, но хотя бы будут разъяснены принципы и критерии поиска нужной информации.
Итак, ваши действия по шагам:
Шаг первый.
Шаг второй. Путём внимательного осмотра наклеек на преобразователе выясняем два номера — это так называемые «ревизии» или «версии» («revision», «rev.», «version», «ver.»). Между «версией» и «ревизией» нет никакой разницы, какое слово используется — зависит от производителя преобразователя. Версии бывают двух типов: аппаратная и программная. Аппаратная версия определяет внутреннюю схемотехнику преобразователя и нам неинтересна.
Из наклейки выясняем, что в ПЧ использована программа управления версии 1.03 и подбираем нужный документ:
Шаг третий. Найдя нужный документ (или несколько документов) открываем их и внимательно изучаем. Если преобразователь сам по себе является знакомым в работе устройством, то достаточно пройтись по документам поиском по специфическим словам: «Modbus» — слово для поиска широкого спектра, применяется для определения требующих просмотра мест в документе «RTU» — слово, позволяющее быстро выяснить наличие у устройства именно Modbus-RTU. «Baud» — по этому слову можно быстро найти место, описывающее возможности и настройки связи в преобразователе:
Шаг четвёртый. Ищем схему подключения кабеля связи и цоколёвку разъёма. Здесь очень хорошие результаты даёт поиск по словам «connection» и «485».
Шаг пятый. Ищем описание регистров Modbus. Правильное название этого описания — «карта памяти» («memory map»). Регистры ещё могут называть как «переменные», «слова управления», «регистры управления», «слова состояния» («control map», «status map», «register map», «modbus variables»):
В подавляющем числе случаев регистр управления содержит в своем названии слово «Command» — «команда». Регистр задания скорости так и называется: «Speed reference» или «Speed setpoint».
Шаг шестой.
Итак, физическая адресация. Её признаки следующие:
Прямые признаки логической адресации:
Нужно особо отметить, что номера переменных в логической адресации обязаны обозначаться пятизначным числом, однако не все производители и не всегда следуют этому предписанию, чем ещё более запутывают новичков. Иногда это сделано для обхода ограничений логической адресации. В этом случае используется числа, состоящие из шести цифр. Также нужно отметить, что не бывает таких случаев, когда логическая и физическая адресации перемешаны внутри одного описания или одной линейки продуктов. Либо то, либо другое.
Что же такое физическая адресация и чем она отличается от логической?
Карта памяти, представленная на рисунке ниже, являет собой пример неудачного оформления распределения переменных.
В итоге принимаем, что всё же это логическая адресация. Следовательно интересующие нас переменные «Command», «Speed reference» и «Error code / Drive status» в карте памяти SMLogix будут выглядеть следующим образом:
Пояснения к карте памяти:
В случае ошибки составленную карту памяти всегда можно исправить после натурных испытаний на ПЧ.
Шаг седьмой. Шаг довольно-таки ответственный. Если до этого момента все устройства по сути не отличались друг от друга, то здесь уже между различными устройствами лежит пропасть в виде различающихся моделей поведения. Где-то достаточно записать одно число в один регистр, где-то нужно записать пять регистров и ещё два вычислить и записать в другие места. Естественно в этом примере нельзя объять необъятное, поэтому дальнейшее описание можно воспринимать как указание направления поиска, а не как руководство к действию. Находим описание управления через modbus:
В данном случае функции управления сконцентрированы в регистре, названном «Drive command». Обратите внимание: здесь регистр управления назван как «Drive command», а в карте памяти он же имеет название просто «Command». Это связано исключительно с невнимательностью составителей документации, никаких других, в том числе и скрытых смыслов данное разделение не имеет. К этому нужно относиться как к данности. В FBD-программе кодирование битов в регистр осуществляется блоком «bool->int» из раздела «Преобразование типов»:
Этот блок нужно перетащить в программу и в его свойствах задать 4 входа, после чего блок примет свой конечный вид, изображённый справа на рисунке выше. Почему четыре входа? Это следует из описания регистра «Drive command» — в нём использованы младшие 4 бита: «bit0», «bit1», «bit2» и «bit3». Эти биты соответствуют входам «bool0»..»bool3″ блока «bool->int». Для удобства блок можно оформить в макрос, подписав биты осмысленными названиями:
Далее разбираемся с переменной задания скорости: из описания следует, что записывать нужно значение в десять раз большее чем то, которое мы хотим установить.
Для удобства можно составить нехитрый макрос:
Теперь очередь переменной, отражающей состояние ПЧ и возникающие в нём ошибки. Находим описание этой переменной и составляем макрос для удобства нашего восприятия. При составлении макроса пользуемся блоком, раскодированием битов из регистра. Этот блок называется «reg16->bits».
Однако макрос, обрабатывающий эту переменную сложнее, чем оба предыдущих. Это связано с тем, что одна и та же переменная фактически служит для реализации двух разных задач: индикации состояния ПЧ с одной стороны и для индикации произошедших с ним ошибок и аварий. Таким образом, нам нужно разделить полученную переменную на две части и обработать их в соответствии с данными описания на ПЧ. Первое, что мы делаем, это разделяем полученную переменную на две части — верхние 8 бит (это код ошибки) и нижние 8 бит (код состояния):
Далее обрабатываем нижние 8 бит (нижнее слово). В нём содержится число, отражающее состояние ПЧ: «0» — двигатель остановлен, «1» — двигатель запущен и «2» — произошла ошибка. Для этого используем блок DC — демультиплексор, который выдаёт единицу на тот выход, номер которого пришёл на его вход:
Аналогичным образом поступаем с верхним словом за той разницей, что демультиплексор включается при получении состояния ПЧ «Tripped» — это явно указано в описании на ПЧ:
В итоге получаем макрос, который удобен для нашего понимания:
Теперь подключаем все три макроса к «своим» переменным и создаём программу-стенд для проверки полученной информации.
Шаг восьмой. Настройка ПЧ на работу по сети. По умолчанию все приборы имеют настройку на локальное управление — с панели оператора или со специально выделенных для этого входов. Находим описание настройки управления через modbus, используя выражения «switch control», «DI function», «modbus». В итоге находим, что на панели оператора ПЧ нужно произвести следующие действия:
Шаг девятый. Изготавливаем кабель связи и подключаем ПЧ к контроллеру. Проводим тесты. |
|
|