I/Q区称为过程映像输入区/过程映像输出区,“映像”说明它们就像镜中花、水中月,访问它们并不是访问输入/输出模块,而是访问CPU存储器中的区域。
只是在过程映像区刷新的时刻,I区和Q区的内容才与输入/输出模块中的实际值相同,因此它们并不能直接反映输入/输出的实际状态。
S7-300/400的I/Q区与PI/PQ区(外设输入/外设输出区)的关系如下:
1)访问PI/PQ区时,直接读写输入/输出模块,而I/Q区是输入/输出模块在CPU的存储区中的“映像”。
使用外设地址可以实现用户程序与I/O模块之间的快速数据传送,因此被称为“立即读”和“立即写”。在每次扫描循环开始时对P/Q区采用批量读/写的方式,因此造成了输入/输出的滞后。
2)I/Q区可以按位、字节、字和双字访问,PI/PQ区只能按字节(PIB/PQB)、字(PIW/PQW)和双字(PID/PQD)访问。
3)I/Q区的地址范围比PI/PQ区的小,有的S7-300CPU的I/Q区只有128B,有的CPU可以在组态时修改I/Q区的大小。
4)如果地址超出了I/Q区允许的范围,必须使用PI/PQ区来访问。例如在I/Q区只有256B时,在访问S7-300的模拟量模块时(其地址区从256号字节开始),必须使用PI/PQ区的地址。
5)PI区是只读的,不能改写,PQ区是只写的,不能读取。
6)I/Q区与普通的存储器一样,可以读写。在每个扫描循环周期的读取输入阶段之后,用于外部硬件的I区的值取决于对应的外部电路的状态。没有用于外部硬件的I/Q区可以像M区一样使用,例如智能DP从站用于与主站的通信。
7)I/Q区和PI/PQ区可以使用相同的字节地址。