《现代电器及PLC控制技术(S7-1200)教案第7章7.4 组织块与中断.docx》由会员分享,可在线阅读,更多相关《现代电器及PLC控制技术(S7-1200)教案第7章7.4 组织块与中断.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、*大学本科教学教案第一周,第一次课章节名称:7.4组织块与中断主要内容:中断优先级的判断与各种组织块的应用教学目标:使学生了解各种组织块的使用方法,能够在实际应用灵活的使用组织块。教学方法:PPT、TIAPortal与课本相结合。本节主要以学生使用TIA Portal软件进行自主仿真训练,知识点可通过PPT向学生展示。教学重点难点:重点为各种组织块的使用方法,难点为在TIAPortal实际使用各种 中断组织块。课后作业:7-4组织块与中断一.事件与组织块(1)事件的概念事件以及运行的优先级判断。在PLC运行过程中产生的各种情况可以被称为事 件,不同种事件有着不同的优先级,优先级的编号越大,级别
2、越高。事件会按照优 先级由高到低的顺序进行处理,即在处理优先级较低的OB时,高优先级的0B会将 之中断,在结束自身进程后返回较低优先级0B所在的断点处继续执行;相同优先级 的任务本着“先到先得”的原则进行处理,且同优先级中的OB不会中断对方。(2)组织块的概念:本节结束:组织块(OB)由用户编写,由操作系统调用,是PLC操作系统与用户程序之间 的接口,可在CPU启动、周期性执行、定时执行、出现错误、硬件中断时调用执行 OBo每个组织块都有属于自己的编号,如OBI、OB100等。组织块OB不能被 OB、FB、FC调用,只能被特定事件调用并执行。(3)不同事件的优先级和对应的OB组织块事件属性表表
3、7-3件类型0B号0B故目启动事件0B优先级 便认)循环程序1 或2123启动或结束上一个程序循环0B1启动100或川2330STOP到RUN的转期1时阊中断210今冬2个已达则启动时间2廷时中断320最多4个延时时间结束3 I缗环中断今30最4个循环时间结束8上升沿(最多16个) 下降沿(最多16个)18硬件中断240量多50个HSC:计数值参考值(量至6次)HSC:计数方向变化(最多6次)HSC:外部复位(最多6次)18状命中看55。或1CK接收到状态中断时4更新中断0或1上胤接收到里新中断时4制造商中断 (配置文件将 定的中断)570*1CPU接收到制增商或配置文件特定的 中断4诊即错俣
4、中断82。或1模块惜谡5 J拉出/搐入中游8309ft 1M除或情人分布式0模块6机架中断860或1分布式1/0的系统楂谡6时间借谡80。或1超出最大循环时间;仍在执行初调用0B:错过时唧中*; STOP期间将丢失 叶间中断;队列潴出;因中断负靓过高而导致中断丢失22二.程序循环组织块(1)简介序循环组织块的编号为0B1,即主程序,由表可知,程序循环组织块的优先级最 低可以被其他任何事件中断。在程序块中可同时添加多个程序循环组织块,其他程 序循环组织块的编号不得小于0B123,程序会按照序号的由小到大依次执行。(2)创建步骤新建一个项目,打开项目视图,添加好CPU后双击“PLC”中的“程序块”
5、, 点击“添加新块”,如图所示,选中Program cycle”并确定,即可生成一个程序 循环组织块,编号为0B123。在0B1和0B123中分别编写一个简单的程序,其功能为10.0 (10. 1)分别控制 Q0. 0 (Q0. 1) o通过仿真来观察实验现象。单击工具栏上的“启动仿真”按钮,在PLCSIM中生成一个新项目,返回将将程 序下载到PLCSIM中,并在PLCSIM里的新项目中的SIM1表格中添加10. 0、 10. 1. Q0.0、Q0. 1,通过改变10.0、10. 1的值可以发现对应的Q0. 0、Q0. 1的值也 随之改变,说明两个循环组织块都在执行。三.启动组织块(1)启动组
6、织块介绍启动组织块的功能为在CPU从STOP转为RUN时,执行一次启动组织块。在程 序块中可添加多个启动组织块,其编号默认是0B100,其他启动组织块的编号不得小 于0B123。其优先级最低,可被其他事件中断。(2)创建步骤在此新建项目并选择PLC1215C,添加一个启动组织块0B100 (Startup),并编 写初始化程序。其功能为在CPU从STOP转为RUN时,QBO数据被初始化为16#F, 即数据的低四位均被置一。程序如图7-41所示。 程序段1 :启动时QBO低4位置1.记录启动次数 注释INCMOVE5lntEN ENOEN ENO 16#F|N%QBO%MB10牛 OUT1 Ta
7、g.rTag_2 IN/OUT图 7-41单击工具栏上的“启动仿真”按钮 打开PLCSIM软件,在PLCSIM中生成一个新 项目,返回将将程序下载到PLCSIM中,在SIM表中添加QB0和MB10,如图7-42所 示,PLC上电后QB0的值为16#F。其中,MB10的作用是记录0B100的调用次数,由 图可知0B100执行使用了 一次,但如果断电后重新启用0B100会发现MB10仍然为 1,这是由于启动时位存储器M区的存储单元默认为非保持型。名称地址显示格式监视傕改值位一致修改夕_|D Tag.1-%QBO+ 六进制16#0F回。回回 16#00-d -Tag_2*%MB10DEC+/-1回。
8、口图 7-42在某些工程上需要记录PLC启动的次数,这时就需要将位存储器的存储单元修 改位保持型,可双击打开“项目树” 一“PLC” -“PLC变量”一“显示所有变 量”,点击按钮打开保持型存储器,修改“存储器字节数从MB0开始”的值即可将 其修改为保持型,如将该值改为15,相应的MBO-MB14都为保持型,而MB15则没有 保持型功能。将程序下载到仿真PLC,多次执行0B100可以发现MB10的值可进行累加。四.循环组织中断块(1)循环中断组织块的介绍循环中断组织块的功能为按照设定的循环时间周期性执行,与程序循环组织块 无关。优先级为8,编号默认为0B30,与延时中断组织块的数量和最大为4。
9、(2)创建步骤添加一个循环中断组织块0B30 (Cyclic interrupt),可通过巡视窗口中的“属 性”一“常规”一“循环中断”修改循环时间,将其修改为1000ms。相移即相位偏移, 可防止循环时间有公倍数的几个循环中断组织块同时启动,从而导致连续执行中断程 序的时间太长,其默认值为0。编写程序如课本图7-46, 7-47, 4-48所示,该程序功能为控制8位彩灯的循环 移位,10. 1控制彩灯的移位,10. 2控制彩灯是左移还是右移。将16#F的值写入QB0, 即控制8位彩灯每次循环点亮的个数和相对位置。10. 0控制QRY_CINT和SET_CINT的 执行,可通过控制10.0将循
10、环时间修改为其他设定值,如使10.0为1,本程序的循 环时间将由1s改为2s。其中,QRY_CINT为查询循环中断指令,OB_NR需写入需要查询的组织块,如0B30; CYCLE输出循环时间,单位;PHASE输出相位偏移值;STATUS输出循环中断的状态; RETJVAL返回指令的状态。SET_CINT指令可设置循环中断参数,OB_NR输入OB编号; CYCLE输入时间间隔;PHASE输入相位偏移;RET_VAL返回指令的状态。点击“启动仿真”按钮进行仿真,将程序下载到PLCSIM中。观察结果,QB0初 值为F,低4位为1,将10.1的值改为1, QB0开始左移;若将10. 2也改为1, QB
11、0 开始右移;若将10.0改为1,则QB0循环时间改为2s。五、时间中断组织块(1)时间中断组织块的概念时间中断组织块可在提前设置的时间运行一次,产生一次中断,也可以按照提 前设置的时间开始周期性运行,如每分钟、每小时、每天等等。时间中断组织块默 认编号为0B10,但最多只能添加2个,优先级为2。(2)创建步骤这里将引入一个电机控制程序帮助读者理解时间中断OB在实际工程中如何应 用,该程序可以使电机每两分钟改变一次启停状态。新建项目并选择PLC后,添加一个时间中断组织块0B10 (Time of day),编写 程序如图所示。每次执行0B10, MB10会自加一,执行2次(2mins) , Q
12、0. 0取反, MB10清零。0B1中的主程序如课本图7-51, 7-52, 7-53所示,其中QRYJHNT为查询时间中 断指令,其中OB_NR为指令所查询的0B编号,Ret_Val输出错误信息,STATUS的输 出可点击指令后按“F1”呼出帮助列表查看其各个数据位所对应信息,为方便读者阅 读,将STATUS输出信息给出如图所示。可见程序段3即使在确认中断是否已经正常 激活,若出现意外状况则M0.0无法导通,后续程序也将不被执行。这种做法可以很 好的保障生产过程的安全,避免电机意外启动,因此也被广泛地应用在各种工程当中。在STATUS输出数据无误后,M0.0闭合,M0.1正常工作,程序读取系
13、统当前时间 到TEMP中,将之写入设置时间中断指令SETJHNTL,对调用的时间中断进行参数设 置,并使用ACT_TINT激活时间中断。考虑到电机过载和紧急停机的情况,设置取消时间中断指令CANJHNT,当遇到突 发情况时中断取消,并将MB10中数据清零,防止再次启动时发生意外情况。单击工具栏上的“启动仿真”按钮打开PLCSIM软件,在PLCSIM中生成一个新 项目,返回将将程序下载到PLCSIM中,并在PLCSIM里的新项目中的SIM表中添加如 下变量,可以看到MB10的计时动作与Q0. 0在时间中断0B动作后不会像在循环0B中 需要保持,而是在下个扫描周期来临之前一直保持了上个周期的数据。
14、六.硬件中断组织块(1)硬件中断组织块概念硬件中断组织块用于处理需要快速响应的过程事件。出现硬件中断事件时,立 即中止当前正在执行的程序,改为执行对应的硬件中断组织块。硬件中断的优先级 为18,默认编号为0B40,最多可同时使用50个硬件中断组织块。(2) S7-1200系列PLC中可触发硬件中断的硬件中断事件CPU内置和信号板数字量输入的上升沿和下降沿事件。高速计数器(HSC)的当前计数值等于设定值。HSC的计数方向发生变化,即计数值由增大变为减小或由减小变为增大。HSC的数字量外部复位输入的上升沿事件,计数值被复位为0o处理硬件中断时,可使用一个事件指定一个硬件中断组织块的方法,也可使用
15、多个硬件中断组织块分时处理一个硬件中断事件。(3)硬件组织块创建步骤新建项目并选择PLC后,添加两个硬件中断组织块:0B40和0B41 (Hardware interrupt),并分别命名为Hardware 1和Hardware2。然后将中断组织块与指定事件 进行连接,双击项目树中“PLC”里的“设备组态”,单击巡视窗口中的“属性”一 “常规” 一“DI 14/DQ 10” - “数字量输入”,选择“通道0”,勾选“启用上升沿 检测”,事件中断选择Hardware1,如图所示。然后用同样的方法将Hardware2设置 为“启用下降沿检测”。在Hardware 1 (0B40)和Hardware
16、2 (0B41)中编写程序对Q0. 0进行置位和复位 操作。单击工具栏上的“启动仿真”按钮打开PLCSIM软件,在PLCSIM中生成一个新 项目,返回将将程序下载到PLCSIM中,将Q0.0与IB0添加到SIM表中,当单击IB0 最低位(10.0)时对勾出现,此操作对应通道0的上升沿,此时Q0.0置一;点击IB0 的次低位(10.1)两次,即当表格所对应的对勾出现后在消失,此操作对应通道1的 下降沿,此时Q0.0被置零。七.中断连接与中断分离(1)中断连接与中断分离的概念ATTACH指令可将组织块附加到中断事件中,即该指令可以为硬件中断事件指定 一个组织块。DETACH指令可将组织块于中断事件
17、脱离,即在运行期间使用该指令取 消组织块与硬件中断事件之间的关联。CPU内置和信号板数字量输入的上升沿和下降 沿事件。(2)创建步骤添加两个硬件中断组织块0B40和0B41 (Hardware interrupt),并分别命名为 Hardware 1和Hardware2,并进行组态,将Hardware 1设置为启用上升沿检测”。 HSC的计数方向发生变化,即计数值由增大变为减小或由减小变为增大。编写程序如下图7-60所示,使用ATTACH指令和DETACH指令,在出现上升沿事件时, 交替调用硬件中断组织块0B40和0B41,将不同的值写入QB0。点击“启动仿真”按钮进行仿真,将程序下载到PLC
18、SIM中,通过改变10.0的 值,改变调用的硬件中断组织块。第一次将10. 0的置1时,调用0B40,将16#03写 入QB0。第二次将10.0的值置1时,调用0B41,将16#0C,写入QB0。八.延时中断组织块(1)延时中断组织块的概念延时中断组织块可使操作系统在一定的延迟时间后启动相应的组织块,但必须 使用SRT_DINT指令。默认编号为0B20,最多可同时使用4个。与延时中断有关的指 令除 SRT_DINT 外,还有 QRY_DINT、CAN_DINT 指令。SRT_DINT指令用于启动延时中断,0B_NR写入需要查询的组织块编号,DTIME写 入延时时间;QRY_DINT指令用于查询
19、延时中断状态,在STATUS输出延时中断的状 态;CAN_DINT指令用于取消延时中断,在0B_NR输入需要取消调用的组织块编号即 可取消。(2)创建步骤10.0置1时产生一个上升沿,从而触发硬件中断,然后调用0B40, 0B40中的 SRT_DINT指令触发延时中断0B20,延时时间2s。为了保存读取的定时开始和定时结 束时的日期和时间值,在DB1中生成数据类型为DTL的变量DT1和DT2。在0B40中 调用“读取本地时间”指令RD_LOC_T,读取启动2s延时的实时时间,用DB1中的变 量DT1保存。图 7-66在上面触发的延时中断组织块0B20,其程序如图所示,使用RD_LOC_T指令,
20、读 取延时结束的实时时间,保存于DT2中,并将Q0. 1置1。 程序段1:注释RD_SYS_T%Q0.1DILTag.rEN ENO(S )-RET_VAL #RET1数据块.OUT 系统时间2图 7-67在0B1中使用指令QRY_DINT的STATUS查看状态,并将结果存于RET1中。当10. 2置 1时,使用CANJHNT指令取消延时中断,当10. 1置1时,Q0. 1复位。图 7-68点击“启动仿真”按钮进行仿真,将程序下载到PLCSIM中。仿真PLC在RUN模 式时,MBH.4立刻变为1状态,表示0B20已经下载到CPU。修改10. 0的状态为1, 生成上升沿,CPU调用0B40, MB1L2变为状态1,表示指令SRT_DINT正在执行时间 延时。定时时间2s到后,MBH.2变回状态0,定时结束。CPU调用0B20, Q0.1置位。打开DB1,在RUN模式下打开实时监测功能。DB1中的DT1显示在0B40中读取的 DTL格式的时间,DB1中的DT2显示0B20读取的DTL格式的时间值,DT1和DT2分别 为启动延时和延时结束的实时时间。在0B1中使用指令QRY_DINT的STATUS查看状态,并将结果存于RET1中。当 10.2置1时,使用CAN_DINT指令取消延时中断,当10. 1置1时,Q0. 1复位。