• 大小: 10KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-22
  • 语言: 其他
  • 标签: 103规约  

资源简介

103规约主站侧源代码,方便大家编程参考

资源截图

代码片段和文件信息

/****************************************************************************/
/* */
/*           版权 (c) 2000-2010 国电南京自动化股份有限公司 */
/* */
/****************************************************************************/
/****************************************************************************/
/* 文件名 版本 */
/* */
/*  103.c                         1.02 */
/* */
/*  概述: */
/* */
/* 南瑞继保串口103主站侧规约 */
/* */
/* 历史纪录: */
/* */
/*  名字 日期 注释 */
/* */
/*  郑小军  2001-10-15 创建初始化版本1.00 */
/*  郑小军  2002-04-02 修改遥测(DWORD->WORD) */
/*       2002-10-15 更新版本1.1 */
/****************************************************************************/
#include “typedef.h“
#include “generic.h“
#include “inforec.h“
#include “dev_mng.h“
#include “103.h“
//#include “telnet.h“

#define UART_RCV_SIZE 250

static WORD flag;
static BYTE scn;

BYTE sbuf[UART_PACKET_SIZE];
BYTE last_cmd;
WORD last_id;
WORD tot_leng;
BYTE dznumber;
BYTE list_num;
BYTE a;           //fun     
BYTE b;           //inf
BYTE c;           //dcc      
BYTE ctrl_no1;     //b
BYTE d;           
BYTE e;
BYTE count;

T_SET rsetbuf;
T_SET wsetbuf;
T_LIST list;
T_MEASURE measure;
T_SFC sfc;
T_DI di;
T_ANALOG_ENTRY *p_analog_list;
T_SET_ENTRY *p_set_list;
T_SFC_ENTRY *p_sfc_list;

extern T_IED g_ied_list[];
extern WORD g_ied_num;

/*   串口设置   */
extern BYTE uart_port;

/* 数据库句柄  */
static HANDLE hand;

/*   串口任务   */
static  BYTE   STACK_SERIAL[0x2000];
static  NU_TASK   nuTask_Serial;

/* 数据接受处理函数 */
void Serial_Interpret(const BYTE* rbufBYTE uart_port)
{
BYTE byDevAddr;
BYTE i;
WORD Dev_Num;

Dev_Num = Get_Device_Number();
for (i = 1;i <= Dev_Num;i++)
{
byDevAddr = ID_to_Addr(i);
switch (rbuf[0])
{
case frame_T_CON:
if (rbuf[2] == byDevAddr)
{
Ack_Staid(rbufbyDevAddruart_port);
return;
}
break;
case frame_T_VOL:
if (rbuf[5] == byDevAddr || rbuf[5] == 0xff)
{
Ack_Changeable(rbufbyDevAddruart_port);
return;
}
break;
default:
return;
}
}
}

//可变帧长报文的处理
void Ack_Changeable(const BYTE* rbufBYTE byDevAddrBYTE uart_port)
{
switch(rbuf[6])
{
case 0x06:
ASDU06(rbufbyDevAddruart_port);//对时
return ;
case 0x07:
ASDU07(rbufbyDevAddruart_port);//总查询
return ;
case 0x0a:
// ASDU10(rbufbyDevAddruart_port);//通用分类数据
return ;
case 0x14:
ASDU20(rbufbyDevAddruart_port);//一般命令(复归保护信号)
return;
case 0x15:
ASDU21(rbufbyDevAddruart_port);//通用分类命令
return ;
case 0x40:
        ASDU64(rbufbyDevAddruart_port);//遥控
        return;
case 0x58:
        ASDU88(rbufbyDevAddruart_port);//遥脉量上送
        return;        
default:
return ;
}
}

//固定帧长报文的处理

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      42737  2012-08-02 16:47  103源代码\103.c

     文件       2346  2012-08-02 16:49  103源代码\103.h

     文件       2414  2012-08-02 16:52  103源代码\103_ini.c

     文件       4960  2012-08-21 15:10  103源代码\inforec.h

     目录          0  2012-08-21 15:10  103源代码

----------- ---------  ---------- -----  ----

                52457                    5


评论

共有 条评论