1、青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室第6章 程序设计青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室6.1经验设计法经验设计法 在一些典型梯形图程序的基础上,结合实际控制要求和在一些典型梯形图程序的基础上,结合实际控制要求和PLC的工作的工作原理不断修改和完善,这种方法称为经验设计法。原理不断修改和完善,这种方法称为经验设计法。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室启保停电路启保停电路 青岛大学青岛大学QINGDAO UNIVERSITY青岛
2、大学-西门子先进自动化技术联合实验室I0.0Q0.1第一个定时器输出第二个定时器输出10S5S延时接通延时接通/断开电路断开电路 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室闪烁电路闪烁电路 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室 PLC是由继电接触器控制发展而来的,但是与之相比,是由继电接触器控制发展而来的,但是与之相比,PLC的编程应该遵循以下的编程应该遵循以下基本基本原则原则。(1)外部输入、输出、内部继电器(位存储器)等器件的触点可多次重复使用。)外部输入、输出、内部继电器(位存储器)
3、等器件的触点可多次重复使用。(2)梯形图每一行都是从左侧母线开始。)梯形图每一行都是从左侧母线开始。(3)线圈不能直接与左侧母线相连。)线圈不能直接与左侧母线相连。(4)梯形图程序必须符合顺序执行的原则,从左到右,从上到下地执行,如不符合顺序)梯形图程序必须符合顺序执行的原则,从左到右,从上到下地执行,如不符合顺序执行的电路不能直接编程。执行的电路不能直接编程。(5)应尽量避免双线圈输出。使用线圈输出指令时,同一编号的线圈指令在同一程序中)应尽量避免双线圈输出。使用线圈输出指令时,同一编号的线圈指令在同一程序中使用两次以上,称为双线圈输出。双线圈输出容易引起误动作或逻辑混乱,因此一定要慎使用两
4、次以上,称为双线圈输出。双线圈输出容易引起误动作或逻辑混乱,因此一定要慎重。重。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室双线圈输出例子双线圈输出例子 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室6.2 顺序功能图顺序功能图 使用顺序控制设计法时首先根据系统的工艺过程,画出顺序功能图,然使用顺序控制设计法时首先根据系统的工艺过程,画出顺序功能图,然后根据顺序功能图编写梯形图程序。有的可编程序控制器则提供了顺序功能后根据顺序功能图编写梯形图程序。有的可编程序控制器则提供了顺序功能图编程语言,用户在编
5、程软件中生成顺序功能图后便完成了编程工作,如西图编程语言,用户在编程软件中生成顺序功能图后便完成了编程工作,如西门子门子S7-300/400 PLC中的中的S7 Graph编程语言。顺序控制设计法是一种先进的编程语言。顺序控制设计法是一种先进的设计方法,很容易被初学者接受,对于有经验的工程师,也会提高设计的效设计方法,很容易被初学者接受,对于有经验的工程师,也会提高设计的效率,程序的调试、修改和阅读也很方便。率,程序的调试、修改和阅读也很方便。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室I0.3I0.1I0.2组合机床动力头运动示意图组合机床动力
6、头运动示意图青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室动力头控制的顺序功能图动力头控制的顺序功能图 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室1步步将系统的一个工作周期划分为若干个顺序相连的阶段,这些阶段称为步将系统的一个工作周期划分为若干个顺序相连的阶段,这些阶段称为步(Step)。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室2活动步活动步 当系统正处于某一步所在的阶段时,称该步处于活动状态,即该步为当系统正处于某一步所在的阶段时,称该步处于活动
7、状态,即该步为“活动步活动步”,可以通过编程元件的位状态来表征步的状态。步处于活动状态,可以通过编程元件的位状态来表征步的状态。步处于活动状态时,执行相应的动作。时,执行相应的动作。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室3有向连线与转换条件有向连线与转换条件 有向连线表明步的转换过程,即系统输出状态的变化过程。顺序控制中,有向连线表明步的转换过程,即系统输出状态的变化过程。顺序控制中,系统输出状态的变化过程是按照规定的程序进行的,顺序功能图中的有向连系统输出状态的变化过程是按照规定的程序进行的,顺序功能图中的有向连线就是该顺序的体现。有向连
8、线的方向若是从上到下或从左至右,则有向连线就是该顺序的体现。有向连线的方向若是从上到下或从左至右,则有向连线上的箭头可以省略;否则应在有向连线上用箭头注明步的进展方向,通常线上的箭头可以省略;否则应在有向连线上用箭头注明步的进展方向,通常为易于理解加上箭头。为易于理解加上箭头。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室4与步对应的动作或命令与步对应的动作或命令 系统每一步中输出的状态或者执行的操作标注为步对应的动作或命令,系统每一步中输出的状态或者执行的操作标注为步对应的动作或命令,用矩形框中的文字或符号表示。用矩形框中的文字或符号表示。5动作
9、A动作B5动作A动作B青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室 5子步子步(Microstep)在顺序功能图中,某一步可以包含一系列子步和转换,如图在顺序功能图中,某一步可以包含一系列子步和转换,如图6-9所示,通所示,通常这些序列表示系统的一个完整的子功能。常这些序列表示系统的一个完整的子功能。2ag2.1aeb2.2c2.42.3f2.5dg青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室顺序控制设计法的基本思路顺序控制设计法的基本思路 青岛大学青岛大学QINGDAO UNIVERSITY青岛大
10、学-西门子先进自动化技术联合实验室1单序列单序列2选择序列选择序列 3并列序列并列序列 顺序功能图的基本结构顺序功能图的基本结构 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室绘制顺序功能图的基本规则绘制顺序功能图的基本规则 1转换实现的条件转换实现的条件 在顺序功能图中,步的活动状态的进展是由转换的实现来完成的。在顺序功能图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件:转换实现必须同时满足两个条件:(1)该转换所有的前级步都是活动步;)该转换所有的前级步都是活动步;(2)相应的转换条件得到满足。)相应的转换条件得到满
11、足。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室2转换实现应完成的操作转换实现应完成的操作转换实现时应完成以下两个操作:转换实现时应完成以下两个操作:(1)使所有由有向连线与相应转换符号相连的后续步都变为活动步;)使所有由有向连线与相应转换符号相连的后续步都变为活动步;(2)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室绘制顺序功能图的注意事项绘制顺序功能图的注意事项(1)顺序功能图中
12、两个步绝对不能直接相连必须用一个转换将它们隔开;)顺序功能图中两个步绝对不能直接相连必须用一个转换将它们隔开;(2)顺序功能图中两个转换不能直接相连必须用一个步将它们隔开;)顺序功能图中两个转换不能直接相连必须用一个步将它们隔开;(3)顺序功能图中的初始步一般对应于系统等待启动的初始状态,不要遗漏这一步;)顺序功能图中的初始步一般对应于系统等待启动的初始状态,不要遗漏这一步;(4)实际控制系统应能多次重复执行同一工艺过程,因此在顺序功能图中一般应有由步)实际控制系统应能多次重复执行同一工艺过程,因此在顺序功能图中一般应有由步和有向连线组成的闭环回路,即在完成一次工艺过程的全部操作之后,应该根据
13、工艺要求和有向连线组成的闭环回路,即在完成一次工艺过程的全部操作之后,应该根据工艺要求返回到初始步或下一工作周期开始运行的第一步;返回到初始步或下一工作周期开始运行的第一步;(5)在顺序功能图中,只有当某一步的前级步是活动步时,该步才有可能变成活动步。)在顺序功能图中,只有当某一步的前级步是活动步时,该步才有可能变成活动步。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室6.3 顺序控制设计法顺序控制设计法 使用保停电路使用保停电路 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室整个程序分为两大部分,转换
14、条件控制步序标志部分和步序标志实现输出整个程序分为两大部分,转换条件控制步序标志部分和步序标志实现输出部分,这样程序结构非常清晰,为以后的调试和维护提供了极大的方便。部分,这样程序结构非常清晰,为以后的调试和维护提供了极大的方便。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青
15、岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室使用置位复位指令使用置位复位指令 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学
16、QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室6.4 使用数据块使用数据块 根据使用方法,数据块可以分为全局数据块(也叫共享数据块)和背景根据使用方法,数据块可以分为全局数据块(也叫共享数据块)和背景数据块。用户程序的所有逻辑块(包括数据块。用户程序的所有逻辑块(包括OB1)都可以访问全局数据块中的信)都可以访问全局数据块中的信息,而背景数据块是分配给特定的息,而背景数据块是分配给特定的FB,仅在所分配的,仅在所分配的FB中使用。中使用。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室添加新块对话框添加新块对话框 青岛大
17、学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室数据块编辑器数据块编辑器 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室例:计算例:计算22cab其中其中a为整数,存储在为整数,存储在MW0中,中,b为整数,存储在为整数,存储在MW2,c为实数,存储在为实数,存储在MD4中。中。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室数据单元示意图数据单元示意图 青岛大学青岛大学QIN
18、GDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室复杂数据类型的使用复杂数据类型的使用 1、数组(、数组(ARRAY)青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室2、结构(、结构(STRUCT)青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室3、字符串(、字符串(STRING)青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室4、长格式日期和时间(、长格式日期和时间(DTL)青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子
19、先进自动化技术联合实验室6.5 结构化编程结构化编程 PLC有三种编程方法:线性化编程,模块化编程和结构化编程。有三种编程方法:线性化编程,模块化编程和结构化编程。线性化编程是将整个用户程序放在主程序线性化编程是将整个用户程序放在主程序OB1中,在中,在CPU循环扫描时执行循环扫描时执行OB1中中的全部指令。其特点是结构简单、但效率低下。另一方面,某些相同或相近的操作需的全部指令。其特点是结构简单、但效率低下。另一方面,某些相同或相近的操作需要多次执行,这样会造成不必要的编程工作。再者,由于程序结构不清晰,会造成管要多次执行,这样会造成不必要的编程工作。再者,由于程序结构不清晰,会造成管理和调
20、试的不方便。所以在编写大型程序时,应避免线性化编程。理和调试的不方便。所以在编写大型程序时,应避免线性化编程。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室 模块化编程是将程序根据功能分为不同的逻辑块,且每一逻辑块完成的功能不同。模块化编程是将程序根据功能分为不同的逻辑块,且每一逻辑块完成的功能不同。在在OB1OB1中可以根据条件调用不同的功能中可以根据条件调用不同的功能FCFC或功能块或功能块FBFB。其特点是易于分工合作,调试方便。其特点是易于分工合作,调试方便。由于逻辑块是有条件的调用,所以可以提高由于逻辑块是有条件的调用,所以可以提高CPU
21、CPU的利用率。的利用率。结构化编程是将过程要求类似或相关的任务归类,在功能结构化编程是将过程要求类似或相关的任务归类,在功能FCFC或功能块或功能块FBFB中编程,中编程,形成通用解决方案。通过不同的参数调用相同的功能形成通用解决方案。通过不同的参数调用相同的功能FCFC或通过不同的背景数据块调用相或通过不同的背景数据块调用相同的功能块同的功能块FBFB。其特点是结构化编程必须对系统功能进行合理分析、分解和综合,所以。其特点是结构化编程必须对系统功能进行合理分析、分解和综合,所以对设计人员的要求较高,另外,当使用结构化编程方法时,需要对数据进行管理。对设计人员的要求较高,另外,当使用结构化编
22、程方法时,需要对数据进行管理。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室模块化编程举例模块化编程举例例例 两台电动机的起保停控制。两台电动机的起保停控制。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室例例采用模块化编程思想实现公式:采用模块化编程思想实现公式:22cab青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室临时变量的使用临时变量的使用 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室结构化编程结构化编程
23、 结构化编程有如下优点:结构化编程有如下优点:(1)程序只需生成一次,它显著地减少了编程时间。)程序只需生成一次,它显著地减少了编程时间。(2)该块只在用户存储器中保存一次,显著地降低了存储器用量。)该块只在用户存储器中保存一次,显著地降低了存储器用量。(3)该块可以被程序任意次调用,每次使用不同的地址)该块可以被程序任意次调用,每次使用不同的地址。该块采用形式参。该块采用形式参数(数(INPUT,OUTPUT或或IN/OUT参数参数)编程,当用户程序调用该块时,要编程,当用户程序调用该块时,要用实际地址(实际参数)给这些参数赋值。用实际地址(实际参数)给这些参数赋值。青岛大学青岛大学QING
24、DAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室结构化编程举例结构化编程举例1:启保停程序启保停程序 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室结构化编程举例结构化编程举例1:启保停程序启保停程序 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室结构化编程举例结构化编程举例2:求平方和的平方根求平方和的平方根青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室例例 工业生产中,经常需要对采集的模拟量进行滤波处理。本例通过将最近工业生产中,经常
25、需要对采集的模拟量进行滤波处理。本例通过将最近三个采样值求和除以三个采样值求和除以3的方式来进行软件滤波。假设模拟量输入处理后的工程的方式来进行软件滤波。假设模拟量输入处理后的工程量存储在量存储在MD44中,为浮点数数据类型。中,为浮点数数据类型。编程思路编程思路:将采集的最近的三个数保存在三个全局地址区域,每个扫描周期:将采集的最近的三个数保存在三个全局地址区域,每个扫描周期进行更新以确保是最新的三个数,三数相加求平均即可。进行更新以确保是最新的三个数,三数相加求平均即可。首先定义首先定义FC5的形式参数,的形式参数,如图如图6-41所示。所示。注意注意:定义的形式参数中定义的形式参数中,三
26、个三个采集值采集值Value1,Value2和和Value3的参数类型为的参数类型为IN_OUT型,不能为型,不能为TEMP型,型,否则将无法保存该数值。否则将无法保存该数值。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室FB 的优点如下:的优点如下:(1)当编写)当编写FC程序时,必须寻找空的标志区或数据区来存储需保持的程序时,必须寻找空的标志区或数据区来存储需保持的数据,并且要自己编写程序来保存它们。而数据,并且要自己编写程序来保存它们。而FB的静态变量
27、可由的静态变量可由STEP 7的的软件来自动保存。软件来自动保存。(2)使用静态变量可避免两次分配同一存储区的危险。)使用静态变量可避免两次分配同一存储区的危险。FB的使用的使用 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室结合前面例子,如果用结合前面例子,如果用FB块实现块实现FC1的功能,并用静态变量的功能,并用静态变量“EarlyValue,LastValue和和LatestValue”来代替原来的形式参数,如表来代替原来的形式参数,如表6-4所示,将可省略这所示,将可省略这三个形式参数,简化了块的调用。三个形式参数,简化了块的调用。定义定
28、义FB的形式参数的形式参数参数类型参数类型名称名称数据类型数据类型注释注释INRawValueREAL要处理的原始数值要处理的原始数值STATEarlyValueREAL最早的一个数最早的一个数STATLastValueREAL较早的一个数较早的一个数STATLatestValueREAL最近的一个数最近的一个数OUTProcessedValueREAL处理后的数处理后的数TEMPtemp1REAL中间结果中间结果TEMPtemp2REAL中间结果中间结果青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSI
29、TY青岛大学-西门子先进自动化技术联合实验室6.6 使用组织块使用组织块 能够启动能够启动OB的事件的事件 事件类别事件类别OB 号号OB 数目数目启动事件启动事件OB 优先级优先级优先级优先级组组循环程序循环程序1,=200=1启动或结束上一个循环启动或结束上一个循环OB11启动启动100,=200=0STOP到到RUN的转换的转换1延时中断延时中断=200最多最多 4 个个延迟时间结束延迟时间结束32循环中断循环中断=200等长总线循环时间结束等长总线循环时间结束4硬件中断硬件中断=200最多最多 50 个(通个(通过过 DETACH 和和 ATTACH 指令指令可使用更多)可使用更多)上
30、升沿(最多上升沿(最多 16 个)个)下降沿(最多下降沿(最多 16 个)个)5HSC:计数值:计数值=参考值(最多参考值(最多 6 次)次)HSC:计数方向变化(最多:计数方向变化(最多 6 次)次)HSC:外部复位(最多:外部复位(最多 6 次)次)6诊断错误中诊断错误中断断820 或或 1模块检测到错误模块检测到错误9时间错误时间错误800 或或 1超出最大循环时间超出最大循环时间263仍在执行所调用的仍在执行所调用的 OB队列溢出队列溢出因中断负载过高而导致中断丢失因中断负载过高而导致中断丢失青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室不
31、触发不触发OB启动的事件启动的事件事件类别事件类别事件事件事件优先级事件优先级系统响应系统响应插入插入/卸下卸下插入插入/卸下模块卸下模块21STOP访问错误访问错误过程映像更新期间的过程映像更新期间的 I/O 访问错误访问错误22忽略忽略编程错误编程错误块中的编程错误(如块中的编程错误(如果激活了本地错误处果激活了本地错误处理,则会执行块程序理,则会执行块程序中的错误处理程序)中的错误处理程序)23STOPI/O 访问错误访问错误块中的块中的 I/O 访问错误访问错误(如果激活了本地错(如果激活了本地错误处理,则会执行块误处理,则会执行块程序中的错误处理程程序中的错误处理程序)序)24STO
32、P超出最大循环时间两超出最大循环时间两倍倍超出最大循环时间两超出最大循环时间两倍倍27STOP青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室启动组织块启动组织块 接通接通CPU后,后,S7-1200 CPU在开始执行循环用户程序之前首先执行启动程序。通过适在开始执行循环用户程序之前首先执行启动程序。通过适当编写启动当编写启动OB,可以在启动程序中为循环程序指定一些初始化变量。对启动,可以在启动程序中为循环程序指定一些初始化变量。对启动OB的数量没的数量没有要求,即可以在用户程序中创建一个或多个启动有要求,即可以在用户程序中创建一个或多个启动OB,或
33、者一个也不创建。启动程序由,或者一个也不创建。启动程序由一个或多个启动一个或多个启动 OB(OB编号为编号为100或大于等于或大于等于200)组成。)组成。S7-1200 CPU支持三种启动模式:不重新启动模式,暖启动支持三种启动模式:不重新启动模式,暖启动-RUN 模式,暖启动模式,暖启动-断电前断电前的工作模式。不管选择哪种启动模式,已编写的所有启动的工作模式。不管选择哪种启动模式,已编写的所有启动OB都会执行。都会执行。S7-1200暖启动期间,暖启动期间,所有非保持性位存储器内容都将删除并且非保持性数据块内容将所有非保持性位存储器内容都将删除并且非保持性数据块内容将复位为来自装载存储器
34、的初始值。保持性位存储器和数据块内容将保留。复位为来自装载存储器的初始值。保持性位存储器和数据块内容将保留。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室例:例:S7-1200中要利用实时时钟,如交通灯不同时间段切换不同的控制中要利用实时时钟,如交通灯不同时间段切换不同的控制策略等,则启动运行时,需要检测实时时钟是否丢失,若丢失,则警示策略等,则启动运行时,需要检测实时时钟是否丢失,若丢失,则警示灯灯Q0.7亮。亮。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVE
35、RSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室循环中断组织块循环中断组织块 循环中断组织块用于按一定时间间隔循环执行中断程序,例如周期性循环中断组织块用于按一定时间间隔循环执行中断程序,例如周期性地定时执行闭环控制系统的地定时执行闭环控制系统的PIDPID运算程序等。循环中断运算程序等。循环中断OBOB与循环程序执行与循环程序执行无关。循环中断无关。循环中断OBOB的启动时间通过循环时间基数和相位偏移量来指定。循的启动时间通过循环时间基数和相位偏移量来指定。循环时间基数定义循环中断环时间基数定义循环
36、中断OBOB启动的时间间隔,是基本时钟周期启动的时间间隔,是基本时钟周期1 ms1 ms的整数的整数倍,循环时间的设置范围为倍,循环时间的设置范围为1 ms1 ms至至60000 ms60000 ms。相位偏移量是与基本时钟周。相位偏移量是与基本时钟周期相比启动时间所偏移的时间。如果使用多个循环中断期相比启动时间所偏移的时间。如果使用多个循环中断OBOB,当这些循环中,当这些循环中断断OBOB的时间基数有公倍数时,可以使用该偏移量防止同时启动。的时间基数有公倍数时,可以使用该偏移量防止同时启动。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室例:使用
37、循环中断组织块,每隔例:使用循环中断组织块,每隔1 1秒钟秒钟MW20MW20的值加的值加1 1。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室硬件中断组织块硬件中断组织块 可以使用硬件中断可以使用硬件中断OB来响应特定事件。只能将触发报警的事件分配来响应特定事件。只能将触发报警的事件分配给一个硬件中断给一个硬件中断OB,而一个硬件中断,而一个硬件中断OB可以分配给多个事件。最多可可以分配给多个事件。最多可使用使用50个硬件中断个硬件中断OB,它们在用户程序中彼此独立。,它们在用户程序中彼此独立。下面我们通过一个简单例子演示硬件中断下面我们通过一个
38、简单例子演示硬件中断OB的使用。的使用。S7-1200 CPU1214C集成输入点可以逐点设置中断特性。新建一个硬件中断组织集成输入点可以逐点设置中断特性。新建一个硬件中断组织块块OB200,通过硬件中断在,通过硬件中断在I0.0上升沿时将上升沿时将Q1.0置位,在置位,在I0.1下降沿时下降沿时将将Q1.0复位。复位。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室延
39、时中断组织块延时中断组织块 可以采用延时中断在过程事件出现后延时一定的时间再执行中断程序;硬件中断则可以采用延时中断在过程事件出现后延时一定的时间再执行中断程序;硬件中断则用于需要快速响应的过程事件,事件出现时马上中止循环程序,执行对应的中断程序。用于需要快速响应的过程事件,事件出现时马上中止循环程序,执行对应的中断程序。PLC中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环扫描周期的影响。使用延时中断可以获得精度较高的延时,延时中断以毫秒(扫描周期的影响。使用延时中断可以获得精度较高的延时,延时中断以毫秒
40、(ms)为单)为单位定时。位定时。延时中断延时中断OB在经过操作系统中一段可组态的延迟时间后启动。在调用中断指令在经过操作系统中一段可组态的延迟时间后启动。在调用中断指令SRT_DINT后开始计算延迟时间。延迟时间的测量精度为后开始计算延迟时间。延迟时间的测量精度为 1 ms。延迟时间到达后可立即。延迟时间到达后可立即再次开始计时。可以使用中断指令再次开始计时。可以使用中断指令CAN_DINT阻止执行尚未启动的延时中断。阻止执行尚未启动的延时中断。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室 下面通过一个简单例子演示延时中断下面通过一个简单例子演
41、示延时中断OB的组态方法。要求:在的组态方法。要求:在I0.0的的上升沿用上升沿用SRT_DINT启动延时中断启动延时中断OB202,10s后后OB202被调用,在被调用,在OB202中将中将Q1.0置位,并立即输出。置位,并立即输出。青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室如果发生以下事件之一,操作系统将调用时间错误中断如果发生以下事件之一,操作系统将调用时间错误中断OB:(1)循环程序超出最大循环时间。)循环程序超出最大循环时间。(2)被调用)被调用OB(如延时中断(如延时中断OB和循环中断和循环中断OB)当前正在执行。)当前正在执行。(
42、3)中断)中断OB队列发生溢出。队列发生溢出。(4)由于中断负载过大而导致中断丢失。)由于中断负载过大而导致中断丢失。在用户程序中只能使用一个时间错误中断在用户程序中只能使用一个时间错误中断OB。时间错误组织块时间错误组织块 青岛大学青岛大学QINGDAO UNIVERSITY青岛大学-西门子先进自动化技术联合实验室诊断组织块诊断组织块 可以为具有诊断功能的模块启用诊断错误中断功能,使模块能检测可以为具有诊断功能的模块启用诊断错误中断功能,使模块能检测到到I/O状态变化,因此模块会在出现故障(进入事件)或故障不再存在(状态变化,因此模块会在出现故障(进入事件)或故障不再存在(离开事件)时触发诊断错误中断。如果没有其它中断离开事件)时触发诊断错误中断。如果没有其它中断OB激活,则调用激活,则调用诊断错误中断诊断错误中断OB;若已经在执行其它中断;若已经在执行其它中断OB,诊断错误中断将置于同,诊断错误中断将置于同优先级的队列中。优先级的队列中。在用户程序中只能使用一个诊断错误中断在用户程序中只能使用一个诊断错误中断OB。