s7-300编程语言讲解(S7-300400进阶笔记3外设寻址的概念)

前言《S7-300/400进阶笔记2:过程映像区的分类及其更新机制》一文中,我们讨论了PLC过程映像的相关内容。在S7中,除了过程映像区外,还可以通过外设寻址来访问输入/输出。一、 外设寻址

与过程映像区不同,外设寻址是指直接访问外设模块。外设寻址不能对外设进行位寻址,

要求必须至少以字节为单位进行数据读写,即可以字节、字或者双字为单位进行寻址。其格式如下:

  • PIB(Peripheral input Byte):外设字节输入
  • PIW(Peripheral input Word):外设字输入
  • PID(Peripheral input D-word):外设双字输入
  • PQB(Peripheral output Byte):外设字节输出
  • PQW(Peripheral output Word):外设字输出
  • PQD(Peripheral output D-word):外设双字输出

二、 为什么要用外设寻址

1、访问地址超出了过程映像区的范围

对于300的CPU而言,以CPU-315 2DP为例(如图1所示),I/O地址区总计有2048个字节的输入和2048个字节的输出,但其过程映像区的大小仅为128字节。显然,过程映像区并不能涵盖整个CPU的输入/输出地址区域。当我们要访问的I/O地址超出了过程映像区的范围,就必须使用外设寻址了。

s7-300编程语言讲解(S7-300400进阶笔记3外设寻址的概念)(1)

图1 CPU315-2DP的技术数据(节选)

对于400的CPU而言,以CPU-416 2DP为例(如图2所示),输入/输出均16KB,过程映像区默认为512个字节,但最大可调整为16KB。当访问地址超出了默认的过程映像区范围时,我们就要做以下选择了:

  • 或者修改过程映像区的大小
  • 或者采用外设寻址

s7-300编程语言讲解(S7-300400进阶笔记3外设寻址的概念)(2)

图2 CPU416-2DP的技术数据(节选)

2、输入/输出模块地址未分配给过程映像区

特别是对于S7-400系列CPU而言,要想使用过程映像区,需给输入/输出模块地址分配过程映像,OB1-PI或者PIP中的一个(详见《S7-300/400进阶笔记2:过程映像区的分类及其更新机制》一文)。当然,我们也可以不为其分配过程映像区,而直接使用外设寻址。

3、对外设访问实时性要求比较高的场合

外设寻址跳过了过程映像的刷新过程,CPU和输入/输出模块直接做数据交换,实时性会相对好一些。


三、 外设寻址的特点

1、 外设寻址的最小单位为字节,通过装载指令"L"最多了读写4个字节的连续地址区域,如:L PID 10。如果需要读写大于4个字节的连续地址区域,可用SFC14(DPRD_DAT)和SFC15(DPWR_DAT)来实现。

2、 外设寻址可以访问已经被分配至过程映像区的I/O地址区域。同时使用外设寻址和过程映像区访问同一地址时,在程序执行的某一时刻,二者的结果会存在差异。以下面一段程序为例:

s7-300编程语言讲解(S7-300400进阶笔记3外设寻址的概念)(3)

图3 外设寻址与过程映像区

其中,"T PQB 1"为外设寻址,结果会直接送给输出模块;而"A Q 1.0"访问的是输出过程映像区,Q1.0的值只有在下个循环周期的"输出映像区的数据写入输出模块"阶段,才能送给输出模块。在当前的循环周期内,二者对输出的作用可能是不同的。

3、 由于过程映像区属于CPU的内部存储区,因此,相比访问过程映像区,CPU直接访问外设地址会更加耗时一些,但这一时间一般来说仍然比CPU的循环扫描周期要短的多,因此,总的来说,外设寻址的实时性要好一些。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页