Протокол ModBus на простейших примерах (Часть 1)

Протокол ModBus на простейших примерах (Часть 1)

Примеры подключения индикатора Овен СМИ2 к разным контроллерам.

logo-modbus

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

В этой статье я хочу рассмотреть практические аспекты конфигурирования и программирования взаимодействия ModBus устройств между собой на простейших примерах. Для этого я выбрал ModBus индикатор СМИ2, Российской компании Овен. Устройство предназначено для индикации аналогового значения получаемого от контроллера. Не буду описывать все возможные сферы его применения, с этой задачей отлично справился сам производитель.

Конфигурация устройства

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

Овен СМИ2

Для связи с устройством я использовал двух портовый асинхронный преобразователь Moxa NPort 5230.

2015-01-26 09.58.43

Устройство может предоставлять доступ к последовательным портам как инкапсулируя UART в TCP, так и более привычным способом — эмуляция последовательных портов (port mapping). Я «промапил» RS485 преобразователя на COM4.

2015-01-26 21-28-14 NPort Administrator-COM Mapping

Для конфигурования индикатора служит поставляемая вместе с ним программа «Конфигуратор СМИ2″, ее так же без труда можно найти на сайте производителя. Перед тем как подключаться к СМИ2 необходимо «вогнать» его в режим  «заводские настройки» , для этого предназначена единственная кнопка на устройстве. Нажатие ее в течении трех секунд переключает устройство к заводским настройкам связи, которые также прописаны по умолчанию в утилите конфигурации. Порт естественно необходимо выбрать.

2015-01-26 09-54-24 Настройка параметров порта

После подключения к устройству жмем кнопку «считать» и редактируем параметры связи, адрес устройства и используемый протокол в соответствии с возможностями контроллеров, линий связи между ними и личными предпочтениями. После чего не забываем нажать «записать».

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

Baseblock ComTest Pro for Modbus Devices

В результате всех проделанных действий имеем следующую таблицу параметров устройства.

Параметры связи:

Speed — 115200
Parity — NON
Data Bits — 8
Stop Bits — 1

Параметры устройства и регистра:

Protocol — ModBus RTU
Slave Address — 20
Register Type — FLOAT
Register Address — 27

CoDeSys v2

Теперь давайте подключим его к контроллеру ПЛК150 фирмы Овен, программируемому из среды  CoDeSys 2.3.9.40 . Будем считать что вы обладаете базовыми навыками работы в среде CoDeSys, поэтому опустим процесс установки target файлов, создания нового проекта и выбора целевой платформы, перейдем сразу к конфигурированию ModBus. Для этого в разделе  «Конфигурация ПЛК»  добавим подэлемент  «Modbus Master»  c интерфейсом  «RS-485″  и зададим его параметры связи в соответствии с параметрами заданными нами при конфигурировании СМИ2.

CoDeSys - PLC150_P1.pro - [Конфигурация ПЛК]

После чего добавим подэлемент  «Universal Modbus device»  где зададим адрес Slave устройства, т.е. нашего СМИ2.

CoDeSys - PLC150_P1.pro - [Конфигурация ПЛК]

После чего добавим переменную типа REAL ( «Real output module» ) где зададим адрес регистра в котором она хранится.

CoDeSys - PLC150_P1.pro - [Конфигурация ПЛК]

Ну и наконец, дадим некоторое осмысленное имя переменной.

CoDeSys - PLC150_P1.pro - [Конфигурация ПЛК]

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

Honeywell Care

Еще один пример, как реализована работа с ModBus устройствами в среде программирования  Honeywell Care 10.03 .

Создадим новый проект и в нем новый контроллер, в данном примере я буду использовать контроллер серии Excel Web 2 — XL2026B2A. При создании контроллера в проекте сразу можно задать какие протоколы будут использоваться его интерфейсами. Я «повесил» ModBus на первый порт RS485.

New Controller

Сразу же сконфигурируем параметры связи интерфейса.

Honeywell CARE - BACnet 10.03 - [XLWeb2_SMI2]

После этого откроем  «Device Library»  и создадим новое устройство.

Скриншот экрана

В новом устройстве создаем  «Holding Register»  типа Float с нужным адресом, именем и разрешением на запись.

2015-01-26 21-03-26 Modbus Template Editor

После чего просто «перетащим» устройство на наш канал связи.

Скриншот экрана

Зададим адрес устройства.

2015-01-08 17-12-25 Honeywell CARE - BACnet 10.03 - [XLWeb2_SMI2]

Создадим «точку» — переменную типа «аналоговый выход» и «перетащим» ее на нужный вход устройства.

2015-01-08 17-12-45 Honeywell CARE - BACnet 10.03 - [XLWeb2_SMI2]

Отредактируем «точку» — напишем описание и зададим единицы измерения.

2015-01-08 17-13-35 Honeywell CARE - BACnet 10.03 - [XLWeb2_SMI2]

Для этого примера я вывел на индикатор значение температуры измеряемое датчиком подключенным к первому универсальному входу.

2015-01-26 18-35-01 XwOnline - [A1 [172.16.2.208] - SystemAdmin]

SMI2_ExcelWeb2

Как по мне так наиболее логичное решение поставленной задачи. Может быть это связано с тем что работа с устройствами в данной среде изначально была построена через библиотеку устройств, причем подход унифицирован как для ModBus, так и для BACNet (есть импорт из EDE), LonWorks (есть импорт из XIF или онлайн из самого устройства) и M-Bus — все через библиотеку. К тому же один раз создав или импортировав устройство в библиотеку вы можете использовать его неоднократно, без необходимости каждый раз заново описывать в новом проекте.

В продолжении статьи я расскажу как сделать то же самое, но в CoDeSys v3 на контроллере Овен Модус 5684-0 и в SMLogix — среде программирования российских контроллеров Segnetics на примере контроллера Pixel.

comments powered by HyperComments

ПОХОЖИЕ ЗАПИСИ

