发表于:2014/6/11 15:53:28
#0楼
对于模拟量输入,用PIW和IW都可以,CPU输入/输出映像区有一定范围,对于没有相应的映像缓冲区的输入地址,一定采用PIW指令,而一般外设输入地址,都是没有映像缓冲区的。对于有映像缓冲区的输入地址,用PIW和IW都可以,但用PIW,表示直接取地址内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如此。
PIW是实时输入,在程序的一个循环周期中是可能变化的,IW不会变化,IW和PIW输入的都是16bit数。
PIW是直接去读物理地址,可以理解为直接去模板采集信号;IW是去输入、输出映像区去读取。PIW响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW稍有滞后,因为IW只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O点只能通过Pxx来读写,而在映像区范围内的PIW/IW都可以,但区别如前所述。
模似口输入格式的写法,PIW××
模似口输出格式的写法,PQW××
后面××表示你PLC输入、输出口的地址。
地址可从硬件组态中查得,比如314C2DP的地址是752、754。编程的时侯就可以写PIW752. 315C-2DP256 PIW256
门子300系例PIB,PIW,PQW与IB,IW,QW等之间的分别,对吗
搞不清楚PIB,PIW,PQW与IB,IW,QW等之间的分别,当然,我知道PIB,PIW是指外部设备的地址,但是怎样定义外部设备和普通的输入输出i/o,他们有何区别?
外设,最通常意义的讲就是指模拟量输入输出了;
普通的I/O是什么? 最通常意义来讲当然是指CPU集成的I/O或者后面扩展数量字I/O模块的地址;
两者有什么区别?
1、I/O区可以对“位”寻址,而PI和PQ区不能,PI和PQ最小寻址单位是BYTE,如PIB256、PQW300...
2、I/O区,按西门子的定义应该叫“过程映像区”,本身这个过程映像区自己也是带有外设地址的!比如IB0,它对应一个PIB0, 它俩不同之处在于每个PLC扫描周期的开始,系统会将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的八位
PIW是实时输入,在程序的一个循环周期中是可能变化的,IW不会变化,IW和PIW输入的都是16bit数。
PIW是直接去读物理地址,可以理解为直接去模板采集信号;IW是去输入、输出映像区去读取。PIW响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW稍有滞后,因为IW只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O点只能通过Pxx来读写,而在映像区范围内的PIW/IW都可以,但区别如前所述。
模似口输入格式的写法,PIW××
模似口输出格式的写法,PQW××
后面××表示你PLC输入、输出口的地址。
地址可从硬件组态中查得,比如314C2DP的地址是752、754。编程的时侯就可以写PIW752. 315C-2DP256 PIW256
门子300系例PIB,PIW,PQW与IB,IW,QW等之间的分别,对吗
搞不清楚PIB,PIW,PQW与IB,IW,QW等之间的分别,当然,我知道PIB,PIW是指外部设备的地址,但是怎样定义外部设备和普通的输入输出i/o,他们有何区别?
外设,最通常意义的讲就是指模拟量输入输出了;
普通的I/O是什么? 最通常意义来讲当然是指CPU集成的I/O或者后面扩展数量字I/O模块的地址;
两者有什么区别?
1、I/O区可以对“位”寻址,而PI和PQ区不能,PI和PQ最小寻址单位是BYTE,如PIB256、PQW300...
2、I/O区,按西门子的定义应该叫“过程映像区”,本身这个过程映像区自己也是带有外设地址的!比如IB0,它对应一个PIB0, 它俩不同之处在于每个PLC扫描周期的开始,系统会将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的八位
技术学习成长中,兼职设备维修,SIEMENS 备件代售 !价格从优 !





