Научная статья на тему 'Драйвер протокола ModbusTCP master для целевой системы ISaGRAF'

Драйвер протокола ModbusTCP master для целевой системы ISaGRAF Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
192
83
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бессонов Ян

В статье описывается разработка драйвера протокола Modbus TCP системы ISaGRAF, который должен удовлетворять следующим требованиям: универсальность; простота использования, которая не требует высокой квалификации разработчика систем контроля и управления; увеличение функциональных возможностей целевой системы ISaGRAF для различных платформ (qnx4.25, qnx6.3, Linux, DOS32). Статья рассчитана на специалистов АСУ, использующих языки программирования IEC 61131-3.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Драйвер протокола ModbusTCP master для целевой системы ISaGRAF»

154 встраиваемые системы www.finestreet.ru

Ян БЕССОНОВ

bessonov@fiord.com

Драйвер ModbusTCP MASTER

для целевой системы ISaGRAF

В статье описывается разработка драйвера протокола Modbus TCP системы ISaGRAF, который должен удовлетворять следующим требованиям: универсальность; простота использования, которая не требует высокой квалификации разработчика систем контроля и управления; увеличение функциональных возможностей целевой системы ISaGRAF для различных платформ ^^4.25, qnx6.3, Linux, DOS32). Статья рассчитана на специалистов АСУ, использующих языки программирования IEC 61131-3.

Протокол Modbus

Летом 2005 года на сайте www.modbus-ida.org были опубликованы результаты исследования рынка автоматизации и программного обеспечения предприятий, проведенного компанией ARC Advisory Group в 2004 году. Исследование показывает, что среди группы протоколов industrial Ethernet протокол Modbus TCP наиболее распространен в промышленности.

Modbus предназначен для обеспечения связи промышленного оборудования на основе интефейсов RS-485, Ethernet и др. В документации протокола зафиксировано, что он является де-факто стандартом в промышленности с 1979 года. Популярность его на рынке автоматизации обусловлена тем, что это открытый протокол, обеспечивающий возможность расширения. В связи с широкой популярностью Modbus перед разработчиками оборудования может стоять задача поддержки Modbus TCP. В данной статье описан пример решения задачи разработки драйвера протокола Modbus TCP MASTER для целевой системы ISaGRAF.

Технология ISaGRAF

Технология ISaGRAF предназначена для программирования PLC-контроллеров. Она состоит из двух компонентов: среды разработки программ ISaGRAF Workbench и целевой системы исполнения программ. Первый из них предназначен для разработки и отладки программ на базе языков стандарта IEC 61131-3. Отладка программы в среде ISaGRAF Workbench производится на инструментальном компьютере в режиме симуляции, а также в режиме реального времени, когда программа исполняется на удаленном PLC-контроллере, через интерфейсы Ethernet или RS-232/422/485. Программа может загружаться из среды разработки инструментального компьютера через интерфейсы Ethernet или RS-232/485 на PLC-контроллер.

Целевая система ISaGRAF предназначена для выполнения программ на PLC-контроллере, а также взаимодействия с его периферией. Взаимодействие целевой системы с периферией PLC происходит с помощью драйверов. Для того чтобы целевая система ISaGRAF поддерживала связь по протоколу Modbus TCP, были разработаны драйверы Modbus TCP MASTER и SLAVE.

Необходимо отметить преимущество совместного использования целевой системы ISaGRAF и протокола Modbus TCP: используется единый интерфейс Ethernet для загрузки программ на PLC-контроллер и обеспечения связи контроллера с удаленными устройствами по Modbus TCP.

Драйвер протокола Modbus в составе целевой системы ISaGRAF

Целевая система ISaGRAF предоставляет возможность разработчику реализовать драйвер в одном из двух вариантов: FBD-блок или