141
paydaycgtloansnhj.com
2017-07-06 11:44:25
<strong>paydaycgtloansnhj.com</strong> paydaycgtloansnhj.com
43ytr.icu/j/GPoAr
2019-04-19 19:05:44
<strong>43ytr.icu/j/GPoAr</strong> 43ytr.icu/j/GPoAr
Èãðà ïðåñòîëîâ 8 ñåçîí 2 ñåðèÿ 3 ñåðèÿ
2019-04-20 14:32:38
<strong>Èãðà ïðåñòîëîâ 8 ñåçîí 2 ñåðèÿ 3 ñåðèÿ</strong> Èãðà ïðåñòîëîâ 8 ñåçîí 2 ñåðèÿ 3 ñåðèÿ
Èãðà ïðåñòîëîâ 8 ñåçîí Ëîñòôèëüì
2019-04-20 15:11:57
<strong>Èãðà ïðåñòîëîâ 8 ñåçîí Ëîñòôèëüì</strong> Èãðà ïðåñòîëîâ 8 ñåçîí Ëîñòôèëüì
Èãðà ïðåñòîëîâ 8 ñåçîí
2019-04-20 15:29:05
<strong>Èãðà ïðåñòîëîâ 8 ñåçîí</strong> Èãðà ïðåñòîëîâ 8 ñåçîí
glyxar.ru
2019-04-25 04:49:30
<strong>glyxar.ru</strong> glyxar.ru
abisko.ru
2019-04-25 05:01:51
<strong>abisko.ru</strong> abisko.ru
2021
2019-05-02 11:22:44
<strong>2022</strong> 2022
Èãðà ïðåñòîëîâ 8 ñåçîí âñå ñåðèè
2019-05-06 10:06:54
<strong>Èãðà ïðåñòîëîâ 8 ñåçîí âñå ñåðèè</strong> Èãðà ïðåñòîëîâ 8 ñåçîí âñå ñåðèè
Èãðà Ïðåñòîëîâ 8 ñåçîí 5 ñåðèÿ
2019-05-13 14:54:16
<strong>Èãðà Ïðåñòîëîâ 8 ñåçîí 5 ñåðèÿ</strong> Èãðà Ïðåñòîëîâ 8 ñåçîí 5 ñåðèÿ
bitly.com/AzAX3
2019-05-15 17:20:22
<strong>bitly.com/AzAX3</strong> bitly.com/AzAX3
2020-2020-2020
2019-05-15 17:35:24
<strong>2020-2020-2020</strong> 2020-2020-2020
Mstiteli: Final (2019)
2019-05-17 21:13:43
<strong>Mstiteli: Final (2019)</strong> Mstiteli: Final (2019)
ðîêåòìåí ïîëíûé ôèëüì
2019-06-03 04:07:26
<strong>ðîêåòìåí ïîëíûé ôèëüì</strong> ðîêåòìåí ïîëíûé ôèëüì
wwin-tv.com
2019-06-07 08:59:19
<strong>wwin-tv.com</strong> wwin-tv.com
empire-season-2-episode-3-putlocker
2019-06-07 23:05:40
<strong>empire-season-2-episode-3-putlocker</strong> empire-season-2-episode-3-putlocker
Video
2019-06-09 01:15:09
<strong>Video</strong> Video
Watch
2019-06-10 06:55:58
<strong>Watch</strong> Watch
watch online
2019-06-14 04:36:43
<strong>watch online</strong> watch online
00-tv.com
2019-08-25 16:15:58
<strong>00-tv.com</strong> 00-tv.com
4serial.com
2019-08-30 02:30:35
<strong>4serial.com</strong> 4serial.com
we-b-tv.com
2019-08-30 03:00:23
<strong>we-b-tv.com</strong> we-b-tv.com
kino-m.com
2019-08-30 03:18:17
<strong>kino-m.com</strong> kino-m.com
m-dnc.com
2019-08-30 03:32:40
<strong>m-dnc.com</strong> m-dnc.com
ðûáàëêà
2019-08-30 11:25:53
<strong>ðûáàëêà</strong> ðûáàëêà
kino
2019-08-30 19:18:03
<strong>kino</strong> kino
hs;br
2019-08-30 21:31:06
<strong>hs;br</strong> hs;br
tureckie_serialy_na_russkom_jazyke
2019-08-30 21:48:41
<strong>tureckie_serialy_na_russkom_jazyke</strong> tureckie_serialy_na_russkom_jazyke
tureckie_serialy
2019-08-30 22:13:39
<strong>tureckie_serialy</strong> tureckie_serialy
serialy
2019-08-30 22:27:16
<strong>serialy</strong> serialy
+1+
2019-08-30 23:07:21
<strong>%D0%B6%D1%83%D0%BA%D0%B8+1+%D1%81%D0%B5%D1%80%D0%B8%D1%8F</strong> %D0%B6%D1%83%D0%BA%D0%B8+1+%D1%81%D0%B5%D1%80%D0%B8%D1%8F
æóêè+2+ñåðèÿ
2019-08-30 23:32:19
<strong>æóêè+2+ñåðèÿ</strong> æóêè+2+ñåðèÿ
Ñìîòðåòü âñå ñåðèè ïîäðÿä
2019-08-31 00:08:12
<strong>Ñìîòðåòü âñå ñåðèè ïîäðÿä</strong> Ñìîòðåòü âñå ñåðèè ïîäðÿä
âûòîïêà âîñêà
2019-08-31 01:01:54
<strong>âûòîïêà âîñêà</strong> âûòîïêà âîñêà
HD-720
2019-08-31 01:48:19
<strong>HD-720</strong> HD-720
guardians+of+the+galaxy+2
2019-08-31 02:03:03
<strong>guardians+of+the+galaxy+2</strong> vguardians+of+the+galaxy+2
strong woman do bong soon
2019-08-31 02:29:32
<strong>strong woman do bong soon</strong> strong woman do bong soon
my id is gangnam beauty
2019-08-31 02:50:56
<strong>my id is gangnam beauty</strong> my id is gangnam beauty
2020
2019-08-31 13:38:36
<strong>2020</strong> 2020
kpop+star+season+6+ep+9
2019-08-31 14:02:19
<strong>kpop+star+season+6+ep+9</strong> kpop+star+season+6+ep+9
1 2 3 4 5 6 7 8 9 10
2019-08-31 15:28:10
<strong>1 2 3 4 5 6 7 8 9 10</strong> 1 2 3 4 5 6 7 8 9 10
dinotube hd dinotube
2019-10-09 20:14:54
<strong>dinotube hd dinotube</strong> dinotube hd dinotube