⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xdpsapi30.h

📁 接口应用于实时数据的接入
💻 H
字号:
///////////////////////////////XDPSAPI30///////////////////////////////

#pragma pack(push, 1) 

typedef struct {
	WORD	wTout;				//超时周期,单位为100ms
	char	szTag[30];			//测点名
	WORD	wTagSum;			//内部使用
	char	szSm[96];			//测点描述
	char	szTz[6];//12		//特征字
	char	szUnit[12];			//单位
	char	szFmt[12];			//输出格式
	float   fUpLmt;				//工程值上限
	float   fDownLmt;			//工程值下限
	WORD  	wCollectSpan;		//内部使用
	WORD	wStatus;			//测点状态
	float	fValue;				//测点值
	WORD	wUnAckCnt;			//报警未确认次数
	SYSTEMTIME ardt;			//最近一次报警时间
	WORD	wTcnt; 				//内部使用
} SAnalogPoint;

//模拟量实时状态:
//			以一个字存放,0~15位分别定义如下:
//          b0:保留,为0。
//          b1:OFW,功能块中任一个输出模拟量溢出范围或越出定义的量程限,
//              此位置1。任一个模拟量输出被限幅在有效数值之间,如果越限,
//              就置位本功能模块的数值溢出状态位。其它情况如被零除、负数
//              开根号等也本置溢出标志。
//          b2:IOB,/O通道故障,此位置1。此状态从I/O通道带过来。
//          b3:TOUT,网络或I/O通道接收超时,此位置1。超时识别位,超时
//              时被置为1。MMI自己设置本位。各节点自用。本位用于对从网上
//              获取数据的超时识别。
//          b4:保留,为0。
//          b5:Q,测点品质,0=好,1=坏。取决于b1~b4和前续功能块品质及传
//              递方式。
//          b6:EN,1=ScanOff/0=ScanOn,或1=Disbable/0=Enable。
//          b7:FST,计算过,此标识位置1。
//          b10b9b8:越限报警标识,000=Normal,  100=LL, 101=L, 110=H, 
//              111=HH, 011=速率报警
//          b11:报警未确认标识,   0=Normal,  1=Unack
//          b14b13b12:报警优先级,0~5, 5最高
//          b15:报警检查切除标识,  0=Off,  1=On

typedef struct {
	WORD	wTout;				//超时周期,单位为100ms
	char	szTag[30];			//测点名
	WORD	wTagSum;			//内部使用
	char	szSm[96];			//测点描述
	char	szTz[6];//12		//特征字
	char	szZeroSm[12];		//0状态描述
	char	szOneSm[12];		//1状态描述
	WORD    wCollectSpan;		//内部使用
	WORD	wStatus;			//测点状态
	WORD	wUnAckCnt;			//报警未确认次数
	SYSTEMTIME ardt;			//最近一次报警时间
	WORD	wTcnt; 				//内部使用
} SDigitalPoint;

//开关量值和状态: 
//		   用一个1字,包含实时值和实时状态,存放格式定义如下:
//           b0:开关点的值, 0=False,  1=True
//           b7~b1:同模拟点的定义
//           b8:报警标识,0=Normal,  1=Alarm
//           b10b9:保留,应为0。
//           b15~b11:同模拟点的定义

#pragma pack(pop) 
 
//1)初始化数据库,调用程序首先必须调用InitDatabase
//返回值为0时表示成功。返回值为非0时为不成功,必须退出程序。
int WINAPI InitDatabase();
 

//2) 根据测点名取模拟点ID号
//szTag为测点名
//返回测点ID号,当返回值-1时表示szTag测点不存在
//注意:ID号是一个4字节长整数,它由两部分组成,节点号和测点在此节点中的序号及本地ID号,
//      ID号的高字为节点号,低字为本地ID号
int WINAPI GetAnalogPointID( LPSTR szTag);

//3) 根据ID号取模拟量测点的结构
//iAxID为测点ID号
//pAx为返回的模拟量测点结构
//返回值TRUE表示成功,FALSE表示失败
BOOL WINAPI GetAnalogPoint( int iAxID, SAnalogPoint *pAx);

//4) 根据测点名取开关量点ID号
//szTag为测点名
//返回测点ID号,当返回值-1时表示szTag测点不存在
//注意:ID号是一个4字节长整数,它由两部分组成,节点号和测点在此节点中的序号及本地ID号,
//      ID号的高字为节点号,低字为本地ID号
int WINAPI GetDigitalPointID( LPSTR szTag);
 
//5) 根据ID号取开关量测点的结构
//iDxID为测点ID号
//pDx为返回的开关量测点结构
//返回值TRUE表示成功,FALSE表示失败
BOOL WINAPI GetDigitalPoint( int iDxID, SDigitalPoint *pDx);

#define RUNNINGSTATUS_DOG_REMOVED			-2
#define RUNNINGSTATUS_WITHOUT_DOG_TIMEOUT	-1
#define RUNNINGSTATUS_UNKOWN				 0
#define RUNNINGSTATUS_WITHOUT_DOG_NOTIMEOUT  1
#define RUNNINGSTATUS_NORMAL				 2

//6)取得当前狗的运行状态
//如果函数2~5返回不成功,那可能是未插加密狗,下面的函数返回值大于0时,表示加密狗的状态正确。
//注意当未插加密狗时,API仍然可以调用10分钟左右的时间,超过10分钟,函数2~5将返回失败。
int WINAPI GetDogRunningStatus();


 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -