课程中心
HOME
课程中心
正文内容
plc编程实现循环 想学好PLC必须掌握的循环扫描工作过程!
发布时间 : 2024-11-26
作者 : 小编
访问数量 : 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-300/400,不能仅仅局限于阅读或编写一段程序,更要从本质上认识PLC,方能更好的驾驭它。

一、PLC的循环处理过程

CPU中的程序分为操作系统用户程序

操作系统 用来处理PLC的起动、刷新输入/输出过程映像区、调用用户程序、处理中断和错误、管理存储区和通信等任务。

用户程序 由用户根据需求自己编写,以完成特定的控制任务。STEP7将用户编写的程序和数据维护在"块"中,如功能块FB、功能FC和数据块DB等。

PLC采用循环扫描的方式执行用户程序,即扫描工作方式。

图1 PLC的扫描工作方式

1. PLC得电或由STOP模式切换到RUN模式时,CPU起动,同时清除没有保持功能的位存储器、定时器、计数器,清除中断堆栈和块堆栈的内容,复位保存的硬件中断等。

2. 执行"系统起动组织块"OB100,该组织块可以自定义编程,实现一些初始化的工作;

3. 系统进入周期扫描,并起动循环时间监控;

4. CPU将输出过程映像区的数据写入输出模块;

5. 读取输入模块的状态,并写入输入过程映像区;

6. CPU调用OB1,执行用户程序,期间,根据需要可调用其他逻辑块(FB、SFB、FC及SFC),来实现控制任务;

7. 在循环结束时,操作系统执行所有挂起的任务,例如下载和删除块、接收和发送全局数据等;

8. CPU返回"第3步",重新启动循环时间监控。

9、在执行用户程序的过程中,如果有中断事件发生,当前执行的块将暂停执行,转而执行相应的组织块,来响应中断。该组织块执行完成后,之前被暂停的块将从中断的地方继续开始执行。OB1具有很低的优先级,除了OB90外,所有的组织块都能中断OB1。

二、过程映像区

PLC的存储器中,特别设置了一片区域用来存放输入信号和输出信号的状态,分别称之为输入过程映像区和输出过程映像区。在循环程序处理过程中,CPU不会直接访问I/O模块,而是访问CPU内部的过程映像区。

如图1所示,在整个扫描周期内,CPU会分配一段时间集中将输出过程映像区的状态传送给输出模块。同样,输入模块的状态/数据也是集中、统一读入输入过程映像区。在程序的执行阶段,CPU只和输入/输出过程映像区做数据交互,这样做的好处是,即使外部输入信号的状态发生变化,输入过程映像区的状态也暂时不变,可防止程序执行时发生"紊乱";而给到输出模块的数据是"同时"的,也可有效避免执行机构的动作序列的不同步。

对过程映像区的访问可以以位、字节、字 以及双字 的方式进行。

图2 过程映像区直接寻址

如图2所示,假设其为输入过程映像区的一部分:

· I1.3 即可访问到粉色部分的内容,即寻址一个位;· IB0 即可访问绿色部分的内容,即寻址一个字节;· IW2 :即可访问蓝色部分的内容,即寻址一个字;· ID4 即可访问橙色部分的内容,即寻址双字;

三、扫描循环时间

扫描循环时间是指图1中相邻两次"循环时间监控"之间的时间,它与用户程序的复杂程度及CPU执行指令的速度有关。如下为315和416两款CPU的指令执行速度,相比315,CPU416的执行速度快很多。

CPU 315-2DP:0.3ms/1000条指令;

CPU416-2DP:0.08ms/1000条指令

扫描循环时间不是一成不变的,以下事件都会延长循环时间:

· 中断 · 诊断和故障处理 · 测试和调试功能 · 通讯 · 传送和删除块 · 压缩用户程序存储器 · 读/写MMC卡

图3 最大循环时间与最小循环时间

