西门子plc怎么断电保持?
西门子200(200 smart);300;400以及s7-1200;s7-1500系列的plc均具有带断电保持功能,通过设置或者编辑相应的程序均能够满足这一需求。但在某一些场合的应用不仅仅只是设置断电保持区域就可以应用的,如、高速计数器的当前计数值。
下面分别说说这些高速计数器然后通过程序来保持高速数据的方式:
200的程序:(因为200已经离我们渐行渐远了,就以200smart举例)
1); 在初始化高速计数时,需要设置高速计数器的控制字节SMB37(47、57、137),其中如、SMB37.6(更新当前值必须设置为1);
2); 在预设高速计数器的当前值(SMD38)必须使用寄存器地址,而不能够使用常数,这里寄存器地址为VD0;
3); 然后在主程序中编辑始终传送高速计数器的计数值到VD0;
4); 将VD0地址设置为断电保持区;
程序例子:
1)高速计数器初始化子程序
2)主程序调用高速计数器初始化子程序及初始高速计数器的计数值
3)将VD0在系统块中设置为断电保持区
5); 将程序及系统设置下载到cpu中验证
300、400的程序:以S7-315-2DP FM350-2(8通道)高速计数器模块,来说明如何将高速计数器的计数值做带断电保持功能
1)首先组态300站点及添加高速计数器模块、分配参数(略)
2)根据FM350-2高速计数器各通道的数据分配,1~8通道的实时数据分别对应到DB1.DBD148~DB1.DBD204的当前值、DB1.DBD52~DB1.DBD80的装载值
3)创建带断电保持的数据块,如、DB5(数据块使用默认值均带断电保持型)
4)创建初始化组织块OB100
5)在主程序中调用高速计数器的控制程序及高速计数器的数据传送
6)在初始化组织块OB100中传送断电后的原始数据
程序:
1); 创建数据块(按高速计数器的数据类型创建)DINT
2); 在OB1中调用的数据传送
3); OB100中编辑上电初始时的原始数据传送,将原值装载到高速计数器的装载寄存器地址中
这样,当300cpu重新上电时,由于OB100(初始化组织块)的功能将断电前的数据重新装载到高速计数器的装载值中,实现了带断电保持的功能。