Протокол ModBus на простейших примерах
ModBus один из самых простых протоколов взаимодействия устройств между собой который я встречал. Он одновременно прост в реализации для производителей оборудования, что является первопричиной его распространенности, и в то же время сложен для инженера, программиста, пусконаладчика потому что перекладывает на его плечи все сложности внедрения в конечном решении, требуя выполнить работу с многостраничными таблицами регистров и переменных, их адресами, различными функциями записи и чтения и преобразованием данных.
В этой статье я хочу рассмотреть практические аспекты конфигурирования и программирования взаимодействия ModBus устройств между собой на простейших примерах. Для этого я выбрал ModBus индикатор СМИ2, Российской компании Овен. Устройство предназначено для индикации аналогового значения получаемого от контроллера. Не буду описывать все возможные сферы его применения, с этой задачей отлично справился сам производитель.
Конфигурация устройства
Давайте для начала разберемся с конфигурированием самого устройства, а потом перейдем к примерам его подключения к различным контроллерам.
Настройка преобразователей интерфейсов MOXA серии NPort
Для связи с устройством я использовал двух портовый асинхронный преобразователь Moxa NPort 5230.
Устройство может предоставлять доступ к последовательным портам как инкапсулируя UART в TCP, так и более привычным способом — эмуляция последовательных портов (port mapping). Я «промапил» RS485 преобразователя на COM4.
Для конфигурования индикатора служит поставляемая вместе с ним программа «Конфигуратор СМИ2», ее так же без труда можно найти на сайте производителя. Перед тем как подключаться к СМИ2 необходимо «вогнать» его в режим «заводские настройки», для этого предназначена единственная кнопка на устройстве. Нажатие ее в течении трех секунд переключает устройство к заводским настройкам связи, которые также прописаны по умолчанию в утилите конфигурации. Порт естественно необходимо выбрать.
После подключения к устройству жмем кнопку «считать» и редактируем параметры связи, адрес устройства и используемый протокол в соответствии с возможностями контроллеров, линий связи между ними и личными предпочтениями. После чего не забываем нажать «записать».
Источник: cleverbuilding.ru
В чем отличие NPort от MGate? Что же выбрать?
Hướng dẫn cài đặt-cấu hình bộ chuyển đổi tín hiệu Nport 5150A dễ nhất
04.12.2017 Инженеры часто не могут определить, что же нужно применять для решения своей задачи NPort или MGate. Все дело в функциях, которые предоставляют эти устройства, давайте разберемся.
Отличие NPort от MGate
NPort — это серверы последовательных интерфейсов, т.е. устройства, которые позволяют подключить к компьютеру (или другому устройству) приборы с интерфейсами RS-232, RS-422 и RS-485 через сеть Ethernet. При передаче данные не будут изменяться, а программа будет работать с «виртуальным COM портом» или в режиме TCP Client-Server.
MGate — это шлюзы протоколов, которые также позволяют подключить приборы с интерфейсами RS-232, RS-422 и RS-485 через сеть Ethernet, но теперь будет осуществляться преобразование протоколов из Modbus RTU/ASCII в Modbus TCP или наоборот (есть поддержка других протоколов). В этом случае «виртуальный COM порт» не создается, т.к. теперь обращаться к подключённым приборам нужно по IP адресу шлюза, используя команды Modbus TCP.
Итак, в общем NPort преобразует интерфейсы и передает неизменные данные как есть, а MGate преобразует интерфейсы и конвертирует протоколы.
Примеры применения NPort и MGate
Рассмотрим несколько случаев реального применения NPort и MGate на практике:
Вам нужно получать данные со сканера штрих кодов с интерфейсом RS-485 и специфическим протоколом, а также обрабатывать данные на компьютере, где установлено специальное ПО.
В этом случаем мы используем NPort, который может преобразовать интерфейс RS-485 в Ethernet без изменения передаваемых данных. На компьютере будет установлен «виртуальный COM порт», с которым будет работать специальное ПО. Также возможны другие режимы работы NPort.
Вам нужно прокинуть интерфейс RS-232 по Ethernet причем устройство использует специфический протокол. Ведь для RS-232 длинна кабеля составляет всего 15 метров.
В этом случае можно использовать два NPort в режиме парного подключения или режиме TCP Client/Server, что позволяет передавать данные с одного СОМ порта на другой без изменения данных.
Вам необходимо подключить RS-485 модули ввода-вывода с протоколом Modbus RTU к удаленному компьютеру по Ethernet, на ПК установлена SCADA система.
В этом случае лучше использовать шлюз MGate с конвертацией протокола из Modbus RTU в Modbus TCP и преобразованием интерфейса из RS-485 в Ethernet. MGate специально спроектирован для работы с протоколами Modbus, он обеспечивает правильную конвертацию протокола и избавляет от риска потери данных.
Вам необходимо прокинуть линию RS-485 по Ethernet, где данные будут передаваться по протоколу Modbus RTU/ASCII.
В этом случае лучше использовать два шлюза MGate настроенных друг на друга.
Вам нужно подключить счетчик электроэнергии с протоколом Modbus RTU к компьютеру, который не имеет COM порта и расположен в соседнем здании. Специальное ПО понимает только Modbus RTU и не может работать с протоколом Modbus TCP.
В этом случае есть два варианта:
- Использовать NPort для создания «виртуального COM порта» на компьютере, тогда протокол не изменяется.
- Использовать MGate серии MB3x70, который поддерживает функцию Pro COM для создания «виртуального COM порта». Протокол также останется Modbus RTU.
Подробнее о NPort вы сможете узнать из статьи «Как правильно выбрать NPort».
Подробнее о MGate вы сможете узнать из статьи «Зачем нужен MGate и как его выбрать?».
В каталоге можно выбрать по параметрам свой MGate или NPort.
Источник: isup.ru
«Ниеншанц-Автоматика»
Функция широковещательного поиска Broadcast Search используется для нахождения всех устройств NPort W2250/2150 Plus, подключенных к одной локальной сети с вашим компьютером. После нахождения NPort W2250/2150 Plus можно будет изменить его IP-адрес.
Поскольку функция Broadcast Search производит поиск по MAC-адресу, а не по IP-адресу, будут локализованы все NPort W2250/W2150 Plus, подключенные к локальной сети, независимо от того, являются ли они хостами той же подсети.
- Откройте утилиту NPort Search Utility и щелкните на иконке Search.
- Окно поиска Searching показывает ход поиска.
- Когда поиск завершен, в окне утилиты NPort Search Utility отобразятся найденные устройства NPort W2250/2150 Plus.
- Чтобы изменить IP-адрес активного соединения, щелкните на Assign
- Введите новый IP-адрес.
Установка Linux Real TTY и UNIX Fixed TTY
Установка драйвера Linux Real TTY
Процедура
- ^ Установка NPort
Убедитесь, что IP настроен правильно, и что имеется доступ к NPort (ping, telnet. ), затем установите последовательный порт NPort в режим Real COM Mode. - Установка файлов драйвера на хосте
Подробнее см. ниже, “Установка файла драйвера”. - ^ Создание виртуального последовательного порта NPort на tty-порте хоста
Подробности см. ниже, “Создание виртуальных TTY-портов”.
Установка аппаратуры
Прежде, чем продолжить установку программного обеспечения, необходимо убедиться в том, что завершена настройка NPort, описанная в предыдущей главе Руководства.
IP-адрес по умолчанию интерфейса Ethernet — 192.168.126.254, а IP-адрес по умолчанию интерфейса WLAN * — 192.168.127.254..
ПРИМЕЧАНИЕ | При настройках NPort необходимо выбрать режим работы Real COM Mode. |
Установка файла драйвера
- Скопируйте файл драйвера с компакт-диска NPort или с вебсайта компании Moxa.
- Войдите в консоль как привилегированный пользователь (root)
- Выполните cd / , чтобы перейти в корневую директорию.
- Скопируйте файл драйвера npreal2xx.tgz в директорию “ / ”.
- Выполните команду tar xvfz npreal2xx.tgz, чтобы скопировать все файлы в систему.
- Выполните команду /tmp/moxa/mxinst.
- Скрипт автоматически установит файлы драйвера.
> mxaddsvr (Add Server (добавить сервер), подключает tty-порт)
> mxdelsvr (Delete Server (удалить сервер), отключает tty-порт)
> mxloadsvr (Reload Server (перезагрузить сервер))
> mxmknod (Создает узел устройства/tty-порт)
> mxrmnod (Удаляет узел устройства/tty-порт)
> mxuninst (Удаляет tty-порт и файлы драйвера)
Теперь можно создать виртуальный последовательный порт NPort на системном tty-порте. Подробные инструкции см. ниже в разделе “Создание виртуальных TTY-портов”.
Создание виртуальных TTY-портов
Перед созданием виртуальных tty-портов необходимо установить в качестве рабочего режима Nport режим Real Com Mode. Есть два способа создания виртуальных tty-портов.
a. Автоматическое создание виртуальных tty-портов
Войдя как привилегированный пользователь, зайдите в директорию /usr/lib/npreal2/driver и выполните команду mxaddsvr, чтобы создать виртуальный последовательный порт NPort на tty-портах хоста. Синтаксис mxaddsvr имеет вид:
mxaddsvr [NPort IP Address] [Total Ports] ([Data port] [Cmd port])
# cd /usr/lib/npreal2/driver
# ./mxaddsvr 192.168.3.4 16
# cd /usr/lib/npreal2/driver
# ./mxaddsvr 192.168.3.4 16 4001 966
В примере 1 будет добавлено 16 tty-портов, все с IP 192.168.3.4, с портами данных (950, 951, …, 965) и с портами команд (966, 967, 968, …, 981).
В примере 2 будет добавлено 16 tty-портов, все с IP 192.168.3.4, с портами данных (4001, 4002, …, 4016) и с портами команд (966, 967, 968, …, 981).
b. Создание виртуальных tty-портов вручную
Войдя в директорию /usr/lib/npreal2/driver, можно изменить файл npreal2d.cf так, чтобы создать виртуальные последовательные порты NPort на tty-портах, а затем выполнить mxloadsvr, чтобы активировать изменения.
Необходимо будет выполнить следующие действия:
> Изменить npreal2d.cf
> Создать tty-порты в директории /dev со старшим и младшим номером, установленными в npreal2d.cf.
> Остановить драйвер и снова запустить его.
Удаление виртуальных TTY-портов
Как и в задаче “Создание виртуальных TTY-портов”, имеются два способа удалить виртуальные tty-порты:
a. Автоматическое удаление виртуальных tty-портов
Войдя как привилегированный пользователь, зайдите в директорию /usr/lib/npreal2/driver и выполните команду mxdelsvr, чтобы удалить сервер. Синтаксис mxdelsvr имеет вид:
mxdelsvr [IP]
# cd /usr/lib/npreal2/driver
# ./mxdelsvr 192.168.3.4
Если IP-адрес не включен в командную строку, на экране появится пронумерованный список IP-адресов установленных на текущий момент серверов и суммарное число портов каждого сервера. Для удаления tty-портов на отдельном сервере введите число, следующее за IP-адресом сервера, и нажмите Enter. Будут выполнены следующие действия:
> Изменить npreal2d.cf
> Удалить соответствующие tty-порты в директории /dev
> Остановить драйвер и снова запустить его.
a. Удаление виртуальных tty-портов вручную
Войдя в директорию /usr/lib/npreal2/driver, можно изменить файл npreal2d.cf, чтобы удалить серверы и порты вручную, а затем выполнить команду mxloadsvr, чтобы активировать изменения.
Правило именования TTY
tty-имя реального tty-драйвера устанавливается в npreal2d.cf. Предварительно заданное tty-имя — ttyrXX, имя-идентификатор — curXX. Соглашение об именах можно проиллюстрировать следующим образом:
^ NPort Server TTY-имя Имя-идентификатор
1st (4port) ttyr00 – ttyr03 cur00 – cur03
2nd (8port) ttyr04 – ttyr0b cur04 – cur0b
3rd (16port) ttyr0c – ttyr1b cur0c – cur1b
4th (8port) ttyr1c – ttyr23 cur1c – cur23
ПРИМЕЧАНИЕ | Callout Device в Linux 2.6 уже не используется. Иначе говоря, в Linux 2.6 нельзя открыть Callout Device. |
Удаление драйвера
Удаление драйвера вызывает удаление всех файлов драйвера, виртуальных tty-портов и выгрузку драйвера. Для удаления драйвера войдите в директорию /usr/lib/npreal2/driver и выполните команду mxuninst. Эта программа выполнит следующие действия:
> Выгрузка драйвера.
> Удаление всех файлов и директорий в “/usr/lib/npreal2”
> Удаление директории “/usr/lib/npreal2”
> Изменение файла сценария инициализации системы.
Установка драйвера UNIX Fixed TTY Driver
Установка и настройка
Шаг 1: Войдите в UNIX и создайте директорию для Moxa TTY. Например, для создания директории с именем /usr/etc выполните команду:
# mkdir /usr/etc
Шаг 2: Скопируйте moxattyd.tar в директорию /usr/etc , выполнив команды:
# cp moxattyd.tar /usr/etc
# cd /usr/etc
Шаг 3: Извлеките исходные коды из файла tar, выполнив команду:
# tar xvf moxattyd.tar
Будут извлечены следующие файлы:
README
moxattyd.c — исходный код
moxattyd.cf — пустой конфигурационный файл
Makefile — формирование файла
VERSION.TXT — версия драйвера fixed tty
Шаг 4: Скомпилируйте и создайте драйвер
Для SCO UNIX:
# make sco
Для UnixWare 7:
# make svr5
Для UnixWare 2.1.x, SVR4.2:
# make svr42
Шаг 5: Произведите конфигурирование:
Настройки, используемые программой moxattyd, заданы в текстовом файле moxattyd.cf, находящемся в одной директории с программой moxattyd. Для изменения файла можно использовать vi или любой текстовый редактор. Например,
ttyp1 192.168.1.1 950
Более подробные сведения о настройке см. в файле moxattyd.cf, содержащем подробное описание различных параметров настройки.
ПРИМЕЧАНИЕ | Имя устройства “Device Name” зависит от ОС. Более подробную информацию см. в разделе «Правила именования устройств». |
Шаг 6: Чтобы запустить управляющую программу moxattyd после перезагрузки системы, введите в /etc/inittab данные с tty-именем, установленным в moxattyd.cf. Например,
ts:2:respawn:/usr/etc/moxattyd/moxattyd –t 1
На этом установка и настройка Moxa TTY завершается.
Правило именования устройств
Для UnixWare 7, UnixWare 2.1.x и SVR4.2 используется имя:
pts/[n]
Для остальных ОС UNIX используется имя:
ttyp[n]
Запуск moxattyd
Выполните команду init q или перезагрузите ОС UNIX.
Добавление дополнительного сервера
Шаг 1: Для добавления дополнительного сервера измените текстовый файл moxattyd.cf. Для изменения файла можно использовать vi или любой текстовый редактор. Более подробную информацию о настройке см. в файле moxattyd.cf, содержащем подробное описание различных параметров настройки.
Шаг 2 : Найдите идентификатор процесса (PID) программы moxattyd.
# ps -ef | grep moxattyd
Шаг 3: Обновите конфигурацию программы moxattyd.
# kill -USR1 PID
(например, если “moxattyd” PID = 404, “kill -USR1 404”)
На этом добавление дополнительного сервера завершается.
Скачать 0,99 Mb.
Источник: rudocs.exdat.com
Программное обеспечение приборов учета
Программная система предназначена для сбора, обработки и визуализации данных с приборов учёта потребления воды и тепловой энергии, подготовки отчетных ведомостей о теплопотреблении и потреблении воды. В состав системы входят следующие компоненты:
- Менеджер данных — клиентская программа.
- Модуль построения пользовательских отчетов — программа для работы с пользовательскими отчетами.
- Сервер данных — сервис, осуществляющий хранение архивных данных, журналов, общих настроек, запуск опроса приборов по расписанию, управление списком пользователей, контроль прав доступа, а также реализующий функции OPC сервера.
- Сервер опроса — сервис осуществляющий опрос приборов.
- Модуль поддержки старых приборов — подсистема опроса ТМК-Н1,2,3,5,12,13, МК-Н1, МФ-И, БИ-01, УС-Н1.
- ТМК-Н100,120,130,20,30, БИ-02,03
- ТМК-Н1,2,3,5,12,13, МК-Н1, МФ-И, БИ-01 1
- ВКТ-7 (версия ПО 1.9 и выше) 2, ВКТ-9
- СПТ-941,943
- УС-Н1,2
- COM порт
- Модем (через COM порт) 3
- Модем (TAPI)
- TCP соединение (GPRS модем, АЛС-485.02, . )
- Ethernet Moxa NPort 5xxx, АЛС-xx.01
- Интернет GPRS сервер Промприбор
- АМ-01
- АМ-02 (GPRS, GSD, локально)
Программа APX2 предназначена для подготовки отчетных ведомостей о теплопотреблении при работе с накопительными пультами НП–3, НП–4 и НП–4А производства компании «Теплоком».
Программа формирует отчеты для вычислителей количества теплоты ВКТ 4(4М), ВКТ 5, ВКТ 7 и вычислителя количества газа ВКГ-3.
Программа позволяет сохранить на жесткий диск компьютера считанные из НП данные в формате *.txt, *.np3, *.fls для последующей работы, а также сформированные отчеты в формате *.txt и *.htm.
С описанием программы АРХ2 можно ознакомиться, нажав на кнопку Help в главном меню программы.
Архив RAR, включающий:
Драйвер, Руководство по эксплуатации, Пример подключения ВКТ7
Драйвер кабеля подключения сервисных устройств (НП-5, УС-Н2, адаптера БИФ, и т.п.) к USB-порту компьютера
Драйвер для преобразователя интерфейса USB в RS-232
Программа по настройке адаптера
Источник: teplocom-sale.ru