7.4 数据块和系统块的使用
7.4.1 数据块的使用
1.在数据块中对变量存储器V的赋值
数字量控制程序一般不需要数据块。数据块主要用于对变量存储器V赋初值,可以对字节、字或双字变量赋值。下载时数据块中的数据被写入EEPROM,因此,需要断电保持的数据可以存放在数据块中。双击指令树“数据块”文件夹的“用户定义1”图标,打开数据块。
数据块中的行包括起始地址以及一个或多个数据值,双斜线(“//”)之后的注释为可选项。数据块的第一行必须包含明确的地址,以后的行可以不包含明确的地址。在单地址值后面键入多个数据或键入只包含数据的行时,由编辑器进行地址赋值。编辑器根据前面的地址和数据的长度(字节、字或双字)进行赋值。数据块编辑器不区分大小写字母,允许用英语的逗号、制表符或空格作地址和数据的分隔符号。下面是使用数据块的例子:
2.使用ASCII码常量的限制
WORD(字)寻址时,常量中ASCII码的个数必须是2的整数倍;DWORD(双字)寻址时,ASCII码的个数必须是4的整数倍;BYTE(字节)寻址与未定义的寻址时,对常量中ASCII码的个数无限制。加上可选的地址说明,数据块中的一行最多包含250个字符。
3.输入错误的显示与处理
如果数据块位于激活窗口,可以用菜单“PLC”→“编译”命令进行编译,如果数据块不在激活窗口中,可以用菜单“PLC”→“全部编译”命令激活。
编译数据块时,如果编译器发现错误,将在输出窗口显示错误提示。双击错误信息,将在数据块窗口显示有错误的行。
在有错误的输入行尾按回车键,在数据块左边的区域将用叉号显示输入错误。在重新编译之前,应改正全部输入错误。
7.4.2 系统块的使用
单击指令树“系统块”文件夹的某一图标(见图7-17),可以直接打开系统块对应的对话框。或执行菜单“查看”→“组件”→“系统块”命令,也可以打开系统块。
打开系统块后,单击左侧窗口中的某个图标(见图7-18),进入对应的对话框后,可以进行有关的参数设置。对话框中有“默认”按钮,单击“默认”按钮,可以自动设置编程软件推荐的设置值。
设置完成后,单击“确认”按钮,确认设置的参数,并自动关闭系统。设置完所有的参数后,需要通过系统块将新的设置下载到PLC中,参数便存储在CPU模块的存储器中了。
图7-17 系统块
1.保存数据的方法
S7-200PLC的CPU中的数据存储区分为易失性的RAM存储区和永久保存数据的EEPROM存储区,前者电源消失后,存储的数据将会丢失;后者电源消失后,存储的数据不会丢失。CPU在工作时,V、M、T、C、Q等存储区的数据都保存在RAM中。
S7-200PLC用内置的EEPROM永久保存程序块、数据块、系统块、强制值、组态为断电保持的V存储器和在用户程序控制下写入的指定值。配方和数据记录组态存放在存储器卡内。
EEPROM存储区对应于RAM中的全部V存储区、部分M存储区和有保持功能的定时器TONR。
从CPU模块上载用户程序时,CPU将从EEPROM中上载程序块、数据块和系统块,同时从存储区卡中上载配方和数据记录组态。S7-200PLC通过资源管理器上载数据记录中的数据并提供了多种方法来保存数据。
(1)用CPU中的超级电容器保存RAM中的V、M、T、C存储区的数据。超级电容器可以保持几天,保持的时间(50h或100h)与CPU模块的型号有关。
(2)可选的电池卡可以延长RAM保持信息的时间,只是在超级电容器电能耗尽后电池卡才提供电源。在PLC连续断电时,电池的寿命约为200天。
(3)MB0~MB13如果在系统块中被设置为断电保持,在CPU模块断电时被永久保存在EEPROM中。
(4)数据块用来给V存储区赋初值,数据块下载到CPU后,存储在EEPROM中,所以可以用数据块来保存程序中用到的固定数据。
(5)用可拆卸的EEPROM卡来保存程序块、数据块、系统块、配方、数据记录和强制值。通过S7-200PLC的资源管理器,可以将文件存储在存储器卡中。
2.设置PLC断电后的数据保存方式
单击指令树的“系统块”文件夹的“断电数据保存”图标,选择从通电切换到断电时希望保存的内存区域。
在电源掉电时,最多可以定义6个需要保持的存储区范围,图7-18所示的是默认的保持范围的设置。可以设置保存的存储区有V、M、C和T。只能保持TONR(保持
图7-18 设置断电数据保持
型定时器)和计数器的当前值,不能保持定时器位和计数器位。
3.开机后数据的恢复
上电后,CPU会自动地从EEPROM中恢复程序块和系统块。然后检查是否安装了超级电容器和可选的电池卡,如果已安装,将确认数据是否成功地保存到RAM中,如果保存是成功的,RAM存储器的保持区将保持不变。EEPROM中数据块的内容被复制到V存储器的非保持区,RAM中的其他非保持区被清零。
如果RAM存储区中的数据没有保持下来(例如长时间断电后),则CPU会清除RAM中所有的用户存储区,并在通电后的第一次扫描设置“保持数据丢失”标志,即SM0.2为1状态。此外,EEPROM中的V存储区和M存储区的永久区域从EEPROM复制到RAM中,RAM的所有其他区域均被清零。
4.将V存储区的数据复制到EEPROM
S7-200PLC可以将V存储区任意位置的数据(字节、字和双字)复制到EEPROM中,一次写EEPROM的操作会使扫描周期增加5ms。新存入的值会覆盖EEPROM中原有的数据,写EEPROM的操作不会更新存储卡中的数据。
将V存储区中的一个数据复制到EEPROM中的V存储区的步骤如下。
(1)将需要保存的V存储区的地址送特殊标志位寄存器字SMW32。
(2)将数据长度单位写入SM31.1和SM31.0,这两位为00和01时表示字节,为10时表示字,为11时表示双字。
(3)令SM31.7=1,在每次扫描结束时,CPU自动检查SM31.7,该位为1状态时,将指定的数据存入EEPROM,CPU将该位置0后,操作结束。
例如,在I0.0的上升沿将VW100的值写入EEPROM的程序如下。
写入EEPROM的操作次数是有限制的,最少10万次,典型值为100万次。应在发生特殊事件时,才将数据保存在EEPROM中,否则会因写入次数过多使EEPROM失效。
如果将写入EEPROM的V存储区设置为没有数据保存功能,在CPU断电又上电后,该V存储区地址中写入EEPROM的数据,则说明数据已经写入EEPROM中。
5.用存储器卡保存用户程序
可以采用可选的存储器卡将用户程序复制到其他CPU中。如果用户文件太大,没有足够的存储空间,可以用菜单“PLC”→“存储卡擦除”命令来清空存储器卡,或打开S7-200PLC的资源管理器,移除不需要的文件。
将程序复制到存储器卡的步骤如下。
(1)将CPU置于STOP状态。
(2)执行菜单“PLC”→“存储卡编程”命令,在出现的对话框中选择需要复制的部分,可将程序复制到存储器卡中。如果选中了系统块,则强制值也会被复制。单击“编程”按钮,进行复制。
6.用存储器卡恢复用户程序和存储器中的数据
将存储器卡插入CPU模块后,接通电源,只要存储器卡中有块,或者与S7-200 PLC的块和强制值不同,则存储器卡中的所有块都会复制给S7-200PLC。CPU完成以下操作。
(1)将存储器卡中的程序块复制到EEPROM。
(2)V存储区被清空,将存储器卡的数据块复制到EEPROM中。
(3)将存储器卡中的系统块复制到EEPROM中,强制值被替换,所有的保持存储器被清空。
复制完成后可以取下存储器卡,如果存储器卡内有配方和数据记录,则它必须一直安装在CPU上。
如果存储器卡是用其他型号的CPU模块编程的,在CPU模块通电时可能会报错。高型号的CPU(例如CPU226)可以读出用低型号的CPU(例如CPU221)编写的存储器卡的程序,反之则不能读出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。