电气控制与PLC应用第4章S7200PLC的指令系统_第1页
电气控制与PLC应用第4章S7200PLC的指令系统_第2页
电气控制与PLC应用第4章S7200PLC的指令系统_第3页
电气控制与PLC应用第4章S7200PLC的指令系统_第4页
电气控制与PLC应用第4章S7200PLC的指令系统_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 s7-200系列系列plc主机中有两类指令集:主机中有两类指令集: iec11313指令集指令集:是国际电工委员会制定的是国际电工委员会制定的plc11313programming language(编程语言编程语言)中推荐的标准语言,只能用梯形图(中推荐的标准语言,只能用梯形图(lad)和功)和功能块图(能块图(fbd)编程语言编程,通常指令执行时)编程语言编程,通常指令执行时间较长。间较长。u simatic指令集指令集:s7-200 plc设计的编程语言,设计的编程语言,该指令通常执行时间短,而且可以用梯形图该指令通常执行时间短,而且可以用梯形图(lad)、功能块图()、功能块图(fb

2、d)和语句表()和语句表(stl)三种编程语言。三种编程语言。 u梯形图(梯形图(lad)u语句表(语句表(stl)u功能块图(功能块图(fbd) u 主要是与位相关的输入输出及触点的简单连主要是与位相关的输入输出及触点的简单连接。接。u 基本逻辑指令在语句表语言中是指对位存储基本逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算,单元的简单逻辑运算,u 在梯形图中是指对触点的简单连接和对标准在梯形图中是指对触点的简单连接和对标准线圈的输出。线圈的输出。 主要包括主要包括: :标准触点指令标准触点指令正负跳变指令正负跳变指令置位指令置位指令复位指令等复位指令等1. 标准触点指令标准触点指令

3、u 标准触点指令有标准触点指令有ld、ldn、a、an、o、on、not、=指令(语句表)。这些指令对存储器位在逻辑堆栈中进指令(语句表)。这些指令对存储器位在逻辑堆栈中进行操作。行操作。u 由于堆栈存储单元数的限制,语句表中由于堆栈存储单元数的限制,语句表中a、o、an、on指令最多可以连用有限次。同样,梯形图中,最多一指令最多可以连用有限次。同样,梯形图中,最多一次串联或并联的触点数也有一定限制,功能框图中次串联或并联的触点数也有一定限制,功能框图中and和和or指令盒中输入的个数也不能超过这个范围指令盒中输入的个数也不能超过这个范围 u 标准触点指令中如果有操作数,则为标准触点指令中如果

4、有操作数,则为bool型,操作数型,操作数的编址范围可以是:的编址范围可以是:i、q、m、sm、t、c、s、vl。 (1)装入常开指令:)装入常开指令:ld 在梯形图中,每个从左母线开始的单一逻辑行、每个程序在梯形图中,每个从左母线开始的单一逻辑行、每个程序块(逻辑梯级)的开始、指令盒的输入端都必须使用块(逻辑梯级)的开始、指令盒的输入端都必须使用ldld和和ldnldn这两条指令。以常开触点开始时用这两条指令。以常开触点开始时用ldld指令,以常闭触点指令,以常闭触点开始时则用开始时则用ldnldn指令。本指令对各类内部编程元件的常开触指令。本指令对各类内部编程元件的常开触点都适用。点都适用

5、。指令格式:指令格式:ld bit; 例:例: ld i0.2(2)装入常闭指令:)装入常闭指令:ldn 每个以常闭触点开始的逻辑行都使用这一指令,各类内部每个以常闭触点开始的逻辑行都使用这一指令,各类内部编程元件的常闭触点都适用。编程元件的常闭触点都适用。指令格式:指令格式:ldn bit; 例:例: ldn i0.2 (3)与常开指令:)与常开指令:a 即串联一个常开触点。由于堆栈存储器数量的限制,梯形即串联一个常开触点。由于堆栈存储器数量的限制,梯形图中,一次最多可以有七个常开触点串联。图中,一次最多可以有七个常开触点串联。指令格式:指令格式:a bit; 例:例: a m2.4 (4)

