S7-200程序数据的断电保存方法
S7-200程序数据的断电保存方法
xujianhong2096 | 2009-07-10 14:54:10 楼主
随着S7-200可编程控制器应用功能的扩展,以及S7-200与文本显示器等的结合应用,在程序中经常需使用到一些中间程序数据,其中有些在产品的使用过程中有可能通过文本显示器或者程序等进行重新赋置,且在PLC 外部供电中断时要求能保存下来。如果没有正确的编程方法,这些数据在产品使用过程中很容易出现丢失的情况。
首先,让我们了解一下S7-200内部存储器的大概工作情况。PLC 内部存储器分为RAM 随机存储器和EEPROM 永久存储器两种。我们都知道RAM 存储器的数据必须靠供电维持,当存储芯片供电中断时,其中所存数据也不复存在。RAM 存储器主要用作PLC 程序运行时程序、组态参数、程序数据的实时存取空间。EEPROM 存储器为带电可擦写存储器,其数据写入后可在完全断电情况下长期保存。PLC 在每次程序下载时,将下载的程序块、数据块(可选)、CPU 配置(可选)载入RAM 存储区,同时CPU 自动将其拷贝到EEPROM 存储器中,以实现永久保存。在PLC 的使用过程中,每次上电时PLC 会从EEPROM 存储区向RAM 存储区中恢复程序和CPU 配置,同时检查RAM 存储器中的断电数据保持区域是否成功保存,如果保存成功,则保持区域将保持不变,RAM 存储器的V 存储区中的未保持区域,将从相应的EEPROM 中的V 存储永久区域处恢复过来。如果RAM 存贮器的内容没有保持下来,CPU 会清除RAM 存贮器并置保持数据丢失存贮器位(SM0.2)为1,并将存于EEPROM 存储器永久区域中的数据复制RAM 存储器中。
xujianhong2096
S7-200PLC 程序数据的断电保存方法,主要可分三种,其数据断电保存方法及特点如下:
一、在系统块中设置断电数据保持功能来保存数据。
在S7-200的编程中,系统块中有一项功能为断电数据保持设置,设置范围包括V 存储区、M 存储区、时间继电器T 和计数器C (其中定时器和计数器只有当前值可被保持,而定时器位或计数器位是不能被保持的)。其基本工作原是在PLC 外部供电中断时,利用PLC 内部的超级电容供电,保持系统块中所设置的断电数据保持区域的数值保持不变,而将非保持区域的数据值归零。由于超级电容容量的限制,在西门子的资料中宣称只能保存几天时间。对于M 存储区中的前十四个字节(即MB0-MB13),当设为断电数据保持,在PLC 外部供电中断时,PLC 内部自动将以上存储区的数据转移到EEPROM 中,因此可实现断电永久保存。
若需更长的RAM 存储器断电数据保存时间,西门子公司可提供一个可选的电池卡,在超级电容耗尽后继续提供电能,延长数据保存时间(约200天)。
引用 | 回复
| 2009-07-10 14:56:31 2楼
xujianhong2096
二、在编程时建立数据块来保存数据。
在程序设计的编程阶段,可在编程中建立数据块,并赋予需要的初始值,编程完成后随程序一起下载到PLC 的RAM 存储器中,CPU 同时自动将其转存于EEPROM ,作为EEPROM 储器中的V 数据永存储区。因EEPROM 的数据保存不需要供电维持,所以可以实现永久保存。若在系统块中相应V 存储区未设为断电数据保持,在每次PLC 上电初始,CPU 自动将EEPROM 中的V 数据值读入RAM 的V 存储区。若相应V 存储区设为断电数据保持,在每
次PLC 上电初始,CPU 检测断电数据保存是否成功。若成功,则保持RAM 中的相应V 数据保持不变。若保存不成功,则将EEPROM 中的相应V 数据值读入RAM 的V 存储区。此方法只适用于V 数据的断电数据保存。
引用 | 回复
| 2009-07-10 14:57:19 3楼
xujianhong2096
三、在程序中用SMB31和SMW32来保存数据。
在程序中将要保存的V 存储器地址写入SMW32,将数据长度写入SMB31,并置SM31.7为1。在程序每次扫描的末尾,CPU 自动检查SM31.7,如果为1,则将指定的数据存于EEPROM 中,并随之将SM31.7置为零,保存的数据会覆盖先前EEPROM 中V 存储区中的数据。在保存操作完成之前,不要改变RAM 中V 存储区的值。存一次EEPROM 操作会将扫描时间增加15至20毫秒。因为存EEPROM 的次数是有限制的(最少10万次,典型值为100万次),所以必须控制程序中保存的次数,否则将导致EEPROM 的失效。 结合以上的了解和工地调试的经验,在实际应用中,若遇到需程序数据保持的时候,要多种方法结合运用以达到最理想的结果。针对程序中需保存数据的不同,采取不同的方式实现。对于需在程序第一次运行时进行预置并在程序运行过程中个别情况下进行重新设置的数据,如高度、荷重等相关标定参数,可在程序的数据块中建立数据,并赋予初始数值。同时在程序中编入SMB31和SMW32命令,在相关条件下对EEPROM 的V 数据区进行重新保存,修改先前的初始值。示例如下,当进行参数设置时,置M0.0为1,完成一次VD100的EEPROM 存储器保存操作。
对于程序运行过程中数值变化比较频繁,且需断电长期保存的数据,则可将数据存于MB0至MB13存储区,且系统块的断电数据保存设置中将相应的M 存储区设为断电数据保存。也可使用程序中的V 存储区,在必要时如上图所示进行一次程序数据存储,而在断电数据保持设置中可选取,也可不选取。