I/O与PI/PO有什么区别,写程序时有什么不同?

1、I/O区可以对“位”寻址,而PI和PQ区不能,PI和PQ最小寻址单位是BYTE,如PIB256、PQW300…

2、I/O区,按西门子的定义应该叫“过程映像区”,本身这个过程映像区自己也是带有外设地址的!比如IB0,它对应一个PIB0, 它俩不同之处在于每个扫描周期的开始,系统会将PIB0里的数据刷新到IB0内, 然后在接下来的一个扫描周期之内,IB0的数据均保持不变(当然,如果调用SFC在程序内刷新输入端口,那又当别论),而PIB0则是实时的,即完全物理意义上的端口!  所以我们看到一些S7-300标出最大I/O寻址为1024位,算算看,一块CPU带四个机架,每个机架装满八个模块, 每个模块最大32点,那么4*8*32=1024位=128BYTE … …超过这个以后就是外设通道了,就只能以PI或者Q来表示了,而且这就意味着不对直接对“位”寻址了! 如果你非要对位寻址,怎么办?  很好办:

L   PIB256

T   MB0

那么MB0里的位就对应了PIB256的八位。

3,I0.0当然使用I/O

是自动对应的,不需要MOVE,但是你硬件组态插入模块的时候,系统已经帮你自动分配好地址了。所以Q0.0不会和SM332模块上任何点冲突。,1、I/O区可以对“位”寻址,而PI和PQ区不能,PI和PQ最小寻址单位是BYTE,如PIB256、PQW300…

2、I/O区,按西门子的定义应该叫“过程映像区”,本身这个过程映像区自己也是带有外设地址的!比如IB0,它对应一个PIB0, 它俩不同之处在于每个扫描周期的开始,系统会将PIB0里的数据刷新到IB0内, 然后在接下来的一个扫描周期之内,IB0的数据均保持不变(当然,如果调用SFC在程序内刷新输入端口,那又当别论),而PIB0则是实时的,即完全物理意义上的端口!  所以我们看到一些S7-300标出最大I/O寻址为1024位,算算看,一块CPU带四个机架,每个机架装满八个模块, 每个模块最大32点,那么4*8*32=1024位=128BYTE … …超过这个以后就是外设通道了,就只能以PI或者Q来表示了,而且这就意味着不对直接对“位”寻址了! 如果你非要对位寻址,怎么办?  很好办:

L   PIB256

T   MB0

那么MB0里的位就对应了PIB256的八位。

3,I0.0当然使用I/O

是自动对应的,不需要MOVE,但是你硬件组态插入模块的时候,系统已经帮你自动分配好地址了。所以Q0.0不会和SM332模块上任何点冲突。

I/O与PI/PO有什么区别,写程序时有什么不同?

相关文章:

你感兴趣的文章:

标签云: