×
Siemens Industry Online Support
Siemens AG
文档类型 常问问题 文档编号 18325417, 文档发布日期 2011年8月23日
(41)
评估

何时何处需要外设地址?

  • 文档
  • 涉及产品
问题描述 当在程序中使用 'I...' 或 'Q...' 对输入、输出进行访问时,实际上并未直接访问输入、输出模板,而是访问 CPU 的系统存储区。此 'I'/ 'Q' 区分别被称作输入过程映像区 (PII) 和输出过程映像区 (PIQ)。只有在过程映像区刷新时刻,I 区和 Q 区的内容才与输入/输出的实际值相同,所以它们并不能直接反映输入/输出的实际状态。因此,在某些需要对输入/输出进行较为实时处理的场合,需要选择使用直接外设寻址。 ......

问题描述
当在程序中使用 "I..." 或 "Q..." 对输入、输出进行访问时,实际上并未直接访问输入、输出模板,而是访问 CPU 的系统存储区。此 "I"/ "Q" 区分别被称作输入过程映像区 (PII) 和输出过程映像区 (PIQ)。只有在过程映像区刷新时刻,I 区和 Q 区的内容才与输入/输出的实际值相同,所以它们并不能直接反映输入/输出的实际状态。因此,在某些需要对输入/输出进行较为实时处理的场合,需要选择使用直接外设寻址。
若将 I/O 输入输出模块 I/O 地址分配在过程映像区以外,必须通过外设寻址方式访问这些 I/O。为了分清楚,以下对过程映像和外设寻址进行分别介绍。

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 过程映像的更新频率越快。
  • 过程映像区的更新时间长短依情况而定,它取决于以下因素:
  • OB1 过程映像增加的地址数量
  • 与单个模板通讯的速率
  • 用于寻址单个模板的通讯协议类型 (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 的输入/输出地址区域。如,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 外设输出双字

下列情况需要使用外设寻址:

  • 模板地址未分配至过程映像区
  • 用户程序需要比过程映像更为实时的输入值 
  • 输出值需要即刻输出至模板 (至少一个字节)

使用外设寻址时请注意:

  1. 直接访问外设地址比访问过程映象所需时间长。

    如:

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)。
     
  • 直接读写外设输入/输出地址必须整个字节的读取,而不能对外设进行位寻址。在一些应用中可以利用对应于同一地址的外设寻址和过程映像的差异。其差异表现在,在用户程序中外设寻址直接写至模板输出,而过程映像则保持此次的更新值。

如:


Fig. 01

  • A Q 1.0 语句中 Q 1.0 的信号状态与上一次程序执行时的外设访问值保持相同,而不随本次程序中 PQB 1的值发生变化。
    对于输入,可以使用装载、传送指令,来更新过程映像的值。

如:


Fig. 02

利用 MC7 指令可以对过程映像区进行编辑。I 和 Q 区可以存储外设信号,以对外设信号进行预处理或进一步处理。 当然,M、D 或 L 区也可实现此功能。

  • 外设输入地址为只读
  • 外设输出地址为只写

更多信息,请参考:

  • SIMATIC S7-300 CPUs:
    "Operation list S7-300 CPU312 IFM, CPU313, CPU314, CPU314 IFM, CPU315, CPU315-2 DP, CPU316-2 DP, CPU318-2",条目号: 8861817.
    "Operation list S7-300 CPU 312, CPU 314, CPU 315-2 DP, CPU 315-2 PN/DP, CPU 317-2 PN/DP, CPU 319-3 PN/DP, IM 151-8 PN/DP CPU, IM 154-8 PN/DP CPU",条目号: 31977679.
  • SIMATIC S7-400 CPUs:
    "Operation list S7-400 CPU 412, 414, 416, 417",条目号: 23904435.
    "Operation list S7-400 CPU 412-2 PN, CPU 414-3 PN/DP, CPU 414F-3 PN/DP, CPU 416-3 PN/DP, CPU 416F-3 PN/DP",条目号: 44395684.

所使用 CPU 的过程映像大小可以通过在线点击 "PLC > Diagnostics/Settings > Module Status > Performance data" 菜单命令查看。对于一些型号的 CPU ,可以在硬件组态中设置过程映像区的大小 ("Object Properties"[CPU] > "Cycle/Clock memory")。关于过程映像区和外设地址区的详细信息请参看:

  • SIMATIC S7-300 CPUs
    "S7-300 CPU 31xC and CPU 31x, Technical Data",条目号: 12996906,第6、8章。
  • SIMATIC S7-400 CPUs:
    "Automation System S7-400 CPU Specifications",条目号: 14016796,第6、8章。
    "S7-400 Automation System, CPU Specifications",条目号: 23904550,第10章,和条目号:44444467 第10章。

技术数据中列出的过程映像区最大值是指所有过程映像区大小的总和(OB1-PQ和所有PIP的输入和输出),其最小值为 0,最大地址为“过程映像区大小”参数值减1。

IM 151-7 CPU 注意事项:
对于其自由编址特性:

  • 输入输出模版均按字节为单位进行编址,不同模板占用不同字节。
  • 数字量输入输出模板的位地址不能修改。

因此其不支持地址打包(pack addresses)功能。模块所占用字节中未被使用的位地址不能在用户程序中使用。

S7-400H CPUs 注意事项:
S7-400H CPUs的外设地址访问允许同步后,会增加处理时间。

安全性信息
为了保护技术基础设施、系统、机器和网络免受网络威胁,有必要实施并持续维护一个全面、最先进的IT安全方案。西门子的产品和解决方案构成了这一方案的一个要素。有关网络安全的更多信息,请访问
https://www.siemens.com/cybersecurity#Ouraspiration.
评估文档
无评估
请求和反馈
您想要做什么?
注意:反馈总是与当前的条目/产品相关。您的消息将被转发给我们在线支持团队的技术编辑们。如果我们需要就您的反馈提供答复,您将在几天内收到答复。如果没有其它问题,您将不会收到答复。