plc第七章传送带电子书.docx
《plc第七章传送带电子书.docx》由会员分享,可在线阅读,更多相关《plc第七章传送带电子书.docx(49页珍藏版)》请在冰豆网上搜索。
plc第七章传送带电子书
第7章传送带控制系统
本章以制作传送带控制系统为目的,首先从简单的单传送带、多传送带控制入手,逐步学会传送带控制的多种设计方法,最终完成四节传送带控制系统设计,使学生对传送带可编程控制系统有一个直观、感性的认识,锻炼读者应用PLC解决问题的能力。
教学导航
教
知识重点
(1)基本触点指令,置位、复位、RS触发器。
(2)掌握顺序控制程序设计方法。
(3)掌握程序控制类指令、子程序设计。
(4)熟练掌握PLC程序设计、调试流程。
知识难点
(1)S7-200的I/O地址分配规律。
(2)程序控制类指令设计方法。
推荐教学方法
本章的知识链接部分用讲授法和引导文法;初步训练部分使用案例教学法;强化训练、拓展训练部分使用项目教学法。
学
推荐学习方法
动手完成小车传送带控制系统的实现,实施过程中逐步理解S7-200的编程指令真正含义。
必须掌握的理论知识
(1)基本触点指令,置位、复位、RS触发器。
(2)程序控制类指令使用方法。
必须掌握的技能
(1)S7-200指令编写和外部接线连接。
(2)电动机传送带控制设计方法。
(3)传送带触摸屏控制设计方法。
7.1知识链接
7.1.1程序控制类指令
程序控制类指令用于程序运行状态的控制,主要包括系统控制、跳转、循环、子程序调用、顺序控制等指令,系统控制类指令主要包括暂停、结束、看门狗等指令。
1、条件结束(END/MEND)指令
所谓有条件结束(END)指令,就是执行条件成立时结束主程序,返回主程序起点,终止用户程序的执行返回主程序的第一条指令指行(循环扫描工作方式)。
梯形图结束指令不连在左侧母线时,为条件结束指令(END)。
条件结束指令用在无条件结束(MEND)指令之前,用户必须以无条件结束指令结束主程序。
条件结束指令执行时(指令直接连在左侧母线,无使能输入),梯形图结束指令直接连在左侧电源母线时,为无条件结束指令(MEND)。
注意:
结束指令只能在主程序中使用,不能在子程序和中断服务程序中使用。
STEP7-Micro/WIN编程软件在主程序的结尾自动生成无条件结束(MEND)指令,用户不得输入无条件结束指令,否则编译出错。
指令格式如图7-1所示。
(a)有条件结束指令(b)无条件结束指令
图7-1条件结束指令
2、暂停(STOP)指令
所谓暂停指令,是指当条件符合时,使能输入有效时,立即终止程序的执行。
指令执行的结果,CPU工作方式由RUN切换到STOP方式。
在中断程序中执行STOP指令,该中断立即终止,并且忽略所有挂起的中断,继续扫描程序的剩余部分,在本次扫描的最后,将CPU由RUN切换到STOP。
指令格式如图7-2所示。
图7-2STOP指令格式
3、监视计时器复位(WDR)指令
监视计时器复位指令又称为看门狗定时器复位指令。
为保证PLC系统可靠运行,PLC内部设置了系统监视器WDT,每当扫描到WDT计时器时,WDT计时器将复位。
看门狗定时器设有500ms重启动时间,每次扫描它都被自动复位一次,正常工作时扫描周期小于500ms,它不起作用。
若扫描周期大于500ms,看门狗定时器会停止执行用户程序,如过长的用户程序、过长的中断时间、循环时间过长。
注意:
使用WDR指令时,要防止过度延迟扫描完成时间,否则,在终止本扫描之前,下列操作过程将被禁止(不予执行):
通信(自由端口方式除外)、I/O更新(立即I/O除外)、强制更新、SM更新(SM0,SM5~SM29不能被更新)、运行时间诊断、中断程序中的STOP指令。
扫描时间超过25s,10ms和100ms定时器将不能正确计时。
指令用法如图7-3所示。
图7-3WDR指令
4、诊断LED指令
S7-200检测到致命错误时,SF/DIAG(故障/诊断)LED发出红光。
在V4.0版编程软件的系统块的“配置LED”选项卡中,如果选择了有变量被强制或有I/O错误时LED亮,出现上述诊断事件时LED将发黄光。
如果两个选项都没有被选择,SF/DIAGLED发黄光只受DIAG_LED指令的控制。
如果此时指令的输入参数IN为0,诊断LED不亮。
如果IN大于0,诊断LED发黄光。
图7-4的VB10中如果有非零的错误代码,将使诊断LED亮。
图7-4诊断LED指令
7.1.2跳转、循环指令
跳转、循环指令用于程序执行顺序的控制,格式如表7-1。
1、程序跳转指令(JMP)
跳转指令(JMP)和跳转地址标号指令(LBL)配合实现程序的跳转。
使能输入有效时,使程序跳转到指定标号n处执行(在同一程序内),跳转标号n=0~255。
使能输入无效时,程序顺序执行。
如图7-5所示的梯形图程序,I0.3得电,执行JMP指令,程序跳转到标号4处,I0.3不得电时,运行起-保-停程序。
图7-5程序跳转指令
表7-1跳转、循环指令格式
LAD
STL
功能
JMPn
LBLn
跳转指令
跳转标号
FORIN1,IN2,IN3
NEXT
循环开始
循环返回
CALLSBR0
CRET
RET
子程序调用
子程序条件返回
自动生成无条件返回
2、循环控制指令(FOR)
程序循环结构用于描述一段程序的重复循环执行。
由FOR和NEXT指令构成程序的循环体。
FOR指令标记循环的开始,NEXT指令为循环体的结束指令。
FOR指令为指令盒格式,主要参数有使能输入EN,当前值计数器INDX,循环次数初始值INIT,循环计数终值FINAL。
工作原理:
使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前计数器INDX增1,达到终值FINAL时,循环结束。
例如FINAL为10,使能有效时,执行循环体,同时INDX从1开始计数,每执行一次循环体,INDX当前值加1,执行至10次时,当前值也计到10,循环结束。
使能输入无效时,循环体程序不执行。
每次使能输入有效,指令自动将各参数复位。
FOR/NEXT指令必须成对使用,循环可以嵌套,最多为8层。
7.1.3子程序
STEP7-Micro/WIN在程序编辑器窗口里为每个POU(程序组织单元)提供一个独立的页。
主程序总是第1页,后面是子程序或中断程序。
因为各个程序在编辑器窗口里被分开,编译时在程序结束的地方自动加入无条件结束指令或无条件返回指令,用户程序只能使用条件结束和条件返回指令。
通常将具有特定功能、并且多次使用的程序段作为子程序。
子程序可以多次被调用,也可以嵌套(最多8层),还可以递归调用(自己调自己)。
子程序有子程序调用和子程序返回两大类指令,子程序返回又分条件返回和无条件返回。
子程序调用指令用在主程序或其他调用子程序的程序中,子程序的无条件返回指令在子程序的最后网络段,梯形图指令系统能够自动生成子程序的无条件返回指令,用户无需输入。
子程序调用指令将程序控制权交给子程序SBR-N,该子程序执行完毕,程序控制权回到子程序调用指令的下一条指令。
子程序指令含子程序调用指令和子程序返回指令。
子程序条件返回指令(CRET)在条件满足时中止子程序执行。
如子程序中没有安排CRET指令,子程序将在子程序运行完毕后返回。
为了和主程序区别,S7—200规定子程序与中断子程序分区排列在主程序的后边,且当子程序或中断子程序数量多于1时,分序列编号加以区别。
1、子程序的创建
在编程软件的程序数据窗口的下方有主程序(OBI)、子程序(SUB0)、中断服务程序(INT0)的标签,点击子程序标签即可进入SUB0子程序显示区。
也可以通过指令树的项目进入子程序SUB0显示区。
添加一个子程序时,可以用编辑菜单的插入项增加一个子程序,子程序编号n从0开始自动向上生成。
用鼠标右键点击指令树中的子程序或中断程序的图标,在弹出的菜单中选择“重新命名”,可以修改它们的名称。
2、带参数的子程序调用指令
子程序可能有要传递的参数(变量和数据),这时可以在子程序调用指令中包含相应参数,它可以在子程序与调用程序之间传送。
参数(变量和数据)必须有符号名(最多8个字符)、变量和数据类型等内容。
给子程序传递参数时,它们放在子程序的局部存储器(L)中,局部变量表最左列是每个被传递参数的局部存储器地址。
子程序调用时,输入参数被拷贝到局部存储器。
子程序完成时,从局部存储器拷贝输出参数到指定的输出参数地址。
子程序调用如表7-2所示。
表7-2子程序调用与标号指令
梯形图
语句表STL
指令功能
CALLSBR_n
子程序调用与标号指令(CALL)把程序的控制权交给子程序(SBR_n)
CRET
有条件子程序返回指令(CRET)根据该指令前面的逻辑关系,决定是否终止子程序(SBR_n)
子程序编程举例,主程序如图7-6所示,子程序如图7-7、7-8所示。
图7-6主程序
图7-7子程序0
图7-8子程序1
7.1.4中断程序与中断指令
中断是计算机特有的工作方式,指主程序执行过程中,中断主程序的执行去执行中断子程序。
和前节谈到的子程序一样,中断子程序也是为某些特定的控制功能而设定的。
和普通子程序不同的是,中断子程序是为随机发生且必须立即响应的事件安排的,其响应时间应小于机器的扫描周期。
能引起中断的信号叫中断源,S7-200系列CPU支持34种中断源,如表7-3所示。
从表中可以看出,不同的CPU对中断事件的支持是不同的(表中Y表示该型号CPU具有该种中断功能)。
1、中断程序
可采用下列方法创建中断程序:
在“编辑”菜单中选择“插入→中断”,在程序编辑器视窗中按鼠标右键,从弹出菜单中选择“插入→中断”;用鼠标右键击指令树上的“程序块”图标,并从弹出菜单中选择“插入→中断”。
创建成功后程序编辑器将显示新的中断程序,程序编辑器底部出现标有新的中断程序的标签,可以对新的中断程序编程。
中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。
因为不能预知系统何时调用中断程序,它不能改写其他程序使用的存储器,为此应在中断程序中使用局部变量。
在中断程序中可以调用一级子程序,累加器和逻辑堆栈在中断程序和被调用的子程序中是公用的。
中断是计算机为应对紧急事件而设立的一种运行机制,但是并不一定在计算机的任何运行时间点上都可以允许中断的发生。
对于PLC应用程序的运行来说,任何时候都响应内部及外部的所有中断称为全局开中断,任何时候都不响应各种中断称为全局禁止中断。
当PLC进入RUN状态时,自动进入全局禁止中断状态,如需在适当的时候开放全局中断时,可在用户程序中使用全局中断允许指令(ENI),反之,如需全局禁止中断时,可在应用程序中的适当位置使用全局中断禁止指令(DISI)。
执行DISI指令不会影响当前正在执行中的中断程序的执行,只有当该中断程序执行完毕后,DISI功能才有效。
表7-3中断事件描述
中断号
中断描述
优先级分组
按组排列
的优先级
8
通信口0:
字符接收
通信(最高)
0
9
通信口0:
发送完成
0
23
通信口0:
报文接收完成
0
24
通信口1:
报文接收完成
1
25
通信口1:
字符接收
1
26
通信口1:
发送完成
1
19
PTO0脉冲输出完成
数字量(中等)
0
20
PTOl脉冲输出完成
1
0
I0.0的上升沿
2
2
I0.1的上升沿
3
4
I0.2的上升沿
4
6
I0.3的上升沿
5
1
I0.0的下降沿
6
3
I0.1的下降沿
7
5
I0.2的下降沿
8
7
I0.3的下降沿
9
12
HSC0CV=PV(当前值=设定值)
10
27
HSC0方向改变
11
28
HSC0外部复位
12
13
HSC1CV=PV(当前值=设定值)
13
14
HSC1方向改变
14
15
HSC1外部复位
15
16
HSC2CV=PV(当前值=设定值)
16
17
HSC2方向改变
17
18
HSC2外部复位
18
32
HSC3CV=PV(当前值=设定值)
19
29
HSC4CV=PV(当前值=设定值)
20
30
HSC4方向改变
21
31
HSC4外部复位
22
33
HSC5CV=PV(当前值=设定值)
23
10
定时中断0
定时(最低)
0
11
定时中断1
1
21
定时器T32的CT=PT
2
22
定时器T96的CT=PT
3
2、中断指令
中断指令包括中断允许指令ENI、中断禁止指令DISI、中断连接指令ATCH、中断分离指令DTCH/中断返回指令RETI和CRETI及中断服务程序标号指令INT,各种中断指令如表7-4所示。
1)全局性的中断允许指令与中断禁止指令
中断允许指令ENI(EnableInterrupt)全局性地允许所有被连接的中断事件。
禁止中断指令DISI(DisableInterrupt)全局性地禁止处理所有中断事件,允许中断排队等候,但是不允许执行中断程序,直到用全局中断允许指令ENI重新允许中断。
进入RUN模式时自动禁止中断。
在RUN模式执行全局中断允许指令后,各中断事件发生时是否会执行中断程序,取决于是否执行了该中断事件的中断连接指令。
使ENO=0的错误条件:
SM4.3(运行时间),0004(在中断程序中执行ENI、DISI、HDEF指令)。
中断程序有条件返回指令CRETI(ConditionalReturnfromInterrupt)在控制它的逻辑条件满足时从中断程序返回。
编程软件自动地为各中断程序添加无条件返回指令。
2)中断连接指令与中断分离指令
中断连接指令ATCH(AttachInterrupt)用来建立中断事件(EVNT)和处理此事件的中断程序(INT)之间的联系。
中断事件由中断事件号指定,中断程序由中断程序号指定。
为某个中断事件指定中断程序后,该中断事件被自动地允许。
使ATCH指令的ENO=0的错误条件:
SM4.3(运行时间),0002(HSC输入赋值冲突)。
中断分离指令DTCH(DetachInterrupt)用来断开中断事件(EVNT)与中断程序(INT)之间的联系,从而禁止单个中断事件。
在启动中断程序之前,应在中断事件和该事件发生时希望执行的中断程序之间,用ATCH指令建立联系,使用ATCH指令后,该中断程序在事件发生时被自动启动。
多个中断事件可以调用同一个中断程序,但一个中断事件不能调用多个中断程序。
中断被允许且中断事件发生时,将执行为该事件指定的最后一个中断程序。
注意:
在中断程序中不能使用DISI、ENI、HDEF、LSCR和END指令。
表7-4中断指令格式
LAD
STL
功能描述
ENI
允许中断
DISI
禁止中断
ATCH,INT,EVENT
给事件分配中断程序
DTCH,EVENT
解除中断事件
3)中断优先级与中断队列溢出
中断按以下固定的优先级顺序执行:
通信(最高优先级)、I/O中断和定时中断(最低优先级)。
在上述3个优先级范围内,CPU按照先来先服务的原则处理中断,任何时刻只能执行一个用户中断程序。
一旦一个中断程序开始执行,它要一直执行到完成,即使另一程序的优先级较高,也不能中断正在执行的中断程序。
正在处理其他中断时发生的中断事件要排队等待处理。
3个中断队列及其能保存的最大中断个数如表7-5所示。
表7-5中断队列的长度
队列
CPU221
CPU222
CPU224
CPU226
通信中断队列
4
4
4
8
I/O中断队列
16
16
16
16
定时中断队列
8
8
8
8
如果发生中断过于频繁,使中断产生的速率比可处理的速率快,或中断被DISI指令禁止,中断队列溢出状态位被置l。
只应在中断程序中使用这些位,因为当队列变空或返回主程序时这些位被复位。
中断事件可分为以下三大类:
通讯口中断
可编程序控制器的串行通信口可由用户程序控制,通信口的这种操作模式称为自由端口模式。
通讯口中断含端口0及端口1接收及发送相关中断。
PLC的串行通讯口可由梯形图或指令表程序来控制,这种通讯口的操作模式称为自由端口模式。
在自由端口模式下,可由用户程序设置波特率、字符的位数、奇偶校验及通信协议。
接收及发送中断可以简化程序对中断的控制。
I/O中断
I/O中断包括上升沿中断、下降沿中断、高速计数器(HSC)中断和脉冲列输出(PTO)中断。
CPU可用输入点I0.0~I0.3的上升沿或下降沿产生中断。
高速计数器中断允许响应HSC的计数当前值等于设定值、计数方向改变(相应于轴转动的方向改变)和计数器外部复位等中断事件。
高速计数器可实时响应高速事件,而可编程序控制器的扫描工作方式不能快速响应这些高速事件。
完成指定脉冲数输出时也可以产生中断,脉冲列输出可用于步进电机等。
定时中断
可用定时中断来执行一个周期性的操作,以lms为增量,周期的时间可取1~255ms。
定时中断0和中断1的时间间隔分别写入特殊存储器字节SMB34和SMB35。
每当定时器的定时时间到时,执行相应的定时中断程序,例如可以用定时中断来采集模拟量和执行PID程序。
如果定时中断事件已被连接到一个定时中断程序,为了改变定时中断的时间间隔,首先必须修改SMB34或SMB35的值,然后重新把中断程序连接到定时中断事件上。
重新连接时,定时中断功能清除前一次连接的定时值,并用新的定时值重新开始定时。
定时中断一旦被允许,中断就会周期性地不断产生,每当定时时间到时,就会执行被连接的中断程序。
如果退出RUN状态或定时中断被分离,定时中断被禁止。
如果执行了全局中断禁止指令,定时中断事件仍会连续出现,每个定时中断事件都会进入中断队列,直到中断队列满。
定时器T32/T96中断允许及时地响应一个给定的时间间隔,这些中断只支持lms分辨率的通电延时定时器(TON)和断电延时定时器(TOF)T32和T96。
一旦中断允许,当定时器当前值等于设定值时,在CPU的lms定时刷新中,执行被连接的中断程序。
【例1-1】编程完成采样工作,要求每10ms采样一次。
分析:
完成每10ms采样一次,需要定时中断,查表7-3可知,定时中断0的中断事件号为10,因此在主程序中将采样周期(10ms)即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,并将中断事件10和INT_0连接,全局开中断。
在中断程序0中,将模拟量输入信号读入,程序如图7-9、7-10所示。
图7-9中断主程序
图7-10中断程序
中断程序的执行
中断是随机产生的,即在主程序执行的过程中随时都可能产生中断,为了减少主程序中断的不良影响,被中断的时间越短越好,这就要求中断子程序尽可能简洁。
在CPU接到中断申请且准备响应时,系统先将反映指令执行情况及累加器状态的逻辑堆栈、累加器、寄存器及特殊标志位保存,然后再去执行中断程序。
7.2初步训练——传送带PLC控制
运输带又称输送带或胶带,是物料连续运载的重要工具之一,可用于运输块状、粒状、粉状或成件物品等,运输带广泛用于建材、化工、煤炭、电力、冶金等部门,适用于常温下输送非腐蚀性的物料、如煤炭、焦炭、砂石、水泥等散物(料),也可用于成体物品输送,PLC控制传送带系统具有设计结构简单,控制精确等优点。
在设计传送带控制系统之前,我们先通过3个由易到难的案例,熟悉PLC的编程方法,掌握PLC的基本编程指令。
7.2.1传送带检测
训练目标
1、传送带检测
一条传送带传送产品,从前道工序过来的产品按等间距排列,如图7-11所示,传送带入口处,每进来一个产品,光电计数器发出一个脉冲,同时,质量检测传感器对该产品进行检测,如果该产品合格,输出逻辑信号“0”,如果产品不合格输出逻辑信号“1”,将不合格产品位置记忆下来,当不合格产品到电磁推杆位置(第6个产品间距)时,电磁推杆动作,将不合格产品推出,当产品推出到位时,推杆限位开关动作,使电磁铁断电,推杆返回到原位。
图7-11传送带产品检测
控制要求
当次品通过质量传感器时,10.0=1,使M0.0置位,同时光电计数开关检测到有产品通过,I0.1=1,进行一次移位,将M0.0的l移位到M0.1中,M0.1=1,传送带每次传送一个产品时,光电计数开关接通一次,并进行一次移位,当光电计数开关接通六次并进行六次移位时,使M0.6=1,M0.6接点接通一个扫描周期,Q0.0线圈得电并自锁,推杆电磁阀YV得电,将次品推出,推杆触及限位开关SQ3,10.2常闭接点断开,Q0.0线圈失电,推杆电磁阀在弹簧的反力下退回原位。
控制方案设计
1、输入输出元件及控制功能
表7-6输入/输出元件及控制功能
类型
PLC地址
对应元件(符号)
元件名称
控制功能
输入端口
I0.0
SQ1
质量传感器
产品检测
I0.1
SQ2
光电计数开关
产品计数
I0.2
SQ3
推杆限位开关
杆复位
输出端口
Q0.0
YV
推杆电磁阀
次品退出
2、硬件设计
图7-12传送带检测控制线路图
3、程序如图7-13所示。
图7-13传送带检测程序
7.2.2单条传送带控制
训练目标
通过本次练习,需要掌握S7-200正常使用时,各接线口如何连接,如何选取相应的电压源。
掌握限位开关SQ应用,理解位操作指令中最基本“起-保-停”编程语句。
控制要求:
用一个启动按钮控制传送带运行,用一个停止按钮停止传送带运行,通过限位开关检测传送物品位置,要求学生通过本任务掌握用PLC的基本位操作类指令编写程序,并在实训设备上实现。
控制方案设计
1.输入输出元件及控制功能
控制方案设计
1、输入输出元件及控制功能
表7-7I/O分配
类型
PLC地址
对应元件(符号)
元件名称
控制功能
输入端口
I0.0
SB1
停止按钮
传送带停止
I0.1
SB2
启动按钮
传送带启动
I0.2
SQ
限位开关
产品检测
输出端口
Q0.0
KM
接触器
传送带电动机启动
2、硬件设计
图7-14单条传送带控制线路图
3、梯形图程序
打开Step7-MicroWINV4.0,打开程序块部分,编写梯形图如7-15所示。
图7-15单条传送带控制程序
4、控制原理
如图7-15所示,启动时按下启动按钮I0.1,Q0.0得电自锁,传送带启动。
当产品的前端到达传送带末端时,限位开关SQ(I0.2)动作(M0.0常闭接点在下一个扫描周期断开),Q0.0仍得电。
当产品的末端离开SQ时,I0.2常开接点断开,Q0.0线圈失电,传送带停止。
5、演示操作
(1)按图7-14所示连接控制电路,注意线路连接及电阻选择保证电动机等工作在额定电压,检查无误后接通220伏电源。
(2)打开计算机中的编程软件,将图7-15所示程序下载给PLC。
(3)使用编程软件的运行和停止按钮或者是拨动PLC的运行开关运行或停止程序。
(4)在运行状态下,打开程序状态监控,观察结果,反复调试,直至满足要求:
按下启动按钮SB2,传送带启动运行;按下停止按钮SB1,传送带停止运行。
7.2.3多条传送带接力传送
训练目标
一组传送带由三条传送带连接而成,用于传送有一定长度的金属板.为了避免传送带在没有物品时空转,在每条传送带末端安装一个接近开