S7-300PLC过程映像区详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、概念
W过程镜像区输入字
PIW立即输入区字
PIW不用等系统刷新,立即读入
IW等待系统刷新后读入
二、PIW/IW,PQW/QW
引用西门子论坛一位大侠的比方加深理解:
"打个比如,你吃饭的时候要吃菜, 你一般都是将菜从锅里乘到碗里, 再从碗里夹着吃,可
是有时候饿得太急了,你顾不了那么多,直接就从锅里夹菜吃了.
这个PIW和IW其实最终装的都是一个东西,相当于这个"菜",只不过PIW是锅里的菜,而IW 是碗里的菜!
要注意了,上面的动作已经说明,直接从锅里夹菜的话,会"实时些",菜也热一些.但是本质上还都是菜……"
PIW/IW,PQW/QW两者有什么区别? 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的八位.三、过程映像区详解
问题描述当在程序中使用"I..."或"Q..." 对输入、输出进行访问时,实际上并未直接访问输入、输出模板,而是访问CPU 的系统存储区.此"I"/ "Q" 区分别被称作输入过程映像区<PII>和输出过程映像区<PIQ>.只有在过程映像区刷新时刻,I 区和Q 区的内容才与输入/输出的
实际值相同,所以它们并不能直接反映输入/输出的实际状态.因此,在某些需要对输入/输出进行较为实时处理的场合,需要选择使用直接外设寻址.若将I/O 输入输出模块I/O 地址分配在过程映像区以外,必须通过外设寻址方式访问这些I/O.为了分清楚,以下对过程映像和外
设寻址进行分别介绍.
OB1过程映像
〔OB1过程映像就是普通的PLC的输入、输出区.PLC采用循环执行用户程序的方式,每次循环CPU将OB1过程映像输出区的数据写到输出模块;读取输入模块的输入状态,保存到OB1过程映像输入区;然后执行用户程序.这种工作方式不能马上将逻辑运算得到的输出点的值送到输出模块,使用的输入点的状态也不是最新的,因此造成了输入、输出的响应延迟.〕任何CPU 均可使用OB1 过程映像<OB1-PI>.OB1 过程映像在每个OB1 循环周期之前被更新,CPU的程序依照以下顺序循环执行:
1.执行CPU 操作系统的内部工作.
2.将OB1 中输出过程映像区的值写入到实际模板输出.
3.从模板读取实际输入值至OB1 中的输入过程映像区.
4.执行OB1 的程序.
5.执行第一步操作,开始下一次循环
操作系统自动完成对OB1 过程映像<OB1-PI> 的读写.对于S7-400 CPUs ,可以禁用OB1 过程映像循环更新<"HW Config" 硬件组态界面> CPU 右键选择"Object Properties"> "Cycle/Clock memory" > 去除"Update OB1 process image cyclically" 选项勾>,同时必须在用户程序中使用SFC 26 <UPDAT_PI> 和SFC 27 <UPDAT_PO> 对OB1 过程映像进行更新.以下是OB1 过程映像区循环更新的主要特点:
•循环时间越短,OB1 过程映像的更新频率越快.
•过程映像区的更新时间长短依情况而定,它取决于以下因素:
o OB1 过程映像增加的地址数量
o与单个模板通讯的速率
o用于寻址单个模板的通讯协议类型<MPI, PROFIBUS, ...>
•设置的OB1 过程映像越大< 仅部分CPU 可设置>,映像区中所包含的模板通道数越多则循环时间也随之增长.
过程映像分区< PIP >除OB1 过程映像之外,在某些类型CPU 中还可以将输入/输出地址分配至过程映像分区<PIP> .不能将同一输入/输出地址既分配至OB1 过程映像,又分配至过程映像分区<PIP>,只能二选一.过程映像分区的更新有以下两种方式:
•在用户程序中通过调用SFC 26 <UPDAT_PI> 和SFC 27 <UPDAT_PO>
•将PIP 分配至OB
当使用SFC 进行更新时,可对过程映像分区进行一致性数据读写,数据长度取决于CPU 的类型.相关信息可参照SFC 功能块的S7 在线帮助.
在硬件组态中,可以对OB的过程映像分区进行参数设置<右键单击CPU 选择"Object Properties" > "Cycle/Clock bit memory">. 可将过程映像分区分配至OB 块.当该OB 块被调用时,与之有关的过程映像分区读入输入值.当OB 块处理完毕,与之相关的过程映像分区立即将输出值写至输出.请参考在线帮助了解OB 块的执行情况<分配至OB 61 至64 的过程映像分区不会被自动更新>.
外设寻址过程映像区不能涵盖整个CPU 的输入/输出地址区域.如,CPU315-2DP
<6ES7315-2EG10-0AB0>的I/O 地址总量最大为2048字节,但其过程映像区的大小为128 字节.一旦所要使用的模板I/O 地址超出了过程映像区范围,就必须使用外设寻址.外设地址使用户程序与外设地址进行快速数据交互.这一点对模拟量和过程报警尤为重要.通过外设寻址同样可以访问已被分配过程映像的I/O 地址区域.外设寻址意指直接访问外设模板,在地址前加上字母'P' 来表示:
•PIB-->PeripheralInputByte 外设输入字节
•PQB-->PeripheraloutputByte 外设输出字节
•PIW-->PeripheralInputWord 外设输入字
•PQW-->PeripheraloutputWord 外设输出字
•PID-->PeripheralInputDouble-word 外设输入双字
•PQD-->PeripheralOutputDouble-word 外设输出双字
下列情况需要使用外设寻址:
•模板地址未分配至过程映像区
•用户程序需要比过程映像更为实时的输入值
•输出值需要即刻输出至模板<至少一个字节>
使用外设寻址时请注意:
1.直接访问外设地址比访问过程映象所需时间长.如:
CPU 317-2 DP: L IB x 0.05 μs
L PIB x 15.01 μs
•"L PIB 1" 和"LPIW2" 这两条指令获得的数据不一致,而"L PID 1" 则可保证PIB 1至PIB 4数据的一致性.如果需要直接读取大于4个字节的连续地址区域,可以使用
SFC 14 <DPRD_DAT>,如要向模板写入大于4个字节的连续数据,可以使用SFC 15 <DPWR_DAT>.
•直接读写外设输入/输出地址必须整个字节的读取,而不能对外设进行位寻址.在一些应用中可以利用对应于同一地址的外设寻址和过程映像的差异.其差异表现在,在用
户程序中外设寻址直接写至模板输出,而过程映像则保持此次的更新值.
如:
Fig. 01
•AQ1.0 语句中Q 1.0 的信号状态与上一次程序执行时的外设访问值保持相同,而不随本次程序中PQB 1的值发生变化.对于输入,可以使用装载、传送指令,来更新过程映像的值.
如:
Fig. 02
利用MC7指令可以对过程映像区进行编辑.I 和Q 区可以存储外设信号,以对外设信号进行预处理或进一步处理.当然,M、D 或L 区也可实现此功能.
•外设输入地址为只读
•外设输出地址为只写。

相关文档
最新文档