6、与常闭指令:与常闭指令:an 即在梯形图中串联一个常闭触点。在一个逻辑行中,最多即在梯形图中串联一个常闭触点。在一个逻辑行中,最多可以连用六次。可以连用六次。指令格式:指令格式:an bit; 例:例: an m2.4 (5)或常开指令:或常开指令:o o 即并联一个常开触点。在梯形图中,一次最多可以有七个即并联一个常开触点。在梯形图中,一次最多可以有七个触点相互并联。触点相互并联。指令格式:指令格式:o bit; 例:例: o m2.6 (6)或常闭指令:)或常闭指令:on 即并联一个常闭触点。在梯形图中,一次最多可以连用六即并联一个常闭触点。在梯形图中,一次最多可以连用六次。次。指令格式:

7、指令格式:on bit; 例:例: on m2.6 (7)输出指令:输出指令:= 将逻辑运算结果输出到指定存储器位或输出继电器对应的将逻辑运算结果输出到指定存储器位或输出继电器对应的映像寄存器位,以驱动本位线圈。映像寄存器位,以驱动本位线圈。指令格式:指令格式:= bit; 例:例: = q2.6 u 在语句表中,在语句表中,ld、ldn、a、an、o、on、这几条指令的执行对逻辑堆栈的影响分别如表这几条指令的执行对逻辑堆栈的影响分别如表5-7、表表5-8及其后的说明。及其后的说明。 u 指令指令ld i0.1(假设(假设i0.1=1)执行情况如表)执行情况如表5-7所示。如果是所示。如果是l

8、dn指令,则将操作数取反后再装入栈顶,其他操作相同。指令,则将操作数取反后再装入栈顶,其他操作相同。 表5-7 ld i0.1的执行 名名 称称执执 行行 前前执执 行行 后后说说 明明stack0s01将新值将新值i0.1=1装入堆栈装入堆栈 stack1s1s0由由s0下移一个单元得到下移一个单元得到 stack2s2s1由由s1下移一个单元得到下移一个单元得到stack3s3s2由由s2下移一个单元得到下移一个单元得到stack4s4s3由由s3下移一个单元得到下移一个单元得到stack5s5s4由由s4下移一个单元得到下移一个单元得到stack6s6s5由由s5下移一个单元得到下移一个

9、单元得到stack7s7s6由由s6下移一个单元得到下移一个单元得到stack8s8s7由由s7下移一个单元得到下移一个单元得到 原值原值s0s0串行串行下移一下移一个单元个单元, ,其余以其余以此类推。此类推。 原原s8s8自自动丢动丢失。失。 u 指令指令a i0.2(假设(假设i0.2=0)执行情况如表)执行情况如表5-8所示。如果所示。如果是是anan指令,则将操作数取反后再和栈顶值相与,结果放回指令,则将操作数取反后再和栈顶值相与,结果放回栈顶。即:栈顶。即: 1 1* *1=1 s0 1=1 s0 表5-8 指令a i0.2的执行 名名 称称执执 行行 前前执执 行行 后后说说 明

10、明stack010执行前栈顶值为执行前栈顶值为1。执行是用栈顶值和指令执行是用栈顶值和指令操作数(操作数(i0.2的值为的值为0)进行与运算,结果放回进行与运算,结果放回栈顶。栈顶。即:即:s0*i0.2=1*0=0 s0 stack1s1s1stack2s2s2stack3s3s3stack4s4s4stack5s5s5stack6s6s6stack7s7s7stack8s8s8u程序实例:仔细比较不同编程工具的区别与联系。程序实例:仔细比较不同编程工具的区别与联系。 ld i0.0 /装入常开触点o i0.1 /或常开触点a i0.2 /与常开触点= q0.0 /输出触点, /如果本梯级中

11、将i0.1的触点改 /为q0.0的常开触点,则成为电 /机起动停止控制环节的梯形图 ldn i0.0 /装入常闭触点on i0.0 /或常闭触点an i0.2 /与常闭触点= q0.1 /输出触点 ld i0.0 /o i0.1 /a i0.2 /not /取非,即输出反相= q0.3 /图5-9 标准触点lad和stl例 u程序执行的时序图如图程序执行的时序图如图5-11所示。所示。 图5-11 时序图 由于取非指令由于取非指令notnot缘故,缘故,q0.0q0.0与与q0.3q0.3反相反相2. 正负跳变指令正负跳变指令 u 正负跳变指令在梯形图中以触点形式使用。用正负跳变指令在梯形图中

12、以触点形式使用。用于检测脉冲的正跳变(上升沿)或负跳变(下降于检测脉冲的正跳变(上升沿)或负跳变(下降沿),利用跳变让能流接通一个扫描周期,即可沿),利用跳变让能流接通一个扫描周期,即可以产生一个扫描周期长度的微分脉冲,常用此脉以产生一个扫描周期长度的微分脉冲,常用此脉冲触发内部继电器线圈。冲触发内部继电器线圈。(1)正跳变指令:正跳变指令:eu 正跳变触点检测到脉冲的每一次正跳变后,产生一个微分正跳变触点检测到脉冲的每一次正跳变后,产生一个微分脉冲。脉冲。指令格式:指令格式:eu (无操作数)(无操作数) (2)负跳变指令:)负跳变指令:ed 负跳变触点检测到脉冲的每一次负跳变后,产生一个微

