5) S7-1500存储器总结
工作存储器的空间大小与CPU的类型有关,不能扩展,所以选择CPU的类型时,除了考虑程序处理速度外还要考虑程序的大小。
CPU暖启动(停止-启动或上电启动)后,保存在工作存储器上的过程值丢失,变量恢复到初始值。如果需要保持过程值,需要设置变量的保持性。保持性存储器的容量空间与CPU的类型有关。
SIMATIC存储卡是一个非易失性存储器,对CPU的任何操作不会让存储的用户程序丢失,也不会损毁程序。
如果CPU受到干扰或者在运行时拔插SIMATIC存储卡,CPU会进入故障模式,即CPU上所有的指示灯全闪,与外围设备的通信中断。断电后再上电,由于用户程序不会丢失,系统将恢复,但是CPU中变量的过程数据有可能丢失并恢复到初始值,这相当于重新下载了程序。
3.2.4 S7-1500 CPU过程映像区的功能
用户程序访问输入(I)、输出(Q)信号时,通常不直接扫描数字量模块的端口,而是通过位于CPU系统存储器的一个存储区域对I/O模块进行访问,这个存储区域就是过程映像区。过程映像区分为两部分:过程映像输入区和过程映像输出区。系统更新过程映像区的过程如图3- 12所示
CPU在启动模式执行启动OB块。启动完成后,CPU进入循环程序执行模式,并将结果通过过程映像输出区(PIQ)输出到输出模块,然后将输入模块的信号读到过程映像输入区(PII)。过程映像输入区更新完成后开始执行用户程序的调用。OS为操作系统的一个内部任务,用于通信和自检等操作,自检无误后再次将结果通过过程映像输出区(PIQ)输出到输出模块,循环往复。过程映像区既可以受操作系统控制而自动更新,也可以通过程序进行更新。
采用过程映像区处理输入、输出信号的好处在于,在CPU一个扫描周期中,过程映像区可以向用户程序提供一个始终一致的过程信号。如果在一个扫描周期中输入模块上的信号状态发生变化,过程映像区中的信号状态在当前扫描周期会保持不变,而直到下一个CPU扫描周期过程映像区时才被更新,这样就保证了CPU在执行用户程序过程中数据的一致性。
在S7-300/400 PLC中,有的CPU的过程映像区是固定的,例如有的S7-300 PLC为128个字节输入和128个字节输出,S7-400 PLC的过程映像区大小可以在软件中设置。S7-1500 CPU所有地址区都在过程映像区中,地址空间为32KB。访问数字量模块与模拟量模块方式相同:输入都是以关键字符%I开头,例如%I1.5、%IW272;输出都是以关键字符%Q开头,例如%Q1.5、%QW272。
为了减小过程的响应时间,在用户程序中也可以不经过过程映像区而直接访问某个I/O端口(在地址区后加“:P”)。端口扫描将在指令运行期间执行,由此可获得较快的响应时间。例如在程序中可以一次或多次使用“L %IB2:P”或“T %QW2:P”指令替代“L %IB2”或 “T %QW2”,这样对应的I/O端口在一个扫描周期内被多次访问。使用“:P”快速读写I/O端口也称为立即读、立即写。直接访问I/O端口,允许最小的数据类型为位信号。为了继承S7-300/400的编程方式,也可以在地址区前加“P”, 例如“L PIB2”或“T PQW2”,TIA博途软件会自动进行转换。
在S7-1500自动化系统中,整个过程映像区被细分为32个过程映像分区(PIP)。
PIP 0(自动更新)在每个程序周期中自动更新。可将过程映像分区 PIP 1 至PIP 31分配给某些 OB。在 TIA博途软件中,分配过程在组态I/O模块期间进行。例如点击“模块”->“属性”标签->“I/O地址”,将过程映像分区 PIP 2分配给循环中断OB30,如图3- 13所示
一旦PIP 2分配给循环中断OB30后,就不能再次分配给其它OB块。
注意:
如果过程映像区通过OB块进行更新,则不能再次调用函数“UPDAT_PI”和“UPDAT_PO”来更新这个过程映像分区。
使用过程映像分区好处在于:
每个过程映像区分区可以在需要的情况下更新,完全独立于操作系统对过程映像区的更新;