如图3所示,在硬件组态中,可以修改最大循环时间,默认150ms。如果实际的循环时间超出设置的最大时间,CPU会调用组织块OB80,在其中响应这个故障。如果OB80中未编写程序,CPU将转入STOP模式。

400的CPU中还可以设置最小扫描周期,当用户程序较为简单,使得循环时间太短时,过程映像区会太过频繁的刷新,设置最小扫描周期可以避免这种情况。

四、系统的响应时间

PLC的外部输入信号发生变化的时刻到它所控制的外部输出信号发生变化的时刻之间的时间间隔,称之为系统的响应时间。它由以下三部分组成:

1、输入电路的滤波时间

输入模块通过RC滤波电路来过滤输入端引入的干扰,并消除因外接输入触点的动作时产生的抖动而引起的不良影响,滤波电路的时间常数决定了输入滤波时间的长短,一般为10ms左右。

2、输出电路的滞后时间

输出模块的滞后时间与模块的类型有关,

· 继电器型输出电路的滞后时间一般在10ms左右;

· 双向晶闸管型输出电路在负载通电时的滞后时间约为1ms,负载由通电到断电时的最大滞后时间为10ms;

· 晶体管型输出电路的滞后时间一般在1ms以下。

3、CPU扫描循环工作方式带来的滞后时间

由扫描工作方式引起的滞后时间最坏的情况下,可达2-3个扫描周期。

PLC总的响应延迟时间一般只有几毫秒到几十毫秒,对于一般的系统是无关紧要的。在一些特殊应用场合,要求输入、输出信号之间的滞后时间尽可能短的时候,可以选用扫描速度更快的PLC或采取中断等措施。

相关问答

plc怎么让一个程序重复循环?

在PLC中,可以使用循环语句或者定时器来实现程序的重复循环。循环语句可以使用LAD、FBD或者STL等编程语言编写,通过判断循环次数或者循环条件来实现重复执行程...

plc如何循环执行?

在PLC的程序中,循环执行可以通过使用循环指令来实现。PLC的循环指令通常分为两种:定长循环和条件循环。1.定长循环定长循环指令是由一个计数器和一个定值组...

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

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

PLC里面的FOR循环?

循环指令共有两条:循环区起点指令FOR,编号为FNC08,占3个程序步;循环结束指令NEXT,编号为FNC09,占用1个程序步,无操作数。在程序运行时,位于FOR~NEXT间的...PL...

西门子PLC中如何实现自动循环?

在西门子PLC中实现自动循环通常可以使用计时器和定时器来实现。以下是一种常见的方法:1.使用一个计时器(TON)步来设置循环的时间间隔。该计时器的触发可以通...

plc如何实现3个连续动作?

plc如何实现3个连续动作?先简单看下plc的工作原理,当我们把编写好的程序下载到plc中它就开始对用户程序进行扫描这是它的核心工作,整个扫描过程称之为一个运...

红绿灯用PLC怎么设计循环程序?

红绿灯用PLC设计循环程序的步骤如下:1.红绿灯的循环程序设计需要考虑信号的切换和时间控制,以确保交通流畅和安全。2.PLC(可编程逻辑控制器)是一种用于自动...

plc怎么自动循环关闭按钮?

用一个中间继电器就行了,停止时将这个继电器复位,每一个循环开始前测试它一下,复位就停机,没复位就下一个循环。不过要设一个紧急停机按扭,你不想有人被夹...

plc循环速度怎么改?

可以用位置控制模式,PLC发送一定频率的脉冲给伺服驱动器,设置一定的循环速比,用电器就会按一定的速度运转,改变速度只需要改变一下脉冲的频率就行也可以用速...

plc是按什么样的工作方式进行工作的,它的循环过程?

PLC是按集中输入、集中输出,周期性循环扫描的方式进行工作的。它的中心工作过程分输入采样阶段、程序执行阶段、输出刷新阶段。在输入采样阶段,首先扫描所以...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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