13、分负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。脉冲。指令格式:指令格式:ed (无操作数)(无操作数)正、负跳变触点指令编程举例如图正、负跳变触点指令编程举例如图5-125-12所示。所示。 图5-12 正、负跳变触点指令编程 一个扫描周期长度一个扫描周期长度 3. 置位和复位指令置位和复位指令 u 置位即置置位即置1,复位即置,复位即置0。置位和复位指令可以。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可将位存储区的某一位开始的一个或多个(最多可达达255个)同类存储器位置个)同类存储器位置1或置或置0。这两条指令。这两条指令在使用时需指明三点:在使用时需指明三点:

14、操作性质操作性质、开始位开始位和和位的位的数量数量。各操作数类型及范围如表。各操作数类型及范围如表5-9所示。所示。 表5-9 置位和复位指令操作数类型及范围 操作数操作数范范 围围 类类 型型 位位biti,q,m,sm,tc,v,s,l bool型型 数量数量n vb,ib,qb,mb,smb,lb,sb,ac,*vd,*ac,*ld byte型型 (最大(最大255)(1)置位指令:)置位指令:s 将位存储区的指定位(位将位存储区的指定位(位bit)开始的)开始的n个同类存储器位置个同类存储器位置位。位。指令格式:指令格式: s bit, n; 例:例: s q0.0, 1 (2)服位指

15、令:)服位指令:r 将位存储区的指定位(位将位存储区的指定位(位bit)开始的)开始的n个同类存储器位复个同类存储器位复位。当用复位指令时,如果是对定时器位。当用复位指令时,如果是对定时器t位或计数器位或计数器c位进位进行复位,则定时器或计数器位被复位,同时,定时器或计数行复位,则定时器或计数器位被复位,同时,定时器或计数器的当前值被清零。器的当前值被清零。指令格式:指令格式: r bit, n; 例:例: r q0.2, 3 在语句表(在语句表(stl)中,当栈顶值为)中,当栈顶值为1时,才能执行置位指令时,才能执行置位指令s或复位指令或复位指令r。置位后即使栈顶值变为。置位后即使栈顶值变为

16、0,仍保持置位;复,仍保持置位;复位后即使栈顶值变为位后即使栈顶值变为0,仍保持复位。可见这两条指令均有,仍保持复位。可见这两条指令均有“记忆记忆”功能。功能。置位和复位指令应用编程序举例如图置位和复位指令应用编程序举例如图5-13所示。所示。 图图5-13 置位复位指令置位复位指令u 立即指令允许对输入和输出点进行快速和直立即指令允许对输入和输出点进行快速和直接存取。当用立即指令读取输入点的状态时,接存取。当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;相应的输入映像寄存器中的值并未发生更新;用立即指令访问输出点时,访问的同时,相应用立即指令访问输出点时,访问的同时,

17、相应的输出寄存器的内容也被刷新。只有输入继电的输出寄存器的内容也被刷新。只有输入继电器器i和输出继电器和输出继电器q可以使用立即指令。可以使用立即指令。 1. 立即触点指令立即触点指令 u 在每个标准触点指令的后面加在每个标准触点指令的后面加“i”。指令执行。指令执行时,立即读取物理输入点的值,但是不刷新相应时,立即读取物理输入点的值,但是不刷新相应映像寄存器的值。映像寄存器的值。这类指令包括:这类指令包括:ldi、ldni、ai、ani、oi和和oni。下面。下面以以ldi指令为例。指令为例。指令格式:指令格式:ldi bit(bit只能是只能是i类型)类型)例:例: ldi i0.2 2.