виртуальное устройство. Обе реализации имеют свои особенности, преимущества и недостатки. Особенность реализации драйвера в виде виртуального устройства заключается в том, что его функции Read()/Write() вызываются соответственно в начале и в конце цикла выполнения ресурса (исполнительной программы). Особенность FBD-блоков в том, что вызываются они не обязательно циклично, а в соответствии с алгоритмом пользовательской программы. Таким образом, реализация драйвера в виде FBD-блока имеет преимущество для случая разового, редкого обмена данными с удаленным устройством Modbus TCP SLAVE, а также обладает возможностью выдачи данных в несколько выходных каналов различных типов данных за один вызов FBD-блока.

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

При запуске IsaVM выполняются функции инициализации устройств lnit()/Open()

Init

Программа, функции устройств І?еасІ()/УУгіІе() выполняются в цикле, РЕЮ-блоки выполняются в соответствии с алгоритмами программы

Read

Программа на базе языков IEC 61131-3

FBD

Write

При завершении выполнения IsaVM вызываются функции деинициализации устройств Close()/Exit()

Exit

время

Рис. 1. Алгоритм драйвера Modbus

встраиваемые системы 1155

Таблица. Соответсвие функций протокола Modbus и виртуальных устройств драйвера ModbusTCP MASTER

Базовые функции протокола Modbus Виртуальные устройства драйвера Modbus TCP MASTER

Номер функции Название функции Тип данных Название простого устройства Тип данных простого устройства

1 read coils Bool di bool

2 read discrete inputs Bool di bool

ai dint, используются 16bit

3 read holding registers unsigned integer in_dint dint, используются 32bit

in_real real, используются 32bit

ai dint, используются 16bit

4 read input registers unsigned integer in_dint dint, используются 32bit

in_real real, используются 32bit

5 write single coil bool - -

6 write singlr register unsigned integer - -

15 write multiple coils bool do bool

ao dint, используются 16bit

16 write multiple registers unsigned integer out_dint dint, используются 32bit

out_real real, используются 32bit

Рис. 2. Пример проекта

вания. Виртуальное устройство выполняет чтение значений каналов в начале выполнения ресурса, а запись значений каналов — в конце выполнения ресурса.

При вызове каждого виртуального устройства ему передается указатель на соответствующий блок OEM-параметров и каналов устройства. Следующее преимущество виртуальных устройств: они имеют функции Init()/Exit() и Open()/Close(), которые вызываются при первом старте и перед завершением целевой системы. Это свойство дает возможность разработчику определить в драйвере алгоритм инициализации соединения с удаленным устройством перед исполнением программы пользователя, а также алгоритм закрытия соединения перед завершением работы целевой системы. На рис. 1 представлен порядок запуска виртуальных устройств и FBD-блоков.

Драйвер Modbus TCP реализован в виде нескольких виртуальных устройств и встроен в целевую систему ISaGRAF. Это избавляет разработчика АСУ от необходимости помещать FBD-блоки внутри алгоритма для выполнения каждой транзакции. В состав драйвера входит одно комплексное устройство ip_client (complex device) и 10 простых устройств (simple device). Комплексное устройство ip_client выполняет функцию инициализации связи по виртуальному каналу с устройствами Modbus TCP SLAVE. В результате инициализации виртуального канала ip_client сохраняет параметры виртуальной связи в динамической структуре данных. Эта структура данных с параметрами виртуального канала используется остальными виртуальными устройствами в процессе исполнения для обмена данными с удаленными устройствами Modbus TCP SLAVE. Каждое простое виртуальное устройство поддерживает одну из функций чтения/записи определенного типа данных. В таблице представлена информация о соответствии номеров функций протокола Modbus и названий виртуальных устройств драйвера Modbus TCP MASTER в целевой системе.

На основании данных колонки «Номер функции» следует, что драйвер предоставляет пользователю возможность использовать

стандартные базовые функции протокола Modbus TCP. Кроме того, драйвер позволяет с помощью функций 3, 4 и 16 интерпретировать данные регистровых каналов протокола Modbus в качестве различных типов данных.

