0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU1500之循环的定义

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-03-02 15:50 次阅读

CPU1500之循环的定义

在一个循环中,包含以下几部分内容:

● 自动更新输出的过程映像分区 0 (PIPI 0)

● 自动更新输入的过程映像分区 0 (PIPI 0)

● 循环程序的执行

在该循环中,过程映像分区 0 将自动更新。通过“自动更新” (Automatic update) 设置(默认)组态 I/O 模块时,应将 I/O 地址分配给这些过程映像分区 (PIPI 0/PIPQ 0) 。

下图举例说明一个循环期间发生的各个阶段。在下例中,用户组态了最小循环时间。更新过程映像分区和处理循环程序在组态的最小循环时间结束之前完成。因此,CPU 会等待组态的最小循环时间到期,然后再开始下一次程序循环。

c387b710-71cf-11eb-8b86-12bb97331649.png

操作系统启动循环时间测量的循环控制点。

② CPU 将过程映象输出的状态写入输出模块中。

③ CPU 读取输入模块的输入状态,并将输入数据写入过程映像输入中。

④ CPU 执行用户程序,并执行程序中的指令。

⑤ 等待阶段,直至组态的最小循环时间结束

循环控制点

达到循环控制点后,CPU 已完成循环程序,不再执行 OB。此时,所有用户数据保持一致。要求没有任何修改用户数据的通信(比如 HMI 通信或 PUT/GET 通信)处于活动状态。

循环控制点标记了:

● 循环及其循环时间统计信息结束

● 下一循环及其循环时间统计信息开始

● 重新开始监测组态的最大循环时间

(超时计数器复位)

循环控制点的到达取决于以下哪一事件是最后发生的:

● 结束上一个程序循环 OB

● 最小循环时间到期(若已组态)

已到达循环控制点后,CPU 会执行以下步骤:

1. 将过程映像输出写入输出模块

2. 将输入模块的输入状态读取到过程映像输入中

3. 执行第一个程序循环 OB

循环时间的定义

循环时间是 CPU 执行以下操作需要的时间:

● 更新过程映像输入/ 输出

● 执行循环程序

● 中断此循环的所有程序段和系统活动

● 等待最小循环时间(如果已进行参数设置,且时间长于程序执行时间)

循环时间不同的原因

下图举例说明了这两种不同的循环时间 Tcyc1和 Tcyc2。

本例中,由于循环程序被循环中断 OB(例如:OB 30)中断,因此循环时间 Tcyc2大于 T cyc1。之后,运动控制功能和通信将再次中断该循环中断 OB。

c3fbb0a2-71cf-11eb-8b86-12bb97331649.png

最小循环时间

在 STEP 7 中,可设置 CPU 的最小循环时间。非冗余 CPU 的默认最小循环时间设置为 1 毫秒。在以下情况下,建议增大该值:

● 降低循环时间的波动范围。

● 使用剩余的计算时间执行通信任务。CPU 随后会在最小循环时间到期之前处理这些通信任务。

使剩余计算时间可用于通信任务的优点如下:

– 延长最小循环时间,避免过程映像不必要地频繁更新,从而降低背板总线的负载。

– 延长最小循环时间可提高通信性能。

最大循环时间

最大循环时间是循环程序运行时间的可组态上限。最大循环时间任务将监测相应进程需要的响应时间。

非冗余 CPU 的最大循环时间默认设为 150 ms。为 CPU 分配参数时,可在 1 ms 到 6000 ms 范围内设置该值。如果当前处理的循环时间长于最大循环时间,则会调用时间错误 OB (OB 80)。通过 OB 80 中的用户程序指定 CPU 对时间错误的响应。

首次超出循环时间(不使用 OB 80)⇒ STOP

首次超出循环时间(使用 OB 80)⇒ RUN

第二次超出循环时间(使用 OB 80)⇒ STOP

要直接在 STEP 7 中查看循环时间的统计信息,请按以下步骤操作:

1. 使用 STEP 7 建立与 CPU 的在线连接。

2. 选择“在线工具”(Online tools) 任务卡。

结果:循环时间统计信息图显示在循环时间部分。

下图显示了从 STEP 7 直接读取的循环时间统计信息。在本示例中,循环时间在 7 ms 和 12 ms 间波动。当前的循环时间为 10 ms 。此时,可设置的最长循环时间为 40 ms。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2484

    浏览量

    46525
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206544
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92973

