📄 104sa.h
字号:
/*------------------------------------------------------------------*/
/*模块名称:104SA.h */
/*模块功能:IEC870-5-104:2000从站 */
/*编写日期:2005年6月 */
/*编写者: dingding */
/*------------------------------------------------------------------*/
#ifndef DF104SA_H
#define DF104SA_H
/*------------------------------------------------------------------*/
/*-------------------------基本内容定义-----------------------------*/
/*------------------------------------------------------------------*/
//应用层后续处理标志
#define FNextYK 0x0001
#define FNextALLDATA 0x0002
#define FNextCounter 0x0004
//数据标志
#define HaveCOS 0x0100
#define CallReadData 0x0200
#define HaveSOE 0x0400
#define HaveFA 0x0800
#define HaveNVA 0x1000
//设备管理
#define ACTDEVINDEX 0x01
#define NVAACTDEV 0x02
/*------------------------------------------------------------------*/
/*-------------------------基本结构定义-----------------------------*/
/*------------------------------------------------------------------*/
struct SendData{
INT16U DevID;
INT8U Type;
INT8U Num;
};
struct PGroupTrn{ //组处理结构
INT16U DevID;
INT8U TypeID;
INT8U COT;
INT8U GroupNo;
INT16U InfoAddr;
};
__packed struct InfoAddr{
#ifdef INFOADDR3BYTE
INT16U InfoAddr;
INT8U InfoAddrHigh;
#else
INT16U InfoAddr;
#endif
};
__packed struct NVAF{ //遥测结构
INT16U Value;
INT8U QDS;
};
__packed struct Counter{ //电度数据信息体结构
INT32U Value;
INT8U SQ;
};
struct AppInfo{ //应用层数据结构
INT8U Tmpbuf[512]; //临时使用缓冲区
struct PASDU TxMsg; //应用层输出数据区
struct PASDU *RxMsg; //应用层接收数据指针
INT16U TxLen; //应用层发送长度
struct SendData SData[K];
INT8U CurSData;
BOOL Connect;
INT16U Data2Count;
INT16U AppNextFlag; //应用层后续处理标志
INT16U LinkCmd;
INT16U ActDevIndex; //当前设备号
INT16U NvaActDev; //发送变化遥测的当前设备序号
INT16U NvaActDevCur; //当前设备当前已发送序号
//全数据或电度处理
BOOL AllDataFlag; //过程标志
INT8U AllDataNum;
struct PGroupTrn GroupTrn;
//动态开辟数据存储区
INT16U *YCValue; //遥测值
INT16U *YCDVal; //遥测死区值
INT32U *DDValue; //电度值
//参数输入
INT16U BaseControl;
INT16U Control;
INT16U TAllData;
INT16U TCounter;
INT16U ScanData2; //二级数据扫描间隔(100ms)
INT8U YXTypeID;
INT8U YCTypeID;
};
/*------------------------------------------------------------------*/
/*----------------------------函数声明------------------------------*/
/*------------------------------------------------------------------*/
void S104_2000Task(struct SysPort *Info, struct PortAppInfo* PortCfg);
BOOL S104InitApp(INT8U Port, struct PortAppInfo* PortCfg);
void S104InitReset(INT8U Port);
void S104AppOnTimer(INT8U Port);
void S104AppProc(INT8U Port, struct AppMsg* Msg);
void S104AppProcNext(INT8U Port);
void S104ProcAllDataCall(INT8U Port);
void S104ProcCounterCall(INT8U Port);
void S104ProcClock(INT8U Port);
void S104ProcControl(INT8U Port);
void S104ProcDDCall(INT8U Port);
void S104ProcParaSet(INT8U Port);
void S104ProcDB(INT8U Port, INT8U Num);
void S104ProcReadData(INT8U Port);
void S104ProcReset(INT8U Port);
void S104ProcSetNVA(INT8U Port);
void S104ProcTest(INT8U Port);
void S104ProcTimeDelay(INT8U Port);
void S104ProcAppErr(INT8U Port);
void S104EnCodeClock(INT8U Port);
void S104EnCodeControl(INT8U Port, struct DBBOOPInfo* Info);
void S104EnCodeAllData(INT8U Port);
void S104EnCodeCounter(INT8U Port);
void S104EnCodeAllDataConf(INT8U Port);
void S104EnCodeAllDataEnd(INT8U Port, INT8U Cmd);
void S104EnCodeCOS(INT8U Port);
void S104EnCodeReadData(INT8U Port);
void S104EnCodeSOE(INT8U Port);
void S104EnCodeFA(INT8U Port);
void S104EnCodeNVA(INT8U Port);
BOOL S104CheckNVA(INT8U Port);
INT16U S104CheckDB(INT8U Port, INT8U Type);
BOOL S104GetActDevIndexByAddr(INT8U Port, INT16U Addr);
BOOL S104GetNextActDevIndex(INT8U Port, INT16U ActDev, INT8U Flag);
void S104GetYcDeadValue(INT8U Port, INT16U Num, INT32U DValue);
INT16U S104GetActDevNo(INT8U Port, INT16U DevID, INT16U Flag);
INT16U S104GetAddrByDevIndex(INT8U Port, INT16U DevID);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -