正在进行安全检测...
发布时间:2024-01-09 19:05:56
我在网上看了好多,好几个都说IW是数字量输入,PIW是模拟量输入,而且IW是通过映像区读取,PIW直接读取什么的,越看越糊涂了,但是我看我以前的老师(同事)就是用IW通过FC105读取模拟量的啊。有点疑惑了,来个老师解释下吧,真的很纳闷。S7-300/400的I/Q区称为过程映像输入区(PII)/过程映像输出区(PIQ),“映像”表示它们就像镜中花、水中月,访问它们并不是访问输入/输出模块,而是访问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)访问。I/Q区和PI/PQ区可以使用相同的字节地址。3)I/Q区的地址范围比PI/PQ区的小,有的S7-300CPU的I/Q区只有128B,有的CPU可以在组态时修改I/Q区的大小。4)如果地址超出了I/Q区允许的范围,必须使用PI/PQ区来访问。
例如如果I/Q区只有128B,在访问S7-300的模拟量模块时(其地址区从256号字节开始),则必须使用PI/PQ区的地址。CPU的I区如果较大(大于256B),就可以用IW读模拟量。对于模拟量输入,用PIW和IW都可以,CPU输入/输出映像区有一定范围,对于没有相应的映像缓冲区的输入地址,一定采用PIW指令,而一般外设输入地址,都是没有映像缓冲区的。对于有映像缓冲区的输入地址,用PIW和IW都可以,但用PIW,表示直接取地址内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如