过程映映像区
当在程序中使用'I...'或 'Q...' 对输入、输出进行访问时,实际上并未直接访问输入、输出模板,而是访问 CPU 的系统存储区。此 'I'/ 'Q' 区分别被称作输入过程映像区和输出过程映像区 。
外设地址
1.外设寻址意指直接访问外设模板,在地址前加上字母 'P' 来表示:
2.外设地址的最小地址为字节,即PIB、PQB。
3.以模拟量输入为例理解IW与PIW:
最大范围与默认设置与CPU型号有关。
注意: 部分老款CPU型号无法更改过程映像区大小。
请具体参看如下手册链接:
SIMATIC S7-300 CPU 31xC 和 CPU 31x:技术规范
过程映像区与外设地址是一一对应的吗?
不是一一对应。
过程映像区每个扫描周期更新一次,同一扫描周期内数值不会变化。以下为系统扫描周期的更新过程:
而外设地址是实时更新数值,可能同一扫描周期内有不同的实时数值。
此外,过程映像区默认设置以外的映像区地址,仅仅是普通的存储区,与外设地址并无关联。
使用的I/O地址超过了过程映像区范围怎么办?
如图1所示,在CPU属性中可设置过程映像区大小。![]()
图1 更改过程映像区大小
注意:设置的越大,会影响扫描周期时间。因此,建议设置到使用的地址范围即可。
如图2,部分老款CPU型号不支持更改(如6ES7 315-2AG10-0AB0)。
图2. 无法更改的过程映像区
问题1.为什么通讯指示灯正常,但读不到/写不进从站数据;读取的数值一直为0,写入的数值能看到,但从站无变化?
问题2. CPU31xC的集成I/O点,无法正常使用?
两个问题通常都为组态设置的地址超过了过程映像区设置范围;
此时,按照以上办法操作即可。
如何访问外设地址的Bool(布尔量)地址?
以输入为例,由于外设地址的最小地址为字节,因此无法直接读取Bool地址。需要先用PIB/PIW/PID将数值MOVE到其他的存储区(如M,DB区),再访问M或DB的Bool地址。
输出同理。