原文标题:PLC1500循环的定义

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    循环指令loop规定循环次数

    景。 什么是循环指令 循环指令是一种迭代控制结构,它允许程序多次执行相同或类似的代码块。循环指令通常由三个关键组件组成:初始化、条件和更新。初始化用于设置循环变量的初始值,条件
    的头像 发表于 02-14 16:10 534次阅读

    g73钻孔循环指令格式

    G73钻孔循环是一种钻孔指令,用于在机械加工中进行孔加工操作。这个指令的格式比较简单,但在实际应用中需要注意一些细节。下面将详细介绍G73钻孔循环指令的格式和使用方法。 G73钻孔循环指令的格式如下
    的头像 发表于 02-14 16:01 2121次阅读

    如何估算S7-1500 CPU的装载存储区在SIMATIC存储卡上的大小?

    S7-1500 CPU 的装载存储区在 SIMATIC 存储卡上。根据以下操作步骤可以确定用户程序所需要的存储区的大小以便确定所需存储卡的大小。
    的头像 发表于 01-29 10:00 290次阅读
    如何估算S7-<b class='flag-5'>1500</b> <b class='flag-5'>CPU</b>的装载存储区在SIMATIC存储卡上的大小?

    java中cpu占用过高如何分析

    的每个线程都会占用一定的CPU资源,当线程数量过多时,会导致CPU占用过高。这可能是因为程序中创建了大量的线程,或者存在线程创建后没有正确关闭的情况。 死循环:程序中存在死循环时,会导
    的头像 发表于 12-05 11:15 3986次阅读

    C语言拆解循环 以空间换时间

    拆解循环-以空间换时间 在编写循环处理程序的时候要充分利用CPU的指令缓存,要充分分解小的循环。特别是当循环体本身很小的时候,分解
    的头像 发表于 11-20 18:05 282次阅读

    S7-1500:设置CPU语言的步骤

    对于CPU上文本的多语言管理,必须使用CPU的多语言属性来选择项目中所需的语言。这是例如 ProDiag消息文本使用多种语言所必需的。
    的头像 发表于 11-16 16:13 408次阅读
    S7-<b class='flag-5'>1500</b>:设置<b class='flag-5'>CPU</b>语言的步骤

    PLC编程循环语法使用方法

    不管什么CPU,什么编程语言,都有循环语法,可以用于实现循环。当然,很多时候,语言对循环支持的并不够理想。通常还要有指针,间接寻址等配合。所以在PLC编程中,属于难度比较高的题目。
    发表于 11-13 15:30 591次阅读
    PLC编程<b class='flag-5'>循环</b>语法使用方法

    什么是事件循环

    Python的Asyncio模块提供了管理事件、协程、任务和线程的方法,以及编写并发代码的原语。此模块的主要组件和概念包括: 事件循环 : 在Asyncio模块中,每一个进程都有一个事件循环
    的头像 发表于 11-01 10:00 317次阅读
    什么是事件<b class='flag-5'>循环</b>

    西门子博途: 创建S7-1500 CPU的步骤

    输入“Color_Mixing_CPU ”作为 CPU 名称。
    的头像 发表于 09-19 10:54 1315次阅读
    西门子博途: 创建S7-<b class='flag-5'>1500</b> <b class='flag-5'>CPU</b>的步骤

    SIMATIC S7-1500 PLC循环中断组织块及其案例分享

    CPU的操作系统循环执行OB1。当操作系统完成启动后,将启动执行OB1。在OB1中可以调用函数(FC)和函数块(FB)。
    的头像 发表于 08-12 09:45 3144次阅读
    SIMATIC S7-<b class='flag-5'>1500</b> PLC<b class='flag-5'>循环</b>中断组织块及其案例分享

    S7-1500做服务器端与三方设备的TCP通信

    SIMATIC S7- 1500 CPU 集成了 PROFINET 接口,该接口除了具备连接PROFINET 总线通信功能,同时还可用于标准的 TCP 通信。通过组态 TCP 连接或使用开放式通信
    的头像 发表于 07-24 15:40 1426次阅读
    S7-<b class='flag-5'>1500</b>做服务器端与三方设备的TCP通信

    067. while循环:5.2 了解循环

    循环
    充八万
    发布于 :2023年07月05日 15:48:56

    西门子S7-1500 之间 S7 通信

    任务: S7-1500 CPU Clinet 将通讯数据区 DB1 块中的 10 个字节的数据发送到 S7-1500 CPU server 的接收数据区 DB1 块中; S7-
    的头像 发表于 05-29 14:04 4173次阅读
    西门子S7-<b class='flag-5'>1500</b> 之间 S7 通信

    西门子PLC之S7-1500冗余配置实践

    西门子推出了1500后,支持了冗余配置,主要两款CPU,1513R和1515R。
    的头像 发表于 05-19 11:35 2.8w次阅读
    西门子PLC之S7-<b class='flag-5'>1500</b>冗余配置实践

    Python的循环语句介绍

    哈喽大家好,我是知道。今天带大家了解下Python的循环语句 定义循环语句允许我们执行一个语句或语句组多次 类型Python提供了两种不同类型的循环 for
    的头像 发表于 05-11 17:39 642次阅读