发布于 2011-07-21 13:16:04
3楼
谢谢两位大侠的回答,但是我还是有些疑问。我先说说我的问题是怎么产生的。
还是以315-2DP为例,它的过程I/0映像区为128/128B。
1),我现在建立了个test项目,硬件组态里只添加了电源和315-2DPCPU,然后保存编译,产生OB1就可以编程了,没组态任何的卡件。
程序里面我调用FC105,输入变量地址用IW20。保存,下到PLCSIM仿真控制器没有问题。
2)然后我把IW20改成PIW20,仿真CPU肯定就报错,SF红硬件故障。硬件组态里面我再加一块AI8x12Bit卡件,将IW20的地址设定进去,重新编译下载后,仿真CPU正常。
我也知道IW20和PIW20访问方式是不一样的,前者是过程映像区地址,一个扫描周期内,它的数值是不变化的。PIW20是CPU通过访问外设存储区,直接读AI卡件的数值,数据是实时更新的。
我现在不解的就是:硬件组态里面AI8x12Bit卡件地址默认从256开始,我设置一个,比如272-287,通道地址就是PIW272...PIW286,那么我在OB1程序里用IW272和PIW272都是可以的,不会报错,而且可以仿真。但是IW272明明已经超出过程映像区的寻址范围了啊(IBO-IB127).还希望各位大侠能不吝赐教,详细解释下这其中的缘由。