研选课堂
HOME
研选课堂
正文内容
plc编程循环整改 PLC编程案例61不断循环一盏灯亮3秒灭3秒之S7-SCL
发布时间 : 2025-02-05
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC编程案例61不断循环一盏灯亮3秒灭3秒之S7-SCL

一、PLC控制任务

要求用博图S7-SCL语言编程,SCL是西门子公司推出的一种PLC编程语言,其英文全称为“Structured Control Language”,中文翻译为“结构化控制语言”。SCL是一种文本式高级语言,它是在计算机编程语言PASCAL的基础上,增加了PLC编程的一些特点,比如:输入/输出映像区、位存储区、定时器等存储区的读写,对模拟量、工艺对象的处理等。

设计一段程序,实现一盏灯熄灭3S,点亮3S,不断循环,并且能实现启动和停止控制。

二、创建PLC输入输入IO变量表如图一所示

图一

三、先控制实现启动和停止功能,再添加两个IEC定时器实现间隔3秒点亮3秒熄灭,如图二所示

图二

普天之下,粉丝最大,如果感觉我的编程案例对你有用,点赞并关注我,是我编程的动力,会不定时分享博途程序案例给大家学习,谢谢!

S7-300400进阶笔记1: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结束循环最简单的办法是编写循环终止程序,编程思路如下:在编好的循环程序后再在别的地方加一条程序,用一个停止位(x1)置位一个位(m0),将这个m0添加到...p...

plc程序启动几秒停几秒循环?

程序的循环周期是固定的,而不是变来变去。你可以设置这一值,同样是在“周期”标签页,勾选“启用循环OB的最小循环时间”,然后输入你想要的值即可。在“在线和...

做成plc程序,电动机正转15s,停5s,反转15s,停5s,如此循环5个周期,然后自动停止?

X0停止按钮X1启动按钮Y1正转Y2反转T0(正转15s)T1(停5s)T2(反转15s)T3(停5s)X0停止按钮X1启动按钮Y1正转Y2反转T0(正转15s)T1(停5s)T2(反转15s)...

三菱plc编程时怎么让某段程序重复运行?

你好,可以使用循环指令来让某段程序重复运行。常用的循环指令有以下几种:1.MUL指令:按照循环次数重复执行一个程序段。2.FOR指令:按照循环次数重复执行一...

用PLC计数器和定时器完成,按一下按键3个小灯依次亮再依次灭并循环三次怎么做啊?

思路:兴建四串入并出移位寄存器,串入侧保持水平,一按开关,时钟脉冲信号输入,Q0,Q1,Q2,Q3,其次为高输出,并保持,但在Q3输出变为高电平,该信号用来复位...思路:...

求助!这是三菱PLC仿真GX,请问为什么我的计时器T6一直在重复计时?我想让Y6计时完停止需要怎么做?

1.PLC内部有掉电保持型的存储器、计数器掉电后存储当前数值。2.PLC断电后,程序就不再执行,不再循环扫描输入缓冲寄存器和输出锁存器,所以无法实现断电继续...

三菱plc步进指令是一直循环的,我如何控制它要循环几次?

1、打开三菱plc的相关窗口,直接在梯形图输入的基础上确定LDX0。2、下一步需要通过梯形图输入,来继续确定FMOVK6D0K3。3、等转换编译结果以后,就确定模拟...

plc系统循环是什么意思?

说的通俗点,PLC系统循环就是从上到下,从左到右循环执行用户程序,每循环一次就是顺便扫描一遍元件的状态。并按程序指令来执行相应的动作,这个周期就是所谓的P...

plc为什么会产生响应滞后?

plc是在相关的模块结束后去查询有无中断申请和在执行用户程序时先查询有无中断申请,如有中断申请,则转入执行中断服务子程序,在每块结束或执行块的调用时处理...

三菱plc的循环右移指令用不了?

很抱歉听到您无法使用三菱PLC的循环右移指令。可能有几个原因导致这种情况。首先,请确保您的PLC型号支持循环右移指令。其次,请检查您的程序是否正确编写,确...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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