18、 立即输出指令立即输出指令3. 立即置位指令立即置位指令 =i,立即输出指令。,立即输出指令。用立即指令访问输出点时,把栈顶值用立即指令访问输出点时,把栈顶值立即复制到指令所指定的物理输出点,同时,相应的输出映立即复制到指令所指定的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。像寄存器的内容也被刷新。指令格式:指令格式:=i bit(bit只能是只能是q类型)类型)例:例: =i q0.2 si,立即置位指令。,立即置位指令。用立即置位指令访问输出点时,从指用立即置位指令访问输出点时,从指令所指出的位(令所指出的位(bit)开始的)开始的n个(最多为个(最多为128个)物理输出个)物理

19、输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。新。指令格式:指令格式:si bit, n; 例:例: si q0.0, 2 4. 立即复位指令立即复位指令 ri,立即复位指令。,立即复位指令。用立即复位指令访问输出点时,从指用立即复位指令访问输出点时,从指令所指出的位(令所指出的位(bit)开始的)开始的n个(最多为个(最多为128个)物理输出个)物理输出点被立即复位,同时,相应的输出映像寄存器的内容也被刷点被立即复位,同时,相应的输出映像寄存器的内容也被刷新。新。各操作数类型及范围如表各操作数类型及范围如表5-9所示。所示。

