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

📄 user101.c

📁 电力变电站RTU监控软件(80C196NT单片机) 遥控
💻 C
字号:
//
// File name =USER101.C      //串行通信IEC101规约 应用层程序
// 设计 何风涛
#include"class.h"
#include"classext.h"

struct TIEC101UserStruct FARDATA *InitIEC101User(int TaskNo)
{
     struct TIEC101UserStruct FARDATA *Arg;
     if((Arg=(struct TIEC101UserStruct FARDATA *)malloc(sizeof(struct TIEC101UserStruct)))==NULL)
     {
	 return(NULL);
     }
     memset(Arg,0,sizeof(struct TIEC101UserStruct));
     Arg->TaskNo=TaskNo;
     Arg->Letter_from_box=boxnull;
//   Arg->UserStatus=USEROFF;
     Arg->ComMode=SubStation;

     if((Arg->TrnLetter=(unsigned char FARDATA *)malloc(260*sizeof(char)))==NULL)
     {
	 return(NULL);
     }
     if((Arg->RecLetter=(unsigned char FARDATA *)malloc(260*sizeof(char)))==NULL)
     {
	 return(NULL);
     }
     return(Arg);
}

void IEC101User(struct TIEC101UserStruct FARDATA *Arg)
{

     TakeLetter101(Arg);
//   if(TaskStatus(Arg->DownTaskNo) & 0x80) IEC101UserTimer(Arg); // 定时监视
}

void TakeLetter101(struct TIEC101UserStruct FARDATA *Arg)
{
     if(TRead(Arg->TaskNo,Arg->RecLetter))
     {
	 Take_letter_from_box(Arg);
     }
}

