Разработка эмулятора цифрового следящего привода для тестирования многофункциональной системы

числового программного управления

С.В. Евстафиева,
 н.с., svetlana.evstafieva@gmail.com
А.Е. Сорокоумов,
 инж. 1 кат.,
artyom.sorokoumov@gmail.com
ФГБОУ ВПО МГТУ «СТАНКИН», г. Москва

 

Работа выполнена по Госконтракту № П717 от 20 мая 2010 на проведение НИР в рамках ФЦП "Научные и научно-педагогические кадры инновационной России" на 2009—2013.

 

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

Цель разработки эмулятора цифрового следящего электропривода — диагностика и тестирование канала связи между системой числового программного управления и реальными приводами.

 

The purpose, architecture, development tools of the digital servo drive emulator are described, as well as its place in the architecture of multi-function industrial numerical control systems.

Purpose of the emulator development is to diagnose and test communication channel between the cnc system and hardware drives.

1. Обзор протокола UCSNet

UCSNet – промышленный протокол, разработанный в МГТУ «СТАНКИН» для управления контроллерами следящих приводов станков ЧПУ и промышленных роботов[1].

1.1. Аппаратный уровень

На аппаратном уровне сеть организована в виде шины (рисунок 1), по которой к управляющему компьютеру можно подключить до 64 модулей привода. Каждое устройство в сети имеет свой уникальный адрес.

рис. 1. Топология сети UCSNet

В качестве интерфейсных устройств сети используются дифференциальные приемники и передатчики стандарта RS-422/485. Прием и передача осуществляются в дуплексном режиме через 2 витые пары в общем экране.

Данные в сети передаются побайтно, последовательно, начиная с младшего байта. Последовательная передача и приема данных должны осуществляться по протоколу универсального асинхронного приемо-передатчика (UART). Скорость передачи до 921.6 Кбод/с[2].

1.2. Аппаратный уровень

Данные в сети передаются и принимаются пакетами по 11 байт. Байты пакета передаются, начиная с байта 0. Каждый пакет имеет следующий формат:

 

Байт 10

Байт 9

Байт 8

Байт 7

Байт 6

Байт 5

Байт 4

Байт 3

Байт 2

Байт 1

Байт 0

Контрольная сумма

D

C

B

A

Заголовок

рис. 2. Топология сети UCSNet

Заголовок пакета содержит адрес модуля привода, которому предназначен или от которого получен пакет, а также коды и параметры команд. Данные передаются в 4 16-битных словах A, B, C и D.

Байт контрольной суммы (КС) представляет собой CRC-код (Cyclic Redundancy Code – Циклически Избыточный Код) байтов 0-9 пакета.

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

Время T, затрачиваемое управляющим компьютером на один цикл обмена данными с 1-м модулем привода на скорости V = 921600 бит/с,  составляет 0.139 мс.

2. Разработка эмулятора UCSNet-привода для тестирования связи с AxiOMA ctrl

AxiOMA ctrl – мультиплатформенная система ЧПУ, разработанная в МГТУ «СТАНКИН» на кафедре «Компьютерные системы управления». AxiOMA ctrl предназначена для управления металлообрабатывающим оборудованием с функцией пятикоординатной обработки[1].

 

рис. 3. Место эмулятора UCSNet-привода в составе системы ЧПУ AxiOMA ctrl

Заложенное в систему свойство инвариантности [3]  позволяет реализовывать  комплектацию системы ЧПУ для управления контроллерами приводов по промышленным сетям на базе интерфейсов SERCOS (SErial Real-time COmmunication System), Step/Dir, CanBus или  USCNet, а для управления контроллерами электроавтоматики - по протоколам RS-232 и RS-485.

В основе одного из вариантов системы ЧПУ лежит двухкомпьютерная архитектура. Ядро системы реализуется на базе операционной системы реального времени Linux RT, а терминал оператора – на Windows XP. Связь между ними осуществляется по TCP/IP.

Для удобства разработчиков, работающих с частью системы ЧПУ, отвечающей за интеграцию приводов, и не имеющих постоянного доступа к реальному контроллеру электропривода, был разработан его эмулятор, позволяющий осуществлять тестирование канала связи системы ЧПУ AxiOMA ctrl с UCSNet-приводами (рис. 3).

Эмулятор реализует в себе функции управления, задания и считывания данных (рис. 4).

Функции управления позволяют запускать и останавливать эмуляцию сервопривода. Наиболее важные параметры: имя COM-порта, скорость COM-порта и количество эмулируемых приводов задаются функциями группы задания данных. Отображение работы эмулятора осуществляется при помощи группы функций считывания данных, полученных в результате работы основной функции – эмуляции работы привода UCSNet. Для работы с физическим уровнем эмулятору необходимы функции работы с COM-портом, осуществляющие обмен данными между системой ЧПУ АксиОМА Ctrl и эмулятором UCSNet-приводов.

 

рис. 4. Диаграмма прецедентов эмулятора

Структура эмулятора в связке с СЧПУ АксиОМА Ctrl представлена на рисунке 5.

рис. 5. Структура эмулятора UCSNet-привода

Двухкомпьютерная система ЧПУ посредством кабеля RS-485 подключается к ЭВМ, на которой запущен эмулятор.

Эмулятор построен на базе клиент-серверной архитектуры.  В роли сервера выступает динамически подключаемая библиотека UCSNetDriveEmulator.dll, логика которой основана на неуправляемом коде, написанном на языке C++, с использованием объектно-ориентированнного подхода. В качестве клиента (рисунок 4) используется С#.NET-приложение, осуществляющее взаимодействие пользователя с эмулятором. Связь между клиентом и сервером осуществляется при помощи PInvoke – механизма вызова функций неуправляемого кода в управляемом.

На рисунке 6 показано окно приложения, отображающее динамику работы эмулятора.

В составе сервера имеется менеджер работы с COM-портами, осуществляющий чтение и запись UCSNet-телеграмм. В каждой телеграмме указан номер привода, поэтому COM-порт менеджер передаёт телеграмму соответствующему объекту привода, которому она предназначена. Количество эмулируемых сервоприводов задаётся  в клиентской части при помощи стандартного компонента domainUpDown(1 на рисунке 6). Так же с помощью компонентов ComboBox можно выбирать порт эмулятора привода и скорость обмена с системой ЧПУ(2 и 3 на рисунке 6).

 

рис. 6. Окно эмулятора UCSNet-привода

Кнопки Start и Stop(4 на рисунке 6) позволяют запускать и останавливать работу эмулятора.

Эмулятор так же ведёт хронологический протокол (5 на рисунке 6), оповещающий о событиях, произошедших с момента запуска эмулятора, а так же панель отображения данных эмулируемых приводов (6 на рисунке 6), на которую выводится вся информация о поступивших в систему UCSNet-телеграмм.

 На рисунке 7 представлена часть окна отладочного терминала разработчиков системы ЧПУ AxiOMA ctrl, в которой видно, что система ЧПУ инициализировала контроллер привода вместо которого используется  эмулятор UCSNet-привод.

рис 7. DriveController инициализирован

Литература

1.   Л.И. Мартинова,  Г.М. Мартинов. Концепция построения базового ядра систем числового программного управления мехатронными системами // lab18.ipu.rssi.ru/projects/conf2010/1/15.htm

2.   Протокол UCSNet 1.0. Модуль привода UCSServo.

3.   Мартинов Г.М., Мартинова Л.И., Гpигорьев А.С. Специфика разработки программного обеспечения для систем управления технологическим оборудованием в реальном времени // Спецвыпуск T-Comm, июль 2009. C.121-124.