COM-объект крейта КАМАКа выполнен в виде exe-модуля.
Обеспечивает минимальный набор функций и событие по LAM-запросу.
Регистрация
Методы, свойства, события
Примеры
-------------------------------------------------------------------------------------------
Чтобы
использовать COM-объект нужно его зарегистрировать в системе:
.\ xcrate.exe -RegServer
Если понадобится разрегистрировать:
.\xcrate.exe -UnRegServer
Чтобы использовать объект в VBA, например
в Excel, надо поставить галочку напротив XCrate Type Library
1.0 в: Tools->References
Имеет понятный интерфейс:
Методы:
HRESULT WriteWord([in] int posN, [in]
int subA, [in] short data);
-----------------------------------------------------------------------------
Параметры:
posN - номер позиции в крейте
subA - субадрес
data - данные.
Замечания:
Запись слова.
HRESULT Open([in]int CardN,[in]int
CrateN);
-----------------------------------------------------------------------------
Параметры:
CardN - порядковый номер карточки, считая не от процессора.
CrateN - номер канала (крейта), отсчитывая от основания
разъема.
Замечания: функция Open открывает необходимый
канал.
HRESULT Close();
-----------------------------------------------------------------------------
Замечания: закрывает канал
HRESULT ReadWord([in]int posN, [in]int
subA, [out,retval] short* data);
-----------------------------------------------------------------------------
Параметры:
posN - номер позиции в крейте
subA - субадрес
data - данные.
Замечания:
Запись данных.
-----------------------------------------------------------------------------
Свойства:
имя |
тип |
get |
put |
Описание |
status |
short |
X |
|
статус последнего
обмена* |
X |
BOOL |
X |
|
бит X статуса |
Q |
BOOL |
X |
|
бит Q статуса |
error |
BOOL |
X |
|
true - ошибка
в последней операции, false - удачное выполнение. |
str_error |
String |
X |
|
строка ошибки |
LAMEnabled |
BOOL |
X |
X |
включение
прерываний |
*
статусный регистр ИПС-6(на каждый канал):
To - Time Out
Er - Error(ошибка контрольной суммы)
A - накопленный.
-------------------------------------------------------------------------------------
Пример на VBA Excel:
'Объявление объекта в общей области
Dim WithEvents MyCrate As XCrateLib.Crate
Private Sub Workbook_Open()
Set MyCrate = New XCrateLib.Crate ' создание
объекта
MyCrate.Open 1, 1 ' открытие 1-го канала 1-ой карточки
MyCrate.WriteWord 0, 0, 64 ' запись 0x1000000 в статусный
регистр кон-ра(разрешение прохождения LAM-запросов)
MyCrate.WriteWord 0, 1, 15 ' запись 0x1111 в регистр масок
и запросов
Лист1.Range("A1") = 0
MyCrate.LAMEnabled = 1 ' включение события
End Sub
Private Sub Workbook_Deactivate()
Set MyCrate = Nothing
End Sub
Private Sub Workbook_Deactivate()
Set MyCrate = Nothing
End Sub
' Процедура обработки события по LAM-запросу
Private Sub MyCrate_Lam()
Лист1.Range("A1") = Лист1.Range("A1") + 1
MyCrate.LAMEnabled = 1 ' включение генерации событий
End Sub