施耐德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。
施耐德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。