20、指令格式:指令格式: ri bit, n; 例:例: ri q0.0, 1 表5-10 立即置位和立即复位指令操作数类型及范围 操作数操作数范范 围围 类类 型型 位位bitqbool型型 数量数量n vb,ib,qb,mb,smb,lb,sb,ac,*vd,*ac,*ld ,常数,常数 byte型型 (最大(最大128)u应用举例:应用举例: ld i0.0 /装入常开触点 = q0.0 /输出触点,非立即 =i q0.1 /立即输出触点 si q0.2,1 /从q0.2开始的1个触点被立即置1 ldi i0.0 /立即输入触点指令 = q0.3 /输出触点,非立即图5-14 立即指令程序

21、图5-15 立即指令时序图 u 基本逻辑指令涉及可编程元件的触点和线圈基本逻辑指令涉及可编程元件的触点和线圈的简单连接,不能表达在梯形图中触点的复杂的简单连接,不能表达在梯形图中触点的复杂连接结构。复杂逻辑指令主要用来描述对触点连接结构。复杂逻辑指令主要用来描述对触点进行的复杂连接,同时,它们对逻辑堆栈也可进行的复杂连接,同时,它们对逻辑堆栈也可以实现非常复杂的操作。以实现非常复杂的操作。u 本类指令包括:本类指令包括:aldald、oldold、lpslps、lrdlrd、lpplpp和和ldslds,这些指令中除,这些指令中除ldslds外,其余指令都无操外,其余指令都无操作数。作数。 1

22、. 栈装载与指令栈装载与指令 2. 栈装载或指令栈装载或指令 old,栈装载或指令(或块)。用于将串联电路块进行并,栈装载或指令(或块)。用于将串联电路块进行并联连接。执行联连接。执行old指令,将堆栈中的第一级和第二级的值指令,将堆栈中的第一级和第二级的值进行逻辑进行逻辑“或或”操作,结果置于栈顶(堆栈第一级),并将操作,结果置于栈顶(堆栈第一级),并将堆栈中其余各级的内容依次上弹一级。堆栈中其余各级的内容依次上弹一级。 ald,栈装载与指令(与块)。用于将并联电路块进行串,栈装载与指令(与块)。用于将并联电路块进行串联连接。执行联连接。执行ald指令,将堆栈中的第一级和第二级的值进指令,将

23、堆栈中的第一级和第二级的值进行逻辑行逻辑“与与”操作,结果置于栈顶(堆栈第一级),并将堆操作,结果置于栈顶(堆栈第一级),并将堆栈中的第三级至第九级的值依次上弹一级。栈中的第三级至第九级的值依次上弹一级。 u 栈装载与指令和栈装载或指令的操作过程如图栈装载与指令和栈装载或指令的操作过程如图5-16所示,图中所示,图中“x”表示不确定值。表示不确定值。 图5-16 栈装载与指令和栈装载或指令的操作过程 3. 逻辑推入栈指令逻辑推入栈指令 4. 逻辑读栈指令逻辑读栈指令 lps lps,逻辑推入栈指令(分支或主控指令)。用于复制栈,逻辑推入栈指令(分支或主控指令)。用于复制栈顶的值并将这个值推入栈

24、顶,原堆栈中各级栈值依次下压一顶的值并将这个值推入栈顶,原堆栈中各级栈值依次下压一级。在梯形图中的分支结构中,用于生成一条新的母线,左级。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。 lrd,逻辑读栈指令。把堆栈中第二级的值复制到栈顶。,逻辑读栈指令。把堆栈中第二级的值复制到栈顶。堆栈没有推入栈或弹出栈操作,但原栈顶值被新的复制值取堆栈没有推入栈或弹出栈操作,但原栈顶值被新的复制值取代。在梯形图中的分支结构中,当左侧为主控逻辑块时,开代。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二

25、个和后边更多的从逻辑块。应注意,始第二个和后边更多的从逻辑块。应注意,lps后第一个和后第一个和最后一个从逻辑块不用本指令。最后一个从逻辑块不用本指令。 5. 逻辑栈弹出指令逻辑栈弹出指令 6. 装入堆栈指令装入堆栈指令 lpp lpp,逻辑栈弹出指令(分支结束或主控复位指令)。堆,逻辑栈弹出指令(分支结束或主控复位指令)。堆栈作弹出栈操作,将栈顶值弹出,原堆栈中各级栈值依次上栈作弹出栈操作,将栈顶值弹出,原堆栈中各级栈值依次上弹一级,堆栈第二级的值成为新的栈顶值。在梯形图中的分弹一级,堆栈第二级的值成为新的栈顶值。在梯形图中的分支结构中,用于将支结构中,用于将lpslps指令生成的一条新母线

26、进行恢复。应指令生成的一条新母线进行恢复。应注意,注意,lpslps与与lpplpp必须配对使用。必须配对使用。 lds lds,装入堆栈指令。复制堆栈中的第级的值到栈顶。原,装入堆栈指令。复制堆栈中的第级的值到栈顶。原栈中各级栈值依次下压一级,栈底值丢失。栈中各级栈值依次下压一级,栈底值丢失。 u lps、lrd、lpp、lds指令操作过程如图指令操作过程如图5-17所示。所示。 图5-17 lps、lrd、lpp、lds指令的操作过程 u应用应用举例:举例: ld i0.0 /装入常开触点o i2.2 /或常开触点ld i0.1 /被串的块开始ld i2.0 /被并路开始a i2.1 /与

27、常开触点old /栈装载或,并路结束ald /栈装载与,串路结束= q5.0 /输出触点ld i0.0 /装入常开触点lps /逻辑推入栈,主控a i0.5 /与常开触点= q7.0 /输出触点lrd /逻辑读栈,新母线ld i2.1 /装入常开触点o i1.3 /或常开触点ald /栈装载与= q6.0 /输出触点lpp /逻辑弹出栈,母线复原ld i3.1 /装入常开出触点o i2.0 /或常开触点ald /栈装载与= q1.3 /输出触点图5-18 复杂逻辑指令的应用 1. 取非触点指令取非触点指令 not not,取非触点指令。用来改变能流的状态。能流到达取,取非触点指令。用来改变能流

28、的状态。能流到达取非触点时,能流就停止;能流未到达取非触点时,能流就通非触点时,能流就停止;能流未到达取非触点时,能流就通过。过。 在语句表中,取非触点指令对堆栈的栈顶作取反操作,改在语句表中,取非触点指令对堆栈的栈顶作取反操作,改变栈顶值。栈顶值由变栈顶值。栈顶值由0 0变为变为1 1,或者由,或者由1 1变为变为0 0。取非触点指令。取非触点指令无操作数。无操作数。 图5-19 取非触点指令编程 2. 空操作指令空操作指令 nop nop,空操做指令。使能输入有效时,执行空操作指令。,空操做指令。使能输入有效时,执行空操作指令。空操做指令不影响用户程序的执行,操作数空操做指令不影响用户程序

29、的执行,操作数n n是标号,是一是标号,是一个个0 0225225的常数。的常数。 ld i0.0 /使能输入nop 30 /空操作指令,标号为30 图5-20 空操作指令编程 1. 定时器指令定时器指令 定时器是由集成电路构成,是定时器是由集成电路构成,是plcplc中的重要硬件编程元件。中的重要硬件编程元件。定时器编程时提前输入时间预设值,在运行时当定时器的输定时器编程时提前输入时间预设值,在运行时当定时器的输入条件满足时开始计时,当前值从入条件满足时开始计时,当前值从0 0开始按一定的时间单位开始按一定的时间单位增加,当定时器的当前值达到预设值时,定时器发生动作,增加,当定时器的当前值达

30、到预设值时,定时器发生动作,发出中断请求,以便发出中断请求,以便plcplc响应而作出相应的动作。此时它对响应而作出相应的动作。此时它对应的常开触点闭合,常闭触点断开。应的常开触点闭合,常闭触点断开。系统提供系统提供3 3种定时指令:种定时指令:tonton(通电延时)、(通电延时)、tonrtonr(有记忆(有记忆通电延时)和通电延时)和toftof(断电延时)。(断电延时)。s7-200s7-200定时器的分辨率(时间增量定时器的分辨率(时间增量/ /时间单位时间单位/ /分辨率)有分辨率)有3 3个等级:个等级:1ms1ms、10ms10ms和和100ms100ms,分辨率等级和定时器号

31、关系如,分辨率等级和定时器号关系如表表5-115-11所示。所示。 表5-11 定时器号和分辨率定时器类型定时器类型分辩率分辩率/ms计时范围计时范围/s定时器号定时器号tontof 132.767t32,t9610327.67t33t36,t97t1001003276.7t37t63,t101t255tonr 132.767t0,t6410327.67t1t4,t65t681003276.7t5t31,t6995定时时间的计算:定时时间的计算:t=ptt=pts s (t t为实际定时时间,为实际定时时间,ptpt为预设值,为预设值,s s为分辨率等级)为分辨率等级)例如:例如:tonton

