ЛЕКЦИИ ПО ТСАУ
.pdf
Рис. 11.6. Магистраль крейта КАМАК
По магистрали крейта передаются адреса, команды, данные, статусная информация и напряжение питания. Группа линий связи, предназначенная для сигналов одинакового функционального назначения, называется шиной.
12.4Методика построения программного обеспечения в автоматизированных системах на основе
унифицированных магистральномодульных интерфейсовчение
Автоматизированные системы сбора данных и управления объектами и процессами в научных исследованиях и промышленности, чаще всего, строятся на основе унифицированных магистральномодульных интерфейсных систем (ММС) (в частности КАМАК) и современных средств вычислительной техники.
Прикладное программное обеспечение для подобных систем делится на 2 категории:
-средства для управления объектом и сбора данных в реальном времени, как характерную для подобных систем, часть программного обеспечения;
-средства обработки информации, ее хранения, отображения и документирования, как традиционные типовые функции, присущие ЭВМ.
АС не накладывают на реализацию ПО 2-го типа особых требований.
Программные средства реального времени принято разделять на 4 уровня. Каждый из уровней решает свой круг задач.
12.5 Аппаратно-ориентированное программное обеспечение
Аппаратно-ориентированное ПО должно содержать набор процедур, обеспечивающих управление адаптером или контроллером, т.е. элементом, устанавливающим взаимодействие ЭВМ с интерфейсом ММС на аппаратном уровне.
Аппаратно-ориентированное ПО обеспечивает:
5
—прием или передачу данных по магистрали интерфейса в соответствии с протоколом обмена данными интерфейсной системы (синхронный или асинхронный),
—установку в "1" или сброс в "0" любых линий управления интерфейсом;
—чтение статусных линий магистрали интерфейса.
Объем аппаратно-ориентированного ПО определяется аппаратной реализацией адаптеров, которые принято делить на 2 вида:
—Адаптеры с преимущественно программной реализацией функций управления ММС. Строятся такие адаптеры на основе универсальных интерфейсных БИС.
—Адаптеры с преимущественно аппаратной реализацией функций управления ММС. Строятся такие адаптеры на основе специализированных интерфейсных БИС.
Для адаптеров, с преимущественно аппаратной реализацией функций управления, объем аппаратноориентированного ПО, как правило, незначителен, поскольку большинство задач реализовано не на программном, а на аппаратном уровне.
Разработчик аппаратно-ориентированного ПО должен детально разбираться в элементах аппаратной реализации адаптера, возможностях его работы в реальном времени, т.е. возможностях применения различных методов обмена данными между ЭВМ и компонентами интерфейса.
Для эффективного использования ресурсов ЭВМ, аппаратно-ориентированное ПО часто пишется на машинно-ориентированных языках программирования.
Аппаратно-ориентированное ПО не имеет самостоятельного значения, а служит базой для разработки следующего уровня ПО.
12.6Интерфейсно-ориентированное программное обеспечение
Второй уровень — интерфейсно-ориентированное ПО включает набор процедур, обеспечивающих управление любым элементом системы в терминах типовых алгоритмов управления интерфейсом.
Интерфейсно-ориентированное ПО строится на основе аппаратно-ориентированного ПО. Основным вопросом при разработке интерфейсно-ориентированного ПО является определение состава процедур управления интерфейсом, обеспечивающих все возможности интерфейса АС. Интерфейсно-ориентированное ПО не должно ограничивать возможности интерфейса, с одной стороны, а с другой, должно быть понятно широкому кругу пользователей.
От разработчика интерфейсно-ориентированного ПО требуются знания интерфейса ММС, для которого оно разрабатывается.
В качестве примеров можно привести рекомендации Международной электротехнической комиссии по разработке интерфейсно-ориентированного ПО для интерфейса КАМАК — МЭК-713 или рекомендации фирмы Hewlett-Packard для приборного интерфейса HP-IB.
12.7Приборно-ориентированное программное обеспечение
Следующий уровень — приборно-ориентированное ПО должно включать набор процедур для управления определенными типами интерфейсных модулей или приборов.
Приборно-ориентированое ПО позволяет реализовать различные алгоритмы управления приборами системы специалисту, мало знакомому с интерфейсом, используемым в автоматизированной системе.
ПО этого уровня используется для реализации различных алгоритмов управления объектом в рамках некоторого перечня приборов.
6
Разработчик ПО и пользователи АС должны знать возможности приборов системы по переработке информации (их режимы работы, диапазоны сигналов на входах и выходах), возможности дистанционного управления приборами.
12.8Интегрированная среда разработчика
Самый высокий уровень ПО связан с применением интегрированной среды разработчика для приборно-модульных автоматизированных систем.
Главным принципом, положенным в основу построения интегрированной среды разработчика стал тезис "чем меньше программирования, тем лучше".
Это привело к разработке функционально-полного набора процедур для всех ресурсов автоматизированной системы (включая ЭВМ и интерфейс).
Подобная среда позволяет в основном с помощью «мышки»:
—создавать программы управления, сбора и обработки данных в самых разнообразных автоматизированных системах, используя многочисленные библиотеки: драйверов, библиотеки обработки данных и представления результатов исследования;
—быстро создавать удобный графический интерфейс пользователя, используя типовые функциональные панели;
—провести любой эксперимент в диалоговом режиме;
—запомнить программу, которая создается автоматически.
Пользователю достаточно быть специалистом в своем деле - испытателем, метрологом и т.д.
В качестве примеров подобных систем приведем разработки фирмы National Instruments: LabView, LabWindows CVI, Lookout (программирование промышленных контроллеров), BridgeVIEW (разработки в области АСУТП).
Все продукты используют графический язык программирования G (джей), который обладает гибкостью, не имеющей аналогов, особенно важной для разработки автоматизированных систем.
В LabVIEW программы называются виртуальными инструментами (VI).
Начинается разработка программы с построения пользовательского интерфейса (лицевой панели прибора), который дает возможность интерактивного управления автоматизированной системой. Конструирование лицевой панели сводится к рисованию картинки.
Для рисования среда программирования предоставляет различные индикаторы и управляющие элементы.
Остается только выбрать их из меню и расставить на панели. Вы можете изменять цвет, размер, метку каждого элемента.
Элементы лицевой панели могут использоваться для управления АС как до запуска программы на выполнение, так и во время выполнения.
Управление выполняется, путем изменения положения переключателей и регуляторов, поворачивая ручки управления мышкой или вводя значения с клавиатуры. Таким образом, панель "оживает", обеспечивая обратную связь с АС.
Для описания функционирования системы строится блок-диаграмма - привычный элемент для любой технической разработки.
Блок-диаграмма является исходным кодом программы. Функциональные элементы блок-диаграммы выбираются из меню.
7
Это могут быть как блоки элементарных алгебраических операций, так и сложные функции сбора и анализа данных, сетевые операции и файловый ввод/вывод, обмен данными с жестким диском. Библиотеки подпрограмм LabVIEW включают:
—статистику,
—решение уравнений,
—регрессионный анализ,
—линейную алгебру,
—алгоритмы генерации сигналов,
—анализ сигналов в частотной и временной области,
—оконные процедуры спектрального анализа и цифровую фильтрацию.
Компоненты блока диаграмм соединяются с помощью проводников для обеспечения передачи данных от одного блока другому.
Таким образом, решается требующая немало времени и усилий при обычном подходе задача трансформация идеи разработчика в код программы.
LabVIEW имеет обширный набор средств для тестирования и отладки системы. Окно подсказки (Help Window) описывает каждый блок и его соединения.
Вокне Error Window, LabVIEW немедленно проинформирует вас о неправильных соединениях в списке ошибок.
Вассортимент отладочных средств:
•входят подсветка выполнения блок-диаграммы,
•пошаговый режим,
•прерывания и индикация значений.
Таким образом, вы можете производить трассировку и исследование выполнения программы непосредственно на блок-диаграмме.
LabVIEW является модульной средой по своей структуре.
Любая программа может использоваться в блок-диаграмме другой программы как подпрограмма. Разбив свою программную систему на подпрограммы, вы можете независимо разработать и интерактивно протестировать эти подпрограммы, и тут же использовать их как узлы для построения программы более сложного уровня.
Модульная иерархия позволяет эффективно разрабатывать, модифицировать, заменять и комбинировать программы для удовлетворения изменяющихся требований конкретного приложения. В задачах реального времени, скорость выполнения программы является критичной.
LabVIEW — единственная графическая среда программирования с компилятором, который генерирует оптимизированный код.
Скорость выполнения LabVIEW программ близка к скорости выполнения компилированных Си программ.
Поэтому, используя данный графический язык, можно увеличить производительность создания программ без снижения скорости их выполнения.
Программа Application Builder выполняет преобразование VI в обычную исполняемую *.ехе программу, которая запускается и выполняется самостоятельно, как любая Windows программа. Как правило, любой программный пакет покрывает только один аспект задачи построения ПО АС, но не решает все проблемы — сбор данных, их анализ, представление и управление.
8
LabVIEW предоставляет все необходимые средства, объединенные единой методологией, поэтому вряд ли понадобится покидать среду LabVIEW при реализации всего комплекса задач построения ПО в АС.
Знакомство с различными уровнями ПО позволяет в дальнейшем правильно ориентироваться в решении практических задач разработки прикладного программного обеспечения автоматизированных систем.
9
Лекция №13. Технические средства автоматизации на основе интерфейса КАМАК
13.1 Магистраль крейта КАМАК
Рис. 13.1. Магистраль крейта КАМАК
Шина данных 24 разрядная, однонаправленная, состоит из 24 линий R (―Чтениеǁ) и 24 линий W (―Записьǁ). По линиям W контроллер может пересылать информацию в функциональный модуль, по линиям R функциональный модуль может пересылать информацию контроллеру. Обмен данными может выполняться словами длиной до 24 двоичных символов, младший бит передается по линии R1. Шина адреса состоит из 24 индивидуальных линий ―номер станцииǁ (N1-N24) – по линиям N передается адрес модуля, такой способ адресации называется географической адресацией. Также имеет 4 сквозных линии: A8, A4, A2, A1 – по ним передается субадрес элемента в модуле. Адрес некоторого элемента функционального модуля складывается из номера установочной станции Ni и кода субадреса. Дешифрация субадресов выполняется непосредственно в адресованном модуле. Шина управления состоит из 5 сквозных линий ―Операцияǁ (F16, F8, F4, F2, F1) и 3 линий ―Общее управлениеǁ (Z, C, I). Сигналы на линиях F позволяю контроллеру передавать 32 различных кода операций от F(0) (F16=F8=F4=F2=F1=0) до F(31) (F16=F8=F4=F2=F1=1), которые должны выполняться адресованным модулем. Коды операций полностью декодируются в модуле. Сигналы общего управления позволяют выполнять безадресные операции общего управления одновременно во всех модулях крейта. Сигнал Z (―Пускǁ ) служит для начального запуска системы, позволяет установить все регистры данных, управляющие регистры и отдельные триггеры в определенное начальное состояние. Сигнал C (―Сбросǁ) служит для установки в исходное состояние выбранных разработчиком регистров и отдельных триггеров. Разница в действии сигналов Z и C заключается в том, что сигнал Z должен обязательно использоваться разработчиком, а сигнал C может использоваться по усмотрению
1
разработчика. Сигнал I (―Запретǁ) может запрещать действия в модуле, предусмотренные разработчиком.
Шина состояния включает 3 сквозные линии ―Состояниеǁ (X, Q, B) и 24 индивидуальные линии ―Запрос на обслуживаниеǁ (L1-L24). Сигнал X (команда принята) является обязательным ответом модуля на адресованную ему операцию F(0)-F(31). Модуль вырабатывает сигнал X=1, если может выполнить команду. Во всех остальных случаях должен быть установлен X=0. Сигнал Q (Ответ) показывает состояние модуля, может вырабатываться модулем в ответ на любую адресованную операцию для указания состояния выбранного элемента модуля. Сигнал Q обязательно вырабатывается на команды: F(8) – проверка запросов и F(27) – проверка состояния. Сигнал B (магистраль занята) – единственный статусный сигнал, вырабатываемый контроллером крейта. Сигналы запросов L1-L24 вырабатываются модулями для передачи контроллеру сообщений о необходимости выполнения действий по их обслуживанию.
Шина синхронизации включает 2 сквозные линии: СТРОБ1, СТРОБ2 – синхронизация обмена по магистрали и синхронизация операций в модуле при контроллере. СТРОБ1 (S1) разрешает контроллеру или модулю принимать данные с линии магистрали и посылать какие-либо действия, не изменяющие состояние линий магистрали. СТРОБ2 (S2) используется для начала действий, которые могут изменить состояние линий магистрали. Во время действия операции F(2) выполняется чтение регистра и сброс регистра по S1 и его сброс по строб сигналу S2.
Шина питания включает возможность подключения обязательных источников питания, дополнительных источников питания и резервных линий.
13.2 Пространственно-временные диаграммы операций на магистрали крейта
0,45 |
0,2 |
0,1 |
0,75
а) |
б) |
Рис. 13.2 Временные диаграммы операций на магистрали крейта КАМАК: а) адресных, б) безадресных
a)Адресные операции.
Начиная операцию, контроллер выставляет на шины магистрали сигналы номера станции, субадреса, кода операции и сопровождает их сигналом ―магистраль занятаǁ B=1. Адресованный модуль реагирует на команду, генерируя статусные сигналы X, Q, а также данные при операции чтения на линии R магистрали. При операции записи контроллер устанавливает информацию на шину W. Прием сигналов с линий X, Q, R, W должен
2
происходить в интервале действия строб-сигнала S1. По строб-сигналу S2 информация на шине данных может быть изменена. Сигнал запроса на обслуживание от модуля L=1 должен блокироваться на время выполнения адресуемой операции, по ее окончании может быть установлен, если передаваемая команда не изменила его значение. Следующая операция может начинаться в момент окончания предыдущей операции. Установление сигналов новых опреаций совпадает по времени с удалением сигналов от предыдущей операции. Длительность адресуемой операции – 1 мкс.
Максимальная скорость передачи информации – 24 Мбит/с.
b)Безадресные операции Z, C, I вызывают действия во всех функциональных модулях, подключенных к магистрали. Операции Z и C обязательно сопровождаются сигналом B=1. Сигнал Z должен иметь абсолютный приоритет перед другими сигналами и сопровождаться сигналом I=1. Выполнение действий, определенных операциями Z и C, должно начинаться в момент появления строб-сигнала S2. Сигнал I=1 может устанавливаться на линию и сбрасываться в любые моменты времени. Помимо контроллера сигнал I может вводиться от внешнего источника или генерироваться функциональными модулями. В последнем случае сигнал I=1 сохраняется на магистрали до момента сброса его внутри модуля. Длительность безадресной операции составляет 0,75 мкс.
13.3 Виды и назначение адресных операций на магистрали крейта
Во время выполнения адресных операций в модуле могут выполняться следующие действия:
Чтение данных или запись; Установка в 1 или сброс в 0;
Запуск модуля или его останов; Проверка состояния модуля.
Код операции задается состоянием сигналов на пяти линиях F16, F8, F4, F2, F1 – 32 операции:
18 стандартных (содержание определено стандартом КАМАК);
8 нестандартных (могут использоваться разработчиком по своему усмотрению);6 резервных (зарезервированы для дальнейшего развития системы КАМАК).
Адресные операции интерфейса КАМАК
Функция F(0) F(1) F(2) F(3)
F(4), F(6) F(5), F(7)
F(8)
F(9)
F(10)
F(11) F(12), F(14) F(13), F(15)
Содержание операции КАМАК |
Использование шин R, W |
Чтение регистра группы 1 |
Используется шина R |
Чтение регистра группы 2 |
|
Чтение и сброс регистра группы 1 |
|
Чтение обратного кода регистра группы 1 |
|
Нестандартная |
|
Резервная |
|
Проверка запросов |
Не используются шины R и W |
Сброс регистра группы 1 |
|
Сброс запросов |
|
Сброс регистра группы 2 |
|
Нестандартная |
|
Резервная |
|
3
F(16)
F(17)
F(18)
F(19) F(20), F(22) F(21)
F(23)
F(24)
F(25)
F(26)
F(27) F(28), F(30) F(29), F(31)
Запись в регистр группы 1 |
Используется шина W |
Запись в регистр группы 2 |
|
Селективная установка регистра группы 1 |
|
Селективная установка регистра группы 2 |
|
Нестандартная |
|
Селективный сброс регистра группы 1 |
|
Селективный сброс регистра группы 2 |
|
Запрещение |
Не используются шины R и W |
Исполнение |
|
Разрешение |
|
Проверка состояния |
|
Нестандартная |
|
Резервная |
|
Адресные операции F(0)-F(3), F(9), F(11), F(16)-F(19), F(21), F(23) позволяют разделить регистр модулей на 2 группы. В каждом модуле могут присутствовать 2 группы регистров (выбираемые кодом операции) по 16 регистров в каждой (выбираемых субадресом)
Все операции по назначению делятся на четыре группы, которые характеризуются определенными значениями сигналов линий F8 и F16:
F(0)-F(7) – операции чтения, данные передаются из функционального модуля в КК по шине R. F(8)-F(18) – первая группа операций управления.
F(24)-F(31) – вторая группа операций управления.
F(16)-F(23) – операции записи, данные передаются из КК в функциональный модуль по шине W. В каждой группе содержатся 8 операций, которые варьируют основной содержание операций в данной группе.
1.Операции чтения.
F(0), F(1) – передают содержимое регистров группы 1,2 из функционального модуля (ФМ)
вКК. Данные КК всегда принимает в момент строб-сигнала S1.
F(2) – За один командный цикл выполняются два действия: чтение данных из ФМ в КК в момент строб-сигнала S1, сброс данных в регистре модуля в момент строб-сигнала S2.
F(3) – передает из ФМ в КК обратный код регистров группы 1. F(0), F(1), F(3) – при выполнении данные в регистрах модулей не изменяются.
2.Операции управления 1, 2 группы: F(8)-F(15), F(24)-F(31). При выполнении операций данные не должны передаваться.
F(8) – используется для контроля L-запроса от модуля. Операция LAM-требования (Look At Me). При выполнении команды F(8) передается ответ по линии Q. Q=1 – есть запрос от модуля, и он разрешен в модуле; Q=0 – запрос отсутствует или запрещен в модуле (замаскирован).
F(9), F(11) – сброс регистров 1 или 2 группы.
4
