施耐德PLC数据掉电保存的应用_New
- 格式:doc
- 大小:487.00 KB
- 文档页数:10
Somachine编程环境下的PLC硬件,掉电上电后,其变量数据的保持,和早期的PLC略有不同,具体分类整理如下:PLC类型变量范围/大小设置方法M218%MW0-%MW499无需任何设置M238%MW0-%MW999M258%MW0-%MW999(试验数据,暂时没有资料出处)M218744bytes保持变量(Retain Variable)在POU的声明部分(图1)或自动声明对话框(图2)M2388168bytesM25810000bytesM218144bytes永久变量(Persistent Retain Variable)通过“添加对象”对话框(图3),选中“保持型变量(图4),在弹出的编辑窗口(图5)中,对变量进行声明M238400bytesM25820000 bytes图1:POU的声明部分图2:自动声明对话框图3:设备树图4:添加对象对话框图5:永久变量声明窗口附:此文档中的相关信息,出处为Somachine 软件的帮助文件,可通过下述路径查找资料出处:Somachine/控制器编程指南/优化控制器/M218 Logic Controller…/Memory Mapping/RAM Memory OrganizationSomachine/控制器编程指南/优化控制器/M238 Logic Controller…/Memory Mapping/RAM Memory OrganizationSomachine/控制器编程指南/系能控制器/M258 Logic Controller…/Memory Mapping/RAM Memory OrganizationCoDeSys/编程参考/声明/……。
PLC 内部掉电保持寄存器的应用
我们在设计小型的PLC 控制系统时,常常会需要在外部改变PLC 内部的数据,譬如Counter, TImer 或者Data 的值,以适应生产过程的需要。
而且要求系统关机以后,这些数据还能够保存在PLC 内部,当下次开机后,这些数据可以被调出继续使用。
现在许多小型的PLC 都或多或少地提供了掉电保持寄存器,以便在PLC 断电的时候,保存用户想要保存的数据。
但大多数时候,PLC 制造厂商为了
节约成本,不可能提供足够数的掉电保持寄存器供系统设计人员使用,所以
当被调整的数据项目超过PLC 内部的掉电保持寄存器的数目的时候,我们不得不减少被调整的数据项目(固定或不用)或者购买具有更多掉电保持寄存
器数目的PLC,这样的话,就使得生产机械缺乏灵活性和适应性,从而降低
产品档次或增加成本。
下面就介绍解决这种问题的一种方法,以便大家设计时参考。
所用PLC:松下FP0-C16T,被调整数据有16 个,PLC 内部掉电保持寄存器数目为10 个,其中8 个数据寄存器(DT1652-DT1659:8 个各16Bit)和2 个字的内部继电器(WR61、WR62:2 个各16Bit)。
如果按常规的一个。
Somachine编程环境下的PLC硬件,掉电上电后,其变量数据的保持,和早期的PLC略有不同,具体分类整理如下:PLC类型变量范围/大小设置方法M218%MW0-%MW499无需任何设置M238%MW0-%MW999M258%MW0-%MW999(试验数据,暂时没有资料出处)M218744bytes保持变量(Retain Variable)在POU的声明部分(图1)或自动声明对话框(图2)M2388168bytesM25810000bytesM218144bytes永久变量(Persistent Retain Variable)通过“添加对象”对话框(图3),选中“保持型变量(图4),在弹出的编辑窗口(图5)中,对变量进行声明M238400bytesM25820000 bytes图1:POU的声明部分图2:自动声明对话框图3:设备树图4:添加对象对话框图5:永久变量声明窗口附:此文档中的相关信息,出处为Somachine 软件的帮助文件,可通过下述路径查找资料出处:Somachine/控制器编程指南/优化控制器/M218 Logic Controller…/Memory Mapping/RAM Memory OrganizationSomachine/控制器编程指南/优化控制器/M238 Logic Controller…/Memory Mapping/RAM Memory OrganizationSomachine/控制器编程指南/系能控制器/M258 Logic Controller…/Memory Mapping/RAM Memory OrganizationCoDeSys/编程参考/声明/……。
施耐德PLC数据掉电保存的应用————————————————————————————————作者:————————————————————————————————日期:施耐德PLC数据掉电保存的应用很多设备在实际使用中需要将设备运行中的部分数据保存,以便下一次运行时使用。
被保存的数据要求在设备断电的情况下不丢失,也就是在某些plc中所称的“数据的掉电保存”,这一功能在Twido PLC 可以很方便的实现。
施耐德Twido PLC全系列CPU本体中都内置有一个可充电的电池,在保证该电池完全充电(PLC连续通电时间大于15小时)时,并且在PLC 的程序中未对%S0做输出的情况下,PLC内部的%MW等中间数据全部具有掉电保存功能,保存时间约30天(见图1);对于TWDLCA*40DRF 的CPU本体,通过加装外部电池TSXPLP01,可将掉电保存时间加长到3年以上;如果设备掉电的时间很长,或用户希望掉电后数据的保存不依赖于内部电池或外部电池,那么可以利用Twido的内置Flash 来实现数据的掉电保存功能。
图1具体描述使用Twido的内置Flash来实现数据的掉电保存功能需要注意:被保存的数据是从%MW0开始的一个长度不超过512的区间,假定需要对300个数据进行掉电保存功能,那么要在程序中做合理的规划,将要做掉电保存数据寄存器集中在%MW0~%MW299区间内。
另外,值得注意的地方是对Flash的写的操作不太频繁,如果程序设计的不合理,可能会对Flash造成永久性损坏。
所以,找到合适的将数据写入Flash的条件是非常重要的。
常见的写数据到Flash的条件有很多种,例如当数据发生变化时(数据变化不频繁时),或通过人机操作界面的某一个按键,或者当设备突然掉电时。
在这里,主要介绍一下,当设备突然掉电时将数据写入Flash的方法。
图2 是一种比较可行的捕捉突然掉电的方法,同样,对于使用AC220V 电源的TWDLCA***DRF的产品也可以使用同样的方法。
Schneider-施耐德LEC使用技巧文集[第18讲]——施耐德Twido PLC的数据永久保存与恢复功能
目前,对于一些对数据有严格要求的控制系统,在PLC断电或运行期间时,它要求保存PLC的一些重要数据,例如,参数的设定值、系统运行的过程值等等。
我们希望这些数据在PLC断电后甚至PLC主板电池(或超级电容)失电情况下可以永久保存,并在需要时恢复这些数据。
这在Twido PLC中可以轻松实现,步骤如下:
为了清晰地理解Twido PLC的此功能,我们可以在TwidoSoft的帮助文件中预先参考下列系统字和系统位的功能:
%SW96:应用程序和%MW存储/恢复功能的命令和/或诊断。
%SW97:存储/恢复功能的命令和诊断
%S95:恢复存储字
1.使得PLC RAM中有一个有效程序,则%SW96:X6=1,即程序调试完毕,并已备份到EEPROM 中,此时PLC RAM与EEPROM中程序相等
2.设置%SW97的值:需要保存的%MW(存储字)的长度。
长度不能超过PLC或程序中存储字的配置长度,且必须大于0,不超过512。
例如,%SW97:=10,即%MW0至%MW9这10个字需要保存至EEPROM
3.将%SW96:X0置为1,被要求的%MW数据存入EEPROM
4.将%S95置为1,恢复已存入的%MW数据
下面,举例说明如何编程实现Twido PLC的数据保存与恢复功能。
例:通过数字输入点保存并恢复%MW0至%MW9共10个内存字,程序见图T1-001
(主要程序片断)
图T1-001。
掉电保存方案
掉电保存方案主要通过在系统中加入掉电检测电路和掉电数据保存功能来实现。
下面是一种常见的单片机掉电检测电路和掉电数据保存方案:
单片机掉电检测电路通常由法拉电容实现。
法拉电容具有大容量、高储能的特性,能够储存足够多的电能。
在电源断电的情况下,法拉电容可以通过电荷泵电路等将电力输送给单片机,使其保持工作状态,并将数据保存在存储器中。
当电源恢复供电时,单片机将继续执行任务,并且可以从存储器中恢复掉电前保存的数据。
掉电数据保存方案通常采用数据备份和恢复机制。
在系统运行过程中,单片机可以定期将重要的数据备份到非易失性存储器中,如EEPROM、Flash等。
当电源断电时,单片机可以立即将剩余的数据写入存储器中,确保数据不会丢失。
当电源恢复供电时,单片机可以从存储器中恢复数据,确保数据的完整性。
另外,为了避免电源断电时对单片机的干扰,可以采用低功耗技术来降低单片机的工作电流,使其在断电时能够快速进入休眠状态。
同时,可以在单片机外部添加去抖动电路、滤波电路等抗干扰措施,以确保数据的准确性。
总的来说,掉电保存方案需要在硬件和软件方面进行全面设计和实现。
硬件方面需要选择合适的法拉电容、非易失性存储器等器件,软件方面需要编写相应的掉电检测和数据备份程序,以确保系统在掉电时能够正确地保存数据并恢复工作状态。
施耐德触摸屏历史数据纪录表格显示样例程序说明历史数据纪录表格显示样例程序说明当前VJD4.6版本(含VJD5.0)的历史数据纪录是存储在SRAM 或者CF卡中。
查看历史数据纪录可以通过历史曲线查询或者将纪录从CF卡拷贝到电脑中查看。
如果客户需要历史数据以表格的方式查看可以通过以下的方式实现。
实现的原理:触摸屏的SRAM区数据提供掉电保持的功能。
而内部变量可以通过设置“保持”属性实现数据在SRAM区的掉电保持。
所以我们可以配置内部变量数组来保存用户的历史数据。
局限性:由于VJD软件最多支持8000个变量。
所以一般情况下最多可能做到7000个左右内部变量用于保存数据。
本样例程序中有四个数据要保存,加上一个时标,总共需要保存5个数据。
每个数据的数组长度为1360个,总共需要内部变量6800个。
所以必须根据客户的需求,如需要保存多少个变量,要保存多长时间,保存间隔是多长来计算需要用到多少个变量,看是否可以满足客户的需求。
实用性:一般情况下,客户需要表格显示历史纪录的同时也要纪录到CF卡中去的。
所以我们可以按VJD内置的常规功能配置纪录组将数据保存到CF卡中。
1.由于数据纪录到CF卡的数据量完全取决于CF卡容量,是海量的。
但表格显示的纪录是内部变量保存的,是有限的。
所以如果我们表格纪录的数据量不能满足客户的需求,那么我们可以和用户解释为“我们可以提供表格显示历史数据功能,但只能保存最近xxx 条,更多的纪录在卡中”2.到内部变量的数据纪录和到CF保存的数据纪录必须同步,这样两部分所保存的数据才能一致。
样例中的数组纪录数据是采用变量触发的。
保存到CF卡的相应纪录组也必须采用同一个变量触发保存,从而保证两个数据纪录的过程同步。
样例程序说明:样例程序尽量做成通用性。
1.变量LineN 是显示表格有多少行,样例程序中初始值为16,变量PageAmount是表格会显示多少页,样例程序中初始值为85。
那么总纪录的数据量为85x16=1360。
S7-1200的内部存储区和掉电数据保持S7-1200的内部存储区分为工作存储区、装载存储区和保持性存储区三种。
装载存储区:是非易失性存储区。
用于存储用户项目文件(用户程序、数据和组态)。
如果不使用存储卡,用户使用TIA PORTAL 软件下载项目即下载到CPU 内置的装载存储区中。
如果使用存储卡,用户使用TIA PORTAL 软件下载项目即下载到存储卡中,即存储卡作为装载存储区。
注意:使用大容量的存储卡,可以扩展装载存储区项目中的符号名和注释也可以被下载到装载存储区中,极大地方便了用户的后期调试和维护。
工作存储区:是易失性存储区。
CPU 在执行用户程序时会将一些项目内容从装载存储区复制到工作存储区。
断电后工作存储区中的内容断电后丢失,且不能被扩展。
注意:使用大容量的存储卡,无法扩展工作存储区保持性存储区:用于在CPU 断电时存储指定单元的过程数据,保证数据断电不丢失注意:使用大容量的存储卡,无法扩展保持存储区内部存储区的具体大小请参考下表:表1:CPU 1200 的内部存储区大小如何实现内部数据的掉电保持?需要被断电保持的数据必须被保持到保持性寄存器中。
保持性寄存器中不需要超级电容供电维持,其中的数据可以永久保持。
总共可以有10240个字节的数据具有保持特性。
CPU 暖启动或者断电再上电后,保持性存储区中的数据会保持为暖启动或者断电之前的数值,保持性存储区之外的数据会丢失,即恢复初始值。
CPU 的M 存储区、FB 的背景数据块和全局数据块中的数据可以使用保持性存储区存储。
1、M 存储区用户可以在“PLC 变量”标签页中,点击“保持”按钮来设定M 存储区的保持范围,从MB0开始的连续字节数,例如设置10,则保持范围为MB0-MB9共10个字节,无法设置多个保持区,如下图所示:型号CPU 1211CCPU 1212C CPU 1214C CPU 1215C CPU 1217C 工作存储区50 kB 75 kB 100 kB 125 kB 150 kB 装载存储区 1 MB 1 MB 4 MB 4 MB 4 MB 保持性存储区10 kB10 kB10 kB10 kB10 kB图1: 保持M存储区2、FB块的背景数据块FB块可以是优化的块或者非优化的块,新建的FB默认优化FB,可以在FB右键属性中修改,如图所示。
掉电数据保持一、S7-200系统中用到了三种存储器件:RAM:易失性存储器,失去电源供应后,其中保存的数据会丢失;S7-200CPU中的RAM由超级电容+外插电池卡(需要单独购买,在CPU的可选插槽上插入)提供电源缓冲。
EEPROM:非易失的电可擦除存储器,不需要供电(即不依靠电容和电池)就能永久保存数据,并且可以改写其内容。
用户程序永久保存在程序EEPROM区中,不会丢失。
外插存储卡:非易失的存储器。
作用:存储和传递程序,保存数据记录(归档)、配方数据以及一些其它文件。
二、数据保持的方法1、内置电容保持数据CPU中内置超级电容,在短期断电期间为数据保持和实时时钟(如果有)提供电源。
断电后,CPU221,222的超电容可提供约50H的数据保持,CPU224,224XP和CPU226可保持数据约100H.超级电容在CPU上电时充电,为保证得到上述指标的数据保持时间,需要充电至少24H.2:内置电容+电池卡数据保持(为RAM提供电源缓冲)CPU断电后,首先依靠内置的的超级电容为数据提供电源,超级电容放电完毕后,电池才起作用。
完全靠电池为CPU提供数据备份电源时,电池寿命为约为200天。
S7-200的电池卡不能充电,使用完毕就不能再用了,只能购买新的电池卡。
S7-200没有检测电池卡内剩余电量的状态位和这种功能。
新版上S7-200CPU电池卡有两种型号:时钟电池卡和电池卡。
在S7-200项目的系统块,有设置RAM数据保持区的选项。
如下图实现该功能一定要将修改过的系统块下载到CPU中。
注意:1、只有M区的MB0和MB13设为保持,在断电时才直接写入EEPROM,属于永久保持;除此之外的所有保持都是临时的,由内置电容+外插电池保持(RAM)。
2、若在系统块中相应的V存储区设为断电数据保持,在每次PLC上电初始,CPU检测断电数据保存是否成功,若成功,则RAM中的相应V数据保持不变。
若保存不成功,则将EEPROM中的相应V数据值读入RAM的V存储区。
1、V区可以在系统块里设置相应的保持字节。
如果没有电池卡,数据将保持约200小时。
(是靠内部超级电容来维持的),电容没电了,相应数据丢失。
2、V区可以在系统块里设置相应的保持字节。
安装电池卡后,数据将保持200天左右,电池卡没电后,相应数据丢失。
3、在数据块里写入数据,能保证在任何时候丢电的情况下,当PLC上电时,能自动写入相应区域。
(不适用于经常修改的数据)
4、用程序将数据写入永久存储区。
(此方法慎用,频繁写入会导致PLC报废)
5、用传送指令将出厂数据恢复到相应地址。
如果是放在M区的话,这里有14个字节只要在系统块设定了保持的话就会自动写eeprom保持。
如果是放在V区的话,可以在菜单有个地方找到一个条目,“从RAM创建数据块”。
创建之后这数据就编程数据块受到eeprom的保持。
并且可以作为以后的上下载用。
但是不需要保持的一些过程数据也会因而被eepROM保持。
会造成停电时间过长的时候,开机被写成这个数据块的内容。
要注意这个影响。
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
施耐德触摸屏配方掉电保持功能设置详解
我们的客户在许多情况下都需要用到触摸屏的配方功能,但是在实际使用中我发现当触摸屏掉电后再上电屏上不再显示当前PLC程序里正在执行的是哪个配方组以及哪个配方,这会给用户造成困扰及不便。
下面我就将配方掉电保持的功能跟大家分享一下。
1、我们要在变量里创建2个内部变量。
2、我们的触摸屏的内部变量是可以设置成保持型变量的,其方法如下图:
将数据细节中的保持设置成启用,这样该变量就编程了保持型变量。
3、在配方界面里的发送配方按钮里添加一个脚本,内容如下:
这样当发送配方的同时将配方组号和配方号也赋值给了2个保持型内部变量。
4、新创建一个动作。
触发类型为事件,触发事件为启动时,如下图
然后将Recipe_Group置位给配方变量里的
_RecipeControlDefault.RecipeGroupNumber,将Recipe_ID置位给
_RecipeControlDefault.RecipeNumber,4置位给_RecipeControlDefault.Operation 保存当前配方。
这样,重新上电后触摸屏就能正确的显示出当前PLC内正在执行的配方。
施耐德PLC数据掉电保存的应用
————————————————————————————————作者:————————————————————————————————日期:
施耐德PLC数据掉电保存的应用
很多设备在实际使用中需要将设备运行中的部分数据保存,以便下一次运行时使用。
被保存的数据要求在设备断电的情况下不丢失,也就是在某些plc中所称的“数据的掉电保存”,这一功能在Twido PLC 可以很方便的实现。
施耐德Twido PLC全系列CPU本体中都内置有一个可充电的电池,在保证该电池完全充电(PLC连续通电时间大于15小时)时,并且在PLC 的程序中未对%S0做输出的情况下,PLC内部的%MW等中间数据全部具有掉电保存功能,保存时间约30天(见图1);对于TWDLCA*40DRF 的CPU本体,通过加装外部电池TSXPLP01,可将掉电保存时间加长到3年以上;如果设备掉电的时间很长,或用户希望掉电后数据的保存不依赖于内部电池或外部电池,那么可以利用Twido的内置Flash 来实现数据的掉电保存功能。
图1
具体描述
使用Twido的内置Flash来实现数据的掉电保存功能需要注意:被保存的数据是从%MW0开始的一个长度不超过512的区间,假定需要对300个数据进行掉电保存功能,那么要在程序中做合理的规划,将要做掉电保存数据寄存器集中在%MW0~%MW299区间内。
另外,值得注意的地方是对Flash的写的操作不太频繁,如果程序设计的不合理,可能会对Flash造成永久性损坏。
所以,找到合适的将数据写入Flash的条件是非常重要的。
常见的写数据到Flash的条件有很多种,例如当数据发生变化时(数据变化不频繁时),或通过人机操作界面的某一个按键,或者当设备突然掉电时。
在这里,主要介绍一下,当设备突然掉电时将数据写入Flash的方法。
图2 是一种比较可行的捕捉突然掉电的方法,同样,对于使用AC220V 电源的TWDLCA***DRF的产品也可以使用同样的方法。
在某些特定的应用场合,PLC的电源供给是使用直流24V的蓄电池,如果作为电源供给的蓄电池回路突然中断,而在这种条件下运行的设备很可能需要通过蓄电池突然中断供电的测试,此时图2中的捕捉电源掉电的方法就无法可靠使用。
这时,要实现捕捉电源掉电,需要利用TWIDO的一些内部特性,首先来看一下使用DC24V电源的TWDLMDA*****/TWDLCDA**DRF的对供电电源的要求,见图3。
使用DC24V电源的TWDLMDA*****/TWDLCDA**DRF的允许供电的直流24V电源发生10ms的中断,而不会对PLC的运行造成影响,也就是说,在24V电源供给断开的10ms内PLC还可以正常运行,再结合Twido
的外部中断(I0.2~I0.4,可在1ms内检测到输入的变化,微型继电器从线圈断电到触点断开需要4ms,剩余的5ms足够完成数据写入Flash 的程序所需的时间)功能,可以完成电源突然中断后将数据保存的要求。
相应的接线及设置见图4、图5及图6。
图2
图3
图4
图5
图6
注意,图6中要将I0.2的滤波时间设置为“不使用”,这样可以使用PLC更快地检测到微型继电器的触点的断开。
下面是为实现使用DC24V电源的TWDLMDA*****/TWDLCDA**DRF的供电掉电捕捉的Twido的测试程序,程序中使用I0.0、I0.1来改变MW288的数据,通过Q0.1的输出来判断数据是否被写入到Flash。
使用这三个辅助点是为了不断地重复掉电前数据的变化及上电后观察数据是否实现掉电保持功能,实际使用时可去掉这些测试部分内容。
测试程序中保存MW0到MW299间的300个数据寄存器,因数据写入Flash 的操作在中断程序中完成,所以与程序的大小无关,也就是完成保存数据的功能与PLC的扫描时间关系不大。
程序清单:
(* 初始化 *)
LD 1
MPS
AND( %S0
OR %S1
OR %S13
)
ST %S0
ST %M0
MPP
AND %S7
ST %M7
(* 开辟存储空间 *)
LD 1
[ %MW1000 := 88 ]
STN %M255
(* 初始化后1.5秒,从FLASH中恢复数据 *)
BLK %TM127
LDN %M0
IN
OUT_BLK
LD Q
ST %M101
END_BLK
(* 防止频繁对FLASH写操作时间限制,时间限制在50MS内 *) BLK %TM126
LDN %I0.0.2
IN
END_BLK
(* 恢复FLASH中的数据,M101为恢复条件,开机后1.5秒自动恢复数据 *)
(* *)
LDR %M101
[ %SW97 := 300 ]
ST %S95
(* Q0.1为测试指示,I0.1接通%MW288赋值88,Q0.1输出,断电后再通电,1.5秒后%Q0.0.1有输出,说明%MW288保存有效 *)
(* 如检测数据保存有效,接通I0.1,%MW288赋值0,Q0.1无输出,断电后再通电,1.5秒后%Q0.0.1无输出,说明%MW288保存有效 *)
LD 1
MPS
AND %I0.0.0
[ %MW288 := 0 ]
MRD
AND %I0.0.1
[ %MW288 := 88 ]
MPP
AND [ %MW288 = 88 ]
AND %S12
ST %Q0.0.1
(* 主程序结束 *)
END
(* 数据保存子程序,SW97需保存的数据区长度(示范为300,允许范围1~511) %I0.0.2为保存条件,此处取其下降沿 *)
(* 要保证写入闪存的条件在正常运行时不能频繁满足,否则可能损坏闪存 *)
SR0:
LDN %TM126.Q
[ %SW97 := 300 ]
ANDN %SW96:X10
AND %SW96:X6
ST %SW96:X0
(* 子程序返回 *)
RET。