void Take_letter_from_box(struct TIEC101UserStruct FARDATA *Arg)
{
     unsigned char  c[32];
     unsigned int i;

     switch(Arg->RecLetter[4]) //code
     {
       case   C_RQ_NA_1_LNKREQ:      /* 请求链路状态	 */
				     break;
       case   M_RQ_NA_1_LNKRES:      /* 链路状态响应帧	 */
				     break;
       case   C_RL_NA_1_SEND:	     /* 复位远方链路	 */
				     break;
       case   M_RL_NA_1_CON:	     /* 复位远方链路确认帧 */
				     break;
       case   M_RQ_NA_1_LNKREQ:       /* 子站请求链路状态		*/
				     break;
       case   C_RQ_NA_1_LNKRES:       /* 主站链路状态响应帧		*/
				     break;
       case   M_RL_NA_1_LNKACT:       /* 子站复位远方链路		*/
				     break;
       case   C_RL_NA_1_ACTCON:       /* 子站复位远方链路确认帧 	*/
				     break;
       case   C_CON_NA_1:	     /* 主站对子站主动触发帧的确认帧	*/
				     break;
       case   M_NV_NA_1:	     /* 无所请求的数据帧 */
				     break;
       case   C_P1_NA_1:	     /* 召唤1级数据 */
				     break;
       case   M_P1_NA_1STS:	     /* 子站响应1级数据 		 */
				     break;
       case   C_P2_NA_1:	     /* 召唤2级数据 */
				     break;
       case   M_P2_NA_1STS:	     /* 子站响应2级数据 		 */
				     break;
       case   C_PA_NA_1:	     /* 召唤要求访问位的请求帧 */
				     break;
       case   C_PA_NA_1RES:	     /* 召唤要求访问位的响应帧 */
				     break;
       case   C_RP_NA_1ACT:	     /* 复位远动终端发送帧     */
				     break;
       case   C_RP_NA_1ACTCON:	     /* 复位远动终端确认帧     */
				     break;
       case   C_IC_NA_1ACT:	     /* 总召唤命令帧 */
				     break;
       case   C_IC_NA_1ACTCON:	     /* 总召唤确认帧 */
				     break;
       case   M_IC_NA_1ACTSTS:	     /* 带品质描述的遥测帧     */
				     /* 不带品质描述的遥测帧   */
				     /* 单点遥信帧	       */
				     /* 双点遥信帧	       */
				     /* 状态和状态变位的遥信帧 */
				     /* 变压器分接头帧	       */
				     /* 远动终端状态帧	       */
				     /* BCD码响应帧	       */
				     /* 总召唤结束帧	       */
				     break;
       case   C_IC_NA_1CYCLICACT:    /* 分组召唤发送帧	       */
				     break;
       case   C_IC_NA_1CYCLICACTCON: /* 分组召唤响应帧	       */
				     break;
       case   M_RL_NA_1:	     /* 主站初始化结束响应帧   */
				     break;
       case   M_EI_NA_1:	     /* 子站初始化结束帧       */
				     break;
       case   C_CS_NA_1ACT:	     /*时钟同步发送帧	       */
				     break;
       case   C_CS_NA_1ACTCON:	     /*时钟同步确认帧	       */
				     break;
       case   M_ME_NA_1SPONT:	     /*带品质描述的遥测数据变化响应帧 */
				     break;
       case   M_ME_ND_1SPONT:	     /*不带品质描述的遥测数据变化响应帧 */
				     break;
       case   M_ME_TA_1SPONT:	     /*带时标的遥测数据变化响应帧 */
				     break;
       case   M_ST_NA_1SPONT:	     /* 变压器分接头变化响应帧 */
				     break;
       case   M_BD_NA_1CYCLIC:	     /*BCD码变化响应帧 */
				     break;
       case   M_SP_TA_1:	     /* 单点信息事件顺序记录帧 */
				     break;
       case   M_DP_TA_1:	     /* 双点信息事件顺序记录帧 */
				     break;
       case   M_EP_TA_1:	     /* 继电器保护装置单点信息事件顺序记录帧 */
				     break;
       case   M_EP_TB_1:	     /* 继电器保护装置 成组启动事件顺序记录帧 */
				     break;
       case   M_EP_TC_1:	     /* 继电器保护装置 成组输出电路事件顺序记录帧 */
				     break;
       case   M_ST_TA_1:	     /* 带时标的步位置信息(变压器分接头)帧*/
				     break;
       case   M_SP_NA_1SPONT:	     /* 单点信息状态变位帧 */
				     break;
       case   M_DP_NA_1SPONT:	     /* 双点遥信变位帧 */
				     break;
       case   M_PS_NA_1SPONT:	     /* 状态和状态变位的遥信帧 */
				     break;
       case   M_BO_NA_1SPONT:	     /* 远动终端状态变化帧 */
				     break;
       case   C_RD_NA_1ACT:	     /* 由主站的读命令发送帧 */
				     break;
       case   M_CON_NA_1ACTCON:      /* 读数据命令的确认帧 */
				     break;
       case   M_DATA_NA_1SPONT:      /* 由主站的读命令形成的1级用户数据帧 */
				     break;
       case   C_DC_NA_1ACT:	     /* 遥控选择命令 发送帧 */
				     break;
       case   C_DC_NA_1ACTCON:	     /* 遥控选择命令 确认帧 */
				     break;
       case   C_DC_NA_1DEACT:	     /* 遥控撤消命令 发送帧 */
				     break;
       case   C_DC_NA_1DEACTCON:     /* 遥控撤消命令 确认帧 */
				     break;
       case   C_DC_NA_1EXCO:	     /* 遥控执行命令 发送帧 */
				     break;
       case   C_DC_NA_1EXCOCON:      /* 遥控执行命令 确认帧 */
				     break;
       case   C_SE_NA_1ACT:	     /* 设点命令 发送帧 */
				     break;
       case   C_SE_NA_1ACTCON:	     /* 设点命令 确认帧 */
				     break;
       case   C_CI_NA_1ACT:	     /* 冻结和召唤电能脉冲 发送帧 */
				     break;
       case   C_CI_NA_1ACTCON:	     /* 冻结和召唤电能脉冲 确认帧 */
				     break;
       case   M_CI_NA_1ACTSTS:	     /* 电能脉冲计数量响应帧 */
				     /* 带时标电能脉冲计数量响应帧 */
				     /* 电能脉冲计数量结束帧 */
       case   C_CI_NA_TACT:	     /* 分组召唤电能脉冲计数量请求帧 */
				     break;
       case   M_IT_NA_1:	     /* 分组召唤电能脉冲计数量响应帧 */
				     break;
       case   M_IT_TA_1:	     /* 分组带时标电能脉冲计数量响应帧 */
				     break;
       case   P_ME_NA_1ACT:	     /* 设置参数的发送帧 */
				     break;
       case   P_ME_NA_1CON:	     /* 设置参数的确认帧 */
				     break;
       case   P_AC_NA_1ACT:	     /* 设置激活的发送帧 */
				     break;
       case   P_AC_NA_1CON:	     /* 设置激活的确认帧 */
				     break;
       case   C_TS_NA_1ACT:	     /* 测试通道发送帧	 */
				     break;
       case   C_TS_NA_1ACTCON:	     /* 测试通道的确认帧 */
				     break;
       case   F_SC_NA_1ACT:	     /* 召唤文件、目录、节和文件选择命令 */
				     break;
       case   F_ALL_NA_1ACTCON:      /* 目录响应帧	       */
				     /* 文件准备好确认帧       */
				     /* 节准备好确认帧	       */
				     /* 段的响应帧	       */
				     /* 最后节、最后段的确认帧 */
				     /* 文件、节的确认帧       */
				     break;
	      default:		     break;
     }
}

⌨️ 快捷键说明

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