Меню сайта
 
 
   Платы PCI

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(на каждый канал):
 

                X Q Er To AX AQ AEr ATo

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