32、指令用定时器指令用定时器t33t33,预设值为,预设值为125125,则实际定时时,则实际定时时间间 t=125 t=125 10=1250ms 10=1250ms 定时器指令操作数有定时器指令操作数有3 3个:个:编号编号、预设值预设值和和使能输入使能输入。1 1)编号:)编号:用定时器的名称和它的常数编号(最大用定时器的名称和它的常数编号(最大255255)来表示,即)来表示,即txxxtxxx,如:如:t4t4。t4t4不仅仅是定时器的编号,它还包含两方面的变量信息:不仅仅是定时器的编号,它还包含两方面的变量信息:定时器位定时器位和和定定时器当前值时器当前值。定时器位:定时器位:定时器位

33、与时间继电器的输出相似,当定时器的当前值达到定时器位与时间继电器的输出相似,当定时器的当前值达到预设值预设值ptpt时,该位被置为时,该位被置为“1”1”。定时器当前值:定时器当前值:存储定时器当前所累计的时间,它用存储定时器当前所累计的时间,它用1616位符号整数来表位符号整数来表示,故最大计数值为示,故最大计数值为3276732767。2 2)预设值)预设值ptpt:数据类型为数据类型为intint型。寻址范围可以是型。寻址范围可以是vwvw、iwiw、qwqw、mwmw、swsw、smwsmw、lwlw、aiwaiw、t t、c c、acac、* *vdvd、* *acac、* *ldl

34、d和常数。和常数。3 3)使能输入(只对)使能输入(只对ladlad和和fbdfbd):):boolbool型,可以是型,可以是i i、q q、m m、smsm、t t、c c、v v、s s、l l和能流。和能流。 可以用复位指令来对可以用复位指令来对3 3种定时器复位,复位指令的执行结果是:使定时种定时器复位,复位指令的执行结果是:使定时器位变为器位变为offoff:定时器当前值变为:定时器当前值变为0 0。 (1)接通延时定时器指令:)接通延时定时器指令:ton 用于单一间隔定时。上电周期或首用于单一间隔定时。上电周期或首次扫描,定时器位次扫描,定时器位offoff,当前值为,当前值为0

35、 0。使能输入接通时,定时器位为使能输入接通时,定时器位为offoff,当前值从当前值从0 0开始计数时间,当前值达开始计数时间,当前值达到预设值时,定时器位为到预设值时,定时器位为onon,当前值,当前值连续计数到连续计数到3276732767。使能输入断开,。使能输入断开,定时器自动复位,即定时器位定时器自动复位,即定时器位offoff,当前值为当前值为0 0。 填填“计计定时器号定时器号”, ,如:如:t35t35填填“预设值预设值”,如:,如:100指令格式:指令格式:ton txxxton txxx,p pt t例:例: ton t120ton t120,8 8 (2)有记忆接通延时

