📄 pm5320.h
字号:
// AIRange = 0,表示返回原码(0-65535),所有卡都有这种方式
// AIRange = 1,表示把原码值转化为 0 -- 5000mV 之间的值,如果此卡没有这种量程,不应选这种方式
// AIRange = 2,表示把原码值转化为 0 -- 10000mV 之间的值,如果此卡没有这种量程,不应选这种方式
// AIRange = 5,表示把原码值转化为 -5000 -- 5000mV 之间的值,如果此卡没有这种量程,不应选这种方式
// pResultArr:是一个含有至少 nCount 个long型元素的缓冲区的首地址
// nCount: 需要采集的次数,必须>0,并且不应超出缓冲区的长度
// ADOverTime:设置超时时间,防止地址不对时死机,是一个毫秒数
// 若 ADOverTime = 0 表不检查AD超时
//返回值:返回 nCount 次采样的平均值
// 若返回 -1 应该进一步调用 GetDll_LastErrNO 判断是否出错
/////////////////////PM518 DA相关函数/////////////////////////////////////////////////
ZT_API long _stdcall ZT_PM518_AOSingle(unsigned long nAddr,unsigned long nCh,long nValue,unsigned long AORange);
//函数功能:指定通道模拟量输出
//入口函数:
// nAddr :板卡基地址
// nCh :通道号1-8(通道号默认从1开始)
// nValue :要输出的值,例如当AORange = 1时,nValue=3000表示输入3V
// AORange:
// AORange = 0,表示返回原码(0-4095)
// AORange = 1,表示把原码值转化为 0 -- 5000mV 之间的值,如果此卡没有这种量程,不应选这种方式
//返回值:0表成功,-1表失败,函数调用失败时应进一步调用 GetDll_LastErrNO 判断出错原因
///////////////////DIO///////////////////////////////
ZT_API long _stdcall ZT_PM518_SetIOMode(unsigned long nAddr,unsigned long nGroup,unsigned long nIOMode);
//函数功能:设置某一组开关量的输入输出模式
//入口参数:nAddr 板卡基地址
// nGroup 组号(1-3)共3组
// nIOMode 设置IO方式,0 = 输入方式,1 = 输出方式
//函数返回值:
// 0 表示成功
// -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因
ZT_API long _stdcall ZT_PM518_DIAll(unsigned long nAddr,unsigned long nGroup,unsigned long IOModeCheck);
//函数功能:得到某组中所有通道的开关量输入状态,注意每8个通道为一组
//入口参数:nAddr 板卡基地址
// nGroup 组号(1-3)每8个通道为一组,共3组
// IOModeCheck 设置是否检查IO工作方式与当前的操作相抵触
// 0 = 不检查,1 = 检查
//函数返回值:
// 0 表示这组的8个通道输入全为低电平
// 0xFF 表示这组的8个通道输入全为高电平
// -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因
ZT_API long _stdcall ZT_PM518_DOAll(unsigned long nAddr,unsigned long nGroup,unsigned long nStateAll,unsigned long IOModeCheck);
//函数功能:设定某组的所有通道的开关量输出状态,每8个通道为一组
//入口参数:nAddr 板卡基地址
// nGroup 组号(1-3)每8个通道为一组,共3组
// nStateAll 指定某组中的所有通道的开关量输出状态
// 例如:0 = 所有8个通道输出低电平,
// 0xFF = 所有8个通道输出高电平
// IOModeCheck 设置是否检查IO工作方式与当前的操作相抵触
// 0 = 不检查,1 = 检查
//函数返回值:
// 0 表成功
// -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因
ZT_API long _stdcall ZT_PM518_DOBit(unsigned long nAddr,unsigned long nGroup,unsigned long nBit,unsigned long nState,unsigned long IOModeCheck);
//函数功能:设定某组中某个通道的开关量输出状态,每8个通道为一组
//入口参数:nAddr 板卡基地址
// nGroup 组号(1-3)每8个通道为一组,共3组
// nBit 指定某组中的第几个通道(1-8),每组8个通道
// nState 指定通道的开关量输出状态
// 0 = 低电平,1 = 高电平
// IOModeCheck 设置是否检查IO工作方式与当前的操作相抵触
// 0 = 不检查,1 = 检查
//函数返回值:
// 0 表成功
// -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因
ZT_API long _stdcall ZT_PM518_DIBit(unsigned long nAddr,unsigned long nGroup,unsigned long nBit,unsigned long IOModeCheck);
//函数功能:得到某组中某个通道的开关量输入状态,每8个通道为一组
//入口参数:nAddr 板卡基地址
// nGroup 组号(1-3)每8个通道为一组,共3组
// nBit 指定某组中的第几个通道(1-8),每组8个通道
// IOModeCheck 设置是否检查IO工作方式与当前的操作相抵触
// 0 = 不检查,1 = 检查
//函数返回值:
// 0 表示低电平
// 1 表示高电平
// -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因
// ZT_API long _stdcall ZT_PM518_SetIOModeAll(unsigned long nAddr,unsigned long nIOMode);
//函数功能:设置所有组开关量的输入输出模式
//入口参数:nAddr 板卡基地址
// nIOMode 设置IO方式,0 = 输入方式,1 = 输出方式
// bit0,bit1,bit2分别对应第1,2,3组
// 例子:如果想将第1组设为输出,第2组设为输入,第3组设为输出的话,nIOMode应设额定为0x101
//函数返回值:
// 0 表示成功
// -1 表示调用出错,应该进一步调用GetDll_LastErrNO函数查找出错原因
//////////////////////////////////化物所518中断采集函数////////////////////////////////////////
// 中断次数的计算方法:在100k采样频率的情况下,中断次数为:
// ((离子门脉频参数-离子门脉宽参数)*离子门脉冲个数)/4096的商
ZT_API long _stdcall ZT_PM518INTENA(unsigned long nAddr,\
unsigned short *sfifo,\
unsigned short *eff);
//函数功能:控制中断功能的打开,关闭,设置软件缓冲区
//入口参数:nAddr 板卡基地址
// *sfifo 软件缓冲区指针,需要设定成一个足够大的数组,可在中断中采集(4096*中断次数)个数据
// 注意:此数组大小需要大于中断次数*4096,否则会丢失数据
// *eff 软件缓冲区指针,采集不到半满的fifo中的数据,数组设定为4096个即可
//函数返回值:
// 1 表示中断已开启
// 0 表示中断已关闭
// -1 表示调用出错
// -2 中断采集缓冲区未指定(*sfifo)
// -3 非半满采集缓冲区未指定(*eff)
ZT_API long _stdcall ZT_PM518INTTIMESET(unsigned long nAddr,\
unsigned long inttimein);
//函数功能:设定期望的中断次数
//入口参数:nAddr 板卡基地址
// inttimein 中断次数写入(计算方法见上面)
//函数返回值:
// m_inttime:中断次数期望值
ZT_API long _stdcall ZT_PM518INTIN(unsigned long nAddr);
//函数功能:返回采集过程中进入的中断次数
// 可在一次采样过程结束后检查实际中断次数是否和期望值相同
//入口参数:nAddr 板卡基地址
//函数返回值:
// m_intflag:中断次数
ZT_API long _stdcall ZT_PM518AIinit(unsigned long nAddr,\
unsigned long nChMode,\
unsigned long nCh,\
unsigned long Fre);
//函数功能:AD采样初始化
//入口参数:nAddr 板卡基地址
// nChMode 0-固定通道采集 1-循环通道采集
// nCh 固定通道方式此参数为采样通道号(1~32)
// 循环通道方式此参数为截止通道号(1~32)
// 注意:特制驱动多通道循环采样无意义,请不要使用
// Fre 设定采样频率,采样频率计算:1M/(Fre+1)
// 举例:100k采样频率:Fre=99 (1M/(99+1)=100K)
//
//函数返回值:
// 0: 调用成功
// -1:调用失败
ZT_API long _stdcall ZT_PM518READHFIFO(long *pResultArr,\
unsigned long wCount);
//函数功能:内存方式读取数据
//入口参数:pResultArr 缓冲区首地址指针
// wCount 读取数据的字节数
// 注意:518是16位采集卡,所以期望读回的数据要是wCount的2倍,而且必须是4096的倍数
//函数返回值: 无
ZT_API long _stdcall ZT_PM518TIMEENDS(unsigned long nAddr);
//函数功能:返回采样经历时间,单位:秒
ZT_API long _stdcall ZT_PM518TIMEENDMS(unsigned long nAddr);
//函数功能:返回采样经历时间,单位:豪秒
ZT_API long _stdcall ZT_PM518INTHANDLE(unsigned long nAddr, HWND hWnd);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -