热门PLC案例|如何用PLC控制小车五位自动循环往返运行?
一、任务目标
该任务是定时器指令相关应用案例。西门子S7-1200 PLC定时器种类比较多,在实际的应用中,读者可根据实际的应用场景选择对应的定时器指令。本任务要求读者掌握以下几个内容。
1.定时器指令的分类
2.定时器各管脚的含义
3.定时器配合其他指令的使用方法
二、任务描述
如图所示(2-2-1)用三相异步电机拖动一辆小车在A、B、C、D、E五点之间自动循环往返运行,小车五位行程控制的示意图如图所示。小车初始在A点,按下启动按钮,小车依次前进到B、C、D、E点,并分别停止5S返回到A点停止。
图2-2-1小车延时自动往返示意图
三、相关知识
本案例需要使用的是基本位逻辑和定时器指令。位逻辑指令在其他的章节中已有介绍,此处为读者介绍定时器指令的相关知识。
1、定时器指令
西门子S7-1200PLC有4种常用的定时器:
①TP:脉冲定时器,可生成具有预设宽度时间的脉冲。
②TON:接通延时定时器,输出Q在预设的延时后设置为ON。
③TOF:关断延时定时器,输出Q在预设的言时后重置为OFF。
④TONR:保持型接通延时定时器,输出Q在预设的延时后设置为ON,在使用R输入重置经过的时间之前,会一直累加跨越多个定时时段经过的时间。
2、如图2-2-2所示,在指令窗口中选择“定时器操作中”的TON指令,并将其拖入程序段中(见图2-2-3),这时会跳出一个“调用数据块”窗口,选择自动编号后,会直接生成DB1数据块,也可以选择手动编号,根据用户需要生成DB数据块。
图2-2-2 定时器指令
图2-2-3 TON指令调用数据块
在项目树的“程序块”中可以看到自动生成的IEC_Timer_0_DB[DB1]数据块(见图2-2-4)双击进入,即可读取DB1定时器的各个数据,变量的数据类型为IEC_Timer,见表2-2-5。
图2-2-4 DB1数据块位置
TON指令就是接通延迟定时器,输出Q在预设的延时后设置为ON。TON指令形式如图2-2-6。TON的参数及数据类型见表2-2-7。在2-2-7表中,R参数一般用于TONR等指令。参数IN从0跳为1时将启动定时器TON。
表2-2-5 DB1数据块IEC_Timer_0_DB的内容
图2-2-6 TON指令形式
表2-2-7 TON的参数及数据类型
参数
数据类型
说明
IN
Bool
启用定时器输入
R
Bool
将TONR经过的时间重置为0
PT
Bool
预设的时间值输入
Q
Bool
定时器输出
ET
Time
经过的时间值输出
定时器数据块
DB
指定要使用RT指令复位的定时器
在定时器中PT(预设的时间)和ET(经过的时间)的数据大小以有符号、双精度的32位整数形式表示毫秒时间,见表2-2-8。TIME数据使用T#标识符,以简单时间单元“T#200ms”或者复合时间单元“T#2S_200ms”的形式输入。
表2-2-8 TON的参数及数据类型
数据类型
大小
有效数值范围
TIME
32位存储形式
T#-24d_20h_31m_23s_648ms 到 T#24d_20h_31m_23s_647ms 以 -2,147,483,648 ms 到 +2,147,483,647 ms
TON指令的应用与时序图如图2-2-9和图2-2-10所示。在时序图中PT=5S。
图2-2-9 TON指令的应用
图2-2-10TON指令的时序图
TOF关断延时定时器的指令与TON类似。图2-2-11和图2-2-12为TOF指令的应用和时序图。在时序图中PT=5S。
图2-2-11TOF指令的应用
图2-2-12TOF指令的时序图
TP脉冲定时器指令的应用如图2-2-13,时序图如图2-2-14所示。在时序图中PT=5S。
图2-2-13TP指令的应用
图2-2-14TP指令的时序图
四、任务实施
本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路:
1、PLC接线如图2-2-14
图2-2-14PLC接线图
2、IO地址分配
输入地址
说明
输出地址
说明
I0.0
启动
Q0.0
小车前进
I0.1
A点位置
Q0.1
小车后退
I0.2
B点位置
I0.3
C点位置
I0.4
D点位置
I0.5
E点位置
3、程序设计思路
任务中,小车需要到达5个工位,首先判断小车前进的条件是:按下了启动按钮或者从B、C、D、E点任意一点返回到A点后。
小车停止前进的条件是:小车到达了B、C、D、E点或者触碰到了E点位置。
判断小车后退的条件是:B、C、D、E点位置到达了,然后延时时间到了则小车后退。
4、程序设计
五、经验与总结
1、在这个案例中主要使用的是常开、常闭、线圈、定时器指令。案例中有5个工位,当按下启动按钮后,小车启动。到达B、C、D、E任何一点都需要停止小车前进(使用M0.0标志位断开小车前进),然后再延时,延时时间到达后后退。
2、小车后退到达A点位置后,小车又继续前进。假定前一次到达的位置是B点,则这一次需要到达的是C点位置。到达C点位置就会触碰到B点的限位开关,故使用标志位(M0.1)断开小车在B点前进功能。
(技成培训网原创,作者:郭彪,未经授权不得转载,违者必究)
特别推荐:
① 手机版电工专用计算器,1分钟快速搞定复杂的电工计算
② 13种电气计算EXCEL表格,自动生成!从此计算不求人(超实用)
③ 6款免安装的超实用电气计算软件,值得下载
搞不懂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怎么循环运行2次?
PLC的循环运行次数可以通过编程来实现,具体方法如下:1.在程序中使用计数器:在PLC的程序中,可以使用计数器来控制循环运行的次数。例如,可以设置计数器的初...
PLC编程循环?
有几种方法:1、用定时器,一个周期后,复位第一个定时器,程序自然就循环下去了.2、用跳转和标号指令,(JMPLBL),在程序的开始处加一个标号(如LBL10),在周期结...
plc编程循环问题怎么整?
在PLC编程中,处理循环问题需要注意以下几点:确定循环条件:使用比较指令或逻辑指令对循环条件进行判断,根据判断结果决定是否继续循环。比如,可以使用比较指...
西门子PLC循环程序怎么写?
编写西门子PLC循环程序需要遵循以下步骤:首先,需要确定循环的终止条件,然后编写循环体,在循环体内执行所需的操作。循环体内可以包含一个或多个操作,这些...
简述plc的循环处理过程?
PLC的循环处理过程主要包括以下几个步骤:输入扫描:PLC通过扫描输入设备,收集输入信号,并将其存储在输入映像寄存器中。程序执行:根据存储在存储器中的用户程...
plc怎么循环三次程序?
plc梯形图程序可以实现。plc梯形图程序是顺序循环扫描的读取方式,周期按照你的程序的长短。每次扫描时读取各个端口继电器的状态,并将它输出,每个周期输出一...
plc编程最后循环到第一步怎么编?
plc编程实现循环有多种方法,可以用到跳转指令,蛮方便的,也可以用调用指令,看个人习惯,跳转和调用指令都可用来做手动自动的转换,不过用它们的话,手动和自动的...
西门子PLC怎么完成循环啊S7-200我是用定时器来完成程序的,我TOF以后程序就完成了,怎么回到开头啊?
循环控制吗,那不是很简单,一般都是顺序控制,只要你在最后步执行完了跳转到需要循环开始点就可以了。如果需要多个这样的循环,另外编程,可以调用子程序方式实...
PLC怎么编辑无限循环点动?
PLC可以通过编写无限循环点动程序来实现对设备的持续控制。具体操作步骤为:首先确定需要控制的设备输入输出口地址,然后设置一个无限循环程序,将控制信号输出...
西门子s7-200循环累加的用法?
西门子S7-200PLC可以使用循环累加指令来实现累加功能。首先,需要定义一个累加器变量,例如ACC,用于存储累加的结果。然后,使用循环指令(如LAD、LADN、LDN)...