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

📄 dblink.cpp

📁 电力系统无功自动补偿的操作系统程序
💻 CPP
字号:
#include "stdafx.h"
#include "\nsa2000\dev\env\inc\fjrlibdef.h"		//读写开关状态
#include "\nsa2000\dev\env\inc\FjMsgDef.h"		//消息定义
#include "dblink.h"

extern HWND hWndScada;

class YKTRANSDEFINE ykTrans;

void YKTRANSDEFINE::DoYkProc()
{
	WORD wParam;
	DWORD lParam;
	times++;
	if (times<10) return;

	times=0;
	if (needTransYkNum==0) return;

	wParam=(transBuf[0].CmdCode << 8) + transBuf[0].FunCode;
	lParam = (transBuf[0].RtuNO <<16) + transBuf[0].Obj;
	::PostMessage(hWndScada,FJD_MSG_SCD_PIC_YKYT, wParam, lParam);	
	DeleteOneYkProc();
}

void VqcPutMsgProc(int rtu, char *pMsg)
{
	FJS_MSG_STRUCT	Msg;
	CTime ct = CTime::GetCurrentTime();
	time_t ht;
	Msg.type=FJD_MSG_TYPE_ASCII;
	Msg.alrm=FJD_ALRM_NORMAL;	//深绿
	ht= ct.GetTime();
	Msg.msg.asc.tim=ht+28800;
	Msg.msg.asc.type=FJD_MSG_ASC_TYPE_ALRM;		//FJD_MSG_ASC_TYPE_NONE;

	Msg.msg.asc.asc[0] = 0;
	if (rtu>=0)	FjLibGetRtuName(rtu,Msg.msg.asc.asc);
	lstrcat(Msg.msg.asc.asc, " ");
	lstrcat(Msg.msg.asc.asc, pMsg);
	FjLibPutMsg(Msg);
}



void CmdOutScada(WORD RtuNO, WORD CmdCode,WORD FunCode, short Obj)	//FunCode=FJD_MSG_PIC_YK_ON, FJD_MSG_PIC_YK_OFF
{
	ykTrans.AppendOneYkProc(RtuNO, CmdCode,FunCode, Obj);
}

//保护接口函数
int	 GetBhUintNumProc(int rtuNo)
{
	if ((rtuNo<0)||(rtuNo>255)) return 0;
	char head[12];
	wsprintf(head,  "Relay%02d", rtuNo);
	return (GetPrivateProfileInt(head,"UnitNum",0,RELAY_INIT_FILE));
}

void GetBhNameProc(int rtu,int dot,char *name)
{
	char fileName[64], head[12];
	if ((rtu<0)||(rtu>255)) return;
	if ((dot<0)||(dot>6000)) return;
	wsprintf(fileName, "\\nsa2000\\init\\rly%02d.ini", rtu);
	wsprintf(head, "Unit%02d", dot);
	GetPrivateProfileString(head,"Name", NULL, (LPSTR)name, 64, fileName);
}

void DATABH_DEF::GetName(char *name)
{
	if ((rtu<0)||(rtu>255)) return;
	if ((dot<0)||(dot>6000)) return;
	GetBhNameProc(rtu,dot,name);
}

void DATABH_DEF::SetActStatus(int rtuNo, int dotNo)
{
	if (rtu!=rtuNo) return;
	if (dot!=dotNo) return;
	actStat = TRUE;
}

BOOL DATABH_DEF::GetActStatus()
{
	return actStat;
}

void  DATABH_DEF::ClearActStatus()
{
	actStat = FALSE;
}



//遥信接口函数
void DATAYX_DEF::GetName(char *name)
{
	if ((rtu<0)||(rtu>255)) return;
	if (idType==ID_TYPE_RTU){
		FjLibGetRtuName(rtu, name);
		return;
	}
	if (idType==ID_TYPE_WORKSTATION){
		FjLibGetWsName(rtu, name);
		return;
	}
	if ((dot<0)||(dot>6000)) return;
	if (idType==ID_TYPE_ADEV){
		FjLibGetADevName(rtu, dot, name);
		return;
	}
	if (idType==ID_TYPE_YX){
		FjLibGetYxName(rtu, dot, name);
		return;
	}
}

WORD  DATAYX_DEF::GetStatusWord()
{
	if ((rtu<0)||(rtu>255)) return 0;
	if (idType==ID_TYPE_RTU)		 return (FjLibGetRtuRunState(rtu));
	if (idType==ID_TYPE_WORKSTATION) return (FjLibGetWsState(rtu, NULL));

	if ((dot<0)||(dot>6000))  return 0;
	if (idType==ID_TYPE_ADEV) return (FjLibGetADevState(rtu, dot));
	if (idType==ID_TYPE_YX)	  return (FjLibGetYxState(rtu,dot));
	return 0;
}

BOOL  DATAYX_DEF::GetStatus()
{
	WORD stat;
	stat = GetStatusWord();
	if (stat & FJD_YXDEV_ON) return TRUE;
	return FALSE;
}

