s7300指令解析(S7-300400进阶笔记2过程映像区的分类及其更新机制)
s7300指令解析(S7-300400进阶笔记2过程映像区的分类及其更新机制)S7-300系列PLC只有OB1-PI一个过程映像,与之相对的S7-400系列PLC,处理OB1-PI外,还可为其输入/输出地址分配最多15个过程映像PIP。如图2所示,CPU 416-2DP总共可有8个过程映像PIP:PIP1-PIP8。2、过程映像分区PIP 过程映像区又可分为两类:OB1过程映像OB1-PI和过程映像分区PIP。1、OB1过程映像OB1-PIS7系列的CPU都可使用OB1过程映像区OB1-PI。尤其是300系列CPU,只有OB1-PI。 OB1-PI的过程映像在每个OB1的循环扫描周期的开始阶段,将输出映像区的值写入输出模块,并将输入模块的值读入输入映像区。这一过程是CPU的操作系统自动完成的。
前言在上一篇文章《S7-300/400进阶笔记1:PLC程序的循环处理方式及其相关内容简介》中,我们介绍了PLC的程序执行方式——循环周期扫描。文中提到了过程映像区,本文将对过程映像区做进一步的介绍。一、过程映像区
过程映像区从输入、输出的角度,分为以下两类:
- 输入过程映像区PII
- 输出过程映像区PIQ
一般来说,CPU不会直接读、写输入模块和输出模块(外设寻址除外),而是从PII中读数据,然后经过程序处理后,将运行结果写入PIQ即可。然后,输入/输出模块仅和PII、PIQ进行数据交换即可。
以图1为例,程序中I0.0、I0.1、I0.2实际上访问的是输入过程映像区PII;Q0.0实际访问的是输出过程映像区PIQ。
图1 电机启停控制
过程映像区又可分为两类:OB1过程映像OB1-PI和过程映像分区PIP。
1、OB1过程映像OB1-PI
S7系列的CPU都可使用OB1过程映像区OB1-PI。尤其是300系列CPU,只有OB1-PI。 OB1-PI的过程映像在每个OB1的循环扫描周期的开始阶段,将输出映像区的值写入输出模块,并将输入模块的值读入输入映像区。这一过程是CPU的操作系统自动完成的。
2、过程映像分区PIP
S7-300系列PLC只有OB1-PI一个过程映像,与之相对的S7-400系列PLC,处理OB1-PI外,还可为其输入/输出地址分配最多15个过程映像PIP。如图2所示,CPU 416-2DP总共可有8个过程映像PIP:PIP1-PIP8。
图2 CPU416-2DP,8个PIP
二、过程映像的分配
在300PLC中,只有OB1-PI一个过程映像区,无所谓分配。但400PLC中,即有OB1-PI,又有PIP,实际应用中,就要根据需要进行分配了。
过程映像分配的基本原则:
同一个输入/输出地址不能既分配给OB1-PI,又同时分配给PIP,只能分配到一个过程映像中。
如图3为分配过程映像的步骤。
图3 分配过程映像
三、过程映像区的更新
1、300PLC过程映像区的更新
300PLC只有OB1-PI,其过程映像区在循环扫描开始后,先将PIQ的数据写入输出模块,再将输入模块的数据读入PII即可。
2、400PLC过程映像区的更新
过程映像分区的更新有以下两种方式:
- 将PIP分配给OB块
如图2所示,可以给中断组织块分配一个PIP,如给硬件中断OB41分配PIP1。当中断发生,OB41被调用时,其关联的过程映像分区(PIP1)从与之相关的输入模块读入输入值;当该OB块执行完毕时,PIP1将值写入与之相关的输出模块。
- 用户程序中调用SFC26、SFC27进行更新
400的CPU中固化了两个系统功能SFC26 和SFC27,分别用于刷新过程映像输入和过程映像输出。在程序中调用它们,也可以实现过程映像区的更新。使用SFC26、SFC27进行更新时,可对过程映像分区进行一致性数据读写,数据长度取决于CPU的类型。
- 另外,在s7-400系列PLC中,可以禁用OB1过程映像的循环更新,如图4所示。此时,必须在用户程序中使用SFC26、SFC27对过程映像进行更新。
图4 禁用OB1-PI的循环更新