📄 plc51x_fnc.c
字号:
// 函数名称: 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 + -