Например, устройства in_dint, out_dint, in_real, out_real интерпретируют два канала функций 3, 4 и 16 как один канал типа dint или real.

Для большей гибкости и совместимости с большим количеством типов контроллеров (Modbus TCP SLAVE) в структуру ОЕМ-пара-метров виртуального устройства добавлены

Шкала времени

Порядок выполнения функций процесса IsaVM

MbmsloslnitO

Mbms¡p_clientlosOpen

Mbmsin_dintlosOpen()

Mbmsin_dintlosRead()

Функция выполняет программу ресурса

Mbmsîn_dintlosClose()

Mbmsin_clientlosClose()

MbmslosExitQ

_Функции омплексного устройства ip__client

_Функции простого устройства in_dint

Функция mbmsip_clientlosOpen устанавливает связь с Modbus TCP SLAVE в соответствии с ОЕМ-параметрами, инициализирует массив структур данных и сохраняет параметры соединения

Массив структур данных содержит информацию об установленных соединениях

*pvBase_ip_cl

Функции выполняются в цикле до получения процессом IsaVM сигнала SIGTERM

Функции выполняются после получения процессом IsaVM сигнала SIGTERM

Рис. 3. Порядок выполнения функций драйвера Modbus TCP

параметры swap_bytes и swap_words. В зависимости от значений параметров swap_bytes и swap_words происходит перестановка байт

и слов в значении канала.

Устройство ip_client содержит три OEM-параметра: ip_addr, port, nc. В параметр ip_addr пользователь вводит IP-адрес удаленного контроллера.

В параметр port пользователь вводит номер IP-порта устройства Modbus TCP SLAVE. В спецификации [1] обозначено со ссылкой на стандарт IP [3], что в стеке TCP/IP порт 502 закреплен за протоколом Modbus, но обычно ПО поддерживает возможность изменения номера порта. Пользователь вводит в параметр nc номер элемента в массиве структур данных, указывая на структуру, в которой сохраняется информация об инициализации связи c выбранным контроллером.

Простые виртуальные устройства содержат параметры:

• nc — номер элемента в массиве структур данных, содержащих информацию о соединении с удаленными контроллерами (ModbusTCP SLAVE);

• node — номер удаленного контроллера;

• type_of_address_bar — форма записи адреса: 0-[0-65535], 1-[300001-365536] и [400001-465536];

• bar — адрес памяти;

• swap_bytes — перестановка байтов: 0 — нет перестановки, 1 — есть перестановка;

• swap_words — перестановка слов: 0 — нет перестановки, 1 — есть перестановка.

На рис. 2 представлен пример проекта с использованием драйвера Modbus TCP MASTER. В составе проекта находится комплексное устройство ip_client и простое устройство in_dint.

На рис. 3 представлен порядок выполнения функций комплексного устройства ip_client и простого устройства in_dint. Порядок выполнения базовых функций Init()/Exit(), Open()/Close() и Write()/Read() устройств определен в документации на ISaGRAF.

Заключение

Разработанный драйвер обладает следующими свойствами:

• универсальность;

• простота использования;

• поддержка платформы qnx4.25, qnx6.3, Linux, DOS32;

• обмен данных между драйвером ISaGRAF Modbus TCP MASTER и Modbus TCP SLAVE происходит автоматически в каждом цикле целевой системы ISaGRAF;

• ОЕМ-параметры простых устройств содержат поля данных для обеспечения совместимости с оборудования различных производителей.

Драйвер достаточно удобен для пользователя, так как минимально отвлекает на конфигурирование соединения и обеспечения связи с удаленными контроллерами внутри разрабатываемого алгоритма. Таким образом, основное время работы пользователя используется для разработки и отладки алгоритмов АСУ. ■

Литература

1. www.modbus.org

(Modbus_Application_Protocol_V1_1a.pdf)

2. www.Modbus-IDA.org

3. RFC 791. Internet Protocol. Sep., 1981. DARPA.

i Надоели баннеры? Вы всегда можете отключить рекламу.