36、定时器指令:)有记忆接通延时定时器指令:tonr 用于对许多间隔的累计定时。上用于对许多间隔的累计定时。上电周期或首次扫描,定时器位电周期或首次扫描,定时器位offoff,当前值保持。使能输入接通时,定当前值保持。使能输入接通时,定时器位为时器位为offoff,当前值从,当前值从0 0开始累计开始累计计数时间。使能输入断开,定时器计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到持值继续计数,当累计当前值达到预设值时,定时器位预设值时,定时器位onon,当前值连,当

37、前值连续计数到续计数到3276732767。 填填“计计定时器号定时器号”, ,如:如:t31t31填填“预设值预设值”,如:,如:100tonrtonr定时器只能用复位指令进行复位操作,使当前值清零。定时器只能用复位指令进行复位操作,使当前值清零。指令格式:指令格式:tonr txxxtonr txxx,ptpt; 例:例: tonr t20tonr t20,63 63 (3)断开延时定时器指令:)断开延时定时器指令:tof 用于断开后的单一间隔定时。上电用于断开后的单一间隔定时。上电周期或首次扫描,定时器位周期或首次扫描,定时器位offoff,当,当前值为前值为0 0。使能输入接通时,定时

38、器。使能输入接通时,定时器位为位为onon,当前值为,当前值为0 0。当使能输入由。当使能输入由接通到断开时,定时器开始计数,接通到断开时,定时器开始计数,当前值达到预设值时,定时器位当前值达到预设值时,定时器位offoff,当前值等于预设值,停止计数。当前值等于预设值,停止计数。toftof复位后,如果使能输入再有从复位后,如果使能输入再有从onon到到offoff的负跳变,则可实现再次启动。的负跳变,则可实现再次启动。 填填“计计定时器号定时器号”, ,如:如:t35t35填填“预设值预设值”,如:,如:100指令格式:指令格式:tof txxxtof txxx,ptpt; 例例 tof

39、t35tof t35,6 6 ld i0.0 /使能输入 ton t35,+4 /通电延时定时器,延时时间为40ms ld i0.0 /使能输入 tonr t2.+10 /有记忆通电延时定时器, /延时时间为1000ms ld i0.0 /使能输入 tof t36,+3 /断电延时定时器,延时时间为30ms (4)应用)应用 举例举例 :图5-21 定时器特性 t35t35为通电延时定时器为通电延时定时器 t2t2为有记忆通电延时定时器为有记忆通电延时定时器 t36t36为断电延时定时器为断电延时定时器 u 上述梯形图程序中输入输出执行时序关系如图上述梯形图程序中输入输出执行时序关系如图5-2

40、2所示。所示。 图5-22 定时器时序 (5)应用定时器指令应注意的几个问题)应用定时器指令应注意的几个问题 不能把一个定时器号同时用作断开延时定时器(不能把一个定时器号同时用作断开延时定时器(toftof)和接通延时定时器(和接通延时定时器(tonton)。)。 使用复位(使用复位(r r)指令对定时器复位后,定时器位位)指令对定时器复位后,定时器位位“0 0”,定时器当前值为定时器当前值为“0 0”。 有记忆接通延时定时器(有记忆接通延时定时器(tonrtonr)只能通过复位指令进行)只能通过复位指令进行复位。复位。 对于断开延时定时器(对于断开延时定时器(toftof),需要输入端有一个

41、负跳),需要输入端有一个负跳变(由变(由onon到到offoff)的输入信号启动计时。)的输入信号启动计时。 不同精度的定时器,它们当前值的刷新周期是不同的,不同精度的定时器,它们当前值的刷新周期是不同的,具体情况如下:具体情况如下: v 1)1ms分辨率定时器分辨率定时器 1ms分辨率定时器启动后,定时器分辨率定时器启动后,定时器对对1ms的时间间隔(时基信号)进行计时。定时器当前值的时间间隔(时基信号)进行计时。定时器当前值每隔每隔1ms刷新一次,在一个扫描周期中要刷新多次,而不刷新一次,在一个扫描周期中要刷新多次,而不和扫描周期同步。和扫描周期同步。 v 2)10ms分辨率定时器分辨率定

42、时器 10ms分辨率定时器启动后,定时分辨率定时器启动后,定时器对器对10ms的时间间隔进行计时。程序执行时,在每次扫的时间间隔进行计时。程序执行时,在每次扫描周期开始对描周期开始对10ms定时器刷新,在一个扫描周期内定时定时器刷新,在一个扫描周期内定时器当前值保持不变。器当前值保持不变。v 3)100ms分辨率定时器分辨率定时器 100ms分辨率定时器启动后,定分辨率定时器启动后,定时器对时器对100ms的时间间隔进行计时。只有在定时器指令执的时间间隔进行计时。只有在定时器指令执行时,行时,100ms定时器的当前值才被刷新。定时器的当前值才被刷新。 v 举例说明:举例说明:在图在图5-23a

