西门子S7-200 PLC在断电情况下的数据保持问题
西门子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存储器中。
1、正常情况之下,下载到S7-200PLC里的程序是永不丢失的,因为程序块(数据块、系统块)是直接下载到EEPROM中的,而RAM中的数据为PLC的运行数据,靠一个超级电容(或电池卡)保持,前提是在系统块中必须有相应的设置。没有电池卡,靠一个超级电容可以保持10天左右时间。但是值得注意的是EEPROM不要每个周期都触发,一定要加触发条件,因为EEPROM是有擦写次数的。
2、我们平时所说的S7-2OO不加电池,使用内部电容保存数据方式,在50-60小时,加入电池卡的话最好也就是200多天,在这里说的是数据,而不是程序,例如计数器,定时器等的数据。
3、S7-200的变量区,用PLC内部的“超级电容”可保存时间是根据CPU的型号、环境有所不同。对此说明一下:
CPU212/221/222典型时间最少50小时,温度40度时,8小时!
CPU214/215/216/226XM典型时间最少190小时,温度40度时,120小时。
CPU224/226典型时间最少100小时,温度40度时,70小时!
下面再说一下S7-200程序数据的断电保存方法。S7-200PLC程序数据的断电保存方法,主要可分三种,其数据断电保存方法及特点如下:
1、在系统块中设置断电数据保持功能来保存数据。
在 S7-200的编程中,系统块中有一项功能为断电数据保持设置,设置范围包括V存储区、M存储区、时间继电器T和计数器C(其中定时器和计数器只有当前值可被保持,而定时器位或计数器位是不能被保持的)。其基本工作原是在PLC外部供电中断时,利用PLC内部的超级电容供电,保持系统块中所设置的断电数据 保持区域的数值保持不变,而将非保持区域的数据值归零。
由于超级电容容量的限制,在西门子的资料中宣称只能保存几天时间。对于M存储区中的前十四个字节 (即MB0-MB13),当设为断电数据保持,在PLC外部供电中断时,PLC内部自动将以上存储区的数据转移到EEPROM中,因此可实现断电永久保存。若需更长的RAM存储器断电数据保存时间,西门子公司可提供一个可选的电池卡,在超级电容耗尽后继续提供电能,延长数据保存时间(约200天)。
2、在编程时建立数据块来保存数据。
在程序设计的编程阶段,可在编程中建立数据块,并赋予需要的初始值,编程完成后随程序一起下载到PLC的 RAM存储器中,CPU同时自动将其转存于EEPROM,作为EEPROM储器中的V数据永存储区。因EEPROM的数据保存不需要供电维持,所以可以实现永久保存。若在系统块中相应V存储区未设为断电数据保持,在每次PLC上电初始,CPU自动将EEPROM中的V数据值读入RAM的V存储区。若相应V 存储区设为断电数据保持,在每次PLC上电初始,CPU检测断电数据保存是否成功。若成功,则保持RAM中的相应V数据保持不变。若保存不成功,则将 EEPROM中的相应V数据值读入RAM的V存储区。此方法只适用于V数据的断电数据保存。
3、在程序中用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的失效。
总之,结合以上的了解和工地调试的经验,在实际应用中,若遇到需程序数据保持的时候,要多种方法结合运用以达到最理想的结果。针对程序中需保存数据的不同,采取不同的方式实现。
1、对于需在程序第一次运行时进行预置并在程序运行过程中个别情况下进行重新设置的数据,如高度、荷重等相关标定参数,可在程序的数据块中建立数据,并赋予初始数值。同时在程序中编入SMB31和SMW32命令,在相关条件下对EEPROM的V数据区进行重新保存,修改先前的初始值。
2、对于程序运行过程中数值变化比较频繁,且需断电长期保存的数据,则可将数据存于MB0至MB13存储区,且系统块的断电数据保存设置中将相应的M存储区设为断电数据保存。也可使用程序中的V存储区,在必要时进行一次程序数据存储,而在断电数据保持设置中可选取,也可不选取。
在博途中,如何把程序块连同PLC变量及PLC数据类型从CPU 上载到PC
要将CPU内的软件上载到编程设备,需要新建一个项目并添加一个非指定CPU。
说明
必须先建立到设备的在线连接,才能将CPU内的项目数据上载到编程设备。下面是一个从S7-1500 CPU上载的例子:
新建一个Step7项目,用 "Add new device" 功能添加一个CPU模块,在本例中添加一个 "unspecified CPU 1500",模块的订货号为6ES75XX-XXXXX-XXXX。 注意: 组态时不需要考虑 "unspecified CPU 1500"的在线及离线的固件版本。模块在组态中未具体定义,可以在CPU下面的窗口中看到相关信息,之后点击“detect”按钮图. 1
3.在 "Hardware Recognition for PLC_1"对话框中,选择PG/PC接口,点击 "Start search"按钮 。
4.搜索后会显示出在线CPU的设备类型、IP地址和MAC地址,点击"Recognize"按钮,离线组态会以在线组态进行自动匹配。
5.在工具栏中单击"Go online" 按钮,在打开的"Go online" 对话框中单击"Start search"按钮。
6.系统将检查该兼容设备的可访问性。这可能需要花费一些时间,设备被确认后 "Select target device:" 窗口就会显示出其IP地址,点击“GoOnline”按钮建立在线连
图. 2
7.当在线连接建立后,在项目树中该站点上点击右键, 在下拉框中选择"Upload from device (software)" 。
图. 3
8.弹出的对话框提示,离线项目会被删除并被在线项目取代,在"Continue"前打勾以使能该功能,并点击 "Upload from device"按钮。新的项目数据会从CPU上传至新建的项目中
图. 4
9.在工具栏点击 "Disconnect online connection"按钮。
10.保存并编译项目。
现在该Step7 (TIA Portal)项目包含Program Blocks"文件夹的完整内容,其中包含PLC变量、PLC数据类型、工艺对象和来自在线CPU的其他文件夹。已成功传输块(FBs、FCs、DBs和OBs)的消息将显示在inspector窗口中。
相关问答
三菱plc怎么设置数据保存?
三菱plc在线读取的程序工程保存:一、将plc与编程软件连接,首先点击菜单栏里的【在线】中的【PLC读取】会弹出对话框让你选择plc类型。二、点击【程序+参数】...
您好,利用PLC采集数据,怎样将,采集到的值都保存到PLC中,方便以后调用。怎样编程啊,谢谢20ms采集一次的?
PLC的存储器容量有限,一个采集数据,一个字或一个双字的大小,如果按20ms,根本储存不了多少。建议你将采集时间延长,如果是20ms采集一次且变化速率不大的,便...
PLc里的程序肿么拷贝到电脑里?-ZOL问答
用对应品牌的编程软件读取PLC程序再保存,设置好通讯相关参数,把PLC通过编程线连接到电脑找到你保存程序的位置,复制到你的存储设备即可兄弟呀!你上载了,然后...
三菱plc如何储存多组数据?
三菱plc里有多个数据寄存器,用来储存多组数据。三菱PLC⾥类似数组的数据存储⽅式实现功能:数据先进的先出,⽐如将1、2、3依次存⼊D0、D1、D2,⽬前D0(1)、D...
S7200plc中什么用来存放用户程序和工作数据?
是由PLC的主控制器存放用户程序和工作数据。是由PLC的主控制器存放用户程序和工作数据。
plc读程序后忘记保存?
现以三菱plc为例。在下载之前先要知道PLC的机型和CPU模式。1,将PLC通信口(三荾是RS-232较多)与电脑USB插口用数据线连接好,按装数据线驱动程序到电脑中(否...
plc可以把数据导入电脑吗?
首先你的电脑上得有plc的编程软件,比如三菱的plc必须要有三菱的编程软件,然后用s485数据线链接电脑,打开电脑上的plc编程软件,创建一个新的文件,这个文件的...
PLC内部电池没电了,程序丢失后,如何重新储存程序呢?
如果你的电脑里有程序备份,下载到PLC就行了。如果你没程序备份,找设备厂家要程序,或者找相同设备将程序上传到电脑,再从电脑下载到没程序的PLC如果你有能力,...
三菱FX系列PLC内部有无电池,程序是怎样存储的?
三菱FX系列有内部电池,就在PLC左上角,把盖子揭开就看得到是红色的,程序一般存在内部ROM里,如果程序太大超过8000步就需要插一个存储卡。三菱FX系列有内部电池...
PLC内部电池没电了,程序丢失后,如何重新储存程序呢?-qVM...
内部电池为PLC内部时钟和掉电保持寄存器供电用了,没有电程序是不会丢失的,只是内部时钟会复位,掉电保持区会清零而已。如果你的电脑里有程序备份,...