回复:S7300 过程印象区刷新及Profibus DP通信机制探讨

赵欣

官方工程师

  • 帖子

    381
  • 精华

    54
  • 被关注

    214

论坛等级:奇侠

注册时间:2006-07-07

普通 普通 如何晋级?

发布于 2017-10-20 13:37:00

2楼

 R:

我觉得我们首先谈一下CPU的停机行为。Stop可以导致什么?

大家应该知道CPU的循环周期包括PII, PIQ, AP, CCP。CPU停机会导致该循环周期停止,即PII, PIQ, AP以及 CCP的运行都会停止。这意味着PII, PIQ不会刷新,无论程序还是变量表中的数值都不会变化。

但是为什么过程映像区外的数值在变化?这需要我给大家介绍一下PLC的IO数值内存的存储区域。CPU的循环周期所使用的IO存储区域与外设的IO存储区域不是一个存储空间,虽然他们都在CPU内部,是两个大小一样但是不同的存储空间。该存储空间的大小可以在每一个CPU的技术数据参数中查找,例如317-2PN/DP的IO区域大小为1024B(记不清了,没查,不影响理解),那么外设的IO存储区域的大小和CPU的循环周期所使用的IO存储区域都是1024B。

外设的IO存储区域用于存储外设IO的数值,受总线循环周期和IO变化的影响,IO数值在不断地刷新。也就是说不受CPU的循环周期的影响。

CPU的循环周期所使用的IO存储区域主要用于数据一致性,即在循环周期内的IO的数值不会发生变化,这一点大家都很清楚。但默认的过程映像区的大小却不是1024B,而是256B。这是因为300和400的CPU的处理速度不够快,设置较少的过程映像区的大小可以减少CPU的循环周期时间。而1500足够快,所以大家也不用操心设置过程映像区的大小了。

然后我们在看指令,例如IB0,IW0,在变量表中,实际该指令即是访问IB0,IW0的数值,真正访问的是CPU的循环周期所使用的IO存储区域中的过程映像区中的数值。因为CPU停机,所以数值不会变化。当使用PIB0,PIW0指令时,在变量表中,实际在访问外设的IO存储区域,即使CPU停机,但因为与CPU的循环周期没有任何关系,所以可以看见数值在不断的变化(只要IO有变化)。

读万卷书 行万里路
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

Networks and Communication

共有16条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。