我在PLC设计时,想在CPU第一次上电或者重新上电时,对有些数据清零,怎么做,请各位大侠教教我,谢谢了!
问题补充:
不是数据保持,是清零。
最佳答案
1、首先要了解S7-300/400PLC的断电再启数据保持机制。详见:
、《S7-400 CPU和CPU 318-2 CPU的数据保持》下载:
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=23750626&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN
、《S7300如何保持数据》:
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=59464&cid=1029
2、S7-300/400PLC在上电时除了DB数据块之外,M、T、C等均为0。如果M、T、C没有被设置为断电保持,不需要特殊进行清零。
3、配置了MCC卡的S7-300对于DB数据块是断电永久保持的。配置了后备电池的S7-400对于DB数据块是通过设置进行断电保持的。
4、一般数据初始化(清零或赋初值)均在OB100中编程,有关组织块OB见:
《组织块使用说明》下载:
http://download.gongkong.com/file/2005/12/10/OBSpecification.pdf
5、在OB100中简便的清零程序可以应用系统功能块SFC20,详见:
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=82718&cid=1029
6、在OB100中简便的清零程序也可以应用循环程序,例如对DB 20的100个字进行清零:
OPN DB 20 //打开DB 20
L P#0.0 //初始读指针
LAR1
L 100 // 100个字的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
L 0
T DBW [AR1,P#0.0] //按写指针指示的地址写数据
+AR1 P#2.0 //读指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
7、问题补充:不是数据保持,是清零?
不保持的不需清零,所以要先弄清哪些数据区的数据断电时被保持了。
提问者对于答案的评价:
多次得到指导,在此谢谢了。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc228999.html