直播课堂
HOME
直播课堂
正文内容
循环时间编程plc 想学好PLC必须掌握的循环扫描工作过程!
发布时间 : 2025-03-18
作者 : 小编
访问数量 : 23
扫码分享至微信

想学好PLC必须掌握的循环扫描工作过程!

1 CPU自检阶段

CPU自检阶段包括CPU自诊断测试和复位监视定时器。

在自诊断测试阶段,CPU检测PLC各模块的状态,若出现异常立即进行诊断和处理,同时给出故障信号,点亮CPU面板上的LED指示灯。当出现致命错误时,CPU被强制为STOP方式,停止执行程序。CPU的自诊断测试将有助于及时发现或提前预报系统的故障,提高系统的可靠性。

监视定时器又称看门狗定时器WDT,它是CPU内部的一个硬件时钟,是为了监视PLC的每次扫描时间而设置的。CPU运行前设定好规定的扫描时间,每个扫描周期都要监视扫描时间是否超过规定值。这样可以避免由于PLC在执行程序的过程中进入死循环,或者由于PLC执行非预定的程序造成系统故障,从而导致系统瘫痪。如果程序运行正常,则在每次扫描周期的内部处理阶段对WDT进行复位(清零)。如果程序运行失常进入死循环,则WDT得不到按时清零而触发超时溢出,CPU将给出报警信号或停止工作。采用WDT技术也是提高系统可靠性的一个有效措施。

2 通信处理阶段

在通信处理阶段,CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程I/O接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。

3 读取输入

在读取输入阶段,PLC扫描所有输入端子,并将各输入端的通/断状态存入相对应的输入映像寄存器中,刷新输入映像寄存器的值。此后,输入映像寄存器与外界隔离,无论外设输入情况如何变化,输入映像寄存器的内容也不会改变。输入端状态的变化只能在下一个循环扫描周期的读取输入阶段才被拾取。这样可以保证在一个循环扫描周期内使用相同的输入信号状态。因此,要注意输入信号的宽度要大于一个扫描周期,否则很可能造成信号的丢失。

4 执行程序阶段

可编程控制器的用户程序由若干条指令组成,指令在存储器中按顺序排列。当PLC处于运行模式执行程序时,CPU对用户程序按顺序进行扫描。如果程序用梯形图表示,则按先上后下、从左至右的顺序逐条执行程序指令。每扫描到一条指令,所需要的输入信号的状态均从输入映像寄存器中读取,而不是直接使用现场输入端子的通/断状态。在执行用户程序过程中,根据指令做相应的运算或处理,每一次运算的结果不是直接送到输出端子立即驱动外部负载,而是将结果先写入输出映像寄存器中。输出映像寄存器中的值可以被后面的读指令所使用。

5 刷新输出阶段

执行完用户程序后,进入刷新输出阶段。可编程控制器将输出映像寄存器中的通/断状态送到输出锁存器中,通过输出端子驱动用户输出设备或负载,实现控制功能。输出锁存器的值一直保持到下次刷新输出。

在刷新输出阶段结束后,CPU进入下一个循环扫描周期。

什么是PLC程序执行时间?如何设置?

系统执行时间

S7-1200 CPU的循环扫描时间(看门狗时间)默认为150ms,最大可修改为6000ms,如图1:

图1. 设置最大循环时间

当编程结束后,需要了解程序的循环周期,可通过如下方法查询。

将程序下载到PLC后,进行在线连接,查看路径:“在线和诊断”--->“循环时间”,如图2:

图2. 查看PLC循环时间

子程序执行时间

使用S7-1200 CPU时,若需要了解某个子程序的执行时间,依据如下方法进行编程。

首先,设置PLC系统时钟,按图3方法设置:

图3. 设置PLC系统时钟

接着,创建数据块DB1,块名称为“time”,并创建变量,如图4:

图4. 创建数据块

注:若选择“已优化”DB块,则创建的DB块变量不显示“偏移量”列,后续程序中变量则为符号寻址。

然后,在OB1中编程,读取子程序执行前、后的系统时间,再运用指令 T_DIFF 做时间相减。

如下例程中测试了“块_1(FC1)”子程序的执行时间,如图5:

图5. 子程序执行时间例程

最后,通过监控表查看该子程序的执行时间,如图6:

常问问题

为何程序下载完毕后PLC无法运行,PLC诊断信息中出现“超出最大程序循环时间”?

可能的原因:

1、程序过长,执行时间超过设置的最大循环时间;

2、程序中有死循环程序导致执行时间超过最大循环时间;

3、定时中断程序的执行时间大于所设定的定时间隔时间,导致定时中断事件缓冲区溢出而停机。

电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。

欢迎大家关注,点赞,评论及转发。

相关问答

西门子系统循环编程怎么编?

西门子系统的循环编程可以使用西门子的编程软件STEP7或TIAPortal来实现。以下是一般的步骤:1.打开STEP7或TIAPortal软件,并创建一个新的项目或打开一个...

plc如何控制扫描周期?

PLC(可编程逻辑控制器)通过控制扫描周期来运行程序。在PLC中,扫描周期是指PLC循环地执行各个程序和任务所花费的时间。以下是一般情况下控制PLC扫描周期的方法...

PLCST语句编程for语句的一个小问题J:=101;FORI:=1TO100BY2DO...

[最佳回答]每一次循环,变量I+2呗,直到I>100时,for循环结束

plc怎么编写运行时间并在触摸屏上显示?

关于这个问题,编写PLC的运行时间并在触摸屏上显示可以通过以下步骤实现:1.在PLC程序中创建一个计时器(Timer),用于记录运行时间。根据PLC的型号和编程软件...

PLC编程循环?

有几种方法:1、用定时器,一个周期后,复位第一个定时器,程序自然就循环下去了.2、用跳转和标号指令,(JMPLBL),在程序的开始处加一个标号(如LBL10),在周期结...

西门子PLC循环程序怎么写?

编写西门子PLC循环程序需要遵循以下步骤:首先,需要确定循环的终止条件,然后编写循环体,在循环体内执行所需的操作。循环体内可以包含一个或多个操作,这些...

西门子PLC怎么完成循环啊S7-200我是用定时器来完成程序的,我TOF以后程序就完成了,怎么回到开头啊?

循环控制吗,那不是很简单,一般都是顺序控制,只要你在最后步执行完了跳转到需要循环开始点就可以了。如果需要多个这样的循环,另外编程,可以调用子程序方式实...

用pLC编程,我想按钮START只按一下就能触发程序一直循环运行。怎么写?

START输入使一个中间继电器置位,再在此中间继电器后串上你的程序。。。。START输入使一个中间继电器置位,再在此中间继电器后串上你的程序。。。。

西门子plc三个灯循环亮每两个灯一起亮时间间隔3秒怎么编程序?

用三个计时器,第一个定时器开始亮两个灯(AB),计时到两两个(BC),同时第二个计时器开始计时,计时到两CA,同时第三个计时器开始计时,计时到清三个计时器。...用...

plc编程最后循环到第一步怎么编?

plc编程实现循环有多种方法,可以用到跳转指令,蛮方便的,也可以用调用指令,看个人习惯,跳转和调用指令都可用来做手动自动的转换,不过用它们的话,手动和自动的...

 厦航高郡  朴政民 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部