Сосонкин_Системы_ЧПУ (1087166), страница 27
Текст из файла (страница 27)
91). Метод CNcSync::Sync()просматривает список программных таймеров и для каждого элемента списка осуществляет вызов метода OnSync(). В методе CNcTimer::OnSync() увеличивается содержимое счетчика времени. Если значение счетчика време-Таймер опорнойчастотыПрограммныйтаймер 2Программныйтаймер 1CNCTimerClient::OnPfocessTimeSliceQ ^^Клиент^ s ^Клиент«•»««•» _КлиентКлиент_Программныйтаймер N_I КлиентРис. 91. Схема работы модуля синхронизацииЛтл*-•КлиентГлава 3. Задачи управления•J 5 1ни становится равным времени счета, то счетчик времени обнуляется, послечего вызывается метод CNcTimer::OnTimerEvent().Синхросигнал передается всем объектам, входящим в состав контроллера. Для этого в CNcTimer, на этапе инициализации контроллера создаетсясписок всех объектов m_Clients.
Элементами списка служат указатели наобъекты класса CNcTimerClient, порождающего все классы виртуальногоконтроллера. Передача синхросигнала объекту (выделение кванта времени) осуществляется вызовом перегруженного метода OnProcessTimerSiice():из списка m_CIients последовательно извлекаются все указатели на объекты.
Каждый извлеченный указатель вызывает метод OnProcessTimeSliceQ,в котором непосредственно отрабатываются команды.Регистр, представляющий собой разделяемую память, поддерживает весьинформационный обмен между аппаратными средствами и некоторымиобъектами виртуального контроллера. Например, сигналы с датчиков отображаются в ячейках разделяемой памяти.
Работа с регистром виртуальногоконтроллера абстрагирована в специальном классе CNcRegControl. Методы CNcRegControl::Read() и CNcRegControl::Write() осуществляют чтениезапись содержимого регистра. Разделяемая память состоит из набора последовательно расположенных байтов, отображающих как текущее состояние физических объектов, подключенных к виртуальному контроллеру, таки вектор управления физическими объектами.
Синхронизацию процессовчтения и записи осуществляет семафор.Шлюз CAN-PLC предназначен для отображения информации, передаваемой по CAN-магистрали к регистру. Шлюз работает с интерфейснымифункциями CAN-контроллера, считывает пакеты и направляет их в CANмагистраль. Если некоторый флаг в регистре отображает состояние конечного переключателя, то шлюз будет принимать пакеты от конечного переключателя, анализировать их и обновлять этот флаг в регистре. Если некоторый байт регистра отвечает за управление устройством, подключеннымк CAN-магистрали, то задачей шлюза будет слежение за изменениями этого байта и передача устройству значения байта.3.3.4.
CAN-интерфейсCAN (Controller Area Network) представляет собой последовательнуюасинхронную шину, использующую витую пару в качестве среды передачи.Существуют две версии CAN-интерфейса: в версии A (BasicCAN) для идентификации сообщений выделены 11 битов, при этом система обсуживает до2048 сообщений; в версии В (FullCAN) для идентификации сообщений выделены 29 битов, при этом система обсуживает до 536 млн сообщений.CAN-интерфейс используют в распределенных системах для объединения интеллектуальных датчиков, интеллектуальных приводов и систем152В.П. Сосонкин, Г.М.
Мартинов. Системы числового программного управленияДрайверплатыБуферпередачиБуферприема.1ИнтерфейсплатыШлюзCAN-SoftPLCРегистрЯдро SoftPLC| SoftPLCPC• Плата CAN контроллераIРис. 92. Схема взаимодействия виртуального контроллерас CAN-магистралъюуправления. Технологию CAN поддерживает и развивает некоммерческаямеждународная группа CiA (CAN in Automation) [57]. В нашем случае CANинтерфейс осуществляет передачу данных между разделяемой памятью иустройствами станка. В состав CAN-интерфейса входят контроллер, драйверы, сеть и удаленные устройства ввода-вывода (рис. 92).Если один из абонентов сети передает информационный пакет, то прочитать его могут любые другие абоненты.
Если CAN-контроллер обнаруживает признак начала передачи пакета, то считывает его во внутреннийFIFO-буфер, из которого впоследствии пакет будет направлен в системучерез драйвер контроллера. FIFO-буфер необходим, поскольку пакеты могут поступать быстрее, чем их считывает драйвер. Как только FIFO-буферпринимает очередной пакет, драйвер копирует его в буфер приема, откудазатем пакет может быть считан и проанализирован с помощью API-функций CanRcvMsgO- Если необходимо отправить пакет в сеть, то будет вызвана соответствующая API-функция CanSendMsgQ CAN-интерфейса, ко-Глава 3. Задачи управления153торая сформирует пакет на основе полученных ею параметров и скопируетего в буфер передачи в памяти драйвера. Если драйвер обнаружит в буферепередачи новый пакет, то передаст его в контроллер и далее в сеть.
Диаграмма последовательности считывания и записи данных в CAN со стороны исполнительного модуля в нотации UML [58] представлена на рис. 93.CAN read /writeИглогняемый мплупь:CNcfimerC^fjl|Readflong)IIhif1Регистр:CNcReg ControlCAN APIлэайвео11YCanSendMsgO11Witeflongjongи•1u1|У!1A<-CanRcvMsgCAN11FramejFrameIIи1111Рис. 93. Диаграмма последовательности считывания изаписи информации в CAN-интерфейсСкорость передачи данных в физическом канале CAN равна 1 Мбит/с.Фактическая скорость зависит от расстояния между абонентами, уровняпомех и времени работы математического обеспечения канала.
К передаваемым данным добавляется служебная информация, позволяющая идентифицировать пакет в узлах сети. Работа сети строится по принципу «каждый слышит каждого». При этом возможны два варианта информационного обмена (на примере датчика):1. Датчик передает информацию о своем состоянии в сеть с некоторойчастотой (например, 100 Гц). Контроллер обрабатывает поступающие данные по мере необходимости. Если они в этот момент не нужны, то игнорируются. Таким образом, ненужные данные все равно поступают в сеть,засоряя канал.2.
Датчик передает данные в сеть только по запросам, формируемымустройством. В нормальном режиме он следит за изменением своих параметров, но передает данные в сеть только при необходимости, т.е. послеполучения запроса. Запрос может быть однократным или групповым.•\ 5 4В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управленияНаиболее удачный вариант состоит в том, чтобы найти оптимальную(различную) частоту потребности в данных от каждого датчика. В рядеслучаев поток данных может достигать скорости, граничащей с пропускной способностью канала.
Такие потоки лучше настраивать на групповуюпередачу по запросам.Описанные методы относятся к низкоуровневым CAN-протоколам. Существуют протоколы и более высокого уровня, реализованные поверх нижнего, например CANopen. При их использовании возрастает сервис, носнижается эффективная пропускная способность.CAN-контроллеры могут содержать несколько изолированных CANпортов.
В случае недостаточной пропускной способности одного портаможно использовать другие и тем самым повысить общую пропускнуюспособность. Таким образом, создается несколько CAN-сетей, в каждой изкоторых могут находиться различные датчики. Недостаток заключается втом, что невозможен прямой обмен пакетами между сетями, т.е. абоненты,находящиеся в разных сетях, не могут обмениваться информацией без посредника.
В качестве посредника (моста) выступает виртуальный контроллер, который транслирует пакеты из сети отправителя в сеть получателя.Имеет смысл группировать датчики по сетям. Критериями могут служить интенсивность передачи информации датчиками, приоритет информации, принадлежность датчиков отдельным узлам оборудования.ЗаключениеИдея построения виртуального контроллера SoftPLC на базе персонального компьютера чрезвычайно плодотворна и перспективна. Имеется весьма скудная информация о том, как строить ядро такого контроллера. Намипредложен объектный подход, благодаря которому удается достичь высокойстепени обозримости системы, сократить затраты времени на разработкупрограммного обеспечения и упростить процесс отладки. В рассматриваемой системе виртуальный контроллер SoftPLC имеет модульную архитектуру, в которой отдельный класс отвечаетза свой объект управления на станке.Благодаря этому виртуальный контроллер обладает высокой степенью гибкости, позволяющей использовать его для станков различных групп и типов.Основная задача виртуального контроллера SoftPLC, заключающаяся водновременном выполнении нескольких управляющих команд и параллельной обработке внешних сигналов в режиме реального времени, была решена при помощи идеи псевдомногопоточности.
Эта идея использует механизм разделения времени (выделения квантов), а также дополнительную возможность работы с приоритетами. Для информационного обменас аппаратными средствами и между некоторыми объектами виртуальногоконтроллера было предложено использовать разделяемую память.Глава 3. Задачи управления-| 5 53.4. Реализация терминальной задачиИзложена формальная методика с применением инструментальных систем для реализации «скелета» терминальной задачи вWindows-интерфейсе.
Рассмотрены конфигурируемые приложения в составе терминальной задачи для редактирования, отладки и моделирования управляющих программ в коде ISO-7bit и наязыке высокого уровня.Терминальная задача в составе математического обеспечения ЧПУ [59]имеет особое значение, поскольку предъявляет конечному пользователюфункциональные возможности управления. Наполнение терминальной задачи определяет привлекательность и конкурентоспособность системыЧПУ на рынке. Свойства открытой системы ЧПУ развиты настолько, насколько терминальная задача поддается конфигурации и расширению. Наиболее важными разделами терминальной задачи служат: интерпретатордиалога оператора в Windows-интерфейсе [55], редактор управляющих программ в коде ISO-7bit [61], редактор-отладчик управляющих программ наязыке высокого уровня.