Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемАлина Труфанова
1 Проект VISA-QNX для автоматизации измерительно- испытательных систем. ПИЯФ РАН - ЦНИИЛ «ARD» М. Югалдин
2 Приборные шины: VME (IEEE 1014, 1987) VXI (IEEE 1155, 1993) GPIB (IEEE 488.1, 1978, IEEE 488.2,1987) RS-232 Программное обеспечение: SCPI (ВВС США), SICL (HP), NI-VXI (NI) etc.
3 VXIplug&play System Alliance Ver Ver Virtual Instrument Software Architecture
4 VISA: Системная архитектура: IBM PC, SUN, HP, embedded VME/VXI Интерфейсы: VME/VXI, GPIB, RS-232, PXI/CompactPCI (v.2.0.1) Операционные системы: WIN, WIN95,WINNT, HP-UX, SunOS/Solaris Языки программирования и компиляторы: C, BASIC, G (NI - LabView) Програмные драйвера Приборная панель (Soft Front Panel) Библиотека VISA
5 Принципы построения библиотеки VISA: ресурсы (resources) атрибуты (attributes) события (events) операции (I/O operations) сеансы (sessions) шаблон ресурсов (Resource Template) менеджер ресурсов (Resource Manager)
6 VISA-ресурс Запись: Посылает к устройству ASCII-команды/данные Атрибуты: значение тайм-аута транспортный механизм - DMA, PIO тип окончания передачи - послать End протокол: Normal, HS488, ets. События: аварийное завершение по запросу пользователя Операции: viWrite(vi, buf, count, retCount) viGetAttribute(vi, attribute, attrState) viSetAttribute(vi, attribute, attrState) viLock(vi, lockType, shareType, timout, lockID) viUnlock(vi, lockID)
7 Сервисы VISA: Сервисы resource manager Сервисы шаблонов: управление жизненным циклом (lifetime control) управление атрибутами (characteristic control) управление асинхронными операциями (asynchronous operation control) управление доступом (access control) сообщения о событиях (event reporting) Сервисы, зависящие от ресурсов: базовый ввод/вывод форматированный ввод/вывод ввод/вывод памяти ввод/вывод разделяемой памяти (shared memory) специфические сервисы GPIB, VXI, GPIB-VXI
8 Сервисы resource manager: viOpenDefaultRM(sesn) viFindRsrc(sesn, expr, findList, retcnt, instrDesc) viFindNext(findList, instrDesc) viOpen(sesn, rsrcName, accessMode, timeout, vi)
9 Сервисы шаблонов: Управление жизненным циклом (lifetime control): viClose(vi) Управление атрибутами (characteristic control): viGetAttribute(vi, attribute, attrState) viSetAttribute(vi, attribute, attrState) viStatusDesc(vi, status, desc) Управление асинхронными операциями (asynchronous operation control): viTerminate(vi, degree, jobId) Управление доступом (access control): viLock(vi, lockType, timeout, reqKey, accKey) viUnlock(vi)
10 Сообщения о событиях (event reporting): viEnableEvent(vi, eventType, mechanism, context) viDisableEvent(vi, eventType, mechanism) viDiscardEvents(vi, eventType, mechanism) viWaitOnEvent(vi, inEventType, timeout, outEventType, outContext) viInstallHandler(vi, eventType, handler, userHandle) viUninstallHandler(vi, eventType, handler, userHandle) Два типа доступа к событиям: Механизм очередей (queuing mechanism) Механизм вызова (callback)
11 Базовый ввод/вывод: viRead(vi, buf, count, retCount) viReadAsync(vi, buf, count, jobID) viWrite(vi, buff, count, retCount) viWriteAsync(vi, buf, count,jobId) viAssertTrigger(vi, protocol) viReadSTB(vi, status) viClear(vi)
12 Форматированный ввод/вывод: viSetBuf(vi, mask, size) viFlush(vi, mask) viBufWrite(vi, buf, count, retCount) viBufRead(vi, buf, count, retCount) viPrintf(vi, writeFmt, arg1, arg2,...) viVPrintf(vi, writeFmt, params) viSPrintf(vi, buf, writeFmt, arg1, arg2,...) viVSPrintf(vi, buf, writeFmt, params) viScanf(vi, readFmt, arg1, arg2,...) viVScanf(vi, readFmt, params) viSScanf(vi, buf, readFmt, arg1, arg2,...) viVSScanf(vi, buf, readFmt, params) viQueryf(vi, writeFmt, readFmt, arg1, arg2,…) viVQueryf(vi, writeFmt, readFmt, params)
13 Ввод/вывод памяти (X = 8, 16, 32): viInX(vi, space, offset, valX) viOutX(vi, space, offset, valX) viMoveInX(vi, space, offset, length, bufX) viMoveOutX(vi, space, offset, length, bufX) viMove(vi, srcSpace, srcOffset, srcWidth, destSpace, destOffset, destWidth, length) viMoveAsync(vi, srcSpace, srcOffset, srcWidth, destSpace, destOffset, destWidth, length, jobId) viMapAddress(vi, mapSpace, mapBase, mapSize, access, suggested, address) viUnmapAddress(vi) viPeekX(vi, addr, valX) viPokeX(vi, addr, valX)
14 Сервисы разделяемой памяти: viMemAlloc(vi, size, offset) viMemFree(vi, offset) Специфические сервисы: viGpibControlREN(vi, mode) viVxiCommandQuery(vi, mode, cmd, response)
15 ПИЯФ РАН, ЦНИИЛ ARD Приборная программа ПИЯФ Контроллеры VXI: Зеленоград, ПИЯФ Проект VISA: Перевод VPP1-VPP9 OS: QNX, linux, win9x Распределенная архитектура
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.