找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
在s7-300中,设置了一个定时中断ob35,里面判断某个条件成立,需要对某个io口立即输出,而不是等ob1执行完毕再刷新映象寄存器输出,请问该怎么做?
有两种方法:
1.在OB35中调用SFC 27 (UPDAT_PO) ,当 OB 处理完毕,过程映像分区立即将输出值写至输出。
2.通过外设寻址同样可以访问已被分配过程映像的 I/O 地址区域。
转帖:
问题描述:
当在程序中使用 "I..." 或 "Q..." 对输入、输出进行访问时,实际上并未直接访问输入、输出模板,而是访问 CPU 的系统存储区。此 "I"/ "Q" 区分别被称作输入过程映像区 (PII) 和输出过程映像区 (PIQ)。只有在过程映像区刷新时刻,I 区和 Q 区的内容才与输入/输出的实际值相同,因此它们并不能直接反映输入/输出的实际状态。因此,在某些需要对输入/输出进行较为实时处理的场合,可以使用外设寻址。
外设寻址的另一应用场合:在所要寻址的 I/O 地址超出过程映像区地址范围的情况下,只能使用外设寻址。以下分别对过程映像和外设寻址进行介绍。
OB1 过程映像
任何 CPU 均可使用 OB1 过程映像 (OB1-PI)。 OB1 过程映像在每个 OB1 循环周期之前被更新,CPU 的程序依照以下顺序循环执行:
执行 CPU 操作系统的内部工作。
将 OB1 中输出过程映像区的值写入到实际模板输出。
从模板读取实际输入值至 OB1 中的输入过程映像区。
执行 OB1 的程序。
执行第一步操作,开始下一次循环
操作系统自动完成对 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 过程映像进行更新。
1. .程映像分区 ( PIP )
除OB1 过程映像之外,在某些类型 CPU 中还可以将输入/输出地址分配至过程映像分区 (PIP) 。 不能将同一输入/输出地址既分配至 OB1 过程映像,又分配至过程映像分区 (PIP),只能二选一。
过程映像分区的更新有以下两种方式:
在用户程序中通过调用 SFC 26 (UPDAT_PI) 和 SFC 27 (UPDAT_PO)
将 PIP 分配至 OB
当使用 SFC 进行更新时,可对过程映像分区进行一致性数据读写,数据长度取决于 CPU 的类型。相关信息可参照 SFC 功能块的 S7 在线帮助。
在硬件组态界面,通过右键单击 CPU 选择 "Object Properties"> "Interrupts" 、"Time-of-Day Interrupts"、"Cyclic Interrupts" 可将过程映像分区分配至 OB 块。当 OB 块被调用时,过程映像分区读入输入值,当 OB 处理完毕,过程映像分区立即将输出值写至输出。请参考在线帮助了解 OB块的执行情况 (分配至 OB 61 至 64 的过程映像分区不会被自动更新) 。
2. 外设寻址
过程映像区不能涵盖整个 CPU 的输入/输出地址区域。如,CPU 315-2DP (6ES7315-2EG10-0AB0) 的 I/O 地址总量最大为 2048 字节,但其过程映像区的大小为 128 字节。
一旦所要使用的模板 I/O 地址超出了过程映像区范围,就必须使用外设寻址。外设地址使用户程序与外设地址进行快速数据交互。这一点对模拟量和过程报警尤为重要。
通过外设寻址同样可以访问已被分配过程映像的 I/O 地址区域。
外设寻址意指直接访问外设模板,在地址前加上字母 'P' 来表示:
PIB --> Peripheral input byte 外设输入字节
PQB --> Peripheral output byte 外设输出字节
PIW --> Peripheral input word 外设输入字
PQW --> Peripheral output word 外设输出字
PID --> Peripheral input double word 外设输入双字
PQD --> Peripheral output double word 外设输出双字
下列情况需要使用外设寻址:
模板地址未分配至过程映像区
用户程序需要比过程映像更为实时的输入值
输出值需要即刻输出至模板 (至少一个字节)
使用外设寻址时请注意:
直接访问外设地址比访问过程映象所需时间长
如
CPU 317-2 DP: L IB x 0.05 μs
L PIB x 15.01 μs
"L PIB 1" 和"L PIW 2" 这两条指令获得的数据不一致,而 "L PID 1" 则可保证 PIB 1至 PIB 4 数据的一致性。如果需要直接读取大于4个字节的连续地址区域,可以使用 SFC 14 (DPRD_DAT),如要向模板写入大于4个字节的连续数据,可以使用 SFC 15 (DPWR_DAT)。
直接读写外设输入/输出地址必须整个字节的读取,而不能对外设进行位寻址。在一些应用中可以利用对应于同一地址的外设寻址和过程映像的差异。其差异表现在,在用户程序中外设寻址直接写至模板输出,而过程映像则保持此次的更新值。
相关资料下载:
<S7-300400的系统软件和标准功能>下载:
http://www.ad.siemens.com.cn/products/as/simaticplc/download/070625_151.pdf
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城