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

📄 plc51x_fnc.c

📁 PLC源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
//    函数名称:   char RD_ppp                                                              //
//    函数类型:   unsigned char RD_ppp(unsigned int a)                                     //
//								                                                           //
//    功能描述:  将1点软元件的内容从存储器内读入                                          //
//								                                                           //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //
//								                                                           //
//    出口参数:  1点软元件的内容                                                          //
//								                                                           //
//    全局变量:   无            			                                               //
//								                                                           //
//    调用模块:   无            			                                               //
//    模块描述:                			                                               //
//                                                                                         //
//								                                                           //
//    作   者:   许意义		   			                                               //
//    日   期:   2009年9月26日 			                                               //
//    备    注:  								                                           //
//-----------------------------------------------------------------------------------------//
//    修 改 人:					 			                                               //
//    日   期:								                                               //
//    备    注: 								                                           //
//-----------------------------------------------------------------------------------------//
unsigned char RD_ppp_old(unsigned int a)    // (读入点内容)
{ unsigned char n;
  unsigned char *p;
  p = ADDR_int_ppp_old(a); 
  n = *p >> (a % 8);
  return(n & 0x01);
}

//-----------------------------------------------------------------------------------------//
//    子函数名:  unsigned char RD_Mp_old(unsigned int a)                                  //
//                                                                                         //
//    注    释:  将1点软元件的内容从扩展 Mp 存储器 old 备份内读入                         //
//                                                                                         //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //
//    出口参数:  1点软元件的内容                                                          //
//-----------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------//
//    函数名称:   char RD_ppp                                                              //
//    函数类型:   unsigned char RD_ppp(unsigned int a)                                     //
//								                                                           //
//    功能描述:  将1点软元件的内容从存储器内读入                                          //
//								                                                           //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //
//								                                                           //
//    出口参数:  1点软元件的内容                                                          //
//								                                                           //
//    全局变量:   无            			                                               //
//								                                                           //
//    调用模块:   无            			                                               //
//    模块描述:                			                                               //
//                                                                                         //
//								                                                           //
//    作   者:   许意义		   			                                               //
//    日   期:   2009年9月26日 			                                               //
//    备    注:  								                                           //
//-----------------------------------------------------------------------------------------//
//    修 改 人:					 			                                               //
//    日   期:								                                               //
//    备    注: 								                                           //
//-----------------------------------------------------------------------------------------//
unsigned char RD_Mp_old(unsigned int a)    // (读入点内容)
{ unsigned char n=0;
  return(n & 0x01);
}


//-----------------------------------------------------------------------------------------//
//    函数名称:   WR_YM                                                                    //
//    函数类型:   void WR_YM(unsigned int a,unsigned char i)                               //
//								                                                           //
//    功能描述:  将1点软元件的内容写入Y,M存储器                                           //
//								                                                           //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //
//								                                                           //
//    出口参数:  无                                                                       //
//								                                                           //
//    全局变量:   无            			                                               //
//								                                                           //
//    调用模块:   无            			                                               //
//    模块描述:                			                                               //
//                                                                                         //
//								                                                           //
//    作   者:   许意义		   			                                               //
//    日   期:   2009年9月26日 			                                               //
//    备    注:  								                                           //
//-----------------------------------------------------------------------------------------//
//    修 改 人:					 			                                               //
//    日   期:								                                               //
//    备    注: 								                                           //
//-----------------------------------------------------------------------------------------//

void WR_YM(unsigned int a,unsigned char i)    // (写入Y,M点内容)
{ unsigned char *p;
  a &= 0xfff;
  i &= 0x01; 
  if ((a>=0x500) && (a<0x600))
	{ 
		a -= 0x500;
		if (a < _Y_num)
           { p = (unsigned char*)rY + (a / 8);
			 if (i == 0)   *p &= ~(1 << (a % 8));
               else  *p |= 1 << (a % 8);
           }
	}
  else if ((a>=0x800) && (a<0xe00))
	{ 
		a -= 0x800;
		if (a < _M_num)
           { p = (unsigned char*)rM + (a / 8);
			 if (i == 0)   *p &= ~(1 << (a % 8));
               else  *p |= 1 << (a % 8);
           }
	}
  else ;
}


//-----------------------------------------------------------------------------------------//
//    函数名称:   WR_S                                                                     //
//    函数类型:   void WR_S(unsigned int a,unsigned char i)                                //
//								                                                           //
//    功能描述:  将1点软元件的内容写入S存储器                                             //
//								                                                           //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //
//								                                                           //
//    出口参数:  无                                                                       //
//								                                                           //
//    全局变量:   无            			                                               //
//								                                                           //
//    调用模块:   无            			                                               //
//    模块描述:                			                                               //
//                                                                                         //
//								                                                           //
//    作   者:   许意义		   			                                               //
//    日   期:   2009年9月26日 			                                               //
//    备    注:  								                                           //
//-----------------------------------------------------------------------------------------//
//    修 改 人:					 			                                               //
//    日   期:								                                               //
//    备    注: 								                                           //
//-----------------------------------------------------------------------------------------//

void WR_S(unsigned int a,unsigned char i)    // (写入S点内容)
{ unsigned char *p;
  a &= 0xfff;
  i &= 0x01; 
  if (a<0x400)	
	{ 
		if (a < _S_num)
           { p = (unsigned char*)rS + (a / 8);
			 if (i == 0)   *p &= ~(1 << (a % 8));
               else  *p |= 1 << (a % 8);
           }
	}
  else ;
}


//-----------------------------------------------------------------------------------------//
//    函数名称:   WR_M8xxx                                                                 //
//    函数类型:   void WR_M8xxx(unsigned int a,unsigned char i)                            //
//								                                                           //
//    功能描述:  将1点软元件的内容写入M8xxx存储器                                         //
//								                                                           //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //
//								                                                           //
//    出口参数:  无                                                                       //
//								                                                           //
//    全局变量:   无            			                                               //
//								                                                           //
//    调用模块:   无            			                                               //
//    模块描述:                			                                               //
//                                                                                         //
//								                                                           //
//    作   者:   许意义		   			                                               //
//    日   期:   2009年9月26日 			                                               //
//    备    注:  								                                           //
//-----------------------------------------------------------------------------------------//
//    修 改 人:					 			                                               //
//    日   期:								                                               //
//    备    注: 								                                           //
//-----------------------------------------------------------------------------------------//

void WR_M8xxx(unsigned int a,unsigned char i)    // (写入M8xxx点内容)
{ unsigned char *p;
  a &= 0xfff;
  i &= 0x01; 
  if (a>=0xf00)						  // 待修改地址映像
	{ 
		a -= 0xf00;
		if (a < _M8xxx_num)
           { p = (unsigned char*)rM8xxx + (a / 8);
			 if (i == 0)   *p &= ~(1 << (a % 8));
               else  *p |= 1 << (a % 8);
           }
	}
  else ;
}


//-----------------------------------------------------------------------------------------//
//    函数名称:   WR_Mp                                                                    //
//    函数类型:   void WR_Mp(unsigned int a,unsigned char i)                               //
//								                                                           //
//    功能描述:  将1点软元件的内容写入Mp(扩展M)存储器                                     //
//								                                                           //
//    入口参数:  unsigned int  a ...... 读入软元件点的起始地址                            //

⌨️ 快捷键说明

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