43、中,中,t32定时器定时器1ms更新一次。当更新一次。当定时器当前值定时器当前值100在图示在图示a处刷新,处刷新,q0.0可以接通一个扫可以接通一个扫描周期,若在其他位置刷新,描周期,若在其他位置刷新,q0.0则用永远不会接通。而则用永远不会接通。而在在a处刷新的概率是很小的。若改为图处刷新的概率是很小的。若改为图5-23b,就可保证,就可保证当定时器当前值达到设定值时,当定时器当前值达到设定值时,q0.0会接通一个扫描周期。会接通一个扫描周期。图图5-23a5-23a同样不适合同样不适合10ms10ms分辨率定时器。分辨率定时器。 图5-23 1ms定时器编程 v 在子程序和中断程序中不易

44、使用在子程序和中断程序中不易使用100ms定时器。子程序和中断程序定时器。子程序和中断程序不是每个扫描周期都执行的,那么在子程序和中断程序中的不是每个扫描周期都执行的,那么在子程序和中断程序中的100ms定定时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准;时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准;在主程序中,不能重复使用同一个在主程序中,不能重复使用同一个100ms的定时器号,否则该定时器的定时器号,否则该定时器指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期中多次被刷新。这样,定时器就会多计

45、了时基脉冲,同样造成计时失中多次被刷新。这样,定时器就会多计了时基脉冲,同样造成计时失准。因而,准。因而,100ms定时器只能用于每个扫描周期内同一定时器指令执定时器只能用于每个扫描周期内同一定时器指令执行一次,且仅执行一次的场合。行一次,且仅执行一次的场合。100ms定时器的编程例子如图定时器的编程例子如图5-24a所所示。示。 a) b) 图5-24 100ms定时器的应用 2. 计数器指令计数器指令 计数器用来累计输入脉冲的次数。计数器也是由集成电路构计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。成,是应用非常广泛的编程元件,经

46、常用来对产品进行计数。计数器与定时器的结构和使用基本相似,编程时输入它的预计数器与定时器的结构和使用基本相似,编程时输入它的预设值设值pvpv(计数的次数),计数器累计它的脉冲输入端电位上(计数的次数),计数器累计它的脉冲输入端电位上升沿(正跳变)个数,当计数器达到预设值升沿(正跳变)个数,当计数器达到预设值pvpv时,发出中断时,发出中断请求信号,以便请求信号,以便plcplc作出相应的处理。作出相应的处理。计数器指令有计数器指令有3 3种:增计数种:增计数ctuctu、增减计数、增减计数ctudctud和减计数和减计数ctdctd。指令操作数有指令操作数有4 4方面:方面:编号编号、预设值

47、预设值、脉冲输入脉冲输入和和复位输入复位输入。 1)编号:)编号:用计数器名称和它的常数编号(最大用计数器名称和它的常数编号(最大255)来表示,)来表示,即即cxxx,如:,如:c6。c6不仅仅是计数器的编号,它还包含不仅仅是计数器的编号,它还包含两方面的变量信息:计数器位和计数器当前值。两方面的变量信息:计数器位和计数器当前值。计数器位:表示计数器是否发生动作的状态,当计数器的当计数器位:表示计数器是否发生动作的状态,当计数器的当前值达到预设值前值达到预设值pv时,该位被置为时,该位被置为“1”。计数器当前值:存储计数器当前所累计的脉冲个数,它用计数器当前值:存储计数器当前所累计的脉冲个数,它用16位符号整数(位符号整数(int)来表示,故最大计数值为)来表示,故最大计数值为32767。2)预设值)预设值pv:数据类型为数据类型为int型。寻址范围可以是型。寻址范围可以是vw、iw、qw、mw、sw、smw、lw、aiw、t、c、ac、*vd、*ac、*ld和常数。和常数。 3)脉冲输入:)脉冲输入:bool型,可以是型,可以是i、q、m、sm、t、c、v、s、l和能流。和能流。 4)复位输入:)复位输入:与脉冲输入同类型和范围。与脉冲输入同类型和范围

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论