void  DATAYX_DEF::SetWfStatus(BOOL status)
{
	if ((rtu<0)||(rtu>255)) return;
	if ((dot<0)||(dot>6000)) return;
	char szText[128];
	if (status){
		if (GetStatus()) return;
		GetName(szText);
		strcat(szText, " 动作");
	}
	else{
		if (!GetStatus()) return;
		GetName(szText);
		strcat(szText, " 复归");
	}
	int facNo;
	facNo = rtu;
	if (facNo>64) facNo = 0;
	VqcPutMsgProc(facNo, szText);
	FjLibPutYxState(rtu,dot, (BYTE)status);
}

short DATAYX_DEF::GetYkObjNo()
{
	FJS_PARAM_YX yxPar;
	if ((rtu<0)||(rtu>255))		return -1;
	if ((dot<0)||(dot>6000))	return -1;
	if (idType!=ID_TYPE_YX)		return -1;
	FjLibGetYxPar(rtu,dot, yxPar);
	return yxPar.objYxYk;
}

BOOL DATAYX_DEF::DoYkProc(BOOL bClose)
{
	WORD CmdCode, FunCode;
	short ObjNO;

	if ((rtu<0)||(rtu>255))		return FALSE;
	if ((dot<0)||(dot>6000))	return FALSE;
	if (idType!=ID_TYPE_YX)		return FALSE;

	CmdCode = FJD_MSG_PIC_YT_EXE;
	if (bClose)
			FunCode = FJD_MSG_PIC_YT_UP;
	else	FunCode = FJD_MSG_PIC_YT_DOWN;
	ObjNO = GetYkObjNo();

	char msg[128];
	strcpy(msg,"VQC动作,");
	if (bClose) strcat(msg, "合上:");
	else strcat(msg, "分开:");
	GetName(&msg[strlen(msg)]);
	VqcPutMsgProc(rtu,msg);

	CmdOutScada(rtu, CmdCode, FunCode, ObjNO);		//-> ZyScada
	return TRUE;
}


//遥调接口函数
void DATAYT_DEF::GetName(char *name)
{
	if ((rtu<0)||(rtu>255)) return;
	if ((dot<0)||(dot>6000)) return;
	FjLibGetYtName(rtu, dot, name);
}

short DATAYT_DEF::GetYtObjNo(BOOL bUp)
{
	FJS_PARAM_YT ytPar;
	if ((rtu<0)||(rtu>255)) return -1;
	if ((dot<0)||(dot>6000)) return -1;
	FjLibGetYtPar(rtu,dot, ytPar);
	if (bUp)	return ytPar.objYtUp;
	else	return ytPar.objYtDown;
}

float DATAYT_DEF::GetYtValue()
{
	return ((float)FjLibGetYtValue(rtu, dot));
}

short DATAYT_DEF::GetYtJTObjNo()
{
	FJS_PARAM_YT ytPar;
	if ((rtu<0)||(rtu>255)) return -1;
	if ((dot<0)||(dot>6000)) return -1;
	FjLibGetYtPar(rtu,dot, ytPar);
	return ytPar.objYtStop;
}

BOOL DATAYT_DEF::DoYtProc(BOOL bUp)
{
	WORD CmdCode, FunCode;
	short ObjNO;

	if ((rtu<0)||(rtu>255)) return FALSE;
	if ((dot<0)||(dot>6000)) return FALSE;

	CmdCode = FJD_MSG_PIC_YT_EXE;
	if (bUp)
			FunCode = FJD_MSG_PIC_YT_UP;
	else	FunCode = FJD_MSG_PIC_YT_DOWN;
	ObjNO = GetYtObjNo(bUp);

	char msg[128];
	strcpy(msg,"VQC动作,");
	if (bUp) strcat(msg, "升档:");
	else strcat(msg, "降档:");
	GetName(&msg[strlen(msg)]);
	VqcPutMsgProc(rtu,msg);

	CmdOutScada(rtu, CmdCode, FunCode, ObjNO);		//-> ZyScada
	return TRUE;
}

BOOL DATAYT_DEF::DoYtStopProc()
{
	WORD CmdCode, FunCode;
	short ObjNO;

	if ((rtu<0)||(rtu>255)) return FALSE;
	if ((dot<0)||(dot>6000)) return FALSE;

	CmdCode = FJD_MSG_PIC_YT_EXE;
	FunCode = FJD_MSG_PIC_YT_STOP;
	ObjNO = GetYtJTObjNo();
	
	char msg[128];
	strcpy(msg,"VQC判定滑档,分接头急停:");
	GetName(&msg[strlen(msg)]);
	VqcPutMsgProc(rtu,msg);

	CmdOutScada(rtu, CmdCode, FunCode, ObjNO);		//-> ZyScada
	return TRUE;
}


//保遥测接口函数
void DATAYC_DEF::GetName(char *name)
{
	if ((rtu<0)||(rtu>255)) return;
	if ((dot<0)||(dot>6000)) return;
	FjLibGetYcName(rtu, dot, name);
}

float  DATAYC_DEF::GetValue()
{
	return ((float)FjLibGetYcValue(rtu,dot));
}


⌨️ 快捷键说明

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